45char *getMyFQN(
const char *&myDom,
const char *&myErr)
49 const char *dnsName, *domP;
50 char *theName[2] = {0}, *theDom[2] = {0}, hName[256];
55 if (gethostname(hName,
sizeof(hName)))
56 {myErr =
XrdSysE2T(errno); myDom = 0;
return 0;}
57 hnLen = strlen(hName);
62 {myDom = 0;
return strdup(hName);}
69 while((ifNow = ifList))
70 {
int i = (ifNow->sval[1] ? 1 : 0);
72 if (i >= 0 && theName[i] == 0 && !theAddr.
Set(ifNow->
text, 0)
73 && (dnsName = theAddr.
Name(0,&myErr)) && (domP = index(dnsName,
'.')))
74 {
int n = domP - dnsName;
75 if (n == hnLen && !strncmp(hName, dnsName, n))
76 {theName[i] = strdup(dnsName);
77 theDom[i] = theName[i] + n;
80 ifList = ifList->
next;
86 if (myErr == 0) myErr =
"no error";
91 {
if (theName[1]) free(theName[1]);
106 if ((myErr = theAddr.
Set(hName,0))) dnsName = 0;
107 else dnsName = theAddr.
Name(0, &myErr);
112 {theName[0] = strdup(dnsName);
113 if (!(myDom = index(theName[0],
'.'))) myDom =
"";
119 theName[0] = strdup(hName);
120 myDom = theName[0] + hnLen;
133const char *XrdNetIdentity::DNS_Domain;
134const char *XrdNetIdentity::DNS_Error;
135const char *XrdNetIdentity::DNS_FQN = getMyFQN(DNS_Domain, DNS_Error);
143 if (eText) *eText = DNS_Error;
153 if (eText) *eText = DNS_Error;
const char * XrdSysE2T(int errcode)
const char * Name(const char *eName=0, const char **eText=0)
const char * Set(const char *hSpec, int pNum=PortInSpec)
static int GetIF(XrdOucTList **ifList, const char **eText=0)
static const char * Domain(const char **eText=0)
static const char * FQN(const char **etext=0)