From 4aad18b6d59ca15d059d3e231db02677003c41ca Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 26 Nov 2014 02:36:17 +0100 Subject: [PATCH] freifunk: Import first version of CGI and scripts --- config/menu/30-network.menu | 6 + config/rootfiles/common/armv5tel/initscripts | 4 + .../common/armv5tel/initscripts.orig | 2 + config/rootfiles/common/configroot | 3 + config/rootfiles/common/i586/initscripts | 4 + config/rootfiles/common/misc-progs | 1 + doc/language_issues.de | 2 + doc/language_issues.en | 2 + doc/language_issues.es | 11 + doc/language_issues.fr | 11 + doc/language_issues.nl | 11 + doc/language_issues.pl | 11 + doc/language_issues.ru | 11 + doc/language_issues.tr | 11 + doc/language_missings | 52 +++ html/cgi-bin/freifunk.cgi | 353 ++++++++++++++++++ langs/de/cgi-bin/de.pl | 13 + langs/en/cgi-bin/en.pl | 13 + lfs/configroot | 4 +- lfs/initscripts | 3 + src/initscripts/init.d/freifunk | 75 ++++ src/misc-progs/Makefile | 2 +- src/misc-progs/freifunkctrl.c | 36 ++ 23 files changed, 638 insertions(+), 3 deletions(-) create mode 100755 html/cgi-bin/freifunk.cgi create mode 100755 src/initscripts/init.d/freifunk create mode 100644 src/misc-progs/freifunkctrl.c diff --git a/config/menu/30-network.menu b/config/menu/30-network.menu index c50508f818..b5b2c7cb8e 100644 --- a/config/menu/30-network.menu +++ b/config/menu/30-network.menu @@ -71,3 +71,9 @@ 'title' => "$Lang::tr{'WakeOnLan'}", 'enabled' => 1, }; + $subnetwork->{'91.freifunk'} = { + 'caption' => $Lang::tr{'freifunk'}, + 'uri' => '/cgi-bin/freifunk.cgi', + 'title' => "$Lang::tr{'freifunk'}", + 'enabled' => 1, + }; diff --git a/config/rootfiles/common/armv5tel/initscripts b/config/rootfiles/common/armv5tel/initscripts index 52487669ae..9426af77f3 100644 --- a/config/rootfiles/common/armv5tel/initscripts +++ b/config/rootfiles/common/armv5tel/initscripts @@ -31,6 +31,7 @@ etc/rc.d/init.d/fcron etc/rc.d/init.d/fireinfo etc/rc.d/init.d/firewall etc/rc.d/init.d/firstsetup +etc/rc.d/init.d/freifunk etc/rc.d/init.d/functions #etc/rc.d/init.d/gnump3d etc/rc.d/init.d/halt @@ -148,6 +149,7 @@ etc/rc.d/rc0.d/K30sshd etc/rc.d/rc0.d/K45random etc/rc.d/rc0.d/K47setclock etc/rc.d/rc0.d/K49cyrus-sasl +etc/rc.d/rc0.d/K78freifunk etc/rc.d/rc0.d/K78snort etc/rc.d/rc0.d/K79leds etc/rc.d/rc0.d/K80network @@ -171,6 +173,7 @@ etc/rc.d/rc3.d/S19smartenabler etc/rc.d/rc3.d/S19wlanclient etc/rc.d/rc3.d/S20network etc/rc.d/rc3.d/S21leds +etc/rc.d/rc3.d/S21freifunk etc/rc.d/rc3.d/S24cyrus-sasl etc/rc.d/rc3.d/S25random etc/rc.d/rc3.d/S30sshd @@ -196,6 +199,7 @@ etc/rc.d/rc6.d/K30sshd etc/rc.d/rc6.d/K45random etc/rc.d/rc6.d/K47setclock etc/rc.d/rc6.d/K49cyrus-sasl +etc/rc.d/rc6.d/K78freifunk etc/rc.d/rc6.d/K78snort etc/rc.d/rc6.d/K79leds etc/rc.d/rc6.d/K80network diff --git a/config/rootfiles/common/armv5tel/initscripts.orig b/config/rootfiles/common/armv5tel/initscripts.orig index 7a4e41b7da..980441599e 100644 --- a/config/rootfiles/common/armv5tel/initscripts.orig +++ b/config/rootfiles/common/armv5tel/initscripts.orig @@ -54,6 +54,7 @@ etc/rc.d/init.d/modules #etc/rc.d/init.d/motion etc/rc.d/init.d/mountfs etc/rc.d/init.d/mountkernfs +etc/rc.d/init.d/mounttmpfs #etc/rc.d/init.d/mpd #etc/rc.d/init.d/mysql #etc/rc.d/init.d/netsnmpd @@ -217,6 +218,7 @@ etc/rc.d/rcsysinit.d/S25partresize etc/rc.d/rcsysinit.d/S30checkfs etc/rc.d/rcsysinit.d/S40mountfs etc/rc.d/rcsysinit.d/S42fsresize +etc/rc.d/rcsysinit.d/S43mounttmpfs etc/rc.d/rcsysinit.d/S45udev_retry etc/rc.d/rcsysinit.d/S50cleanfs etc/rc.d/rcsysinit.d/S60setclock diff --git a/config/rootfiles/common/configroot b/config/rootfiles/common/configroot index eaf1af6ed8..f3dbc6d980 100644 --- a/config/rootfiles/common/configroot +++ b/config/rootfiles/common/configroot @@ -57,6 +57,9 @@ var/ipfire/firewall #var/ipfire/firewall/outgoing #var/ipfire/firewall/p2protocols #var/ipfire/firewall/settings +var/ipfire/freifunk +#var/ipfire/freifunk/fastd.conf +#var/ipfire/freifunk/settings var/ipfire/fwhosts #var/ipfire/fwhosts/customgroups #var/ipfire/fwhosts/customhosts diff --git a/config/rootfiles/common/i586/initscripts b/config/rootfiles/common/i586/initscripts index 845ae504b3..4dd5978d02 100644 --- a/config/rootfiles/common/i586/initscripts +++ b/config/rootfiles/common/i586/initscripts @@ -33,6 +33,7 @@ etc/rc.d/init.d/fcron etc/rc.d/init.d/fireinfo etc/rc.d/init.d/firewall etc/rc.d/init.d/firstsetup +etc/rc.d/init.d/freifunk etc/rc.d/init.d/functions #etc/rc.d/init.d/gnump3d etc/rc.d/init.d/halt @@ -150,6 +151,7 @@ etc/rc.d/rc0.d/K30sshd etc/rc.d/rc0.d/K45random etc/rc.d/rc0.d/K47setclock etc/rc.d/rc0.d/K49cyrus-sasl +etc/rc.d/rc0.d/K78freifunk etc/rc.d/rc0.d/K78snort etc/rc.d/rc0.d/K79leds etc/rc.d/rc0.d/K80network @@ -175,6 +177,7 @@ etc/rc.d/rc3.d/S19smartenabler etc/rc.d/rc3.d/S19wlanclient etc/rc.d/rc3.d/S20network etc/rc.d/rc3.d/S21leds +etc/rc.d/rc3.d/S21freifunk etc/rc.d/rc3.d/S24cyrus-sasl etc/rc.d/rc3.d/S25random etc/rc.d/rc3.d/S30sshd @@ -200,6 +203,7 @@ etc/rc.d/rc6.d/K30sshd etc/rc.d/rc6.d/K45random etc/rc.d/rc6.d/K47setclock etc/rc.d/rc6.d/K49cyrus-sasl +etc/rc.d/rc6.d/K78freifunk etc/rc.d/rc6.d/K78snort etc/rc.d/rc6.d/K79leds etc/rc.d/rc6.d/K80network diff --git a/config/rootfiles/common/misc-progs b/config/rootfiles/common/misc-progs index 1ab4dec5f1..b61c39e221 100644 --- a/config/rootfiles/common/misc-progs +++ b/config/rootfiles/common/misc-progs @@ -6,6 +6,7 @@ usr/local/bin/dhcpctrl usr/local/bin/dnsmasqctrl usr/local/bin/extrahdctrl usr/local/bin/fireinfoctrl +usr/local/bin/freifunkctrl usr/local/bin/getconntracktable usr/local/bin/getipstat #usr/local/bin/iowrap diff --git a/doc/language_issues.de b/doc/language_issues.de index e41f48b777..712e0e52cd 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -206,6 +206,7 @@ WARNING: translation string unused: forward firewall WARNING: translation string unused: forwarding rule added WARNING: translation string unused: forwarding rule removed WARNING: translation string unused: forwarding rule updated +WARNING: translation string unused: freifunk status WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -597,6 +598,7 @@ WARNING: translation string unused: upstream proxy host:port WARNING: translation string unused: upstream username WARNING: translation string unused: uptime WARNING: translation string unused: uptime and users +WARNING: translation string unused: url WARNING: translation string unused: urlfilter background image WARNING: translation string unused: urlfilter background text WARNING: translation string unused: urlfilter enable jpeg diff --git a/doc/language_issues.en b/doc/language_issues.en index 290da0275e..9878cab83f 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -229,6 +229,7 @@ WARNING: translation string unused: forward firewall WARNING: translation string unused: forwarding rule added WARNING: translation string unused: forwarding rule removed WARNING: translation string unused: forwarding rule updated +WARNING: translation string unused: freifunk status WARNING: translation string unused: frequency WARNING: translation string unused: fritzdsl help WARNING: translation string unused: fritzdsl upload @@ -632,6 +633,7 @@ WARNING: translation string unused: upstream proxy host:port WARNING: translation string unused: upstream username WARNING: translation string unused: uptime WARNING: translation string unused: uptime and users +WARNING: translation string unused: url WARNING: translation string unused: urlfilter background image WARNING: translation string unused: urlfilter background text WARNING: translation string unused: urlfilter enable jpeg diff --git a/doc/language_issues.es b/doc/language_issues.es index c93d40cb4f..5d72e81b0d 100644 --- a/doc/language_issues.es +++ b/doc/language_issues.es @@ -609,6 +609,7 @@ WARNING: untranslated string: advproxy proxy port transparent WARNING: untranslated string: age second WARNING: untranslated string: atm device WARNING: untranslated string: attention +WARNING: untranslated string: batman version WARNING: untranslated string: bit WARNING: untranslated string: bytes WARNING: untranslated string: capabilities @@ -653,6 +654,7 @@ WARNING: untranslated string: count WARNING: untranslated string: countries WARNING: untranslated string: country codes and flags WARNING: untranslated string: countrycode +WARNING: untranslated string: credentials WARNING: untranslated string: dead peer detection WARNING: untranslated string: default WARNING: untranslated string: deprecated fs warn @@ -709,6 +711,11 @@ WARNING: untranslated string: firewall logs country WARNING: untranslated string: firewall rules WARNING: untranslated string: first WARNING: untranslated string: flag +WARNING: untranslated string: freifunk +WARNING: untranslated string: freifunk community +WARNING: untranslated string: freifunk community settings +WARNING: untranslated string: freifunk configuration +WARNING: untranslated string: freifunk enabled WARNING: untranslated string: fw default drop WARNING: untranslated string: fw settings WARNING: untranslated string: fw settings color @@ -948,14 +955,17 @@ WARNING: untranslated string: ovpn routes push options WARNING: untranslated string: p2p block WARNING: untranslated string: p2p block save notice WARNING: untranslated string: pakfire ago +WARNING: untranslated string: please select WARNING: untranslated string: proxy reports WARNING: untranslated string: proxy reports daily WARNING: untranslated string: proxy reports monthly WARNING: untranslated string: proxy reports today WARNING: untranslated string: proxy reports weekly +WARNING: untranslated string: public key WARNING: untranslated string: qos enter bandwidths WARNING: untranslated string: random number generator daemon WARNING: untranslated string: red1 +WARNING: untranslated string: register host WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed @@ -1062,3 +1072,4 @@ WARNING: untranslated string: wlan client wpa mode ccmp tkip WARNING: untranslated string: wlan client wpa mode tkip tkip WARNING: untranslated string: wlan clients WARNING: untranslated string: wlanap country +WARNING: untranslated string: your version diff --git a/doc/language_issues.fr b/doc/language_issues.fr index c1dedc59c3..fe138a0f80 100644 --- a/doc/language_issues.fr +++ b/doc/language_issues.fr @@ -619,6 +619,7 @@ WARNING: untranslated string: advproxy proxy port transparent WARNING: untranslated string: age second WARNING: untranslated string: atm device WARNING: untranslated string: attention +WARNING: untranslated string: batman version WARNING: untranslated string: bit WARNING: untranslated string: bytes WARNING: untranslated string: capabilities @@ -663,6 +664,7 @@ WARNING: untranslated string: count WARNING: untranslated string: countries WARNING: untranslated string: country codes and flags WARNING: untranslated string: countrycode +WARNING: untranslated string: credentials WARNING: untranslated string: dead peer detection WARNING: untranslated string: default WARNING: untranslated string: deprecated fs warn @@ -720,6 +722,11 @@ WARNING: untranslated string: firewall logs country WARNING: untranslated string: firewall rules WARNING: untranslated string: first WARNING: untranslated string: flag +WARNING: untranslated string: freifunk +WARNING: untranslated string: freifunk community +WARNING: untranslated string: freifunk community settings +WARNING: untranslated string: freifunk configuration +WARNING: untranslated string: freifunk enabled WARNING: untranslated string: fw default drop WARNING: untranslated string: fw settings WARNING: untranslated string: fw settings color @@ -955,14 +962,17 @@ WARNING: untranslated string: ovpn port in root range WARNING: untranslated string: p2p block WARNING: untranslated string: p2p block save notice WARNING: untranslated string: pakfire ago +WARNING: untranslated string: please select WARNING: untranslated string: proxy reports WARNING: untranslated string: proxy reports daily WARNING: untranslated string: proxy reports monthly WARNING: untranslated string: proxy reports today WARNING: untranslated string: proxy reports weekly +WARNING: untranslated string: public key WARNING: untranslated string: qos enter bandwidths WARNING: untranslated string: random number generator daemon WARNING: untranslated string: red1 +WARNING: untranslated string: register host WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed @@ -1092,3 +1102,4 @@ WARNING: untranslated string: wlanap warnings WARNING: untranslated string: wlanap wlan card WARNING: untranslated string: wlanap wlan settings WARNING: untranslated string: wlanap wlan status +WARNING: untranslated string: your version diff --git a/doc/language_issues.nl b/doc/language_issues.nl index 859cc1fd16..862e264f6a 100644 --- a/doc/language_issues.nl +++ b/doc/language_issues.nl @@ -668,8 +668,10 @@ WARNING: untranslated string: advproxy basic authentication WARNING: untranslated string: advproxy group access control WARNING: untranslated string: advproxy group required WARNING: untranslated string: atm device +WARNING: untranslated string: batman version WARNING: untranslated string: bytes WARNING: untranslated string: capabilities +WARNING: untranslated string: credentials WARNING: untranslated string: default WARNING: untranslated string: dh WARNING: untranslated string: dh key move failed @@ -684,6 +686,11 @@ WARNING: untranslated string: dnssec validating WARNING: untranslated string: download tls-auth key WARNING: untranslated string: drop outgoing WARNING: untranslated string: firewall logs country +WARNING: untranslated string: freifunk +WARNING: untranslated string: freifunk community +WARNING: untranslated string: freifunk community settings +WARNING: untranslated string: freifunk configuration +WARNING: untranslated string: freifunk enabled WARNING: untranslated string: fwdfw err concon WARNING: untranslated string: fwdfw err ratecon WARNING: untranslated string: fwdfw limitconcon @@ -733,7 +740,10 @@ WARNING: untranslated string: ovpn dh upload WARNING: untranslated string: ovpn generating the root and host certificates WARNING: untranslated string: ovpn ha WARNING: untranslated string: ovpn hmac +WARNING: untranslated string: please select +WARNING: untranslated string: public key WARNING: untranslated string: random number generator daemon +WARNING: untranslated string: register host WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed @@ -747,3 +757,4 @@ WARNING: untranslated string: source ip country WARNING: untranslated string: ta key WARNING: untranslated string: upload dh key WARNING: untranslated string: vendor +WARNING: untranslated string: your version diff --git a/doc/language_issues.pl b/doc/language_issues.pl index c93d40cb4f..5d72e81b0d 100644 --- a/doc/language_issues.pl +++ b/doc/language_issues.pl @@ -609,6 +609,7 @@ WARNING: untranslated string: advproxy proxy port transparent WARNING: untranslated string: age second WARNING: untranslated string: atm device WARNING: untranslated string: attention +WARNING: untranslated string: batman version WARNING: untranslated string: bit WARNING: untranslated string: bytes WARNING: untranslated string: capabilities @@ -653,6 +654,7 @@ WARNING: untranslated string: count WARNING: untranslated string: countries WARNING: untranslated string: country codes and flags WARNING: untranslated string: countrycode +WARNING: untranslated string: credentials WARNING: untranslated string: dead peer detection WARNING: untranslated string: default WARNING: untranslated string: deprecated fs warn @@ -709,6 +711,11 @@ WARNING: untranslated string: firewall logs country WARNING: untranslated string: firewall rules WARNING: untranslated string: first WARNING: untranslated string: flag +WARNING: untranslated string: freifunk +WARNING: untranslated string: freifunk community +WARNING: untranslated string: freifunk community settings +WARNING: untranslated string: freifunk configuration +WARNING: untranslated string: freifunk enabled WARNING: untranslated string: fw default drop WARNING: untranslated string: fw settings WARNING: untranslated string: fw settings color @@ -948,14 +955,17 @@ WARNING: untranslated string: ovpn routes push options WARNING: untranslated string: p2p block WARNING: untranslated string: p2p block save notice WARNING: untranslated string: pakfire ago +WARNING: untranslated string: please select WARNING: untranslated string: proxy reports WARNING: untranslated string: proxy reports daily WARNING: untranslated string: proxy reports monthly WARNING: untranslated string: proxy reports today WARNING: untranslated string: proxy reports weekly +WARNING: untranslated string: public key WARNING: untranslated string: qos enter bandwidths WARNING: untranslated string: random number generator daemon WARNING: untranslated string: red1 +WARNING: untranslated string: register host WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed @@ -1062,3 +1072,4 @@ WARNING: untranslated string: wlan client wpa mode ccmp tkip WARNING: untranslated string: wlan client wpa mode tkip tkip WARNING: untranslated string: wlan clients WARNING: untranslated string: wlanap country +WARNING: untranslated string: your version diff --git a/doc/language_issues.ru b/doc/language_issues.ru index 17e3199b11..f61a76b36e 100644 --- a/doc/language_issues.ru +++ b/doc/language_issues.ru @@ -612,6 +612,7 @@ WARNING: untranslated string: advproxy proxy port transparent WARNING: untranslated string: age second WARNING: untranslated string: atm device WARNING: untranslated string: attention +WARNING: untranslated string: batman version WARNING: untranslated string: bit WARNING: untranslated string: bytes WARNING: untranslated string: capabilities @@ -657,6 +658,7 @@ WARNING: untranslated string: count WARNING: untranslated string: countries WARNING: untranslated string: country codes and flags WARNING: untranslated string: countrycode +WARNING: untranslated string: credentials WARNING: untranslated string: dead peer detection WARNING: untranslated string: default WARNING: untranslated string: deprecated fs warn @@ -704,6 +706,11 @@ WARNING: untranslated string: firewall logs country WARNING: untranslated string: firewall rules WARNING: untranslated string: first WARNING: untranslated string: flag +WARNING: untranslated string: freifunk +WARNING: untranslated string: freifunk community +WARNING: untranslated string: freifunk community settings +WARNING: untranslated string: freifunk configuration +WARNING: untranslated string: freifunk enabled WARNING: untranslated string: fw default drop WARNING: untranslated string: fw settings WARNING: untranslated string: fw settings color @@ -938,14 +945,17 @@ WARNING: untranslated string: ovpn no connections WARNING: untranslated string: ovpn port in root range WARNING: untranslated string: p2p block WARNING: untranslated string: p2p block save notice +WARNING: untranslated string: please select WARNING: untranslated string: proxy reports WARNING: untranslated string: proxy reports daily WARNING: untranslated string: proxy reports monthly WARNING: untranslated string: proxy reports today WARNING: untranslated string: proxy reports weekly +WARNING: untranslated string: public key WARNING: untranslated string: qos enter bandwidths WARNING: untranslated string: random number generator daemon WARNING: untranslated string: red1 +WARNING: untranslated string: register host WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed @@ -1051,3 +1061,4 @@ WARNING: untranslated string: wlan client wpa mode ccmp tkip WARNING: untranslated string: wlan client wpa mode tkip tkip WARNING: untranslated string: wlan clients WARNING: untranslated string: wlanap country +WARNING: untranslated string: your version diff --git a/doc/language_issues.tr b/doc/language_issues.tr index 0ebd3988f9..cbdadacd77 100644 --- a/doc/language_issues.tr +++ b/doc/language_issues.tr @@ -662,7 +662,14 @@ WARNING: translation string unused: xtaccess bad transfert WARNING: translation string unused: year-graph WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: batman version WARNING: untranslated string: bytes +WARNING: untranslated string: credentials +WARNING: untranslated string: freifunk +WARNING: untranslated string: freifunk community +WARNING: untranslated string: freifunk community settings +WARNING: untranslated string: freifunk configuration +WARNING: untranslated string: freifunk enabled WARNING: untranslated string: fwhost err hostip WARNING: untranslated string: incoming compression in bytes per second WARNING: untranslated string: incoming overhead in bytes per second @@ -671,7 +678,11 @@ WARNING: untranslated string: no data WARNING: untranslated string: outgoing compression in bytes per second WARNING: untranslated string: outgoing overhead in bytes per second WARNING: untranslated string: ovpn add conf +WARNING: untranslated string: please select +WARNING: untranslated string: public key +WARNING: untranslated string: register host WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: your version diff --git a/doc/language_missings b/doc/language_missings index 05798b9114..2fde103b8e 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -28,6 +28,7 @@ < age ssecond < atm device < attention +< batman version < bit < capabilities < ccd add @@ -78,6 +79,7 @@ < countries < countrycode < country codes and flags +< credentials < default < default ip < deprecated fs warn @@ -136,6 +138,12 @@ < first < flag < forward firewall +< freifunk +< freifunk community +< freifunk community settings +< freifunk configuration +< freifunk enabled +< freifunk status < fw default drop < fwdfw ACCEPT < fwdfw action @@ -420,14 +428,17 @@ < ovpn reneg sec < p2p block < p2p block save notice +< please select < proxy reports < proxy reports daily < proxy reports monthly < proxy reports today < proxy reports weekly +< public key < qos enter bandwidths < random number generator daemon < red1 +< register host < samba join a domain < samba join domain < server restart @@ -503,6 +514,7 @@ < upload new ruleset < uptime < uptime load average +< url < urlfilter file ext block < urlfilter mode block < urlfilter redirect template @@ -561,6 +573,7 @@ < wlan client wpa mode ccmp ccmp < wlan client wpa mode ccmp tkip < wlan client wpa mode tkip tkip +< your version ############################################################################ # Checking cgi-bin translations for language: es # ############################################################################ @@ -586,6 +599,7 @@ < Async logging enabled < atm device < attention +< batman version < bit < capabilities < ccd add @@ -636,6 +650,7 @@ < countries < countrycode < country codes and flags +< credentials < default < default ip < deprecated fs warn @@ -693,6 +708,12 @@ < first < flag < forward firewall +< freifunk +< freifunk community +< freifunk community settings +< freifunk configuration +< freifunk enabled +< freifunk status < fw default drop < fwdfw ACCEPT < fwdfw action @@ -993,14 +1014,17 @@ < ovpn routes push options < p2p block < p2p block save notice +< please select < proxy reports < proxy reports daily < proxy reports monthly < proxy reports today < proxy reports weekly +< public key < qos enter bandwidths < random number generator daemon < red1 +< register host < samba join a domain < samba join domain < server restart @@ -1075,6 +1099,7 @@ < upload dh key < uptime < uptime load average +< url < urlfilter redirect template < vendor < visit us at @@ -1111,6 +1136,7 @@ < wlan client wpa mode ccmp ccmp < wlan client wpa mode ccmp tkip < wlan client wpa mode tkip tkip +< your version ############################################################################ # Checking cgi-bin translations for language: pl # ############################################################################ @@ -1135,6 +1161,7 @@ < age ssecond < atm device < attention +< batman version < bit < capabilities < ccd add @@ -1185,6 +1212,7 @@ < countries < countrycode < country codes and flags +< credentials < default < default ip < deprecated fs warn @@ -1234,6 +1262,12 @@ < first < flag < forward firewall +< freifunk +< freifunk community +< freifunk community settings +< freifunk configuration +< freifunk enabled +< freifunk status < fw default drop < fwdfw ACCEPT < fwdfw action @@ -1520,14 +1554,17 @@ < ovpn routes push options < p2p block < p2p block save notice +< please select < proxy reports < proxy reports daily < proxy reports monthly < proxy reports today < proxy reports weekly +< public key < qos enter bandwidths < random number generator daemon < red1 +< register host < samba join a domain < samba join domain < server restart @@ -1600,6 +1637,7 @@ < upload dh key < uptime < uptime load average +< url < urlfilter redirect template < vendor < visit us at @@ -1636,6 +1674,7 @@ < wlan client wpa mode ccmp ccmp < wlan client wpa mode ccmp tkip < wlan client wpa mode tkip tkip +< your version ############################################################################ # Checking cgi-bin translations for language: ru # ############################################################################ @@ -1661,6 +1700,7 @@ < age ssecond < atm device < attention +< batman version < bit < capabilities < ccd add @@ -1711,6 +1751,7 @@ < countries < countrycode < country codes and flags +< credentials < day-graph < default < default ip @@ -1763,6 +1804,12 @@ < first < flag < forward firewall +< freifunk +< freifunk community +< freifunk community settings +< freifunk configuration +< freifunk enabled +< freifunk status < frequency < fw default drop < fwdfw ACCEPT @@ -2050,14 +2097,17 @@ < ovpn reneg sec < p2p block < p2p block save notice +< please select < proxy reports < proxy reports daily < proxy reports monthly < proxy reports today < proxy reports weekly +< public key < qos enter bandwidths < random number generator daemon < red1 +< register host < samba join a domain < samba join domain < server restart @@ -2130,6 +2180,7 @@ < upload dh key < uptime < uptime load average +< url < urlfilter redirect template < vendor < visit us at @@ -2168,3 +2219,4 @@ < wlan client wpa mode ccmp tkip < wlan client wpa mode tkip tkip < year-graph +< your version diff --git a/html/cgi-bin/freifunk.cgi b/html/cgi-bin/freifunk.cgi new file mode 100755 index 0000000000..36acaeea82 --- /dev/null +++ b/html/cgi-bin/freifunk.cgi @@ -0,0 +1,353 @@ +#!/usr/bin/perl +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2014 IPFire Team # +# # +# 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 3 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, see . # +# # +############################################################################### + +#use strict; +use JSON::Parse; + +# enable only the following on debugging purpose +use warnings; +use CGI::Carp 'fatalsToBrowser'; + +require '/var/ipfire/general-functions.pl'; +require "${General::swroot}/lang.pl"; +require "${General::swroot}/header.pl"; + +my $FASTD_CONFIG = "${General::swroot}/freifunk/fastd.conf"; +my $NETWORKS_LIST = "${General::swroot}/freifunk/networks.json"; + +#workaround to suppress a warning when a variable is used only once +my @dummy = ( ${Header::colouryellow} ); +undef (@dummy); + +our %netsettings = (); +&General::readhash("${General::swroot}/ethernet/settings", \%netsettings); + +our %color = (); +our %mainsettings = (); +&General::readhash("${General::swroot}/main/settings", \%mainsettings); +&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color); + +our %settings = (); + +$settings{'FREIFUNK_ENABLED'} = 'off'; +$settings{'FREIFUNK_COMMUNITY'} = ''; +$settings{'FASTD_SECRET'} = ''; +$settings{'ACTION'} = ''; + +my $errormessage = ''; +my $warnmessage = ''; + +&Header::showhttpheaders(); + +# Get GUI values. +&Header::getcgihash(\%settings); + +# Toggle enable/disable field. +if ($settings{'ACTION'} eq $Lang::tr{'save'}) { + if ($errormessage eq '') { + # Retrieve secret from configuration + my %oldsettings = (); + &General::readhash("${General::swroot}/freifunk/settings", \%oldsettings); + $settings{'FASTD_SECRET'} = $oldsettings{'FASTD_SECRET'}; + + # Write configuration settings to file. + &General::writehash("${General::swroot}/freifunk/settings", \%settings); + + # Update configuration files. + &BuildConfiguration(); + } +} + +# Read configuration +&General::readhash("${General::swroot}/freifunk/settings", \%settings); + +&showMainBox(); + +# Functions + +sub showMainBox() { + my %checked = (); + my %selected = (); + + $checked{'FREIFUNK_ENABLED'}{'on'} = ''; + $checked{'FREIFUNK_ENABLED'}{'off'} = ''; + $checked{'FREIFUNK_ENABLED'}{$settings{'FREIFUNK_ENABLED'}} = 'checked'; + + &Header::openpage($Lang::tr{'freifunk configuration'}, 1, ''); + &Header::openbigbox('100%', 'left', '', $errormessage); + + if ($errormessage) { + &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); + print "$errormessage \n"; + &Header::closebox(); + } + + print "
\n"; + + &Header::openbox('100%', 'center', $Lang::tr{'freifunk configuration'}); + + my @networks = &GetNetworkList(); + my $network = &GetNetwork($settings{'FREIFUNK_COMMUNITY'}); + + print < + + $Lang::tr{'freifunk community settings'} + + + $Lang::tr{'freifunk enabled'}: + +   + + + $Lang::tr{'freifunk community'}: + + +   + + +END + + print "\n"; + + &Header::closebigbox(); + &Header::closepage(); +} + +sub BuildConfiguration() { + my %settings = (); + &General::readhash("${General::swroot}/freifunk/settings", \%settings); + + # Create fastd secret if none is set + if ($settings{'FASTD_SECRET'} eq '') { + $settings{'FASTD_SECRET'} = &fastdCreateKey(); + + &General::writehash("${General::swroot}/freifunk/settings", \%settings); + } + + my $network = &GetNetwork($settings{"FREIFUNK_COMMUNITY"}); + if ($network) { + # Write configuration bits... + open(FILE, ">$FASTD_CONFIG"); + + print FILE "# Logging\n"; + print FILE "log level error;\n"; + print FILE "log to syslog level info;\n\n"; + + print FILE "# Drop privileges\n"; + print FILE "user \"nobody\";\n\n"; + + print FILE "interface \"batvpn0\";\n"; + print FILE "mode tap;\n\n"; + + print FILE "# Authentication credentials\n"; + print FILE "secret \"$settings{'FASTD_SECRET'}\";\n"; + print FILE "secure handshakes yes;\n\n"; + + print FILE "# Ciphers\n"; + my $ciphers = $network->{'ciphers'}; + foreach my $cipher (@$ciphers) { + print FILE "method \"$cipher\";\n"; + } + print FILE "\n"; + + print FILE "# Upstream connection\n"; + print FILE "mtu $network->{'mtu-vpn'};\n"; + + my $nodes = $network->{'supernodes'}; + foreach my $node (@$nodes) { + print FILE "peer \"$node->{'peer'}\" {\n"; + print FILE "\tkey \"$node->{'key'}\";\n"; + print FILE "\tremote \"$node->{'remote'}\" port $node->{'port'};\n"; + print FILE "}\n"; + } + print FILE "\n"; + + print FILE "# Hooks\n"; + foreach my $hook ("pre-up", "up") { + print FILE "on $hook \"/etc/rc.d/init.d/freifunk on-$hook\";\n"; + } + + close(FILE); + } + + # Restart the service. + if ($settings{'FREIFUNK_ENABLED'} eq 'on') { + system("/usr/local/bin/freifunkctrl restart &>/dev/null"); + } else { + system("/usr/local/bin/freifunkctrl stop &>/dev/null"); + } +} + +sub fastdCreateKey() { + my $output = `fastd --machine-readable --generate-key`; + chomp($output); + + return $output; +} + +sub fastdGetPublicKey() { + my $output = ""; + + if (-e $FASTD_CONFIG) { + $output = `fastd --machine-readable --config $FASTD_CONFIG --show-key`; + chomp($output); + } + + return $output; +} + +sub BatmanAdvVersion() { + open(OUTPUT, "modinfo batman-adv |"); + my @output = ; + close(OUTPUT); + + foreach my $line (@output) { + my ($key, $val) = split(/\:/, $line); + if ($key eq "version") { + chomp($val); + return $val; + } + } +} + +sub GetNetworkList() { + my $list = JSON::Parse::json_file_to_perl($NETWORKS_LIST); + my @ret = (); + + foreach my $network (@$list) { + push(@ret, [$network->{'id'}, $network->{'name'}]); + } + + return sort { $a->{1} cmp $b->{1} } @ret; +} + +sub GetNetwork($) { + my $id = shift; + + my $list = JSON::Parse::json_file_to_perl($NETWORKS_LIST); + + foreach my $network (@$list) { + return $network if ($network->{'id'} eq $id); + } + + return undef; +} + +sub hostname() { + my $hostname = `hostname -f`; + chomp($hostname); + + return $hostname; +} diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index eb29b5fbf2..607f259931 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -411,6 +411,7 @@ 'bandwitherror' => 'Sie können die Bandbreiteneinstellungen nicht bearbeiten, wenn QoS eingeschaltet ist. Schalten Sie es erst aus.

', 'bandwithsettings' => 'Bandbreiteneinstellungen', 'basic options' => 'Basisoptionen', +'batman version' => 'B.A.T.M.A.N.-Version', 'beep when ppp connects or disconnects' => 'Piepen, wenn IPFire verbindet oder trennt', 'behind a proxy' => 'Hinter einem Proxy:', 'bit' => 'Bit', @@ -600,6 +601,7 @@ 'create' => 'Erzeuge', 'create mask' => 'UNIX Rechte für neue Dateien', 'create new backup' => 'Einen neuen Sicherungssatz anlegen', +'credentials' => 'Anmeldedaten', 'credits' => 'Credits', 'crl' => 'Certificate Revocation List', 'cron server' => 'Cron-Server', @@ -945,6 +947,12 @@ 'free' => 'Frei', 'free memory' => 'Freier Speicher ', 'free swap' => 'Freier Swap', +'freifunk' => 'Freifunk', +'freifunk community' => 'Freifunk-Community', +'freifunk community settings' => 'Freifunk-Community-Einstellungen', +'freifunk configuration' => 'Freifunk-Konfiguration', +'freifunk enabled' => 'Freifunk einschalten', +'freifunk status' => 'Freifunk-Status', 'frequency' => 'Frequenz', 'friday' => 'Freitag', 'fritzdsl help' => 'Um eines der folgenden Fritz!DSL Modems (Fritz!Card DSL=fcdsl / Fritz!CardDSL SL=fcdslsl / Fritz!Card DSL V2.0=fcdsl2 / Fritz!Card DSL USB=fcdslusb / Fritz!Card DSL USB SL=fcdslslusb) nutzen zu können, müssen Sie ein Paket auf Ihre IPFire-Box laden. Bitte laden Sie den tarball entsprechend Ihrer Version von der IPFire-Webseite herunter und laden Sie dann die gesamte fcdsl-(ihre_version).tgz mit dem folgenden Formular hoch.', @@ -1795,6 +1803,7 @@ 'ping disabled' => 'Ping Antwort deaktivieren', 'pkcs12 file password' => 'PKCS12 Datei-Passwort', 'play' => 'Play', +'please select' => 'Bitte auswählen', 'polfile' => 'Polfile', 'policy' => 'Richtlinie', 'port' => 'Port', @@ -1848,6 +1857,7 @@ 'proxy reports today' => 'Heute', 'proxy reports weekly' => 'Wöchentliche Berichte', 'psk' => 'PSK', +'public key' => 'Öffentlicher Schlüssel', 'pulse' => 'Puls', 'pulse dial' => 'Pulswahl:', 'qos enter bandwidths' => 'Bitte geben Sie ihre Downstream- und Upstream-Bandbreite an!', @@ -1874,6 +1884,7 @@ 'refresh' => 'Aktualisieren', 'refresh index page while connected' => 'Aktualisere index.cgi Seite während der Verbindung', 'refresh update list' => 'Aktualisiere Update-Liste', +'register host' => 'Host registrieren', 'registered user rules' => 'Sourcefire VRT Regeln für registrierte Benutzer', 'released' => 'Freigegeben', 'reload' => 'neu laden', @@ -2326,6 +2337,7 @@ 'uptime' => 'Betriebszeit', 'uptime and users' => 'Uptime und Benutzer:', 'uptime load average' => 'Systemlast', +'url' => 'URL', 'url filter' => 'URL-Filter', 'urlfilter access' => 'Zugriff', 'urlfilter activity detection' => 'Aktivitätserkennung', @@ -2662,6 +2674,7 @@ 'you can only define one roadwarrior connection when using pre-shared key authentication' => 'Sie können nur eine Roadwarrior-Verbindung definieren, wenn die Pre-shared-Schlüsselauthentifizierung verwendet wird.
Entweder haben Sie bereits eine Roadwarrior-Verbindung mit Pre-shared-Schlüsselauthentifizierung, oder Sie versuchen gerade, eine hinzuzufügen.', 'your department' => 'Ihre Abteilung', 'your e-mail' => 'Ihre E-mail Adresse', +'your version' => 'Lokale Version:', ); #EOF diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 8c049fffa9..8ec5eab163 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -428,6 +428,7 @@ 'bandwitherror' => 'You cannot change the bandwithsettings, with Qos being enabled. First disable Qos.

