]> git.ipfire.org Git - people/ms/ipfire-2.x.git/commitdiff
freifunk: Import first version of CGI and scripts
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 26 Nov 2014 01:36:17 +0000 (02:36 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 9 Mar 2015 15:39:08 +0000 (16:39 +0100)
23 files changed:
config/menu/30-network.menu
config/rootfiles/common/armv5tel/initscripts
config/rootfiles/common/armv5tel/initscripts.orig
config/rootfiles/common/configroot
config/rootfiles/common/i586/initscripts
config/rootfiles/common/misc-progs
doc/language_issues.de
doc/language_issues.en
doc/language_issues.es
doc/language_issues.fr
doc/language_issues.nl
doc/language_issues.pl
doc/language_issues.ru
doc/language_issues.tr
doc/language_missings
html/cgi-bin/freifunk.cgi [new file with mode: 0755]
langs/de/cgi-bin/de.pl
langs/en/cgi-bin/en.pl
lfs/configroot
lfs/initscripts
src/initscripts/init.d/freifunk [new file with mode: 0755]
src/misc-progs/Makefile
src/misc-progs/freifunkctrl.c [new file with mode: 0644]

index c50508f818b8e7b47187e6bd90e52cfda1179a89..b5b2c7cb8e582501ee54eba84cebf99d69372a40 100644 (file)
@@ -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,
+                                 };
index 8ddf34ae87fa656dc450c1e5ad47387dbf1c616f..04fdb4e9d0499161b014e9158506f2435460ef88 100644 (file)
@@ -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
@@ -149,6 +150,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
@@ -172,6 +174,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
@@ -197,6 +200,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
index 7a4e41b7da613d8477bbb9a02939a832ac08b80e..980441599ec703d158feed8e74cbddf3b5c33077 100644 (file)
@@ -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
index eaf1af6ed8812879f6b33ca9bcfaf6d0b00db52a..f3dbc6d980c550f2824295d18160bb8400198418 100644 (file)
@@ -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
index 3d4dd62ff0495f52d8a5ea59b0d83c3be3c87df9..4a80d3c353930f31a5512bf6c47c07c874a233c3 100644 (file)
@@ -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
@@ -151,6 +152,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
@@ -176,6 +178,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
@@ -201,6 +204,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
index 1ab4dec5f1aa5053d5a8a96d798f08cf7c95e870..b61c39e2218684c0696e267401ee209065f98863 100644 (file)
@@ -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
index e41f48b7771daaac8759099ea634f2a21e7867ea..712e0e52cd2fb25f64f584e30441ac12ae5d0713 100644 (file)
@@ -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
index 290da0275e9423f74c88a5aaaf8f465df65f94a4..9878cab83fc88cccb8d74b5c60180fca266604cd 100644 (file)
@@ -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
index c93d40cb4ff5c49c62fa71d3924b186fab0a3d8f..5d72e81b0dce280cc2ef874ba65f7b51647b1180 100644 (file)
@@ -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
index c1dedc59c3cdb1d4ba97ea6d5c130af0b7b23f7d..fe138a0f801f2dd55c9a1254cdf30c1d332a7622 100644 (file)
@@ -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
index 859cc1fd166ce8cb26e8dbbb2f591d351ca320b1..862e264f6ab6fefecd198e154045abd321b7b107 100644 (file)
@@ -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
index c93d40cb4ff5c49c62fa71d3924b186fab0a3d8f..5d72e81b0dce280cc2ef874ba65f7b51647b1180 100644 (file)
@@ -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
index 17e3199b11d391e498f399b20e0750233563de3d..f61a76b36e3d49d6f0252d698d3c5c8225eb4f6c 100644 (file)
@@ -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
index 0ebd3988f913e3e078d93d7fed0de1557162aa8d..cbdadacd7774a6c9afc91f909b61161b7131e395 100644 (file)
@@ -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
index 05798b91145465f748a1d3aea7123c4814ec687b..2fde103b8e47199058622350499dfec19c747223 100644 (file)
@@ -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
 < first
 < flag
 < forward firewall
+< freifunk
+< freifunk community
+< freifunk community settings
+< freifunk configuration
+< freifunk enabled
+< freifunk status
 < fw default drop
 < fwdfw ACCEPT
 < fwdfw action
 < 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
 < upload new ruleset
 < uptime
 < uptime load average
