busybox/networking
Stefan Agner 2adaa90534 ifplugd: if SIOCSIFFLAGS fails with EADDRNOTAVAIL, don't die
When using ifplugd on a RNDIS interface with monitor mode, using
SIOCSIFFLAGS seems to fail with EADDRNOTAVAIL. Treat it the same
as if iface disappeared again.

This has been observed on a Tegra TK1 using Linux 4.14. There seem
to be a race when the kernel is creating the device:
  ifplugd(usb0): started: BusyBox v1.24.1 (2018-03-27 09:47:48 CEST)
  ifplugd(usb0): interface doesn't exist, waiting
  ifplugd(usb0): interface appeared
  ifplugd(usb0): upping interface
  ifplugd(usb0): setting interface flags failed: Cannot assign requested address
  <exit>

With this patch ifplugd is successful in upping the device the second
time around:

  ifplugd(usb0): upping interface
  ifplugd(usb0): using SIOCETHTOOL detection mode
  ifplugd(usb0): interface appeared
  ifplugd(usb0): upping interface
  ifplugd(usb0): setting interface flags failed: Cannot assign requested address
  ifplugd(usb0): interface appeared
  ifplugd(usb0): upping interface
  ifplugd(usb0): using SIOCETHTOOL detection mode
  ifplugd(usb0): link is up
  ifplugd(usb0): executing '/etc/ifplugd/ifplugd.usb.action usb0 up'
  ifplugd up
  ifplugd(usb0): exit code: 0

