diff -Nur smeserver-bridge-interface-0.1/createlinks smeserver-bridge-interface-0.1_mod/createlinks --- smeserver-bridge-interface-0.1/createlinks 2008-12-02 03:57:31.000000000 +0100 +++ smeserver-bridge-interface-0.1_mod/createlinks 2011-04-19 12:21:54.000000000 +0200 @@ -9,4 +9,7 @@ service_link_enhanced("bridge", "K01", "0"); service_link_enhanced("bridge", "K01", "1"); - +foreach my $event (qw/console-save bootstrap-console-save/){ + event_link("bridge-disable", "$event", "02"); + event_link("bridge-enable", "$event", "98"); +} diff -Nur smeserver-bridge-interface-0.1/root/etc/e-smith/events/actions/bridge-disable smeserver-bridge-interface-0.1_mod/root/etc/e-smith/events/actions/bridge-disable --- smeserver-bridge-interface-0.1/root/etc/e-smith/events/actions/bridge-disable 1970-01-01 01:00:00.000000000 +0100 +++ smeserver-bridge-interface-0.1_mod/root/etc/e-smith/events/actions/bridge-disable 2011-04-19 12:25:57.000000000 +0200 @@ -0,0 +1,35 @@ +#!/usr/bin/perl -w +#---------------------------------------------------------------------- +# copyright (C) 2011 Firewall-Services +# daniel@firewall-services.com +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +#---------------------------------------------------------------------- + +use esmith::ConfigDB; + +my $c = esmith::ConfigDB->open() || die "Error opening the ConfigDB\n"; +my $bridge = $c->get('bridge') || $c->new_record('bridge', {type => 'service'}); +my $status = $bridge->prop('status') || 'enabled'; +my $internal = $bridge->prop('ethernetInterface') || 'eth0'; + +if ($status eq 'enabled'){ + $c->set_prop('bridge', 'OldStatus', 'enabled'); + $c->set_prop('bridge', 'status', 'disabled'); + $c->set_prop('InternalInterface', 'Name', "$internal"); +} + +exit (0); diff -Nur smeserver-bridge-interface-0.1/root/etc/e-smith/events/actions/bridge-enable smeserver-bridge-interface-0.1_mod/root/etc/e-smith/events/actions/bridge-enable --- smeserver-bridge-interface-0.1/root/etc/e-smith/events/actions/bridge-enable 1970-01-01 01:00:00.000000000 +0100 +++ smeserver-bridge-interface-0.1_mod/root/etc/e-smith/events/actions/bridge-enable 2011-04-19 12:28:41.000000000 +0200 @@ -0,0 +1,38 @@ +#!/usr/bin/perl -w +#---------------------------------------------------------------------- +# copyright (C) 2011 Firewall-Services +# daniel@firewall-services.com +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +#---------------------------------------------------------------------- + +use esmith::ConfigDB; + +my $c = esmith::ConfigDB->open() || die "Error opening the ConfigDB\n"; +my $bridge = $c->get('bridge') || $c->new_record('bridge', {type => 'service'}); +my $status = $bridge->prop('status') || 'enabled'; +my $internal = $bridge->prop('bridgeInterface') || 'br0'; + +if ($status eq 'disabled'){ + my $oldstatus = $bridge->prop('OldStatus') || 'disabled'; + if ($oldstatus eq 'enabled'){ + $c->set_prop('bridge', 'status', 'enabled'); + $c->set_prop('InternalInterface', 'Name', "$internal"); + $c->get_prop_and_delete('bridge','OldStatus'); + } +} + +exit (0);