', 'bandwithsettings' => 'Bandwithsettings', 'basic options' => 'Basic Options', +'batman version' => 'B.A.T.M.A.N. version', 'beep when ppp connects or disconnects' => 'Beep when IPFire connects or disconnects', 'behind a proxy' => 'Behind a proxy:', 'bewan adsl pci st' => 'TO BE REMOVED', @@ -621,6 +622,7 @@ 'create' => 'Create', 'create mask' => 'UNIX rights for new created files', 'create new backup' => 'Create a new backup set', +'credentials' => 'Credentials', 'credits' => 'Credits', 'crl' => 'Certificate Revocation List', 'cron server' => 'CRON Server', @@ -972,6 +974,12 @@ 'free' => 'Free', 'free memory' => 'Free Memory ', 'free swap' => 'Free Swap', +'freifunk' => 'Freifunk', +'freifunk community' => 'Freifunk Community', +'freifunk community settings' => 'Freifunk Community Settings', +'freifunk configuration' => 'Freifunk Configuration', +'freifunk enabled' => 'Enable Freifunk', +'freifunk status' => 'Freifunk Status', 'frequency' => 'Frequency', 'friday' => 'Friday', 'fritzdsl help' => 'To utilise one of Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb modem, you must upload a package to your IPFire box. Please download the tarball corresponding to your version from the IPFire website and then upload the entire fcdsl-(your_version).tgz using the form below.', @@ -1825,6 +1833,7 @@ 'ping disabled' => 'Disable ping response', 'pkcs12 file password' => 'PKCS12 File Password', 'play' => 'Play', +'please select' => 'Please select', 'polfile' => 'Polfile', 'policy' => 'Policy', 'port' => 'Port', @@ -1878,6 +1887,7 @@ 'proxy reports today' => 'Today', 'proxy reports weekly' => 'Weekly reports', 'psk' => 'PSK', +'public key' => 'Public Key', 'pulse' => 'Pulse', 'pulse dial' => 'Pulse dial:', 'qos add subclass' => 'Add subclass', @@ -1906,6 +1916,7 @@ 'refresh' => 'Refresh', 'refresh index page while connected' => 'Refresh index.cgi page while connected', 'refresh update list' => 'Refresh update list', +'register host' => 'Register host', 'registered user rules' => 'Sourcefire VRT rules for registered users', 'released' => 'Released', 'reload' => 'reload', @@ -2367,6 +2378,7 @@ 'uptime' => 'Uptime', 'uptime and users' => 'Uptime and users:', 'uptime load average' => 'Load average', +'url' => 'URL', 'url filter' => 'URL Filter', 'urlfilter access' => 'Access', 'urlfilter activity detection' => 'Activity detection', @@ -2704,6 +2716,7 @@ 'you can only define one roadwarrior connection when using pre-shared key authentication' => 'You can only define one Roadwarrior connection when using pre-shared key authentication.
Either you already have a Roadwarrior connection with pre-shared key authentication, or you\'re trying to add one now.', 'your department' => 'Your department', 'your e-mail' => 'Your e-mail address', +'your version' => 'Your version:', ); #EOF diff --git a/lfs/configroot b/lfs/configroot index e0bb346d0f..539eef647d 100644 --- a/lfs/configroot +++ b/lfs/configroot @@ -51,7 +51,7 @@ $(TARGET) : # Create all directories for i in addon-lang auth backup ca certs connscheduler crls ddns dhcp dhcpc dns dnsforward \ - ethernet extrahd/bin fwlogs fwhosts firewall isdn key langs logging mac main \ + ethernet extrahd/bin freifunk fwlogs fwhosts firewall isdn key langs logging mac main \ menu.d modem net-traffic net-traffic/templates nfs optionsfw \ ovpn patches pakfire portfw ppp private proxy/advanced/cre \ proxy/calamaris/bin qos/bin red remote sensors snort time tripwire/report \ @@ -65,7 +65,7 @@ $(TARGET) : certs/index.txt ddns/config ddns/noipsettings ddns/settings ddns/ipcache dhcp/settings \ dhcp/fixleases dhcp/advoptions dhcp/dhcpd.conf.local dns/settings dnsforward/config ethernet/aliases ethernet/settings ethernet/known_nics ethernet/scanned_nics \ ethernet/wireless extrahd/scan extrahd/devices extrahd/partitions extrahd/settings firewall/settings firewall/config firewall/input firewall/outgoing \ - fwhosts/customnetworks fwhosts/customhosts fwhosts/customgroups fwhosts/customservicegrp fwlogs/ipsettings fwlogs/portsettings \ + freifunk/fastd.conf freifunk/settings fwhosts/customnetworks fwhosts/customhosts fwhosts/customgroups fwhosts/customservicegrp fwlogs/ipsettings fwlogs/portsettings \ isdn/settings mac/settings main/disable_nf_sip main/hosts main/routing main/settings net-traffic/settings optionsfw/settings \ ovpn/ccd.conf ovpn/ccdroute ovpn/ccdroute2 pakfire/settings portfw/config ppp/settings-1 ppp/settings-2 ppp/settings-3 ppp/settings-4 \ ppp/settings-5 ppp/settings proxy/settings proxy/squid.conf proxy/advanced/settings proxy/advanced/cre/enable remote/settings qos/settings qos/classes qos/subclasses qos/level7config qos/portconfig \ diff --git a/lfs/initscripts b/lfs/initscripts index f656c72a74..e3c785aab8 100755 --- a/lfs/initscripts +++ b/lfs/initscripts @@ -156,6 +156,9 @@ $(TARGET) : ln -sf ../init.d/leds /etc/rc.d/rc3.d/S21leds ln -sf ../init.d/leds /etc/rc.d/rc6.d/K79leds ln -sf ../init.d/fireinfo /etc/rc.d/rc3.d/S15fireinfo + ln -sf ../init.d/freifunk /etc/rc.d/rc0.d/K78freifunk + ln -sf ../init.d/freifunk /etc/rc.d/rc3.d/S22freifunk + ln -sf ../init.d/freifunk /etc/rc.d/rc6.d/K78freifunk ln -sf ../init.d/mountkernfs /etc/rc.d/rcsysinit.d/S00mountkernfs ln -sf ../init.d/sysctl /etc/rc.d/rcsysinit.d/S01sysctl ln -sf ../init.d/modules /etc/rc.d/rcsysinit.d/S05modules diff --git a/src/initscripts/init.d/freifunk b/src/initscripts/init.d/freifunk new file mode 100755 index 0000000000..3199a1e43b --- /dev/null +++ b/src/initscripts/init.d/freifunk @@ -0,0 +1,75 @@ +#!/bin/sh +######################################################################## +# Begin $rc_base/init.d/freifunk +# +# Description : Freifunk initscript +# +######################################################################## + +. /etc/sysconfig/rc +. ${rc_functions} + +FASTD_CONF="/var/ipfire/freifunk/fastd.conf" +BATMAN_INTERFACE="bat0" + +eval $(/usr/local/bin/readhash /var/ipfire/freifunk/settings) + +function freifunk_is_enabled() { + [ "${FREIFUNK_ENABLED}" = "on" ] +} + +case "${1}" in + start) + freifunk_is_enabled || exit 0 + + boot_mesg "Starting Freifunk network..." + + # Loading required kernel modules + modprobe tun + + loadproc /usr/bin/fastd --daemon --config "${FASTD_CONF}" + ;; + + stop) + boot_mesg "Stopping Freifunk network..." + killproc /usr/bin/fastd + ;; + + restart) + ${0} stop + sleep 1 + ${0} start + ;; + + status) + statusproc /usr/bin/fastd + ;; + + # Hidden commands used by fastd + on-up) + # INTERFACE must be set + [ -z "${INTERFACE}" ] && exit 2 + + # Load batman kernel module + modprobe batman-adv + + # Bring up the device + ip link set "${INTERFACE}" up + + # Add the VPN device to the BATMAN network and bring it up as well + echo "${BATMAN_INTERFACE}" > "/sys/class/net/${INTERFACE}/batman_adv/mesh_iface" + ip link set "${BATMAN_INTERFACE}" up + ;; + + on-*) + # Nothing to do, yet + exit 0 + ;; + + *) + echo "Usage: ${0} {start|stop|restart|status}" + exit 1 + ;; +esac + +# End $rc_base/init.d/freifunk diff --git a/src/misc-progs/Makefile b/src/misc-progs/Makefile index f5802d26ac..f5f29446fb 100644 --- a/src/misc-progs/Makefile +++ b/src/misc-progs/Makefile @@ -31,7 +31,7 @@ SUID_PROGS = squidctrl sshctrl ipfirereboot \ redctrl syslogdctrl extrahdctrl sambactrl upnpctrl tripwirectrl \ smartctrl clamavctrl addonctrl pakfire mpfirectrl wlanapctrl \ setaliases urlfilterctrl updxlratorctrl fireinfoctrl rebuildroutes \ - getconntracktable wirelessclient dnsmasqctrl torctrl + getconntracktable wirelessclient dnsmasqctrl torctrl freifunkctrl SUID_UPDX = updxsetperms OBJS = $(patsubst %,%.o,$(PROGS) $(SUID_PROGS)) diff --git a/src/misc-progs/freifunkctrl.c b/src/misc-progs/freifunkctrl.c new file mode 100644 index 0000000000..8248746827 --- /dev/null +++ b/src/misc-progs/freifunkctrl.c @@ -0,0 +1,36 @@ +/* This file is part of the IPFire Firewall. + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + * + */ + +#include +#include +#include +#include +#include +#include "setuid.h" + +int main(int argc, char *argv[]) { + if (!(initsetuid())) + exit(1); + + if (argc < 2) { + fprintf(stderr, "\nNo argument given.\n\nfreifunkctrl (restart|stop)\n\n"); + exit(1); + } + + if (strcmp(argv[1], "restart") == 0) { + safe_system("/etc/rc.d/init.d/freifunk restart"); + + } else if (strcmp(argv[1], "stop") == 0) { + safe_system("/etc/rc.d/init.d/freifunk stop"); + + } else { + fprintf(stderr, "\nBad argument given.\n\nfreifunkctrl (restart|stop)\n\n"); + exit(1); + } + + return 0; +} -- 2.39.5