1/* $Copyright: 2 * 3 * Copyright 1998-2000 by the Massachusetts Institute of Technology. 4 * 5 * All rights reserved. 6 * 7 * Permission to use, copy, modify, and distribute this software and its 8 * documentation for any purpose and without fee is hereby granted, 9 * provided that the above copyright notice appear in all copies and that 10 * both that copyright notice and this permission notice appear in 11 * supporting documentation, and that the name of M.I.T. not be used in 12 * advertising or publicity pertaining to distribution of the software 13 * without specific, written prior permission. Furthermore if you modify 14 * this software you must label your software as modified software and not 15 * distribute it in such a fashion that it might be confused with the 16 * original MIT software. M.I.T. makes no representations about the 17 * suitability of this software for any purpose. It is provided "as is" 18 * without express or implied warranty. 19 * 20 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 21 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 22 * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 23 * 24 * Individual source code files are copyright MIT, Cygnus Support, 25 * OpenVision, Oracle, Sun Soft, FundsXpress, and others. 26 * 27 * Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira, 28 * and Zephyr are trademarks of the Massachusetts Institute of Technology 29 * (MIT). No commercial use of these trademarks may be made without prior 30 * written permission of MIT. 31 * 32 * "Commercial use" means use of a name in a product or other for-profit 33 * manner. It does NOT prevent a commercial firm from referring to the MIT 34 * trademarks in order to convey information (although in doing so, 35 * recognition of their trademark status should be given). 36 * $ 37 */ 38 39/* $Header: /Volumes/backup/dsmigrate/Dumps/../CVS/passwordserver_sasl/cyrus_sasl/mac/CommonKClient/mac_kclient3/Headers/KerberosSupport/netdb.h,v 1.4 2005/01/10 19:10:48 snsimon Exp $ */ 40 41/* MIT Sockets Library 42 * netdb.h 43 * macdev@mit.edu 44 */ 45 46#ifndef _NETDB_H 47#define _NETDB_H 48 49#include <stdlib.h> 50 51#ifdef __cplusplus 52extern "C" { 53#endif 54 55struct hostent 56{ 57 char *h_name; /* official (cannonical) name of host */ 58 char **h_aliases; /* pointer to array of pointers of alias names */ 59 int h_addrtype; /* host address type: AF_INET or AF_INET6 */ 60 int h_length; /* length of address: 4 or 16 */ 61 char **h_addr_list; /* pointer to array of pointers with IPv4 or IPv6 addresses */ 62}; 63 64#define h_addr h_addr_list[0] /* first address in list */ 65 66struct servent 67{ 68 char *s_name; /* official service name */ 69 char **s_aliases; /* alias list */ 70 int s_port; /* port number, network-byte order */ 71 char *s_proto; /* protocol to use */ 72}; 73 74#if defined(__CFM68K__) && !defined(__USING_STATIC_LIBS__) 75# pragma import on 76#endif 77 78#if !TARGET_RT_MAC_CFM 79# pragma d0_pointers on 80#endif 81 82struct hostent *gethostbyname(const char *hostname); 83struct hostent *gethostbyaddr(const char *addr, size_t len, int family); 84 85/* Gets the local host's hostname. If namelen isn't long enough, it puts in as much of 86 the name as possible, without a terminating null. This is done so it is compatible 87 with the unix version. This is, admittedly, the wrong way to write a code, but my 88 excuse is compatibility. It should really dynamically allocate space. Oh well. 89 It also assert()'s if you don't pass it a reasonably sized buffer. */ 90int gethostname(char *name, size_t namelen); 91 92/* Opens the service database if needed and gets the next service entry. 93 Returns NULL if you have read them all. On error, returns NULL and 94 calls SetMITLibError(). */ 95struct servent *getservent (void); 96 97/* Closes the service database. On error, calls SetMITLibError(). */ 98void endservent (void); 99 100struct servent *getservbyname (const char *servname, const char *protname); 101struct servent *getservbyport (int port, const char *protname); 102 103#if !TARGET_RT_MAC_CFM 104# pragma d0_pointers reset 105#endif 106 107#if defined(__CFM68K__) && !defined(__USING_STATIC_LIBS__) 108# pragma import reset 109#endif 110 111#ifdef __cplusplus 112} 113#endif 114 115#endif /* _NETDB_H */