XRootD
Loading...
Searching...
No Matches
XrdAccAccess_ID Struct Reference

#include <XrdAccAccess.hh>

Collaboration diagram for XrdAccAccess_ID:

Public Member Functions

 XrdAccAccess_ID (const char *Name=0)
 ~XrdAccAccess_ID ()
bool Applies (const XrdAccEntityInfo &Entity)
XrdAccAccess_IDExport ()

Public Attributes

XrdAccCapabilitycaps
short glen
char * grp
short hlen
char * host
char * name
XrdAccAccess_IDnext
char * org
char * role
int rule
char * user

Detailed Description

Definition at line 47 of file XrdAccAccess.hh.

Constructor & Destructor Documentation

◆ XrdAccAccess_ID()

XrdAccAccess_ID::XrdAccAccess_ID ( const char * Name = 0)
inline

Definition at line 71 of file XrdAccAccess.hh.

72 : name(Name ? strdup(Name) : 0),
73 grp(0), host(0), org(0), role(0), user(0),
74 caps(0), next(0), rule(0), hlen(0), glen(0) {}
XrdAccCapability * caps
XrdAccAccess_ID * next

References caps, glen, grp, hlen, host, name, next, org, role, rule, and user.

Referenced by Export().

Here is the caller graph for this function:

◆ ~XrdAccAccess_ID()

XrdAccAccess_ID::~XrdAccAccess_ID ( )
inline

Definition at line 75 of file XrdAccAccess.hh.

75 {if (name) free(name);
76 if (grp) free(grp);
77 if (host) free(host);
78 if (org) free(org);
79 if (role) free(role);
80 if (user) free(user);
81 if (caps) delete caps;
82 }

References caps, grp, host, name, org, role, and user.

Member Function Documentation

◆ Applies()

bool XrdAccAccess_ID::Applies ( const XrdAccEntityInfo & Entity)

Definition at line 446 of file XrdAccAccess.cc.

447{
448
449// Check single value items in the most probable use order
450//
451 if (org && (!Entity.vorg || strcmp(org, Entity.vorg))) return false;
452 if (role && (!Entity.role || strcmp(role, Entity.role))) return false;
453 if (grp && (!Entity.grup || strcmp(grp, Entity.grup))) return false;
454 if (user && (!Entity.name || strcmp(user, Entity.name))) return false;
455
456// The check is more complicated as the host field may be a domain.
457//
458 if (host)
459 {const char *hName;
460 if (*host == '.')
461 {int eLen = strlen(Entity.host);
462 if (eLen <= hlen) return false;
463 hName = Entity.host + eLen - hlen;
464 } else hName = Entity.host;
465 if (strcmp(host, hName)) return false;
466 }
467
468// All done, this rules applies!
469//
470 return true;
471}
const char * vorg
const char * role
const char * name
const char * host
const char * grup

References grp, XrdAccEntityInfo::grup, hlen, host, XrdAccEntityInfo::host, XrdAccEntityInfo::name, org, role, XrdAccEntityInfo::role, user, and XrdAccEntityInfo::vorg.

Referenced by XrdAccAccess::Access().

Here is the caller graph for this function:

◆ Export()

XrdAccAccess_ID * XrdAccAccess_ID::Export ( )
inline

Definition at line 62 of file XrdAccAccess.hh.

63 {XrdAccAccess_ID *xID;
64 xID = new XrdAccAccess_ID;
65 *xID = *this;
66 name = grp = host = org = role = user = 0;
67 caps = 0;
68 return xID;
69 }
XrdAccAccess_ID(const char *Name=0)

References XrdAccAccess_ID(), caps, grp, host, name, org, role, and user.

Here is the call graph for this function:

Member Data Documentation

◆ caps

XrdAccCapability* XrdAccAccess_ID::caps

Definition at line 54 of file XrdAccAccess.hh.

Referenced by XrdAccAccess_ID(), ~XrdAccAccess_ID(), XrdAccAccess::Access(), and Export().

◆ glen

short XrdAccAccess_ID::glen

Definition at line 58 of file XrdAccAccess.hh.

Referenced by XrdAccAccess_ID().

◆ grp

char* XrdAccAccess_ID::grp

Definition at line 49 of file XrdAccAccess.hh.

Referenced by XrdAccAccess_ID(), ~XrdAccAccess_ID(), Applies(), and Export().

◆ hlen

short XrdAccAccess_ID::hlen

Definition at line 57 of file XrdAccAccess.hh.

Referenced by XrdAccAccess_ID(), and Applies().

◆ host

char* XrdAccAccess_ID::host

◆ name

char* XrdAccAccess_ID::name

Definition at line 48 of file XrdAccAccess.hh.

Referenced by XrdAccAccess_ID(), ~XrdAccAccess_ID(), and Export().

◆ next

XrdAccAccess_ID* XrdAccAccess_ID::next

Definition at line 55 of file XrdAccAccess.hh.

Referenced by XrdAccAccess_ID(), XrdAccAccess::Access(), and XrdAccAccess::SwapTabs().

◆ org

char* XrdAccAccess_ID::org

Definition at line 51 of file XrdAccAccess.hh.

Referenced by XrdAccAccess_ID(), ~XrdAccAccess_ID(), Applies(), and Export().

◆ role

char* XrdAccAccess_ID::role

Definition at line 52 of file XrdAccAccess.hh.

Referenced by XrdAccAccess_ID(), ~XrdAccAccess_ID(), Applies(), and Export().

◆ rule

int XrdAccAccess_ID::rule

Definition at line 56 of file XrdAccAccess.hh.

Referenced by XrdAccAccess_ID().

◆ user

char* XrdAccAccess_ID::user

Definition at line 53 of file XrdAccAccess.hh.

Referenced by XrdAccAccess_ID(), ~XrdAccAccess_ID(), Applies(), and Export().


The documentation for this struct was generated from the following files: