/* * tcp.h interface to MCS's TCP routines */ #include #ifdef SUPPORT_OPENTRANSPORT #include #include #endif /* SUPPORT_OPENTRANSPORT */ #include "MacTCPCommonTypes.h" #include "AddressXlation.h" #include "TCPPB.h" #include "GetMyIPAddr.h" #ifndef TCP_BUFSIZ #define TCP_BUFSIZ 8192 #endif /* TCP_BUFSIZ */ typedef struct tcpstream { StreamPtr tcps_sptr; /* stream pointer for MacTCP TCP PB calls */ #ifdef SUPPORT_OPENTRANSPORT EndpointRef tcps_ep; /* OpenTransport end point */ #endif /* SUPPORT_OPENTRANSPORT */ short tcps_data; /* count of packets on read queue */ short drefnum; /* driver ref num, for convenience */ Boolean tcps_connected; /* true if connection was made */ Boolean tcps_terminated; /* true if connection no longer exists */ #ifdef SUPPORT_OPENTRANSPORT InetHost tcps_remoteaddr; /* Address of our peer */ InetPort tcps_remoteport; /* Port number of our peer */ #endif /* SUPPORT_OPENTRANSPORT */ unsigned char *tcps_buffer; /* buffer given over to system to use */ struct tcpstream *tcps_next; /* next one in chain */ TCPNotifyUPP tcps_notifyupp; /* universal proc pointer for notify routine */ } tcpstream, *tcpstreamptr; /* * the Unix-y struct timeval */ struct timeval { long tv_sec; /* seconds */ long tv_usec; /* and microseconds */ }; #ifdef SUPPORT_OPENTRANSPORT typedef UInt8 byte; typedef UInt32 ip_addr; typedef UInt16 tcp_port; #endif /* SUPPORT_OPENTRANSPORT */ #define TCP_IS_TERMINATED( tsp ) (tsp)->tcps_terminated /* * function prototypes */ #ifdef SUPPORT_OPENTRANSPORT OSStatus tcp_init(void); void tcp_shutdown(void); Boolean tcp_have_opentransport( void ); #endif /* SUPPORT_OPENTRANSPORT */ tcpstream *tcpopen( unsigned char * buf, long buflen ); tcp_port tcpconnect( tcpstream *s, ip_addr addr, tcp_port port ); short tcpclose( tcpstream *s ); long tcpread( tcpstream *s, byte timeout, unsigned char * rbuf, unsigned short rbuflen, DialogPtr dlp ); long tcpwrite( tcpstream *s, unsigned char * wbuf, unsigned short wbuflen ); short tcpselect( tcpstream *s, struct timeval * timeout ); short tcpreadready( tcpstream *tsp ); short tcpgetpeername( tcpstream * tsp, ip_addr *addrp, tcp_port *portp ); #ifdef SUPPORT_OPENTRANSPORT short gethostinfobyname( char *host, InetHostInfo *hip ); short gethostinfobyaddr(InetHost addr, InetHostInfo *hip ); short ipaddr2str( InetHost ipaddr, char *addrstr ); #else /* SUPPORT_OPENTRANSPORT */ short gethostinfobyname( char *host, struct hostInfo *hip ); short gethostinfobyaddr( ip_addr addr, struct hostInfo *hip ); short ipaddr2str( ip_addr ipaddr, char *addrstr ); #endif /* SUPPORT_OPENTRANSPORT */