function                                             old     new   delta
up_iface                                             120     127      +7

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-03-29 18:45:11 +02:00
..
libiproute ioctl(SIOCGIFINDEX) does not require clearing of entire ifr 2018-03-27 23:55:43 +02:00
ssl_helper
ssl_helper-wolfssl Update information on building httpd and wget helpers 2016-12-22 15:13:37 +01:00
udhcp ioctl(SIOCGIFINDEX) does not require clearing of entire ifr 2018-03-27 23:55:43 +02:00
arp.c config: deindent all help texts 2017-07-21 09:50:55 +02:00
arping.c arping: code shrink 2018-02-11 21:16:24 +01:00
brctl.c brctl: make it NOEXEC 2017-08-06 20:14:02 +02:00
Config.src config: deindent all help texts 2017-07-21 09:50:55 +02:00
dnsd.c config: deindent all help texts 2017-07-21 09:50:55 +02:00
ether-wake.c getopt32: remove opt_complementary 2017-08-08 21:55:02 +02:00
ftpd.c ftpd: handle restarts past 2147483647 bytes. closes 10741 2018-02-05 19:06:40 +01:00
ftpgetput.c wget: add EPSV support 2018-02-06 15:48:12 +01:00
hostname.c regularize format of source file headers, no code changes 2017-09-18 16:28:43 +02:00
httpd_helpers.sh Update information on building httpd and wget helpers 2016-12-22 15:13:37 +01:00
httpd_indexcgi.c
httpd_post_upload.cgi Make POST upload example script easier to use 2016-12-22 15:33:11 +01:00
httpd_ssi.c
httpd.c use gmtime_r() instead of gmtime() 2018-03-06 18:11:47 +01:00
ifconfig.c networking/interface.c: get rid of global "smallint interface_opt_a" 2018-03-05 17:46:17 +01:00
ifenslave.c getopt32: remove applet_long_options 2017-08-08 17:09:40 +02:00
ifplugd.c ifplugd: if SIOCSIFFLAGS fails with EADDRNOTAVAIL, don't die 2018-03-29 18:45:11 +02:00
ifupdown.c ifupdown: do not fail if interface disappears during ifdown 2018-03-28 00:02:52 +02:00
inetd.c inetd,mount: add comment with example of flags to build with libtirpc 2018-02-13 18:20:28 +01:00
interface.c networking/interface.c: get rid of global data 2018-03-05 18:30:33 +01:00
ip.c remove stray newline in "iplink --help" 2018-03-08 16:06:18 +01:00
ipcalc.c getopt32: remove opt_complementary 2017-08-08 21:55:02 +02:00
isrv_identd.c config: deindent all help texts 2017-07-21 09:50:55 +02:00
isrv.c Spelling fixes in comments, documentation, tests and examples 2017-04-17 16:13:32 +02:00
isrv.h
Kbuild.src Convert all networking/* applets to "new style" applet definitions 2016-11-23 09:05:14 +01:00
nameif.c regularize format of source file headers, no code changes 2017-09-18 16:28:43 +02:00
nbd-client.c regularize format of source file headers, no code changes 2017-09-18 16:28:43 +02:00
nc_bloaty.c getopt32: remove opt_complementary 2017-08-08 21:55:02 +02:00
nc.c whitespace and comment format fixes, no code changes 2017-10-05 15:19:25 +02:00
netstat.c netstat: produce numeric-ip output for non-resolved names 2018-03-27 23:28:53 +02:00
nslookup.c config: deindent all help texts 2017-07-21 09:50:55 +02:00
ntpd.c ntpd: choose initial FREQHOLD_cnt dynamically 2018-03-11 17:08:02 +01:00
ntpd.diff ntpd: add experimental patch 2016-03-04 07:36:04 +01:00
parse_pasv_epsv.c fix a thinko in parse_pasv_epsv.c 2018-02-06 17:11:15 +01:00
ping.c ping: don't call monotonic_us twice per sending the ping 2018-02-13 23:53:24 +01:00
pscan.c getopt32: remove opt_complementary 2017-08-08 21:55:02 +02:00
route.c ioctl(SIOCGIFINDEX) does not require clearing of entire ifr 2018-03-27 23:55:43 +02:00
slattach.c getopt32: remove opt_complementary 2017-08-08 21:55:02 +02:00
ssl_client.c ssl_client: fix option parsing 2018-03-20 11:41:51 +01:00
tc.c ip: fix crash in "ip neigh show" 2018-02-08 08:42:37 +01:00
tcpudp_perhost.c tcpudp: shrink per-host rate-limiting code 2018-02-27 13:03:44 +01:00
tcpudp_perhost.h tcpudp: shrink per-host rate-limiting code 2018-02-27 13:03:44 +01:00
tcpudp.c tcpsvd: fix fallout from opt_complementary removal 2018-03-11 23:02:50 +01:00
telnet.c whitespace and comment format fixes, no code changes 2017-10-05 15:19:25 +02:00
telnetd.c getopt32: remove opt_complementary 2017-08-08 21:55:02 +02:00
telnetd.ctrlSQ.patch *: slap on a few ALIGN1/2s where appropriate 2016-04-22 18:09:21 +02:00
telnetd.IAC_test.sh telnetd: fix corner case of input processing of 0xff bytes 2016-10-12 19:13:46 +02:00
tftp.c randomconfig fixes 2017-12-31 17:30:02 +01:00
tls_aes.c Move get_unaligned_le32() macros to platform.h 2017-07-15 20:22:25 +02:00
tls_aes.h tls: fold AES CBC en/decryption into single functions 2017-02-04 16:23:49 +01:00
tls_pstm_montgomery_reduce.c tls: remove last int16 local variables in pstm code 2017-07-15 17:19:38 +02:00
tls_pstm_mul_comba.c tls: remove last int16 local variables in pstm code 2017-07-15 17:19:38 +02:00
tls_pstm_sqr_comba.c tls: remove last int16 local variables in pstm code 2017-07-15 17:19:38 +02:00
tls_pstm.c tls: remove last int16 local variables in pstm code 2017-07-15 17:19:38 +02:00
tls_pstm.h tls: avoid using int16 in pstm code 2017-04-03 21:53:29 +02:00
tls_rsa.c tls: commented out psPool_t use 2017-01-19 15:51:00 +01:00
tls_rsa.h tls: commented out psPool_t use 2017-01-19 15:51:00 +01:00
tls_symmetric.h tls: set TLS_DEBUG to 0; placate a gcc indentation warning 2017-01-23 01:15:13 +01:00
tls.c tls: remove redundant floor prevention 2018-02-14 17:37:41 +01:00
tls.h tls: fix pstm asm constraint problem 2017-07-15 17:13:08 +02:00
traceroute.c Fix build failures if MAXHOSTNAMELEN or MAXPATHLEN is not defined 2017-10-31 15:59:19 +01:00
tunctl.c getopt32: remove opt_complementary 2017-08-08 21:55:02 +02:00
vconfig.c regularize format of source file headers, no code changes 2017-09-18 16:28:43 +02:00
wget.c wget: fix fetching of https URLs with http proxy 2018-03-05 00:19:33 +01:00
whois.c regularize format of source file headers, no code changes 2017-09-18 16:28:43 +02:00
zcip.c whitespace and comment format fixes, no code changes 2017-10-05 15:19:25 +02:00