1 | /* $Id: wsock32.h,v 1.9 1999-12-07 20:25:48 achimha Exp $ */
|
---|
2 |
|
---|
3 | /* WSOCK32.H--definitions & conversions for Odin's wsock32.dll.
|
---|
4 | * Unused/unneeded Microsoft declarations removed.
|
---|
5 | *
|
---|
6 | * This header file corresponds to version 1.1 of the Windows Sockets specification.
|
---|
7 | *
|
---|
8 | * This file includes parts which are Copyright (c) 1982-1986 Regents
|
---|
9 | * of the University of California. All rights reserved. The
|
---|
10 | * Berkeley Software License Agreement specifies the terms and
|
---|
11 | * conditions for redistribution.
|
---|
12 | *
|
---|
13 | */
|
---|
14 |
|
---|
15 | #ifndef _WINSOCK32CONST_
|
---|
16 | #define _WINSOCK32CONST_
|
---|
17 |
|
---|
18 |
|
---|
19 | /*
|
---|
20 | * Structure used for manipulating linger option.
|
---|
21 | */
|
---|
22 | struct Wlinger {
|
---|
23 | u_short l_onoff; /* option on/off */
|
---|
24 | u_short l_linger; /* linger time */
|
---|
25 | };
|
---|
26 |
|
---|
27 |
|
---|
28 | /*
|
---|
29 | * Structures returned by network data base library, taken from the
|
---|
30 | * BSD file netdb.h. All addresses are supplied in host order, and
|
---|
31 | * returned in network order (suitable for use in system calls).
|
---|
32 | */
|
---|
33 |
|
---|
34 | struct Whostent {
|
---|
35 | char * h_name; /* official name of host */
|
---|
36 | char * * h_aliases; /* alias list */
|
---|
37 | short h_addrtype; /* host address type */
|
---|
38 | short h_length; /* length of address */
|
---|
39 | char * * h_addr_list; /* list of addresses */
|
---|
40 | #define h_addr h_addr_list[0] /* address, for backward compat */
|
---|
41 | };
|
---|
42 |
|
---|
43 | /*
|
---|
44 | * It is assumed here that a network number
|
---|
45 | * fits in 32 bits.
|
---|
46 | */
|
---|
47 | struct Wnetent {
|
---|
48 | char * n_name; /* official name of net */
|
---|
49 | char * * n_aliases; /* alias list */
|
---|
50 | short n_addrtype; /* net address type */
|
---|
51 | u_long n_net; /* network # */
|
---|
52 | };
|
---|
53 | typedef struct Whostent WHOSTENT;
|
---|
54 | typedef WHOSTENT *PWHOSTENT;
|
---|
55 |
|
---|
56 | struct Wservent {
|
---|
57 | char * s_name; /* official service name */
|
---|
58 | char * * s_aliases; /* alias list */
|
---|
59 | short s_port; /* port # */
|
---|
60 | char * s_proto; /* protocol to use */
|
---|
61 | };
|
---|
62 | typedef struct Wservent WSERVENT;
|
---|
63 | typedef WSERVENT *PWSERVENT;
|
---|
64 |
|
---|
65 | struct Wprotoent {
|
---|
66 | char * p_name; /* official protocol name */
|
---|
67 | char * * p_aliases; /* alias list */
|
---|
68 | short p_proto; /* protocol # */
|
---|
69 | };
|
---|
70 | typedef struct Wprotoent WPROTOENT;
|
---|
71 | typedef WPROTOENT *PWPROTOENT;
|
---|
72 |
|
---|
73 | typedef struct tagWsockThreadData
|
---|
74 | {
|
---|
75 | int dwLastError; // Get/SetLastError
|
---|
76 | struct Whostent whsnt; // database conversion buffers
|
---|
77 | struct Wservent wsvnt;
|
---|
78 | struct Wprotoent wptnt;
|
---|
79 | struct Wnetent wntnt;
|
---|
80 | struct Wlinger wlinger;
|
---|
81 | } WSOCKTHREADDATA, *PWSOCKTHREADDATA;
|
---|
82 |
|
---|
83 | // internal prototype
|
---|
84 | PWSOCKTHREADDATA iQueryWsockThreadData(void);
|
---|
85 |
|
---|
86 |
|
---|
87 | #endif /* _WINSOCK32CONST_ */
|
---|
88 |
|
---|
89 |
|
---|