70 while(mrp) {prp = mrp; mrp = mrp->
Next;
delete prp;}
87 if ((theRef =
getRef(netAddr)) >= 0)
Del(theRef);
88 else theRef = -theRef;
93 while((hP = hList.
GetToken()))
Add(theRef, hP, manPort, lvl);
106 if (*manp !=
'[') cp = index(manp,
int(
':'));
107 else if ((cp = index(manp+1,
']'))) cp = index(cp+1,
int(
':'));
108 if (!cp) port = manport;
109 else {
if (!(port=atoi(cp+1)) || port > 0xffff) port=manport;
118 if (redAddr.
Set(manp,0) || !(redName = redAddr.
Name()))
return;
119 ipname = strdup(redName);
131 {
if (!strcmp(mrp->Manager, ipname) && mrp->ManPort == port)
132 {mlMutex.
UnLock(); free(ipname);
return;}
134 {
if (mrp->Next->ManLvl > lvl) prp = mrp;}
135 else if (!prp) prp = mrp;
142 if (!prp) nextMan = allMans = mrp;
144 if (nextMan->
ManLvl > lvl) nextMan = mrp;
169 {
if (mrp->ManRef == (
unsigned int)ref)
171 if (!prp) allMans = nrp;
172 else {prp->
Next = nrp;
173 if (mrp == allMans) allMans = nrp;
175 if (mrp == nextMan) nextMan = nrp;
178 }
else {prp = mrp; mrp = mrp->
Next;}
192 static int refNum = 1;
206 while(tP && strcmp(buff, tP->
text)) tP = tP->
next;
210 if (tP) theNum = tP->val;
211 else {refList =
new XrdOucTList(buff, refNum, refList);
231 if (!(np = nextMan)) nextMan = allMans;
236 lvl = (np ? np->
ManLvl : 0);
void Del(const XrdNetAddr *refP)
void Add(const XrdNetAddr *netAddr, char *redList, int manport, int lvl)
int getRef(const XrdNetAddr *refP)
int Next(int &port, char *buff, int bsz)
XrdCmsManRef(unsigned int ref, char *name, int port, int lvl)
static const int old6Map4
Use deprecated IPV6 mapped format.
static bool isHostName(const char *name)
int Format(char *bAddr, int bLen, fmtUse fmtType=fmtAuto, int fmtOpts=0)
const char * Name(const char *eName=0, const char **eText=0)
const char * Set(const char *hSpec, int pNum=PortInSpec)
char * GetToken(char **rest=0, int lowcase=0)