MCPcopy Create free account
hub / github.com/apache/trafficserver / get_peereid

Function get_peereid

src/mgmt/rpc/server/IPCSocketServer.cc:87–121  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

85}
86
87static int
88get_peereid(int fd, uid_t *euid, gid_t *egid)
89{
90 *euid = -1;
91 *egid = -1;
92
93#if HAVE_GETPEEREID
94 return getpeereid(fd, euid, egid);
95#elif HAVE_GETPEERUCRED
96 ucred_t *ucred;
97
98 if (getpeerucred(fd, &ucred) == -1) {
99 return -1;
100 }
101
102 *euid = ucred_geteuid(ucred);
103 *egid = ucred_getegid(ucred);
104 ucred_free(ucred);
105 return 0;
106#elif TS_HAS_SO_PEERCRED
107 struct ucred cred;
108 socklen_t credsz = sizeof(cred);
109 if (getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &cred, &credsz) == -1) {
110 return -1;
111 }
112
113 *euid = cred.uid;
114 *egid = cred.gid;
115 return 0;
116#else
117 (void)fd;
118 errno = ENOTSUP;
119 return -1;
120#endif
121}
122
123} // namespace
124

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected