#ifndef __SOCKINFO420_H__ /* * Structure used for manipulating linger option. */ struct linger { WORD l_onoff; /* option on/off */ WORD l_linger; /* linger time */ }; typedef struct linger LINGER; typedef struct _SOCK_INFO { // // Structure signature, for safety's sake. // //DEBUG_SIGNATURE LIST_ENTRY si_socket_list; // list of all active sockets LIST_ENTRY si_notify_list; // list of notification objects PEGNOTIY for us DWORD si_error; // we put errors which crop up, here... LINGER si_linger; // linger options LPVOID si_localaddr; // local address for this socket LPVOID si_remoteaddr; // size of the local address DWORD si_localaddrlen; // remote (peer) address for this socket DWORD si_remoteaddrlen; // size of the remote address DWORD si_family; // address family DWORD si_type; // socket type DWORD si_protocol; // protocol DWORD si_sendbufsize; // send buffer size DWORD si_recvbufsize; // receive buffer size DWORD si_flags; // internal state status DWORD si_options; // setsockopt() boolean options DWORD si_max_connects; // max number of connects outstanding DWORD si_num_connects; // number of connects waiting to be accepted DWORD si_state; // current state DWORD si_ready; // events ready to notify DWORD si_disabled_events; // disabled [async]select events DWORD si_owner_pid; // owning process id (VM handle in 16 bits) // PEG- This has the ProcessID of the owner DWORD si_handle; // this socket's handle DWORD si_recvtimeout; // receive timeout (ms) DWORD si_sendtimeout; // send timeout (ms) // ... rest not included } SOCK_INFO; #define __SOCKINFO420_H__ #endif