* 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:
Corinna Vinschen
2005-02-23 17:39:46 +00:00
parent 81d0376064
commit c8b404bf5c
8 changed files with 159 additions and 5 deletions

View File

@ -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.

View File

@ -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 */

View File

@ -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