better config of ifconfig differences

This commit is contained in:
Jeff Hill
2001-05-23 21:39:28 +00:00
parent b4a3060bcc
commit 83e5824c82
11 changed files with 34 additions and 10 deletions

View File

@@ -54,18 +54,16 @@ static char *sccsId = "@(#) $Id$";
* Made difficult by the fact that addresses larger than the structure
* size may be returned from the kernel.
*/
static struct ifreq * ifreqNext (struct ifreq *pifreq)
static struct ifreq * ifreqNext ( struct ifreq *pifreq )
{
unsigned int size;
size_t size;
#if ( defined (BSD) && ( BSD >= 44 ) ) || defined ( SOCKADDR_HAS_LEN )
size = pifreq->ifr_addr.sa_len + sizeof(pifreq->ifr_name);
if (size < sizeof(*pifreq))
size = sizeof(*pifreq);
#else
size = sizeof(*pifreq);
#endif
return (struct ifreq *)(size + (char *)pifreq);
size = ifreq_size ( pifreq );
if ( size < sizeof ( *pifreq ) ) {
size = sizeof ( *pifreq );
}
return ( struct ifreq * )( size + ( char * ) pifreq );
}
/*

View File

@@ -68,5 +68,7 @@ typedef socklen_t osiSocklen_t;
#define SOCK_EINTR EINTR
#define SOCK_EPIPE EPIPE
#define ifreq_size(pifreq) sizeof(*pifreq)
#endif /*osiSockH*/

View File

@@ -45,3 +45,7 @@ typedef int osiSocklen_t;
* fd can be used with FD_SET(), FD_CLR(), and FD_ISSET().
*/
#define FD_IN_FDSET(FD) (1)
#define ifreq_size(pifreq) sizeof(*pifreq)

View File

@@ -62,5 +62,7 @@ typedef int osiSocklen_t;
#define SOCK_EINTR EINTR
#define SOCK_EPIPE EPIPE
#define ifreq_size(pifreq) sizeof(*pifreq)
#endif /*osiSockH*/

View File

@@ -80,5 +80,7 @@ typedef int osiSocklen_t;
#define SOCK_EINTR EINTR
#define SOCK_EPIPE EPIPE
#define ifreq_size(pifreq) sizeof(*pifreq)
#endif /*osiSockH*/

View File

@@ -64,5 +64,7 @@ typedef int osiSocklen_t;
#define SOCK_EINTR EINTR
#define SOCK_EPIPE EPIPE
#define ifreq_size(pifreq) sizeof(*pifreq)
#endif /*osiSockH*/

View File

@@ -61,5 +61,7 @@ typedef int osiSocklen_t;
#define SOCK_EINTR EINTR
#define SOCK_EPIPE EPIPE
#define ifreq_size(pifreq) sizeof(*pifreq)
#endif /*osiSockH*/

View File

@@ -72,5 +72,7 @@ typedef int osiSocklen_t;
#define SOCK_EINTR EINTR
#define SOCK_EPIPE EPIPE
#define ifreq_size(pifreq) sizeof(*pifreq)
#endif /*osiSockH*/

View File

@@ -128,5 +128,7 @@ typedef int osiSocklen_t;
#define SOCK_EINTR EINTR
#define SOCK_EPIPE EPIPE
#define ifreq_size(pifreq) sizeof(*pifreq)
#endif /*osiSockH*/

View File

@@ -158,5 +158,7 @@ typedef int osiSocklen_t;
# define FD_IN_FDSET(FD) ((FD)<FD_SETSIZE&&(FD)>=0)
#endif
#define ifreq_size(pifreq) sizeof(*pifreq)
#endif /*osiSockH*/

View File

@@ -58,6 +58,12 @@ typedef int osiSocklen_t;
#define INADDR_LOOPBACK 0x7F000001
#endif
#if ( defined (BSD) && ( BSD >= 44 ) )
# define ifreq_size(pifreq) (pifreq->ifr_addr.sa_len + sizeof(pifreq->ifr_name))
#else
# define ifreq_size(pifreq) sizeof(*pifreq)
#endif
#endif /*osiSockH*/