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