LINUX.ORG.RU

История изменений

Исправление 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.