X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/717ba9873384d81663a2da9eb7071824c30a739f..0d0253c93a64d2b5206e902c648e1e2c6bc5d510:/lib/ifreq.c diff --git a/lib/ifreq.c b/lib/ifreq.c index e0489ec..7071a0e 100644 --- a/lib/ifreq.c +++ b/lib/ifreq.c @@ -1,6 +1,6 @@ /* * This file is part of DisOrder. - * Copyright (C) 2007 Richard Kettlewell + * Copyright (C) 2007, 2008 Richard Kettlewell * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -35,29 +35,6 @@ #include "mem.h" #include "log.h" -/** @brief Get the list of network interfaces - * @param fd File descriptor to use - * @param interfaces Where to put pointer to array of interfaces - * @param ninterfaces Where to put count of interfaces - */ -void ifreq_list(int fd, struct ifreq **interfaces, int *ninterfaces) { - struct ifconf ifc; - int l; - - ifc.ifc_len = 0; - ifc.ifc_req = 0; - do { - l = ifc.ifc_len = ifc.ifc_len ? 2 * ifc.ifc_len - : 16 * (int)sizeof (struct ifreq); - if(!l) fatal(0, "out of memory"); - ifc.ifc_req = xrealloc(ifc.ifc_req, l); - if(ioctl(fd, SIOCGIFCONF, &ifc) < 0) - fatal(errno, "error calling ioctl SIOCGIFCONF"); - } while(l == ifc.ifc_len); - *ninterfaces = ifc.ifc_len / sizeof (struct ifreq); - *interfaces = ifc.ifc_req; -} - /** @brief Return true if two socket addresses match */ int sockaddr_equal(const struct sockaddr *a, const struct sockaddr *b) { if(a->sa_family != b->sa_family)