196f79dcaSHajimu UMEMOTO /*- 296f79dcaSHajimu UMEMOTO * Copyright (C) 2005 The FreeBSD Project. All rights reserved. 396f79dcaSHajimu UMEMOTO * 496f79dcaSHajimu UMEMOTO * Redistribution and use in source and binary forms, with or without 596f79dcaSHajimu UMEMOTO * modification, are permitted provided that the following conditions 696f79dcaSHajimu UMEMOTO * are met: 796f79dcaSHajimu UMEMOTO * 1. Redistributions of source code must retain the above copyright 896f79dcaSHajimu UMEMOTO * notice, this list of conditions and the following disclaimer. 996f79dcaSHajimu UMEMOTO * 2. Redistributions in binary form must reproduce the above copyright 1096f79dcaSHajimu UMEMOTO * notice, this list of conditions and the following disclaimer in the 1196f79dcaSHajimu UMEMOTO * documentation and/or other materials provided with the distribution. 1296f79dcaSHajimu UMEMOTO * 1396f79dcaSHajimu UMEMOTO * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1496f79dcaSHajimu UMEMOTO * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1596f79dcaSHajimu UMEMOTO * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1696f79dcaSHajimu UMEMOTO * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 1796f79dcaSHajimu UMEMOTO * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1896f79dcaSHajimu UMEMOTO * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 1996f79dcaSHajimu UMEMOTO * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2096f79dcaSHajimu UMEMOTO * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2196f79dcaSHajimu UMEMOTO * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2296f79dcaSHajimu UMEMOTO * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2396f79dcaSHajimu UMEMOTO * SUCH DAMAGE. 2496f79dcaSHajimu UMEMOTO * 2596f79dcaSHajimu UMEMOTO * $FreeBSD$ 2696f79dcaSHajimu UMEMOTO */ 2796f79dcaSHajimu UMEMOTO 2896f79dcaSHajimu UMEMOTO #ifndef _NETDB_PRIVATE_H_ 2996f79dcaSHajimu UMEMOTO #define _NETDB_PRIVATE_H_ 3096f79dcaSHajimu UMEMOTO 3196f79dcaSHajimu UMEMOTO #include <stdio.h> /* XXX: for BUFSIZ */ 3296f79dcaSHajimu UMEMOTO 3392b6f7beSHajimu UMEMOTO #define PROTOENT_MAXALIASES 35 3496f79dcaSHajimu UMEMOTO #define SERVENT_MAXALIASES 35 3596f79dcaSHajimu UMEMOTO 3692b6f7beSHajimu UMEMOTO struct protoent_data { 3792b6f7beSHajimu UMEMOTO FILE *fp; 3892b6f7beSHajimu UMEMOTO char *aliases[PROTOENT_MAXALIASES]; 3992b6f7beSHajimu UMEMOTO int stayopen; 4092b6f7beSHajimu UMEMOTO char line[BUFSIZ + 1]; 4192b6f7beSHajimu UMEMOTO }; 4292b6f7beSHajimu UMEMOTO 4392b6f7beSHajimu UMEMOTO struct protodata { 4492b6f7beSHajimu UMEMOTO struct protoent proto; 4592b6f7beSHajimu UMEMOTO struct protoent_data data; 4692b6f7beSHajimu UMEMOTO }; 4792b6f7beSHajimu UMEMOTO 4896f79dcaSHajimu UMEMOTO struct servent_data { 4996f79dcaSHajimu UMEMOTO FILE *fp; 5096f79dcaSHajimu UMEMOTO char *aliases[SERVENT_MAXALIASES]; 5196f79dcaSHajimu UMEMOTO int stayopen; 5296f79dcaSHajimu UMEMOTO char line[BUFSIZ + 1]; 5396f79dcaSHajimu UMEMOTO #ifdef YP 54a87b3988SHajimu UMEMOTO int yp_stepping; 55a87b3988SHajimu UMEMOTO char *yp_name; 56a87b3988SHajimu UMEMOTO char *yp_proto; 57a87b3988SHajimu UMEMOTO int yp_port; 5896f79dcaSHajimu UMEMOTO char *yp_domain; 59a87b3988SHajimu UMEMOTO char *yp_key; 60a87b3988SHajimu UMEMOTO int yp_keylen; 6196f79dcaSHajimu UMEMOTO #endif 6296f79dcaSHajimu UMEMOTO }; 6396f79dcaSHajimu UMEMOTO 6496f79dcaSHajimu UMEMOTO struct servdata { 6596f79dcaSHajimu UMEMOTO struct servent serv; 6696f79dcaSHajimu UMEMOTO struct servent_data data; 6796f79dcaSHajimu UMEMOTO }; 6896f79dcaSHajimu UMEMOTO 6992b6f7beSHajimu UMEMOTO #define endprotoent_r __endprotoent_r 70109e5709SHajimu UMEMOTO #define endservent_r __endservent_r 7192b6f7beSHajimu UMEMOTO #define getprotobyname_r __getprotobyname_r 7292b6f7beSHajimu UMEMOTO #define getprotobynumber_r __getprotobynumber_r 7392b6f7beSHajimu UMEMOTO #define getprotoent_r __getprotoent_r 74109e5709SHajimu UMEMOTO #define getservbyname_r __getservbyname_r 75109e5709SHajimu UMEMOTO #define getservbyport_r __getservbyport_r 76109e5709SHajimu UMEMOTO #define getservent_r __getservent_r 7792b6f7beSHajimu UMEMOTO #define setprotoent_r __setprotoent_r 78109e5709SHajimu UMEMOTO #define setservent_r __setservent_r 7996f79dcaSHajimu UMEMOTO 8092b6f7beSHajimu UMEMOTO struct protodata *__protodata_init(void); 81109e5709SHajimu UMEMOTO struct servdata *__servdata_init(void); 8292b6f7beSHajimu UMEMOTO void endprotoent_r(struct protoent_data *); 8396f79dcaSHajimu UMEMOTO void endservent_r(struct servent_data *); 8492b6f7beSHajimu UMEMOTO int getprotobyname_r(const char *, struct protoent *, struct protoent_data *); 8592b6f7beSHajimu UMEMOTO int getprotobynumber_r(int, struct protoent *, struct protoent_data *); 8692b6f7beSHajimu UMEMOTO int getprotoent_r(struct protoent *, struct protoent_data *); 8796f79dcaSHajimu UMEMOTO int getservbyname_r(const char *, const char *, struct servent *, 8896f79dcaSHajimu UMEMOTO struct servent_data *); 8996f79dcaSHajimu UMEMOTO int getservbyport_r(int, const char *, struct servent *, 9096f79dcaSHajimu UMEMOTO struct servent_data *); 9196f79dcaSHajimu UMEMOTO int getservent_r(struct servent *, struct servent_data *); 9292b6f7beSHajimu UMEMOTO void setprotoent_r(int, struct protoent_data *); 9396f79dcaSHajimu UMEMOTO void setservent_r(int, struct servent_data *); 9496f79dcaSHajimu UMEMOTO 9596f79dcaSHajimu UMEMOTO #endif /* _NETDB_PRIVATE_H_ */ 96