diff -Nur --no-dereference smeserver-bridge-interface-0.2.old/createlinks smeserver-bridge-interface-0.2/createlinks --- smeserver-bridge-interface-0.2.old/createlinks 2021-03-23 10:53:19.458000000 -0400 +++ smeserver-bridge-interface-0.2/createlinks 2021-03-23 11:53:43.644000000 -0400 @@ -11,7 +11,7 @@ foreach my $file (qw( /etc/systemd/system-preset/49-koozali.preset - + /usr/lib/systemd/system/dhcpd.service.d/50koozali.conf )) { @@ -20,23 +20,21 @@ #action needed in case we have a systemd unit -event_link("systemd-default", $event, "10"); -event_link("systemd-reload", $event, "50"); +#event_link("systemd-default", $event, "10"); +#event_link("systemd-reload", $event, "50"); +event_link("systemd-default", $event, "88"); +event_link("systemd-reload", $event, "89"); -#action specific to this package -event_link("bridge-disable", "$event", "02"); -event_link("bridge-enable", "$event", "98"); +#action specific to this package +#event_link("bridge-disable", "$event", "02"); +#event_link("bridge-enable", "$event", "98"); +event_link("bridge-enable", "$event", "87"); #services we need to restarta #none? - - -# Start and stop links - SME9 -#service_link_enhanced("bridge", "S80", "7"); -#service_link_enhanced("bridge", "K01", "6"); -#service_link_enhanced("bridge", "K01", "0"); -#service_link_enhanced("bridge", "K01", "1"); +event_services($event, "dhcpd" => "restart"); +event_services($event, "bridge" => "restart"); foreach my $event (qw/console-save bootstrap-console-save/){ event_link("bridge-disable", "$event", "02"); diff -Nur --no-dereference smeserver-bridge-interface-0.2.old/root/etc/e-smith/templates/usr/lib/systemd/system/dhcpd.service.d/50koozali.conf/41service smeserver-bridge-interface-0.2/root/etc/e-smith/templates/usr/lib/systemd/system/dhcpd.service.d/50koozali.conf/41service --- smeserver-bridge-interface-0.2.old/root/etc/e-smith/templates/usr/lib/systemd/system/dhcpd.service.d/50koozali.conf/41service 1969-12-31 19:00:00.000000000 -0500 +++ smeserver-bridge-interface-0.2/root/etc/e-smith/templates/usr/lib/systemd/system/dhcpd.service.d/50koozali.conf/41service 2021-03-23 13:13:18.425000000 -0400 @@ -0,0 +1,21 @@ +{ +$interface=$InternalInterface{'Name'}||"hum"; +$bridgeif=(defined $bridge{bridgeInterface} && $bridge{status} eq "enabled")? $bridge{bridgeInterface}: ""; +#$bridgedif=(defined $bridge{ethernetInterface} ) ? $bridge{ethernetInterface} : undef; +#$interface=(defined $bridgedif && $bridgedif eq $interface && defined $bridgeif) ? $bridgeif : $interface; +# extra code if we want to hide the ethernet interface, howecer with only a little noise in dhcp log, we can keep the two intefaces +$interface=( "$interface" ne "$bridgeif" && defined $bridgeif ) ? "$interface $bridgeif" : $interface; + +$configfile='/etc/dhcpd.conf'; +$leasefile='/var/lib/dhcpd/dhcpd.leases'; +$OUT .=""; +} + +[Service] +# added for bridge interface +ExecStart= +ExecStart=/usr/bin/sh -c 'exec /usr/sbin/dhcpd -f -cf /etc/dhcpd.conf -lf /var/lib/dhcpd/dhcpd.leases -user dhcpd -group dhcpd --no-pid {$interface} {$bridgeif} >>/var/log/dhcpd/current 2>>/var/log/dhcpd/current' + +# in case bridge is not yet started, we want to retry.. +Restart=always +RestartSec=1 diff -Nur --no-dereference smeserver-bridge-interface-0.2.old/root/sbin/e-smith/systemd/bridge-run smeserver-bridge-interface-0.2/root/sbin/e-smith/systemd/bridge-run --- smeserver-bridge-interface-0.2.old/root/sbin/e-smith/systemd/bridge-run 2021-03-23 10:53:19.463000000 -0400 +++ smeserver-bridge-interface-0.2/root/sbin/e-smith/systemd/bridge-run 2021-03-23 12:37:08.282000000 -0400 @@ -81,6 +81,9 @@ } start(){ + # prep : filtering module + /usr/sbin/modprobe br_netfilter + # First, create the bridge interface /usr/sbin/brctl addbr $BRIDGE_IF diff -Nur --no-dereference smeserver-bridge-interface-0.2.old/root/usr/lib/systemd/system/bridge.service smeserver-bridge-interface-0.2/root/usr/lib/systemd/system/bridge.service --- smeserver-bridge-interface-0.2.old/root/usr/lib/systemd/system/bridge.service 2021-03-23 10:53:19.473000000 -0400 +++ smeserver-bridge-interface-0.2/root/usr/lib/systemd/system/bridge.service 2021-03-23 11:03:51.938000000 -0400 @@ -2,6 +2,10 @@ Description=Bridge Interface for VPN use. #After=network.target After=network.service +After=wan.service +Requires=network.service +PartOf=network.service +Before=network-online.target [Service] Type=forking