|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
[PATCH] move ifaddrs.h from libc/inet to includeYeah, should have split this into one 'follow-up-the-thread' and one actual patch. So, resending the patch with correct subject. Sorry for the confusion. Here's a patch to move ifaddrs.h from libc/inet/ to include/ . It is also removed from the installed include files if UCLIBC_SUPPORT_AI_ADDRCONFIG is not enabled. It's largely the same as what Bernhard and Yann sent in a while ago. It has been tested with UCLIBC_SUPPORT_AI_ADDRCONFIG enabled and disabled. Patch made against svn 23243, and included inline as well as an attachment. If there are no comments, I'll go ahead and commit this in a couple of days. /Ricard Index: Makefile.in =================================================================== --- Makefile.in (revision 23242) +++ Makefile.in (working copy) @@ -331,6 +331,11 @@ # Remove crypt.h since libcrypt was disabled upon request $(RM) $(PREFIX)$(DEVEL_PREFIX)include/crypt.h endif +ifneq ($(UCLIBC_SUPPORT_AI_ADDRCONFIG),y) + # Remove ifaddrs.h since the corresponding functionality was disabled + # by request + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/ifaddrs.h +endif # Installs development library links. install_dev: install_headers Index: include/ifaddrs.h =================================================================== --- include/ifaddrs.h (revision 0) +++ include/ifaddrs.h (revision 0) @@ -0,0 +1,74 @@ +/* ifaddrs.h -- declarations for getting network interface addresses + Copyright (C) 2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _IFADDRS_H +#define _IFADDRS_H 1 + +#include <features.h> +#include <sys/socket.h> + +__BEGIN_DECLS + +/* The `getifaddrs' function generates a linked list of these structures. + Each element of the list describes one network interface. */ +struct ifaddrs +{ + struct ifaddrs *ifa_next; /* Pointer to the next structure. */ + + char *ifa_name; /* Name of this network interface. */ + unsigned int ifa_flags; /* Flags as from SIOCGIFFLAGS ioctl. */ + + struct sockaddr *ifa_addr; /* Network address of this interface. */ + struct sockaddr *ifa_netmask; /* Netmask of this interface. */ + union + { + /* At most one of the following two is valid. If the IFF_BROADCAST + bit is set in `ifa_flags', then `ifa_broadaddr' is valid. If the + IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid. + It is never the case that both these bits are set at once. */ + struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */ + struct sockaddr *ifu_dstaddr; /* Point-to-point destination address. */ + } ifa_ifu; + /* These very same macros are defined by <net/if.h> for `struct ifaddr'. + So if they are defined already, the existing definitions will be fine. */ +# ifndef ifa_broadaddr +# define ifa_broadaddr ifa_ifu.ifu_broadaddr +# endif +# ifndef ifa_dstaddr +# define ifa_dstaddr ifa_ifu.ifu_dstaddr +# endif + + void *ifa_data; /* Address-specific data (may be unused). */ +}; + + +/* Create a linked list of `struct ifaddrs' structures, one for each + network interface on the host machine. If successful, store the + list in *IFAP and return 0. On errors, return -1 and set `errno'. + + The storage returned in *IFAP is allocated dynamically and can + only be properly freed by passing it to `freeifaddrs'. */ +extern int getifaddrs (struct ifaddrs **__ifap) __THROW; + +/* Reclaim the storage allocated by a previous `getifaddrs' call. */ +extern void freeifaddrs (struct ifaddrs *__ifa) __THROW; + +__END_DECLS + +#endif /* ifaddrs.h */ Index: libc/inet/ifaddrs.c =================================================================== --- libc/inet/ifaddrs.c (revision 23242) +++ libc/inet/ifaddrs.c (working copy) @@ -22,7 +22,7 @@ #include <alloca.h> #include <assert.h> #include <errno.h> -#include "ifaddrs.h" +#include <ifaddrs.h> #include <net/if.h> #include <netinet/in.h> #include <netpacket/packet.h> Index: libc/inet/getaddrinfo.c =================================================================== --- libc/inet/getaddrinfo.c (revision 23242) +++ libc/inet/getaddrinfo.c (working copy) @@ -68,7 +68,7 @@ #include <sys/un.h> #include <sys/utsname.h> #include <net/if.h> -#include "ifaddrs.h" +#include <ifaddrs.h> /* Experimentally off - libc_hidden_proto(memcpy) */ /* Experimentally off - libc_hidden_proto(memset) */ Index: Makefile.in =================================================================== --- Makefile.in (revision 23242) +++ Makefile.in (working copy) @@ -331,6 +331,11 @@ # Remove crypt.h since libcrypt was disabled upon request $(RM) $(PREFIX)$(DEVEL_PREFIX)include/crypt.h endif +ifneq ($(UCLIBC_SUPPORT_AI_ADDRCONFIG),y) + # Remove ifaddrs.h since the corresponding functionality was disabled + # by request + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/ifaddrs.h +endif # Installs development library links. install_dev: install_headers Index: include/ifaddrs.h =================================================================== --- include/ifaddrs.h (revision 0) +++ include/ifaddrs.h (revision 0) @@ -0,0 +1,74 @@ +/* ifaddrs.h -- declarations for getting network interface addresses + Copyright (C) 2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _IFADDRS_H +#define _IFADDRS_H 1 + +#include <features.h> +#include <sys/socket.h> + +__BEGIN_DECLS + +/* The `getifaddrs' function generates a linked list of these structures. + Each element of the list describes one network interface. */ +struct ifaddrs +{ + struct ifaddrs *ifa_next; /* Pointer to the next structure. */ + + char *ifa_name; /* Name of this network interface. */ + unsigned int ifa_flags; /* Flags as from SIOCGIFFLAGS ioctl. */ + + struct sockaddr *ifa_addr; /* Network address of this interface. */ + struct sockaddr *ifa_netmask; /* Netmask of this interface. */ + union + { + /* At most one of the following two is valid. If the IFF_BROADCAST + bit is set in `ifa_flags', then `ifa_broadaddr' is valid. If the + IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid. + It is never the case that both these bits are set at once. */ + struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */ + struct sockaddr *ifu_dstaddr; /* Point-to-point destination address. */ + } ifa_ifu; + /* These very same macros are defined by <net/if.h> for `struct ifaddr'. + So if they are defined already, the existing definitions will be fine. */ +# ifndef ifa_broadaddr +# define ifa_broadaddr ifa_ifu.ifu_broadaddr +# endif +# ifndef ifa_dstaddr +# define ifa_dstaddr ifa_ifu.ifu_dstaddr +# endif + + void *ifa_data; /* Address-specific data (may be unused). */ +}; + + +/* Create a linked list of `struct ifaddrs' structures, one for each + network interface on the host machine. If successful, store the + list in *IFAP and return 0. On errors, return -1 and set `errno'. + + The storage returned in *IFAP is allocated dynamically and can + only be properly freed by passing it to `freeifaddrs'. */ +extern int getifaddrs (struct ifaddrs **__ifap) __THROW; + +/* Reclaim the storage allocated by a previous `getifaddrs' call. */ +extern void freeifaddrs (struct ifaddrs *__ifa) __THROW; + +__END_DECLS + +#endif /* ifaddrs.h */ Index: libc/inet/ifaddrs.c =================================================================== --- libc/inet/ifaddrs.c (revision 23242) +++ libc/inet/ifaddrs.c (working copy) @@ -22,7 +22,7 @@ #include <alloca.h> #include <assert.h> #include <errno.h> -#include "ifaddrs.h" +#include <ifaddrs.h> #include <net/if.h> #include <netinet/in.h> #include <netpacket/packet.h> Index: libc/inet/getaddrinfo.c =================================================================== --- libc/inet/getaddrinfo.c (revision 23242) +++ libc/inet/getaddrinfo.c (working copy) @@ -68,7 +68,7 @@ #include <sys/un.h> #include <sys/utsname.h> #include <net/if.h> -#include "ifaddrs.h" +#include <ifaddrs.h> /* Experimentally off - libc_hidden_proto(memcpy) */ /* Experimentally off - libc_hidden_proto(memset) */ _______________________________________________ uClibc mailing list uClibc@... http://busybox.net/cgi-bin/mailman/listinfo/uclibc |
|
|
Re: [PATCH] move ifaddrs.h from libc/inet to includeOn Wed, Aug 27, 2008 at 04:29:57PM +0200, Ricard Wanderlof wrote:
> > Yeah, should have split this into one 'follow-up-the-thread' and one > actual patch. So, resending the patch with correct subject. Sorry for the > confusion. > > Here's a patch to move ifaddrs.h from libc/inet/ to include/ . It is also > removed from the installed include files if UCLIBC_SUPPORT_AI_ADDRCONFIG > is not enabled. It's largely the same as what Bernhard and Yann sent in a > while ago. It has been tested with UCLIBC_SUPPORT_AI_ADDRCONFIG enabled > and disabled. > > Patch made against svn 23243, and included inline as well as an > attachment. If there are no comments, I'll go ahead and commit this in a > couple of days. Ok if you change the comment to fit in one line, like # Remove ifaddrs.h since it was disabled upon request so it's congruent with the rest. Thanks, PS: I don't remember if you added a testcase for both getifaddrs() and freeifaddrs(). Please consider adding those if you haven't done it already. > > /Ricard > > > Index: Makefile.in > =================================================================== > --- Makefile.in (revision 23242) > +++ Makefile.in (working copy) > @@ -331,6 +331,11 @@ > # Remove crypt.h since libcrypt was disabled upon request > $(RM) $(PREFIX)$(DEVEL_PREFIX)include/crypt.h > endif > +ifneq ($(UCLIBC_SUPPORT_AI_ADDRCONFIG),y) > + # Remove ifaddrs.h since the corresponding functionality was disabled > + # by request > + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/ifaddrs.h > +endif > > # Installs development library links. > install_dev: install_headers > Index: include/ifaddrs.h > =================================================================== > --- include/ifaddrs.h (revision 0) > +++ include/ifaddrs.h (revision 0) > @@ -0,0 +1,74 @@ > +/* ifaddrs.h -- declarations for getting network interface addresses > + Copyright (C) 2002 Free Software Foundation, Inc. > + This file is part of the GNU C Library. > + > + The GNU C Library is free software; you can redistribute it and/or > + modify it under the terms of the GNU Lesser General Public > + License as published by the Free Software Foundation; either > + version 2.1 of the License, or (at your option) any later version. > + > + The GNU C Library is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + Lesser General Public License for more details. > + > + You should have received a copy of the GNU Lesser General Public > + License along with the GNU C Library; if not, write to the Free > + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA > + 02111-1307 USA. */ > + > +#ifndef _IFADDRS_H > +#define _IFADDRS_H 1 > + > +#include <features.h> > +#include <sys/socket.h> > + > +__BEGIN_DECLS > + > +/* The `getifaddrs' function generates a linked list of these structures. > + Each element of the list describes one network interface. */ > +struct ifaddrs > +{ > + struct ifaddrs *ifa_next; /* Pointer to the next structure. */ > + > + char *ifa_name; /* Name of this network interface. */ > + unsigned int ifa_flags; /* Flags as from SIOCGIFFLAGS ioctl. */ > + > + struct sockaddr *ifa_addr; /* Network address of this interface. */ > + struct sockaddr *ifa_netmask; /* Netmask of this interface. */ > + union > + { > + /* At most one of the following two is valid. If the IFF_BROADCAST > + bit is set in `ifa_flags', then `ifa_broadaddr' is valid. If the > + IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid. > + It is never the case that both these bits are set at once. */ > + struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */ > + struct sockaddr *ifu_dstaddr; /* Point-to-point destination address. */ > + } ifa_ifu; > + /* These very same macros are defined by <net/if.h> for `struct ifaddr'. > + So if they are defined already, the existing definitions will be fine. */ > +# ifndef ifa_broadaddr > +# define ifa_broadaddr ifa_ifu.ifu_broadaddr > +# endif > +# ifndef ifa_dstaddr > +# define ifa_dstaddr ifa_ifu.ifu_dstaddr > +# endif > + > + void *ifa_data; /* Address-specific data (may be unused). */ > +}; > + > + > +/* Create a linked list of `struct ifaddrs' structures, one for each > + network interface on the host machine. If successful, store the > + list in *IFAP and return 0. On errors, return -1 and set `errno'. > + > + The storage returned in *IFAP is allocated dynamically and can > + only be properly freed by passing it to `freeifaddrs'. */ > +extern int getifaddrs (struct ifaddrs **__ifap) __THROW; > + > +/* Reclaim the storage allocated by a previous `getifaddrs' call. */ > +extern void freeifaddrs (struct ifaddrs *__ifa) __THROW; > + > +__END_DECLS > + > +#endif /* ifaddrs.h */ > Index: libc/inet/ifaddrs.c > =================================================================== > --- libc/inet/ifaddrs.c (revision 23242) > +++ libc/inet/ifaddrs.c (working copy) > @@ -22,7 +22,7 @@ > #include <alloca.h> > #include <assert.h> > #include <errno.h> > -#include "ifaddrs.h" > +#include <ifaddrs.h> > #include <net/if.h> > #include <netinet/in.h> > #include <netpacket/packet.h> > Index: libc/inet/getaddrinfo.c > =================================================================== > --- libc/inet/getaddrinfo.c (revision 23242) > +++ libc/inet/getaddrinfo.c (working copy) > @@ -68,7 +68,7 @@ > #include <sys/un.h> > #include <sys/utsname.h> > #include <net/if.h> > -#include "ifaddrs.h" > +#include <ifaddrs.h> > > /* Experimentally off - libc_hidden_proto(memcpy) */ > /* Experimentally off - libc_hidden_proto(memset) */ Content-Description: diff to svn 23243.moveifaddrs >Index: Makefile.in >=================================================================== >--- Makefile.in (revision 23242) >+++ Makefile.in (working copy) >@@ -331,6 +331,11 @@ > # Remove crypt.h since libcrypt was disabled upon request > $(RM) $(PREFIX)$(DEVEL_PREFIX)include/crypt.h > endif >+ifneq ($(UCLIBC_SUPPORT_AI_ADDRCONFIG),y) >+ # Remove ifaddrs.h since the corresponding functionality was disabled >+ # by request >+ $(RM) $(PREFIX)$(DEVEL_PREFIX)include/ifaddrs.h >+endif > > # Installs development library links. > install_dev: install_headers >Index: include/ifaddrs.h >=================================================================== >--- include/ifaddrs.h (revision 0) >+++ include/ifaddrs.h (revision 0) >@@ -0,0 +1,74 @@ >+/* ifaddrs.h -- declarations for getting network interface addresses >+ Copyright (C) 2002 Free Software Foundation, Inc. >+ This file is part of the GNU C Library. >+ >+ The GNU C Library is free software; you can redistribute it and/or >+ modify it under the terms of the GNU Lesser General Public >+ License as published by the Free Software Foundation; either >+ version 2.1 of the License, or (at your option) any later version. >+ >+ The GNU C Library is distributed in the hope that it will be useful, >+ but WITHOUT ANY WARRANTY; without even the implied warranty of >+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >+ Lesser General Public License for more details. >+ >+ You should have received a copy of the GNU Lesser General Public >+ License along with the GNU C Library; if not, write to the Free >+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA >+ 02111-1307 USA. */ >+ >+#ifndef _IFADDRS_H >+#define _IFADDRS_H 1 >+ >+#include <features.h> >+#include <sys/socket.h> >+ >+__BEGIN_DECLS >+ >+/* The `getifaddrs' function generates a linked list of these structures. >+ Each element of the list describes one network interface. */ >+struct ifaddrs >+{ >+ struct ifaddrs *ifa_next; /* Pointer to the next structure. */ >+ >+ char *ifa_name; /* Name of this network interface. */ >+ unsigned int ifa_flags; /* Flags as from SIOCGIFFLAGS ioctl. */ >+ >+ struct sockaddr *ifa_addr; /* Network address of this interface. */ >+ struct sockaddr *ifa_netmask; /* Netmask of this interface. */ >+ union >+ { >+ /* At most one of the following two is valid. If the IFF_BROADCAST >+ bit is set in `ifa_flags', then `ifa_broadaddr' is valid. If the >+ IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid. >+ It is never the case that both these bits are set at once. */ >+ struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */ >+ struct sockaddr *ifu_dstaddr; /* Point-to-point destination address. */ >+ } ifa_ifu; >+ /* These very same macros are defined by <net/if.h> for `struct ifaddr'. >+ So if they are defined already, the existing definitions will be fine. */ >+# ifndef ifa_broadaddr >+# define ifa_broadaddr ifa_ifu.ifu_broadaddr >+# endif >+# ifndef ifa_dstaddr >+# define ifa_dstaddr ifa_ifu.ifu_dstaddr >+# endif >+ >+ void *ifa_data; /* Address-specific data (may be unused). */ >+}; >+ >+ >+/* Create a linked list of `struct ifaddrs' structures, one for each >+ network interface on the host machine. If successful, store the >+ list in *IFAP and return 0. On errors, return -1 and set `errno'. >+ >+ The storage returned in *IFAP is allocated dynamically and can >+ only be properly freed by passing it to `freeifaddrs'. */ >+extern int getifaddrs (struct ifaddrs **__ifap) __THROW; >+ >+/* Reclaim the storage allocated by a previous `getifaddrs' call. */ >+extern void freeifaddrs (struct ifaddrs *__ifa) __THROW; >+ >+__END_DECLS >+ >+#endif /* ifaddrs.h */ >Index: libc/inet/ifaddrs.c >=================================================================== >--- libc/inet/ifaddrs.c (revision 23242) >+++ libc/inet/ifaddrs.c (working copy) >@@ -22,7 +22,7 @@ > #include <alloca.h> > #include <assert.h> > #include <errno.h> >-#include "ifaddrs.h" >+#include <ifaddrs.h> > #include <net/if.h> > #include <netinet/in.h> > #include <netpacket/packet.h> >Index: libc/inet/getaddrinfo.c >=================================================================== >--- libc/inet/getaddrinfo.c (revision 23242) >+++ libc/inet/getaddrinfo.c (working copy) >@@ -68,7 +68,7 @@ > #include <sys/un.h> > #include <sys/utsname.h> > #include <net/if.h> >-#include "ifaddrs.h" >+#include <ifaddrs.h> > > /* Experimentally off - libc_hidden_proto(memcpy) */ > /* Experimentally off - libc_hidden_proto(memset) */ _______________________________________________ uClibc mailing list uClibc@... http://busybox.net/cgi-bin/mailman/listinfo/uclibc |
|
|
Re: [PATCH] move ifaddrs.h from libc/inet to includeOn Wed, 27 Aug 2008, Bernhard Reutner-Fischer wrote: >> Patch made against svn 23243, and included inline as well as an >> attachment. If there are no comments, I'll go ahead and commit this in a >> couple of days. > > Ok if you change the comment to fit in one line, like > # Remove ifaddrs.h since it was disabled upon request > so it's congruent with the rest. Ok, will do. > Thanks, > PS: I don't remember if you added a testcase for both getifaddrs() and > freeifaddrs(). Please consider adding those if you haven't done it > already. Yes I should. I'm planning some more uClibc work later this autumn and I'll give it more thought then. /Ricard -- Ricard Wolf Wanderlöf ricardw(at)axis.com Axis Communications AB, Lund, Sweden www.axis.com Phone +46 46 272 2016 Fax +46 46 13 61 30 _______________________________________________ uClibc mailing list uClibc@... http://busybox.net/cgi-bin/mailman/listinfo/uclibc |
|
|
Re: [PATCH] move ifaddrs.h from libc/inet to includeRicard, Bernhard,
All, On Wednesday 27 August 2008 16:29:57 Ricard Wanderlof wrote: > Here's a patch to move ifaddrs.h from libc/inet/ to include/ . It is also > removed from the installed include files if UCLIBC_SUPPORT_AI_ADDRCONFIG > is not enabled. It's largely the same as what Bernhard and Yann sent in a > while ago. It has been tested with UCLIBC_SUPPORT_AI_ADDRCONFIG enabled > and disabled. OK from my point of view. Apart form the comment by Bernhard. Regards, Yann E. MORIN. -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +0/33 662376056 | Software Designer | \ / CAMPAIGN | ^ | | --==< ^_^ >==-- `------------.-------: X AGAINST | /e\ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | """ conspiracy. | `------------------------------^-------^------------------^--------------------' _______________________________________________ uClibc mailing list uClibc@... http://busybox.net/cgi-bin/mailman/listinfo/uclibc |
| Free Forum Powered by Nabble | Forum Help |