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