Patch from Lars Kellogg-Stedman:
I'm building BusyBox using a development kit for MontaVista Hardhat Linux (PPC) -- which, at least in this instance, is based around kernel 2.2.14. I've had to massage a few files in networking/libiproute/ to make it compile. Specifically: (1) Added a #include <sys/uio.h> for the iovec structure in libnetlink.c, (2) Put ifdefs in ll_types.c and ll_proto.c around various constants (ETH_P_xxx and ARPHRD_xxx) that weren't defined, (3) Make do_changename() in iplink.c require a kernel >= 2.4.0 -- the ifr structure in my environment doesn't have the ifr_name attribute. I've assumed this is a kernel dependency -- let me know if I ought to be checking something else. In the absence of the correct kernel, do_changename() always returns 0. Attached is a patch against the current CVS that will make these changes. -- Lars
This commit is contained in:
parent
8876fb2f59
commit
0f08e53535
@ -12,6 +12,7 @@
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/socket.h>
|
||||
#include <linux/version.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
@ -95,6 +96,7 @@ static int do_chflags(char *dev, __u32 flags, __u32 mask)
|
||||
|
||||
static int do_changename(char *dev, char *newdev)
|
||||
{
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)
|
||||
struct ifreq ifr;
|
||||
int fd;
|
||||
int err;
|
||||
@ -112,6 +114,8 @@ static int do_changename(char *dev, char *newdev)
|
||||
}
|
||||
close(fd);
|
||||
return err;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int set_qlen(char *dev, int qlen)
|
||||
|
@ -18,6 +18,8 @@
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <sys/uio.h>
|
||||
|
||||
#include "libnetlink.h"
|
||||
#include "libbb.h"
|
||||
|
||||
|
@ -51,10 +51,18 @@ __PF(ATALK,atalk)
|
||||
__PF(AARP,aarp)
|
||||
__PF(IPX,ipx)
|
||||
__PF(IPV6,ipv6)
|
||||
#ifdef ETH_P_PPP_DISC
|
||||
__PF(PPP_DISC,ppp_disc)
|
||||
#endif
|
||||
#ifdef ETH_P_PPP_SES
|
||||
__PF(PPP_SES,ppp_ses)
|
||||
#endif
|
||||
#ifdef ETH_P_ATMMPOA
|
||||
__PF(ATMMPOA,atmmpoa)
|
||||
#endif
|
||||
#ifdef ETH_P_ATMFATE
|
||||
__PF(ATMFATE,atmfate)
|
||||
#endif
|
||||
|
||||
__PF(802_3,802_3)
|
||||
__PF(AX25,ax25)
|
||||
@ -70,7 +78,9 @@ __PF(TR_802_2,tr_802_2)
|
||||
__PF(MOBITEX,mobitex)
|
||||
__PF(CONTROL,control)
|
||||
__PF(IRDA,irda)
|
||||
#ifdef ETH_P_ECONET
|
||||
__PF(ECONET,econet)
|
||||
#endif
|
||||
|
||||
{ 0x8100, "802.1Q" },
|
||||
{ ETH_P_IP, "ipv4" },
|
||||
|
@ -34,7 +34,9 @@ __PF(IEEE802,tr)
|
||||
__PF(ARCNET,arcnet)
|
||||
__PF(APPLETLK,atalk)
|
||||
__PF(DLCI,dlci)
|
||||
#ifdef ARPHRD_ATM
|
||||
__PF(ATM,atm)
|
||||
#endif
|
||||
__PF(METRICOM,metricom)
|
||||
#ifdef ARPHRD_IEEE1394
|
||||
__PF(IEEE1394,ieee1394)
|
||||
@ -48,12 +50,16 @@ __PF(RSRVD,rsrvd)
|
||||
__PF(ADAPT,adapt)
|
||||
__PF(ROSE,rose)
|
||||
__PF(X25,x25)
|
||||
#ifdef ARPHRD_HWX25
|
||||
__PF(HWX25,hwx25)
|
||||
#endif
|
||||
__PF(PPP,ppp)
|
||||
__PF(HDLC,hdlc)
|
||||
__PF(LAPB,lapb)
|
||||
#ifdef ARPHRD_DDCMP
|
||||
__PF(DDCMP,ddcmp)
|
||||
__PF(RAWHDLC,rawhdlc)
|
||||
#endif
|
||||
|
||||
__PF(TUNNEL,ipip)
|
||||
__PF(TUNNEL6,tunnel6)
|
||||
|
Loading…
Reference in New Issue
Block a user