+< url
 < urlfilter file ext block
 < urlfilter mode block
 < urlfilter redirect template
 < 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                           #
 ############################################################################
 < Async logging enabled
 < atm device
 < attention
+< batman version
 < bit
 < capabilities
 < ccd add
 < countries
 < countrycode
 < country codes and flags
+< credentials
 < default
 < default ip
 < deprecated fs warn
 < first
 < flag
 < forward firewall
+< freifunk
+< freifunk community
+< freifunk community settings
+< freifunk configuration
+< freifunk enabled
+< freifunk status
 < fw default drop
 < fwdfw ACCEPT
 < fwdfw action
 < 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
 < upload dh key
 < uptime
 < uptime load average
+< url
 < urlfilter redirect template
 < vendor
 < visit us at
 < 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                           #
 ############################################################################
 < age ssecond
 < atm device
 < attention
+< batman version
 < bit
 < capabilities
 < ccd add
 < countries
 < countrycode
 < country codes and flags
+< credentials
 < default
 < default ip
 < deprecated fs warn
 < first
 < flag
 < forward firewall
+< freifunk
+< freifunk community
+< freifunk community settings
+< freifunk configuration
+< freifunk enabled
+< freifunk status
 < fw default drop
 < fwdfw ACCEPT
 < fwdfw action
 < 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
 < upload dh key
 < uptime
 < uptime load average
+< url
 < urlfilter redirect template
 < vendor
 < visit us at
 < 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                           #
 ############################################################################
 < age ssecond
 < atm device
 < attention
+< batman version
 < bit
 < capabilities
 < ccd add
 < countries
 < countrycode
 < country codes and flags
+< credentials
 < day-graph
 < default
 < default ip
 < first
 < flag
 < forward firewall
+< freifunk
+< freifunk community
+< freifunk community settings
+< freifunk configuration
+< freifunk enabled
+< freifunk status
 < frequency
 < fw default drop
 < fwdfw ACCEPT
 < 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
 < upload dh key
 < uptime
 < uptime load average
+< url
 < urlfilter redirect template
 < vendor
 < visit us at
 < 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 (executable)
