Re: Fwd: [PATCH 4/6] New GNU/Hurd backend

Joan Lledó <[email protected]>
Newsgroups gmane.os.hurd.bugs
Message-ID <[email protected]>
Hi,

El 6/8/26 a les 2:22, Roy Marples ha escrit:
> Hurd lacks the means of authenticating a socket. ideally getpeereid(3) 
> should be supported as it's sockets are BSD centric
> which would make my life easy.
Maybe I could work on adding getpeereid() to he Hurd. The approach would be:

1. Add a new op to the socket protocol, called socket_getpeereid:

```
routine socket_getpeereid ( 

   sock: socket_t; 

   out euid: uid_t; 

   out egid: gid_t);
```

2. pflocal, modify `struct sock` to add to new fields:

```
/* Effective identity of the socket's peer, when connected.  */ 

uid_t peer_uid; 

gid_t peer_gid;
```

3. pflocal, on sock_connect, set the values:

```
sock1->peer_uid = sock2->uid; 

sock1->peer_gid = sock2->gid;
```
And vice-versa


4. pflocal, implement the new op:

```
S_socket_getpeereid (struct sock_user *user, uid_t *euid, gid_t *egid) 

   { 

     ... 

   }
```

Finally, I would need to define getpeereid() in glibc to call the new op 
and mimic how BSD behaves.

Samuel, does the plan make sense? Is it something we want to do?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.