|
|
1.1 root 1: /* internet.h - TCP/IP abstractions */
2:
3: /*
4: * $Header: /f/osi/h/RCS/internet.h,v 7.2 90/01/11 18:36:01 mrose Exp $
5: *
6: *
7: * $Log: internet.h,v $
8: * Revision 7.2 90/01/11 18:36:01 mrose
9: * real-sync
10: *
11: * Revision 7.1 89/12/19 16:18:01 mrose
12: * dgram
13: *
14: * Revision 7.0 89/11/23 21:55:45 mrose
15: * Release 6.0
16: *
17: */
18:
19: /*
20: * NOTICE
21: *
22: * Acquisition, use, and distribution of this module and related
23: * materials are subject to the restrictions of a license agreement.
24: * Consult the Preface in the User's Manual for the full terms of
25: * this agreement.
26: *
27: */
28:
29:
30: #ifndef _INTERNET_
31: #define _INTERNET_
32:
33: #ifndef _MANIFEST_
34: #include "manifest.h"
35: #endif
36:
37: /* SOCKETS */
38:
39: #include "sys/socket.h"
40:
41: #ifndef SOMAXCONN
42: #define SOMAXCONN 5
43: #endif
44:
45: #if defined(WIN) || defined(WINTLI)
46: #include "sys/in.h"
47: #else
48: #include "netinet/in.h"
49: #endif
50:
51:
52: int start_tcp_client ();
53: int start_tcp_server ();
54:
55: #ifdef SOCKETS
56: int join_tcp_client ();
57: int join_tcp_server ();
58:
59: #define read_tcp_socket read
60: #define write_tcp_socket write
61: #define select_tcp_socket selsocket
62: #endif
63:
64: #ifdef WINTLI
65: int join_tcp_client ();
66: int join_tcp_server ();
67:
68: #define select_tcp_socket selsocket
69: #endif
70:
71: #ifdef EXOS
72:
73: #ifdef SYS5
74: #define join_tcp_client(s,f) \
75: (accept ((s), (struct sockaddr *) (f)) != NOTOK ? (s) : NOTOK)
76: #define join_tcp_server(s,t) connect ((s), (struct sockaddr *) (t))
77:
78: #define read_tcp_socket read
79: #define write_tcp_socket write
80: #define close_tcp_socket close
81: #define select_tcp_socket selsocket
82: #endif
83: #endif
84:
85: int read_tcp_socket ();
86: int write_tcp_socket ();
87: int close_tcp_socket ();
88:
89: int select_tcp_socket ();
90:
91: /* UDP */
92:
93: #ifdef SOCKETS
94: #ifndef _DGRAM_
95: #include "dgram.h"
96: #endif
97:
98: int start_udp_server ();
99: #define start_udp_client start_udp_server
100:
101: #define join_udp_server(fd,sock) \
102: join_dgram_aux ((fd), (struct sockaddr *) (sock), 0)
103: #define join_udp_client(fd,sock) \
104: join_dgram_aux ((fd), (struct sockaddr *) (sock), 1)
105:
106: #define read_udp_socket read_dgram_socket
107: #define write_udp_socket write_dgram_socket
108: #define close_udp_socket close_dgram_socket
109:
110: #define select_udp_socket select_dgram_socket
111: #endif
112:
113: /* NETDB */
114:
115: #if defined(SOCKETS) || defined (WINTLI) || defined (WIN)
116: #include <netdb.h>
117: #endif
118:
119:
120: #if defined (BIND) && !defined(h_addr)
121: #define h_addr h_addr_list[0]
122: #endif
123:
124: #define inaddr_copy(hp,sin) \
125: bcopy ((hp) -> h_addr, (char *) &((sin) -> sin_addr), (hp) -> h_length)
126:
127:
128: #ifdef EXOS
129: struct hostent {
130: char *h_name; /* official name */
131: char **h_aliases; /* alias list */
132: int h_addrtype; /* address type: AF_INET */
133: int h_length; /* address length: sizeof (u_long) == 4 */
134: char *h_addr; /* address value: (struct in_addr *) */
135: };
136:
137: struct servent {
138: char *s_name; /* official name */
139: char **s_aliases; /* alias list */
140: int s_port; /* port number */
141: char *s_proto; /* protocol beneath service */
142: };
143:
144:
145: struct hostent *gethostbyaddr (), *gethostbyname ();
146: struct servent *getservbyname ();
147: #endif
148:
149:
150: struct hostent *gethostbystring ();
151:
152: /* INET */
153:
154: /* under BSD42, we could simply include <arpa/inet.h> instead. However,
155: the definition of inet_addr contained therein causes problems with some
156: compilers. */
157:
158: char *inet_ntoa ();
159: #ifndef DG
160: u_long inet_addr (), inet_network ();
161: #else
162: struct in_addr inet_addr (), inet_network ();
163: #endif
164: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.