index 0000000..36acaee
--- /dev/null
@@ -0,0 +1,353 @@
+#!/usr/bin/perl
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2014  IPFire Team  <info@ipfire.org>                          #
+#                                                                             #
+# 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 <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+#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 "<font class='base'>$errormessage&nbsp;</font>\n";
+               &Header::closebox();
+       }
+
+       print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";
+
+       &Header::openbox('100%', 'center', $Lang::tr{'freifunk configuration'});
+
+       my @networks = &GetNetworkList();
+       my $network = &GetNetwork($settings{'FREIFUNK_COMMUNITY'});
+
+       print <<END;
+               <table width='95%'>
+                       <tr>
+                               <td colspan='4' class='base' bgcolor='$color{'color20'}'><b>$Lang::tr{'freifunk community settings'}</b></td>
+                       </tr>
+                       <tr>
+                               <td width='25%' class='base'>$Lang::tr{'freifunk enabled'}:</td>
+                               <td width='30%'><input type='checkbox' name='FREIFUNK_ENABLED' $checked{'FREIFUNK_ENABLED'}{'on'} /></td>
+                               <td colspan='2'>&nbsp;</td>
+                       </tr>
+                       <tr>
+                               <td width='25%' class='base'>$Lang::tr{'freifunk community'}:</td>
+                               <td width='50%'>
+                                       <select name='FREIFUNK_COMMUNITY'>
+                                               <option value=''>- $Lang::tr{'please select'} -</option>
+END
+
+       foreach my $net (@networks) {
+               my $selected = ($settings{"FREIFUNK_COMMUNITY"} eq $net->[0]) ? "selected" : "";
+               print "<option value='$net->[0]' $selected>$net->[1]</option>\n";
+       }
+
+       print <<END;
+                                       </select>
+                               </td>
+                               <td width='25%'>
+END
+       if ($network) {
+               print "<a href='$network->{'url'}' target='_blank'>$network->{'url'}</a>\n";
+       } else {
+               print "&nbsp;\n";
+       }
+
+       print <<END;
+                               </td>
+                       </tr>
+END
+
+       if ($network) {
+               my $batman_version = &BatmanAdvVersion();
+               my $hostname = $network->{'prefix'} . hostname();
+               my $public_key = &fastdGetPublicKey();
+
+               print <<END;
+               </table>
+
+               <hr>
+
+               <table width='95%'>
+                       <tr>
+                               <td width='25%' class='base'>$Lang::tr{'batman version'}</td>
+                               <td width='75%'>
+                                       $network->{'batman-adv'} ($Lang::tr{'your version'} $batman_version)
+                               </td>
+                       </tr>
+               </table>
+
+               <br>
+
+               <table width='95%'>
+                       <tr>
+                               <td colspan='3' class='base' bgcolor='$color{'color20'}'><b>$Lang::tr{'credentials'}</b></td>
+                       </tr>
+                       <tr>
+                               <td width='25%' class='base'>$Lang::tr{'hostname'}</td>
+                               <td width='75%' colspan='2'>$hostname</td>
+                       </tr>
+                       <tr>
+                               <td width='25%' class='base'>$Lang::tr{'public key'}</td>
+                               <td width='65%'>$public_key</td>
+                               <td width='10%'>
+END
+
+               if ($network->{'register'}) {
+                       print "<a href='$network->{'register'}' target='_blank'>$Lang::tr{'register host'}</a>\n";
+               } else {
+                       print "&nbsp;\n";
+               }
+
+               print <<END;
+                               </td>
+                       </tr>
+END
+       }
+
+       print <<END;
+               </table>
+END
+
+       &Header::closebox();
+
+       print <<END;
+               <table width='95%'>
+                       <tr>
+                               <td>
+                                       <img src='/blob.gif' align='top' alt='*' />&nbsp;<font class='base'>$Lang::tr{'this field may be blank'}</font>
+                               </td>
+                               <td align='right'>&nbsp;</td>
+                       </tr>
+               </table>
+
+               <hr>
+
+               <table width='95%'>
+                       <tr>
+                               <td>&nbsp;</td>
+                               <td align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>
+                               <td>&nbsp;</td>
+                       </tr>
+               </table>
+END
+
+       print "</form>\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 = <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;
+}
index eb29b5fbf257a054dc46a0be89f9145b1f77e446..607f259931342637c7da88e2ceb3c7a2c2338920 100644 (file)
 'bandwitherror' => 'Sie können die Bandbreiteneinstellungen nicht bearbeiten, wenn QoS eingeschaltet ist. Schalten Sie es erst aus.<p>',
 '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',
 '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',
 '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 <b>fcdsl-(ihre_version).tgz</b> mit dem folgenden Formular hoch.',
 'ping disabled' => 'Ping Antwort deaktivieren',
 'pkcs12 file password' => 'PKCS12 Datei-Passwort',
 'play' => 'Play',
+'please select' => 'Bitte auswählen',
 'polfile' => 'Polfile',
 'policy' => 'Richtlinie',
 'port' => 'Port',
 '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!',
 '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',
 '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',
 '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.<br/>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
index 8c049fffa987fa0af6dcceefe0498caf418cc7a8..8ec5eab163166e078159b86665415d0e1fb05e07 100644 (file)
 'bandwitherror' => 'You cannot change the bandwithsettings, with Qos being enabled. First disable Qos.<p>',
 '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',
 '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',
 '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 <b>fcdsl-(your_version).tgz</b> using the form below.',
 'ping disabled' => 'Disable ping response',
 'pkcs12 file password' => 'PKCS12 File Password',
 'play' => 'Play',
+'please select' => 'Please select',
 'polfile' => 'Polfile',
 'policy' => 'Policy',
 'port' => 'Port',
 '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',
 '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',
 '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',
 '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.<br />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
index e0bb346d0ffab1588c9c1533beb9e6b4f7ad138d..539eef647d3c3673cbbe42cfae904509c35cfae3 100644 (file)
@@ -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 \
index 400594136230363a5ea32c29bab06658cffbe7bb..0642aa0954205e87b2d8b932de7b8adabb976475 100755 (executable)
@@ -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 (executable)
index 0000000..3199a1e
--- /dev/null
@@ -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
index f5802d26ac2c7918d43e4f998e100fb5f8f1a0a9..f5f29446fba91037649e1790ad49dcf0d3380194 100644 (file)
@@ -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 (file)
index 0000000..8248746
--- /dev/null
@@ -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 <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#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;
+}