/*! \file wshelper.h * WSHelper DNS/Hesiod Library * * This file contains the function declaration for: \n * rgethostbyname() \n * rgethostbyaddr() \n * rgetservbyname() \n * inet_aton() \n * wsh_gethostname() \n * wsh_getdomainname() \n \n * and unsupported functions: \n * gethinfobyname() \n * getmxbyname() \n * getrecordbyname() \n * rrhost() \n */ #ifndef _WSHELPER_ #define _WSHELPER_ #include #include #include #include #ifdef __cplusplus extern "C" { #endif /*! \fn struct hostent * WINAPI rgethostbyname(char *name) * retrieves host information corresponding to a host name in the DNS database * * defined in gethna.c * * \param[in] name Pointer to the null-terminated name of the host to resolve. It can be a fully qualified host name such as x.mit.edu * or it can be a simple host name such as x. If it is a simple host name, the default domain name is * appended to do the search. * \retval a pointer to the structure hostent. a structure allocated by the library. The hostent structure contains * the results of a successful search for the host specified in the name parameter. The caller must never * attempt to modify this structure or to free any of its components. Furthermore, only one copy of this * structure is allocated per call per thread, so the application should copy any information it needs before * issuing another rgethostbyname. * NULL if the search has failed * */ struct hostent * WINAPI rgethostbyname(char *name); /*! \fn struct hostent * WINAPI rgethostbyaddr(char *addr, int len, int type) * retrieves the host information corresponding to a network address in the DNS database * * defined in gethna.c * * \param[in] addr Pointer to an address in network byte order * \param[in] len Length of the address, in bytes * \param[in] type Type of the address, such as the AF_INET address family type (defined as TCP, * UDP, and other associated Internet protocols). Address family types and their corresponding * values are defined in the Winsock2.h header file. * \retval returns a pointer to the hostent structure that contains the name and address corresponding * to the given network address. The structure is allocated by the library. The caller must never * attempt to modify this structure or to free any of its components. Furthermore, only one copy of this * structure is allocated per call per thread, so the application should copy any information it needs before * issuing another rgethostbyaddr. * NULL if the search has failed * */ struct hostent * WINAPI rgethostbyaddr(char *addr, int len, int type); /*! \fn struct servent * WINAPI rgetservbyname(LPSTR name, LPSTR proto) * retrieves service information corresponding to a service name and protocol. * * defined in gethna.c * * \param[in] name Pointer to a null-terminated service name. * \param[in] proto pointer to a null-terminated protocol name. getservbyname should match both * the name and the proto. * \retval a pointer to the servent structure containing the name(s) and service number that match the name and proto * parameters. The structure is allocated by the library. The caller must never * attempt to modify this structure or to free any of its components. Furthermore, only one copy of this * structure is allocated per call per thread, so the application should copy any information it needs before * issuing another rgetservbyname. * NULL if the search has failed * */ struct servent * WINAPI rgetservbyname(LPSTR name, LPSTR proto); /*! \fn LPSTR WINAPI gethinfobyname(LPSTR name) * unsupported */ LPSTR WINAPI gethinfobyname(LPSTR name); /*! \fn LPSTR WINAPI getmxbyname(LPSTR name) * unsupported */ LPSTR WINAPI getmxbyname(LPSTR name); /*! \fn LPSTR WINAPI getrecordbyname(LPSTR name, int rectype) * unsupported */ LPSTR WINAPI getrecordbyname(LPSTR name, int rectype); /*! \fn DWORD WINAPI rrhost( LPSTR lpHost ) * unsupported */ DWORD WINAPI rrhost( LPSTR lpHost ); /*! \fn unsigned long WINAPI inet_aton(register const char *cp, struct in_addr *addr) * converts a string containing an (Ipv4) Internet Protocol dotted address into a proper address for the in_addr structure * * defined in inetaton.c * * \param[in] cp Null-terminated character string representing a number expressed in the * Internet standard ".'' (dotted) notation. * \param[in, out] addr pointer to the in_addr structure. The s_addr memeber will be populated * \retval Returns 1 if the address is valid, 0 if not. */ unsigned long WINAPI inet_aton(register const char *cp, struct in_addr *addr); /*! \fn int WINAPI wsh_gethostname(char* name, int size) * Gets the base part of the hostname * * defined in res_init.c * * \param[in, out] name pointer to a buffer that receives a null-terminated string containing the computer name * \param[in] size specifies the size of the buffer, in chars (must be large * enough to hold NULL-terminated host name) * \retval return 0 ifsuccess, -1 on error. */ int WINAPI wsh_gethostname(char* name, int size); /*! \fn int WINAPI wsh_getdomainname(char* name, int size) * Gets the machine's domain name * * defined in res_init.c * * \param[in, out] name pointer to a buffer that receives a null-terminated string containing the domain name * \param[in] size specifies the size of the buffer, in chars (must be large * enough to hold NULL-terminated domain name) * * \retval return 0 ifsuccess, -1 on error. */ int WINAPI wsh_getdomainname(char* name, int size); #ifdef __cplusplus } #endif #endif /* _WSHELPER_ */