/* * $LynxId: HTTCP.h,v 1.24 2014/12/03 00:27:57 tom Exp $ * * /Net/dxcern/userd/timbl/hypertext/WWW/Library/src/HTTCP.html * GENERIC TCP/IP COMMUNICATION * * This module has the common code for handling TCP/IP connections etc. */ #ifndef HTTCP_H #define HTTCP_H #ifndef HTUTILS_H #include #endif #ifdef __cplusplus extern "C" { #endif /* Produce a string for an internet address * --------------------------------------- * * On exit: * returns a pointer to a static string which must be copied if * it is to be kept. */ #ifdef INET6 extern const char *HTInetString(SockA * mysin); #else extern const char *HTInetString(struct sockaddr_in *mysin); #endif /* INET6 */ /* Encode INET status (as in sys/errno.h) inet_status() * ------------------ * * On entry: * where gives a description of what caused the error * global errno gives the error number in the unix way. * * On return: * returns a negative status in the unix way. */ extern int HTInetStatus(const char *where); /* Publicly accessible variables */ /* extern struct sockaddr_in HTHostAddress; */ /* The internet address of the host */ /* Valid after call to HTHostName() */ /* Parse a cardinal value parse_cardinal() * ---------------------- * * On entry: * *pp points to first character to be interpreted, terminated by * non 0..9 character. * *pstatus points to status already valid, * maxvalue gives the largest allowable value. * * On exit: * *pp points to first unread character, * *pstatus points to status updated iff bad */ extern unsigned int HTCardinal(int *pstatus, char **pp, unsigned int max_value); /* Check whether string is a valid Internet hostname * ------------------------------------------------- */ extern BOOL valid_hostname(char *name); /* Resolve an internet hostname, like gethostbyname * ------------------------------------------------ * * On entry, * str points to the given host name, not numeric address, * without colon or port number. * * On exit, * returns a pointer to a struct hostent in static storage, * or NULL in case of error or user interruption. * * The interface is intended to be the same as for gethostbyname(), * but additional status is returned in lynx_nsl_status. */ extern int lynx_nsl_status; #ifndef LYNX_HOSTENT #define LYNX_HOSTENT void #endif extern LYNX_HOSTENT *LYGetHostByName(char *host); #ifdef INET6 #ifndef LYNX_ADDRINFO #define LYNX_ADDRINFO void #endif extern LYNX_ADDRINFO *HTGetAddrInfo(const char *str, const int defport); #endif /* Get Name of This Machine * ------------------------ * */ extern const char *HTHostName(void); extern int HTDoConnect(const char *url, const char *protocol, int default_port, int *s); extern int HTDoRead(int fildes, void *buf, unsigned nbyte); #ifdef __cplusplus } #endif #endif /* HTTCP_H */