История изменений
Исправление tailgunner, (текущая версия) :
А можно подробнее, что мне с этим делать?
Как уже сказано постом выше:
#if defined(SO_PEERCRED)
socklen_t l;
struct ucred cred;
/* initialize client information (in case getsockopt() breaks) */
cred.pid=(pid_t)0;
cred.uid=(uid_t)-1;
cred.gid=(gid_t)-1;
/* look up process information from peer */
l=(socklen_t)sizeof(struct ucred);
if (getsockopt(sock,SOL_SOCKET,SO_PEERCRED,&cred,&l) < 0)
return -1; /* errno already set */
/* return the data */
if (uid!=NULL) *uid=cred.uid;
if (gid!=NULL) *gid=cred.gid;
if (pid!=NULL) *pid=cred.pid;
return 0;
Втупую переведи это на Python через socket и struct.
Исходная версия tailgunner, :
А можно подробнее, что мне с этим делать?
Как уже сказано постом выше:
#if defined(SO_PEERCRED)
socklen_t l;
struct ucred cred;
/* initialize client information (in case getsockopt() breaks) */
cred.pid=(pid_t)0;
cred.uid=(uid_t)-1;
cred.gid=(gid_t)-1;
/* look up process information from peer */
l=(socklen_t)sizeof(struct ucred);
if (getsockopt(sock,SOL_SOCKET,SO_PEERCRED,&cred,&l) < 0)
return -1; /* errno already set */
/* return the data */
if (uid!=NULL) *uid=cred.uid;
if (gid!=NULL) *gid=cred.gid;
if (pid!=NULL) *pid=cred.pid;
return 0;
Втупую переведи это на Python через socket и struct.