* luci/applications: add initial chillispot package (incomplete)
authorJo-Philipp Wich <jow@openwrt.org>
Tue, 23 Sep 2008 23:17:45 +0000 (23:17 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Tue, 23 Sep 2008 23:17:45 +0000 (23:17 +0000)
applications/luci-chillispot/Makefile [new file with mode: 0644]
applications/luci-chillispot/luasrc/controller/chillispot.lua [new file with mode: 0644]
applications/luci-chillispot/luasrc/model/cbi/chillispot.lua [new file with mode: 0644]
applications/luci-chillispot/luasrc/model/cbi/chillispot_macauth.lua [new file with mode: 0644]
applications/luci-chillispot/luasrc/model/cbi/chillispot_network.lua [new file with mode: 0644]
applications/luci-chillispot/luasrc/model/cbi/chillispot_radius.lua [new file with mode: 0644]
applications/luci-chillispot/root/etc/config/chillispot [new file with mode: 0644]

diff --git a/applications/luci-chillispot/Makefile b/applications/luci-chillispot/Makefile
new file mode 100644 (file)
index 0000000..81a96f6
--- /dev/null
@@ -0,0 +1,2 @@
+include ../../build/config.mk
+include ../../build/module.mk
\ No newline at end of file
diff --git a/applications/luci-chillispot/luasrc/controller/chillispot.lua b/applications/luci-chillispot/luasrc/controller/chillispot.lua
new file mode 100644 (file)
index 0000000..f3e52fa
--- /dev/null
@@ -0,0 +1,26 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2008 Steven Barth <steven@midlink.org>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+]]--
+module("luci.controller.chillispot", package.seeall)
+
+function index()
+
+       require("luci.i18n")
+       local i18n = luci.i18n.translate
+
+       entry( { "admin", "services", "chillispot" },            cbi("chillispot"),         i18n("chillispot", "ChilliSpot"),                           90)
+       entry( { "admin", "services", "chillispot", "network" }, cbi("chillispot_network"), i18n("chillispot_network", "Network Configuration"),        10)
+       entry( { "admin", "services", "chillispot", "radius"  }, cbi("chillispot_radius"),  i18n("chillispot_radius",  "UAM and Radius Configuration"), 20)
+       entry( { "admin", "services", "chillispot", "macauth" }, cbi("chillispot_macauth"), i18n("chillispot_macauth", "MAC Authentication"),           30)
+
+end
diff --git a/applications/luci-chillispot/luasrc/model/cbi/chillispot.lua b/applications/luci-chillispot/luasrc/model/cbi/chillispot.lua
new file mode 100644 (file)
index 0000000..6c79d74
--- /dev/null
@@ -0,0 +1,36 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+]]--
+
+
+m = Map("chillispot")
+
+-- general
+s1 = m:section(TypedSection, "general")
+s1.anonymous = true
+
+s1:option( Flag, "debug" )
+s1:option( Value, "interval" )
+s1:option( Value, "pidfile" ).optional = true
+s1:option( Value, "statedir" ).optional = true
+
+-- remote config management
+s2 = m:section(TypedSection, "remoteconfig")
+s2.anonymous = true
+
+s2:option( Value, "confusername" )
+s2:option( Value, "confpassword" )
+
+
+return m
diff --git a/applications/luci-chillispot/luasrc/model/cbi/chillispot_macauth.lua b/applications/luci-chillispot/luasrc/model/cbi/chillispot_macauth.lua
new file mode 100644 (file)
index 0000000..710b216
--- /dev/null
@@ -0,0 +1,30 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+]]--
+
+
+m = Map("chillispot")
+
+
+-- mac authentication
+s = m:section(TypedSection, "macauth")
+s.anonymous = true
+
+s:option( Flag, "macauth" )
+s:option( DynamicList, "macallowed" )
+s:option( Value, "macpasswd" ).optional = true
+s:option( Value, "macsuffix" ).optional = true
+
+
+return m
diff --git a/applications/luci-chillispot/luasrc/model/cbi/chillispot_network.lua b/applications/luci-chillispot/luasrc/model/cbi/chillispot_network.lua
new file mode 100644 (file)
index 0000000..b75fc5f
--- /dev/null
@@ -0,0 +1,65 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+]]--
+
+require("luci.sys")
+require("luci.ip")
+
+m = Map("chillispot")
+
+-- tun
+s1 = m:section(TypedSection, "tun")
+s1.anonymous = true
+
+net = s1:option( Value, "net" )
+for _, route in ipairs(luci.sys.net.routes()) do
+       if route.Iface ~= "lo" and route.Mask ~= "FFFFFFFF" then
+               local netmask = luci.ip.IPv4(route.Mask)
+               if netmask then
+                       local netaddr = luci.ip.IPv4(route.Destination, netmask)
+                       if netaddr then
+                               net:value( netaddr:string() )
+                       end
+               end
+       end
+end
+
+s1:option( Value, "dynip" ).optional = true
+s1:option( Value, "statip" ).optional = true
+
+s1:option( Value, "dns1" ).optional = true
+s1:option( Value, "dns2" ).optional = true
+s1:option( Value, "domain" ).optional = true
+
+s1:option( Value, "ipup" ).optional = true
+s1:option( Value, "ipdown" ).optional = true
+
+s1:option( Value, "conup" ).optional = true
+s1:option( Value, "condown" ).optional = true
+
+
+-- dhcp config
+s2 = m:section(TypedSection, "dhcp")
+s2.anonymous = true
+
+dif = s2:option( Value, "dhcpif" )
+for _, nif in ipairs(luci.sys.net.devices()) do
+       if nif ~= "lo" then dif:value(nif) end
+end
+
+s2:option( Value, "dhcpmac" ).optional = true
+s2:option( Value, "lease" ).optional = true
+
+
+return m
diff --git a/applications/luci-chillispot/luasrc/model/cbi/chillispot_radius.lua b/applications/luci-chillispot/luasrc/model/cbi/chillispot_radius.lua
new file mode 100644 (file)
index 0000000..8b7ba59
--- /dev/null
@@ -0,0 +1,64 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2008 Steven Barth <steven@midlink.org>
+Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+]]--
+
+
+m = Map("chillispot")
+
+
+-- uam config
+s1 = m:section(TypedSection, "uam")
+s1.anonymous = true
+
+s1:option( Value, "uamserver" )
+s1:option( Value, "uamsecret" ).password = true
+s1:option( Flag, "uamanydns" )
+s1:option( Value, "uamhomepage" ).optional = true
+s1:option( Value, "uamlisten" ).optional = true
+s1:option( Value, "uamport" ).optional = true
+s1:option( DynamicList, "uamallowed" ).optional = true
+
+
+-- radius server
+s2 = m:section(TypedSection, "radius")
+s2.anonymous = true
+
+s2:option( Value, "radiusserver1" )
+s2:option( Value, "radiusserver2" )
+s2:option( Value, "radiussecret" ).password = true
+
+s2:option( Value, "radiuslisten" ).optional = true
+s2:option( Value, "radiusauthport" ).optional = true
+s2:option( Value, "radiusacctport" ).optional = true
+
+s2:option( Value, "radiusnasid" ).optional = true
+s2:option( Value, "radiusnasip" ).optional = true
+
+s2:option( Value, "radiuscalled" ).optional = true
+s2:option( Value, "radiuslocationid" ).optional = true
+s2:option( Value, "radiuslocationname" ).optional = true
+
+
+-- radius proxy
+s3 = m:section(TypedSection, "proxy")
+s3.anonymous = true
+
+s3:option( Value, "proxylisten" ).optional = true
+s3:option( Value, "proxyport" ).optional = true
+s3:option( Value, "proxyclient" ).optional = true
+ps = s3:option( Value, "proxysecret" )
+ps.optional = true
+ps.password = true
+
+return m
diff --git a/applications/luci-chillispot/root/etc/config/chillispot b/applications/luci-chillispot/root/etc/config/chillispot
new file mode 100644 (file)
index 0000000..fbbe22b
--- /dev/null
@@ -0,0 +1,259 @@
+##############################################################################
+#
+# Sample ChilliSpot configuration file
+#
+##############################################################################
+
+# General settings
+config general
+
+       # Enable this flag to include debug information.
+       option debug    0
+
+       # Re-read configuration file at this interval. Will also cause new domain
+       # name lookups to be performed. Value is given in seconds.
+       option interval 3600
+
+       # File to store information about the process id of the program.
+       # The program must have write access to this file/directory.
+       option pidfile  /var/run/chilli.pid
+
+       # Directory to use for nonvolatile storage.
+       # The program must have write access to this directory.
+       # This tag is currently ignored
+       #option statedir        ./
+
+
+# Remote configuration management
+config remoteconfig
+
+       # If confusername is specified together with confpassword chillispot
+       # will at regular intervals specified by the interval option query the
+       # radius server for configuration information.
+       # Normally you do not need to uncomment this tag.
+       option confusername     ""
+
+       # If confusername is specified together with confpassword chillispot
+       # will at regular intervals specified by the interval option query the
+       # radius server for configuration information.
+       # Normally you do not need to uncomment this tag.
+       option confpassword     ""
+
+
+# TUN parameters
+config tun
+
+       # IP network address of external packet data network
+       # Used to allocate dynamic IP addresses and set up routing.
+       # Normally you do not need to uncomment this tag.
+       option net      192.168.182.0/24
+
+       # Dynamic IP address pool
+       # Used to allocate dynamic IP addresses to clients.
+       # If not set it defaults to the net tag.
+       # Do not uncomment this tag unless you are an experienced user!
+       #option dynip   192.168.182.0/24
+
+       # Static IP address pool
+       # Used to allocate static IP addresses to clients.
+       # Do not uncomment this tag unless you are an experienced user!
+       #option statip  192.168.182.0/24
+
+       # Primary DNS server.
+       # Will be suggested to the client.
+       # If omitted the system default will be used.
+       # Normally you do not need to uncomment this tag.
+       #option dns1    172.16.0.5
+
+       # Secondary DNS server.
+       # Will be suggested to the client.
+       # If omitted the system default will be used.
+       # Normally you do not need to uncomment this tag.
+       #option dns2    172.16.0.6
+
+       # Domain name
+       # Will be suggested to the client.
+       # Normally you do not need to uncomment this tag.
+       option domain   key.chillispot.org
+
+       # Script executed after network interface has been brought up.
+       # Executed with the following parameters: <devicename> <ip address> <mask>
+       # Normally you do not need to uncomment this tag.
+       #option ipup    /etc/chilli.ipup
+
+       # Script executed after network interface has been taken down.
+       # Executed with the following parameters: <devicename> <ip address> <mask>
+       # Normally you do not need to uncomment this tag.
+       #option ipdown  /etc/chilli.ipdown
+
+       # Script executed after a user has been authenticated.
+       # Executed with the following parameters: <devicename> <ip address>
+       # <mask> <user ip address> <user mac address> <filter ID>
+       # Normally you do not need to uncomment this tag.
+       #option conup   /etc/chilli.conup
+
+       # Script executed after a user has disconnected.
+       # Executed with the following parameters: <devicename> <ip address>
+       # <mask> <user ip address> <user mac address> <filter ID>
+       # Normally you do not need to uncomment this tag.
+       #option condown /etc/chilli.condown
+
+
+# DHCP Parameters
+config dhcp
+
+       # Ethernet interface to listen to.
+       # This is the network interface which is connected to the access points.
+       # In a typical configuration this tag should be set to eth1.
+       option dhcpif   eth1
+
+       # Use specified MAC address.
+       # An address in the range  00:00:5E:00:02:00 - 00:00:5E:FF:FF:FF falls
+       # within the IANA range of addresses and is not allocated for other
+       # purposes.
+       # Normally you do not need to uncomment this tag.
+       #option dhcpmac 00:00:5E:00:02:00
+
+       # Time before DHCP lease expires
+       # Normally you do not need to uncomment this tag.
+       #option lease   600
+
+
+# Radius parameters
+config radius
+
+       # IP address to listen to
+       # Normally you do not need to uncomment this tag.
+       #option radiuslisten    127.0.0.1
+
+       # IP address of radius server 1
+       # For most installations you need to modify this tag.
+       option radiusserver1    rad01.chillispot.org
+
+       # IP address of radius server 2
+       # If you have only one radius server you should set radiusserver2 to the
+       # same value as radiusserver1.
+       # For most installations you need to modify this tag.
+       option radiusserver2    rad02.chillispot.org
+
+       # Radius authentication port
+       # The UDP port number to use for radius authentication requests.
+       # The same port number is used for both radiusserver1 and radiusserver2.
+       # Normally you do not need to uncomment this tag.
+       #option radiusauthport  1812
+
+       # Radius accounting port
+       # The UDP port number to use for radius accounting requests.
+       # The same port number is used for both radiusserver1 and radiusserver2.
+       # Normally you do not need to uncomment this tag.
+       #option radiusacctport  1813
+
+       # Radius shared secret for both servers
+       # For all installations you should modify this tag.
+       #option radiussecret    testing123
+
+       # Radius NAS-Identifier
+       # Normally you do not need to uncomment this tag.
+       #option radiusnasid     nas01
+
+       # Radius NAS-IP-Address
+       # Normally you do not need to uncomment this tag.
+       #option radiusnasip     127.0.0.1
+
+       # Radius Called-Station-ID
+       # Normally you do not need to uncomment this tag.
+       #option radiuscalled    00133300
+
+       # WISPr Location ID. Should be in the format: isocc=<ISO_Country_Code>,
+       # cc=<E.164_Country_Code>,ac=<E.164_Area_Code>,network=<ssid/ZONE>
+       # Normally you do not need to uncomment this tag.
+       #option radiuslocationid        isocc=us,cc=1,ac=408,network=ACMEWISP_NewarkAirport
+
+       # WISPr Location Name. Should be in the format:
+       # <HOTSPOT_OPERATOR_NAME>,<LOCATION>
+       # Normally you do not need to uncomment this tag.
+       #option radiuslocationname      ACMEWISP,Gate_14_Terminal_C_of_Newark_Airport
+
+
+# Radius proxy parameters
+config proxy
+
+       # IP address to listen to
+       # Normally you do not need to uncomment this tag.
+       #option proxylisten     10.0.0.1
+
+       # UDP port to listen to.
+       # If not specified a port will be selected by the system
+       # Normally you do not need to uncomment this tag.
+       #option proxyport       1645
+
+       # Client(s) from which we accept radius requests
+       # Normally you do not need to uncomment this tag.
+       #option proxyclient     10.0.0.1/24
+
+       # Radius proxy shared secret for all clients
+       # If not specified defaults to radiussecret
+       # Normally you do not need to uncomment this tag.
+       #option proxysecret     testing123
+
+
+# Universal access method (UAM) parameters
+config uam
+
+       # URL of web server handling authentication.
+       option uamserver        https://radius.chillispot.org/hotspotlogin
+
+       # URL of welcome homepage.
+       # Unauthenticated users will be redirected to this URL. If not specified
+       # users will be redirected to the uamserver instead.
+       # Normally you do not need to uncomment this tag.
+       #option uamhomepage     http://192.168.182.1/welcome.html
+
+       # Shared between chilli and authentication web server
+       #option uamsecret       ht2eb8ej6s4et3rg1ulp
+
+       # IP address to listen to for authentication requests
+       # Do not uncomment this tag unless you are an experienced user!
+       #option uamlisten       192.168.182.1
+
+       # TCP port to listen to for authentication requests
+       # Do not uncomment this tag unless you are an experienced user!
+       #option uamport 3990
+
+       # Comma separated list of domain names, IP addresses or network segments
+       # the client can access without first authenticating.
+       # It is possible to specify this tag multiple times.
+       # Normally you do not need to uncomment this tag.
+       #list uamallowed        www.chillispot.org
+       #list uamallowed        10.11.12.0/24
+
+       # If this flag is given unauthenticated users are allowed to use
+       # any DNS server.
+       # Normally you do not need to uncomment this tag.
+       #uamanydns
+
+
+# MAC authentication
+config macauth
+
+       # If this flag is given users will be authenticated only on their MAC
+       # address.
+       # Normally you do not need to enable this flag.
+       option macauth  0
+
+       # List of MAC addresses.
+       # The MAC addresses specified in this list will be authenticated only on
+       # their MAC address.
+       # This tag is ignored if the macauth tag is given.
+       # It is possible to specify this tag multiple times.
+       # Normally you do not need to uncomment this tag.
+       #list macallowed        00-0A-5E-AC-BE-51
+       #list macallowed        00-30-1B-3C-32-E9
+
+       # Password to use for MAC authentication.
+       # Normally you do not need to uncomment this tag.
+       #option macpasswd       password
+
+       # Suffix to add to MAC address in order to form the username.
+       # Normally you do not need to uncomment this tag.
+       #option macsuffix       suffix