Print this page
1926 libresolv evades compiler warnings

*** 18,27 **** --- 18,28 ---- * * CDDL HEADER END */ /* + * Copyright 2015 Gary Mills * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
*** 35,59 **** * University Acknowledgment- Portions of this document are derived from * software developed by the University of California, Berkeley, and its * contributors. */ - #pragma ident "%Z%%M% %I% %E% SMI" - #include <sys/types.h> #include <sys/sockio.h> #include <sys/socket.h> #include <netinet/in.h> #include <stdio.h> #include <arpa/nameser.h> #include <resolv.h> #include <netinet/in.h> #include <net/if.h> #include <netinet/if_ether.h> #include <arpa/inet.h> #define MAXIFS 256 /* * Resolver state default settings */ --- 36,68 ---- * University Acknowledgment- Portions of this document are derived from * software developed by the University of California, Berkeley, and its * contributors. */ #include <sys/types.h> #include <sys/sockio.h> #include <sys/socket.h> #include <netinet/in.h> #include <stdio.h> + #include <string.h> + #include <stdlib.h> + #include <unistd.h> + #include <stropts.h> #include <arpa/nameser.h> #include <resolv.h> #include <netinet/in.h> #include <net/if.h> #include <netinet/if_ether.h> #include <arpa/inet.h> + /* + * Undocumented external function in libnsl + */ + extern int + getdomainname(char *, int); + #define MAXIFS 256 /* * Resolver state default settings */
*** 85,101 **** { register FILE *fp; register char *cp, **pp; register int n; char buf[BUFSIZ]; - #ifdef SYSV - extern char *strchr(); - #else - extern char *index(); - #endif - extern char *strcpy(), *strncpy(); - extern char *getenv(); int nserv = 0; /* number of nameserver records read from file */ int haveenv = 0; int havesearch = 0; _res.nsaddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); /* INADDR_ANY */ --- 94,103 ----
*** 109,119 **** register struct ifreq *ifrp; struct ifreq ifr; unsigned bufsize; unsigned int flags; char *buf; - extern void *malloc(); if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { perror("socket"); return (-1); } --- 111,120 ----
*** 122,162 **** } bufsize = numifs * sizeof (struct ifreq); buf = (char *)malloc(bufsize); if (buf == NULL) { perror("out of memory"); ! close(s); return (-1); } ifc.ifc_len = bufsize; ifc.ifc_buf = buf; if (ioctl(s, SIOCGIFCONF, (char *)&ifc) < 0) { perror("ifconfig: SIOCGIFCONF"); ! close(s); free(buf); return (-1); } int_up = 0; ifrp = ifc.ifc_req; for (n = ifc.ifc_len / sizeof (struct ifreq); n > 0; n--, ifrp++) { ! memset((void *) &ifr, 0, sizeof (ifr)); strncpy(ifr.ifr_name, ifrp->ifr_name, sizeof (ifr.ifr_name)); if (ioctl(s, SIOCGIFFLAGS, (char *)&ifr) < 0) { perror("SIOCGIFFLAGS"); ! close(s); free(buf); return (-1); } flags = ifr.ifr_flags; /* we are looking for a non-loopback interface */ if ((flags & IFF_UP) && ((flags & IFF_LOOPBACK) == 0)) int_up = 1; } ! close(s); free(buf); if (int_up == 0) /* all the non-LOOPBACK interfaces are DOWN */ return (-1); } #endif /* SIOCGIFNUM */ --- 123,163 ---- } bufsize = numifs * sizeof (struct ifreq); buf = (char *)malloc(bufsize); if (buf == NULL) { perror("out of memory"); ! (void) close(s); return (-1); } ifc.ifc_len = bufsize; ifc.ifc_buf = buf; if (ioctl(s, SIOCGIFCONF, (char *)&ifc) < 0) { perror("ifconfig: SIOCGIFCONF"); ! (void) close(s); free(buf); return (-1); } int_up = 0; ifrp = ifc.ifc_req; for (n = ifc.ifc_len / sizeof (struct ifreq); n > 0; n--, ifrp++) { ! (void) memset((void *) &ifr, 0, sizeof (ifr)); strncpy(ifr.ifr_name, ifrp->ifr_name, sizeof (ifr.ifr_name)); if (ioctl(s, SIOCGIFFLAGS, (char *)&ifr) < 0) { perror("SIOCGIFFLAGS"); ! (void) close(s); free(buf); return (-1); } flags = ifr.ifr_flags; /* we are looking for a non-loopback interface */ if ((flags & IFF_UP) && ((flags & IFF_LOOPBACK) == 0)) int_up = 1; } ! (void) close(s); free(buf); if (int_up == 0) /* all the non-LOOPBACK interfaces are DOWN */ return (-1); } #endif /* SIOCGIFNUM */
*** 164,174 **** /* * for the benefit of hidden NIS domains, we use the same procedure * as sendmail: convert leading + to dot, then drop to first dot */ ! getdomainname(buf, BUFSIZ); if (buf[0] == '+') buf[0] = '.'; #ifdef SYSV cp = strchr(buf, (int)'.'); #else --- 165,175 ---- /* * for the benefit of hidden NIS domains, we use the same procedure * as sendmail: convert leading + to dot, then drop to first dot */ ! (void) getdomainname(buf, BUFSIZ); if (buf[0] == '+') buf[0] = '.'; #ifdef SYSV cp = strchr(buf, (int)'.'); #else