Skip to content

Commit

Permalink
dropbear: fix dropbear startup issue
Browse files Browse the repository at this point in the history
Interface triggers are installed by the dropbear init script in case an
interface is configured for a given dropbear uci section.
As dropbear is started after network the interface trigger event can be
missed during a small window; this is especially the case if lan is
specified as interface.
Fix this by starting dropbear before network so no interface trigger
is missed. As dropbear is started earlier than netifd add a boot function
to avoid the usage of network.sh functions as call to such functions will
fail at boottime.

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
Acked-by: Jo-Philipp Wich <jo@mein.io>
  • Loading branch information
dedeckeh committed Dec 18, 2018
1 parent 6835c13 commit 8310945
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
2 changes: 1 addition & 1 deletion package/network/services/dropbear/Makefile
Expand Up @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk

PKG_NAME:=dropbear
PKG_VERSION:=2017.75
PKG_RELEASE:=8
PKG_RELEASE:=9

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:= \
Expand Down
10 changes: 9 additions & 1 deletion package/network/services/dropbear/files/dropbear.init
Expand Up @@ -2,7 +2,7 @@
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2006 Carlos Sobrinho

START=50
START=19
STOP=50

USE_PROCD=1
Expand Down Expand Up @@ -59,6 +59,8 @@ dropbear_instance()
}

[ -n "${Interface}" ] && {
[ -n "${BOOT}" ] && return 0

network_get_ipaddrs_all ipaddrs "${Interface}" || {
echo "interface ${Interface} has no physdev or physdev has no suitable ip"
return 1
Expand Down Expand Up @@ -119,6 +121,12 @@ load_interfaces()
[ "${enable}" = "1" ] && interfaces=" ${interface} ${interfaces}"
}

boot()
{
BOOT=1
start "$@"
}

start_service()
{
[ -s /etc/dropbear/dropbear_rsa_host_key ] || keygen
Expand Down

0 comments on commit 8310945

Please sign in to comment.