diff options
author | cmetz <cmetz@cvs.openbsd.org> | 1999-06-23 22:26:04 +0000 |
---|---|---|
committer | cmetz <cmetz@cvs.openbsd.org> | 1999-06-23 22:26:04 +0000 |
commit | 6cfc04cbf20bf549cb3449d6e97a6cdc0e25e3b4 (patch) | |
tree | 9c20eec8e97dc271f61d5006ddd4ed75b37ecd69 /lib/libc | |
parent | f56f53c383ffaedfe8b92e03e3ae6a221477ad1d (diff) |
Removed portability ifdefs and calls to nonstandard back-end.
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/net/__siocgifconf.c | 131 | ||||
-rw-r--r-- | lib/libc/net/if_indextoname.c | 60 | ||||
-rw-r--r-- | lib/libc/net/if_nameindex.c | 70 | ||||
-rw-r--r-- | lib/libc/net/if_nametoindex.c | 87 |
4 files changed, 33 insertions, 315 deletions
diff --git a/lib/libc/net/__siocgifconf.c b/lib/libc/net/__siocgifconf.c deleted file mode 100644 index 4dac955f56e..00000000000 --- a/lib/libc/net/__siocgifconf.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - * %%% copyright-cmetz-98-bsd - * Copyright (c) 1998-1999, Craig Metz, All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Craig Metz and - * by other contributors. - * 4. Neither the name of the author nor the names of contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Craig Metz and - * by other contributors. - * 4. Neither the name of the author nor the names of contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Craig Metz and - * by other contributors. - * 4. Neither the name of the author nor the names of contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <sys/types.h> -#include <stdlib.h> -#include <sys/socket.h> -#include <net/if.h> -#include <sys/ioctl.h> -#include <errno.h> - -int __siocgifconf(int fd, struct ifconf *ifconf) -{ - int i, j; - - ifconf->ifc_len = 0; - ifconf->ifc_buf = 0; - if (!ioctl(fd, SIOCGIFCONF, (void *)ifconf) && ifconf->ifc_len) { - if (!(ifconf->ifc_buf = malloc(ifconf->ifc_len))) { - errno = ENOMEM; - return -1; - }; - if (ioctl(fd, SIOCGIFCONF, (void *)ifconf)) { - free(ifconf->ifc_buf); - return -1; - }; - return 0; - }; - - for (i = 5; i < 12; i++) { - if (!(ifconf->ifc_buf = malloc(ifconf->ifc_len = j = sizeof(struct ifconf) * (1 << i)))) { - errno = ENOMEM; - return -1; - }; - if (ioctl(fd, SIOCGIFCONF, (void *)ifconf)) { - free(ifconf->ifc_buf); - return -1; - }; - if ((ifconf->ifc_len > IFNAMSIZ + sizeof(struct sockaddr)) - && (ifconf->ifc_len < j)) - return 0; - free(ifconf->ifc_buf); - }; - return -1; -}; - diff --git a/lib/libc/net/if_indextoname.c b/lib/libc/net/if_indextoname.c index ff7fcada915..1301224444c 100644 --- a/lib/libc/net/if_indextoname.c +++ b/lib/libc/net/if_indextoname.c @@ -58,33 +58,6 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Craig Metz and - * by other contributors. - * 4. Neither the name of the author nor the names of contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ #include <sys/types.h> @@ -92,9 +65,7 @@ #include <sys/socket.h> #include <sys/ioctl.h> #include <net/if.h> -#ifdef AF_LINK #include <net/if_dl.h> -#endif /* AF_LINK */ #include <errno.h> static char __name[IFNAMSIZ + 1]; @@ -102,16 +73,12 @@ static char __name[IFNAMSIZ + 1]; char *if_indextoname(unsigned int index, char *name) { int i, fd; -#ifdef SIOCGIFNAME - struct ifreq ifreq; -#else /* SIOCGIFNAME */ struct ifconf ifconf; void *p; int len; char lastname[IFNAMSIZ + 1]; char iname[IFNAMSIZ + 1]; char *retname = NULL; -#endif /* SIOCGIFNAME */ if ((fd = socket(PF_INET, SOCK_DGRAM, 0)) < 0) return 0; @@ -119,20 +86,16 @@ char *if_indextoname(unsigned int index, char *name) if (!name) name = __name; -#ifdef SIOCGIFNAME - ifreq.ifr_ifindex = index; - i = ioctl(fd, SIOCGIFNAME, &ifreq); - close(fd); - if (i) - return NULL; - - strcpy(name, ifreq.ifr_name); - return name; -#else /* SIOCGIFNAME */ - if (__siocgifconf(fd, &ifconf)) { - close(fd); - return NULL; - }; + ifconf.ifc_len = 0; + ifconf.ifc_buf = 0; + if (ioctl(fd, SIOCGIFCONF, (void *)ifconf)) + goto ret; + if (ifconf->ifc_len < IFNAMSIZ) + goto ret; + if (!(ifconf->ifc_buf = malloc(ifconf->ifc_len))) + goto ret; + if (ioctl(fd, SIOCGIFCONF, (void *)ifconf)) + goto ret; i = 0; p = ifconf.ifc_buf; @@ -153,13 +116,11 @@ char *if_indextoname(unsigned int index, char *name) len -= IFNAMSIZ; p += IFNAMSIZ; -#ifdef AF_LINK if (((struct sockaddr *)p)->sa_family == AF_LINK) if (((struct sockaddr_dl *)p)->sdl_index == index) { strcpy(retname = name, lastname); goto ret; }; -#endif /* AF_LINK */ if (len < SA_LEN((struct sockaddr *)p)) goto ret; @@ -177,5 +138,4 @@ ret: close(fd); free(ifconf.ifc_buf); return retname; -#endif /* SIOCGIFNAME */ }; diff --git a/lib/libc/net/if_nameindex.c b/lib/libc/net/if_nameindex.c index 65bdbde9af7..ba7f5e5525c 100644 --- a/lib/libc/net/if_nameindex.c +++ b/lib/libc/net/if_nameindex.c @@ -58,33 +58,6 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Craig Metz and - * by other contributors. - * 4. Neither the name of the author nor the names of contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ #include <stdlib.h> @@ -92,9 +65,7 @@ #include <sys/socket.h> #include <sys/ioctl.h> #include <net/if.h> -#ifdef AF_LINK #include <net/if_dl.h> -#endif /* AF_LINK */ #include <errno.h> struct if_nameindex *if_nameindex(void) @@ -109,10 +80,16 @@ struct if_nameindex *if_nameindex(void) if ((fd = socket(PF_INET, SOCK_DGRAM, 0)) < 0) return NULL; - if (__siocgifconf(fd, &ifconf)) { - close(fd); - return NULL; - }; + ifconf.ifc_len = 0; + ifconf.ifc_buf = 0; + if (ioctl(fd, SIOCGIFCONF, (void *)&ifconf)) + goto ret; + if (ifconf->ifc_len < IFNAMSIZ) + goto ret; + if (!(ifconf->ifc_buf = malloc(ifconf->ifc_len))) + goto ret; + if (ioctl(fd, SIOCGIFCONF, (void *)&ifconf)) + goto ret; i = sizeof(struct if_nameindex); j = 0; @@ -145,9 +122,6 @@ struct if_nameindex *if_nameindex(void) memset(nameindex, 0, i + j); { -#ifdef SIOCGIFINDEX - struct ifreq ifreq; -#endif /* SIOCGIFINDEX */ struct if_nameindex *n; char *c; @@ -163,16 +137,8 @@ struct if_nameindex *if_nameindex(void) goto ret; if (strncmp(lastname, p, IFNAMSIZ)) { if (i) { - if (!n->if_index) { -#ifdef SIOCGIFINDEX - strcpy(ifreq.ifr_name, lastname); - if (ioctl(fd, SIOCGIFINDEX, &ifreq)) - goto ret; - n->if_index = ifreq.ifr_ifindex; -#else /* SIOCGIFINDEX */ - n->if_index = i; -#endif /* SIOCGIFINDEX */ - }; + if (!n->if_index) + n->if_index = i; n++; }; i++; @@ -185,24 +151,14 @@ struct if_nameindex *if_nameindex(void) if (len < SA_LEN((struct sockaddr *)p)) goto ret; -#ifdef AF_LINK if (((struct sockaddr *)p)->sa_family == AF_LINK) n->if_index = ((struct sockaddr_dl *)p)->sdl_index; -#endif /* AF_LINK */ len -= SA_LEN((struct sockaddr *)p); p += SA_LEN((struct sockaddr *)p); }; - if (!n->if_index) { -#ifdef SIOCGIFINDEX - strcpy(ifreq.ifr_name, lastname); - if (ioctl(fd, SIOCGIFINDEX, &ifreq)) - goto ret; - n->if_index = ifreq.ifr_ifindex; -#else /* SIOCGIFINDEX */ + if (!n->if_index) n->if_index = i; -#endif /* SIOCGIFINDEX */ - }; }; ret: diff --git a/lib/libc/net/if_nametoindex.c b/lib/libc/net/if_nametoindex.c index 8ec2b233d19..2b9810d314f 100644 --- a/lib/libc/net/if_nametoindex.c +++ b/lib/libc/net/if_nametoindex.c @@ -30,61 +30,6 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Craig Metz and - * by other contributors. - * 4. Neither the name of the author nor the names of contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Craig Metz and - * by other contributors. - * 4. Neither the name of the author nor the names of contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ #include <sys/types.h> @@ -92,40 +37,31 @@ #include <sys/socket.h> #include <sys/ioctl.h> #include <net/if.h> -#ifdef AF_LINK #include <net/if_dl.h> -#endif /* AF_LINK */ #include <errno.h> unsigned int if_nametoindex(const char *name) { int i, fd; -#ifdef SIOCGIFINDEX - struct ifreq ifreq; -#else /* SIOCGIFINDEX */ struct ifconf ifconf; void *p; int len; char lastname[IFNAMSIZ + 1], *thisname; unsigned int index = 0; -#endif /* SIOCGIFINDEX */ if ((fd = socket(PF_INET, SOCK_DGRAM, 0)) < 0) return 0; -#ifdef SIOCGIFINDEX - strcpy(ifreq.ifr_name, name); - i = ioctl(fd, SIOCGIFINDEX, &ifreq); - close(fd); - if (i) - return 0; - - return ifreq.ifr_ifindex; -#else /* SIOCGIFINDEX */ - if (__siocgifconf(fd, &ifconf)) { - close(fd); - return 0; - }; + ifconf.ifc_len = 0; + ifconf.ifc_buf = 0; + if (ioctl(fd, SIOCGIFCONF, (void *)&ifconf)) + goto ret; + if (ifconf->ifc_len < IFNAMSIZ) + goto ret; + if (!(ifconf->ifc_buf = malloc(ifconf->ifc_len))) + goto ret; + if (ioctl(fd, SIOCGIFCONF, (void *)&ifconf)) + goto ret; i = 0; p = ifconf.ifc_buf; @@ -149,12 +85,10 @@ unsigned int if_nametoindex(const char *name) len -= IFNAMSIZ; p += IFNAMSIZ; -#ifdef AF_LINK if (!strncmp(thisname, name, IFNAMSIZ) && (((struct sockaddr *)p)->sa_family == AF_LINK)) { index = ((struct sockaddr_dl *)p)->sdl_index; goto ret; }; -#endif /* AF_LINK */ if (len < SA_LEN((struct sockaddr *)p)) goto ret; @@ -169,5 +103,4 @@ ret: close(fd); free(ifconf.ifc_buf); return index; -#endif /* SIOCGIFINDEX */ }; |