#include <XrdLinkMatch.hh>
|
| XrdLinkMatch (const char *target=0) |
|
| ~XrdLinkMatch () |
|
int | Match (const char *uname, int unlen, const char *hname) |
|
int | Match (const char *uname, int unlen, const char *hname, int hnlen) |
|
void | Set (const char *target) |
|
Definition at line 34 of file XrdLinkMatch.hh.
◆ XrdLinkMatch()
XrdLinkMatch::XrdLinkMatch |
( |
const char * |
target = 0 | ) |
|
|
inline |
Definition at line 49 of file XrdLinkMatch.hh.
50 {Uname = HnameL = HnameR = 0;
51 Unamelen = Hnamelen = 0;
52 if (target)
Set(target);
void Set(const char *target)
References Set().
◆ ~XrdLinkMatch()
XrdLinkMatch::~XrdLinkMatch |
( |
| ) |
|
|
inline |
◆ Match() [1/2]
int XrdLinkMatch::Match |
( |
const char * |
uname, |
|
|
int |
unlen, |
|
|
const char * |
hname |
|
) |
| |
|
inline |
Definition at line 41 of file XrdLinkMatch.hh.
43 {
return Match(uname, unlen, hname, strlen(hname));}
int Match(const char *uname, int unlen, const char *hname, int hnlen)
References Match().
◆ Match() [2/2]
int XrdLinkMatch::Match |
( |
const char * |
uname, |
|
|
int |
unlen, |
|
|
const char * |
hname, |
|
|
int |
hnlen |
|
) |
| |
Definition at line 39 of file XrdLinkMatch.cc.
45 if (Unamelen && (Unamelen > unlen+1 || strncmp(uname,Uname,Unamelen)))
return 0;
49 if (HnameL && !HnamelenL)
return !strcmp(HnameL, hname);
53 if (HnamelenL > hnlen)
return 0;
57 if (HnameL && strncmp(HnameL, hname, HnamelenL))
return 0;
61 if (!HnameR)
return 1;
62 return !strcmp(hname+hnlen-HnamelenR, hname);
Referenced by XrdLinkCtl::Find(), XrdLinkCtl::getName(), and Match().
◆ Set()
void XrdLinkMatch::Set |
( |
const char * |
target | ) |
|
Definition at line 69 of file XrdLinkMatch.cc.
75 if (!target || !strcmp(target,
"*"))
76 {Uname = HnameL = HnameR = 0;
77 Unamelen = HnamelenL = HnamelenR = 0;
80 strlcpy(Buff, target,
sizeof(Buff)-1);
85 if (!(HnameL = index(Uname,
'@')))
86 {
if ((Unamelen = strlen(Uname)))
87 {
if (Uname[Unamelen-1] ==
'*') Unamelen--;
88 else if (index(Uname,
':')) Uname[Unamelen++] =
'@';
89 else if (index(Uname,
'.')) Uname[Unamelen++] =
':';
90 else Uname[Unamelen++] =
'.';
99 if ((Unamelen = strlen(Uname)))
100 {
if (Uname[Unamelen-1] ==
'*') Unamelen--;
101 else if (index(Uname,
':')) Uname[Unamelen++] =
'@';
102 else if (index(Uname,
'.')) Uname[Unamelen++] =
':';
103 else Uname[Unamelen++] =
'.';
108 if (!(theast = index(HnameL,
'*')))
117 if (!(HnamelenL = strlen(HnameL))) HnameL = 0;
121 if ((HnamelenR = strlen(theast))) HnameR = theast+1;
123 Hnamelen = HnamelenL+HnamelenR;
References strlcpy().
Referenced by XrdLinkMatch().
The documentation for this class was generated from the following files: