The Linux kernel uses two distinct fields to denote the routing table ID in
use by network routes; the 8 bit `rtm_table` member of `struct rtmsg` and the
32 bit `RTA_TABLE` netlink attribute.
If a routing table ID is larger than 255, the `RT_TABLE` attribute must be used
and the `rtm_table` field has to be set to the special `RT_TABLE_UNSPEC` value.
This commit adds a patch which...
- switches the *_n2a() and *_a2n() functions of rt_names.c to use dynamically
sized, name-sorted arrays instead of fixed arrays limited to 1024 slots in
order to support IDs up to 65535
- adds proper handling of high table IDs to iprule.c and iproute.c when
adding, removing and dumping ip rules and network routes
After this change, the Busybox ip applet fully supports IP rules with high ID
numbers, using the same logic as the full iproute2.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
A padding to align a message should not only be added between
different attributes of a netlink message, but also at the end of the
message to pad it to the correct size.
Without this patch the following command does not work and returns an
error code:
ip link add type nlmon
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The settimeofday() syscall wrapper provided by musl filters out the timezone
argument, breaking the ability to set the kernel timezone through the function.
Adjust busybox patch to issue the syscall directly in order to circumvent the
problem.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
lock -n is similiar to flock -n. If the lock was already taken,
fail with exit code = 1 and write error message to stderr.
example:
if ! lock -n /tmp/foo ; then
echo lock exits.
else
echo lock was free. But is locked now.
fi
> lock was free. But is locked now.
> lock exists.
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
SVN-Revision: 46836
Currently busybox utils like "ls" fail to display filenames containing UTF-8
characters, replacing any special characters with "?".
Change libbb's printable_string() function to allow high ASCII characters so
that unicode filenames are displayed correctls.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 43084
Patch sets the source IP address of DHCP request messages during rebind to the IP address
assigned to the udhcpc client. Source address 0.0.0.0 can only be used by a client prior
to obtaining its IP address (see RFC2131 § 4.1). Source IP address behavior lines up now with
the ISC dhcp client implementation for DHCP request messages during rebind and DHCP release
messages.
Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
SVN-Revision: 40878
Some boards have the WLAN EEPROM stored in flash in big-endian format,
whereas the driver requires the EEPROM in little-endian format. The
conv=swab option in dd is particularly useful in this case. This patch
backports this feature from busybox-1.22 based on the following commits:
commit b941316ae5313be523b64f0a9151ee4decb2b35b dd: support conv=swab
commit 8395bd3f52f8ed46fa3ffc316b2d113afa748bae dd: fix example in a
comment. No code changes.
commit 5b9910f0a4a1b7976c46e6f849aaa263180e5521 dd: fail if swab is
attempted on odd-sized block
commit 0ff0b320a2dbb5e0b5fa245ffd9b2648d7026843 dd: code shrink
v2: include the commit messages from upstream
Signed-off-by: Matti Laakso <malaakso@elisanet.fi>
SVN-Revision: 40327
Minor fix to existing patch which did not correctly implement -n support for the export command in ash. The VEXPORT flag of a variable was set in the first call to setvareq() and then remained set in the subsequent call, because the variable already existed in the environment.
Although /lib/functions.sh by default does not export variables (NO_EXPORT=1), this issue was leading to dirty environments.
Without this fix:
(ash) export A=1; export -n B=2; /bin/ash -c "echo \$A, \$B"
1, 2
With this fix:
(ash) export A=1; export -n B=2; /bin/ash -c "echo \$A, \$B"
1,
Signed-off-by: Christophe Lermytte <openwrt@lermytte.be>
SVN-Revision: 39968