* cygwin.din (getpeereid): Export.
* fhandler.h (class fhandler_socket): Add pipe and id members to exchange eid credentials for AF_LOCAL sockets. (eid_pipe_name): Declare new method. (getpeereid): Ditto. * fhandler_socket.cc (fhandler_socket::eid_pipe_name): New method. (fhandler_socket::fhandler_socket): Initialize sec_pipe. (fhandler_socket::connect): Exchange eid credentials with accepting socket process. (fhandler_socket::listen): Prepare eid credential transaction. (fhandler_socket::accept): Exchange eid credentials with connecting socket process. (fhandler_socket::close): Close eid credentials pipe if open. (fhandler_socket::getpeereid): New method. * net.cc (cygwin_getsockopt): Add SO_PEERCRED handling. (getpeereid): New function. * include/asm/socket.h (SO_PEERCRED): Define. * include/cygwin/socket.h (struct ucred): Define new type. * include/cygwin/version.h: Bump API minor version.
This commit is contained in:
@ -54,6 +54,7 @@ details. */
|
||||
#define SO_LINGER 0x0080 /* linger on close if data present */
|
||||
#define SO_OOBINLINE 0x0100 /* leave received OOB data in line */
|
||||
#define SO_DONTLINGER (u_int)(~SO_LINGER)
|
||||
#define SO_PEERCRED 0x0200 /* same as getpeereid */
|
||||
|
||||
/*
|
||||
* Additional options.
|
||||
|
@ -25,6 +25,12 @@ struct sockaddr {
|
||||
#include <cygwin/uio.h> /* iovec support */
|
||||
#include <sys/types.h>
|
||||
|
||||
struct ucred {
|
||||
pid_t pid;
|
||||
__uid32_t uid;
|
||||
__gid32_t gid;
|
||||
};
|
||||
|
||||
struct linger {
|
||||
unsigned short l_onoff; /* Linger active */
|
||||
unsigned short l_linger; /* How long to linger for */
|
||||
|
@ -248,13 +248,13 @@ details. */
|
||||
118: Export getpriority, setpriority.
|
||||
119: Export fdatasync.
|
||||
120: Export basename, dirname.
|
||||
121: Export statvfs, fstatvfs.
|
||||
122: Export statvfs, fstatvfs.
|
||||
*/
|
||||
|
||||
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
|
||||
|
||||
#define CYGWIN_VERSION_API_MAJOR 0
|
||||
#define CYGWIN_VERSION_API_MINOR 121
|
||||
#define CYGWIN_VERSION_API_MINOR 122
|
||||
|
||||
/* There is also a compatibity version number associated with the
|
||||
shared memory regions. It is incremented when incompatible
|
||||
|
Reference in New Issue
Block a user