/* * $LynxId: HTTCP.h,v 1.27 2018/05/16 19:48:16 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. */ extern const char *HTInetString(LY_SOCKADDR * mysin); /* 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; extern BOOLEAN LYCheckHostByName(char *host); #ifdef INET6 extern BOOLEAN HTCheckAddrInfo(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 */