openwrt: remove LuCI 0.8.6 from the package repository

This commit is contained in:
Bart Van Der Meerssche 2010-09-20 00:56:50 +02:00
parent e00f6a91ec
commit adbb953b1c
850 changed files with 0 additions and 79383 deletions

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<buildpath>
<buildpathentry kind="src" path="src"/>
<buildpathentry kind="con" path="org.eclipse.dltk.launching.INTERPRETER_CONTAINER"/>
</buildpath>

View File

@ -1,221 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?>
<cproject>
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="preference.org.eclipse.cdt.managedbuilder.core.configurationDataProvider.1510318341">
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="luci" buildProperties="" description="" id="preference.org.eclipse.cdt.managedbuilder.core.configurationDataProvider.1510318341" name="Preference Configuration" parent="org.eclipse.cdt.build.core.prefbase.cfg">
<folderInfo id="preference.org.eclipse.cdt.managedbuilder.core.configurationDataProvider.1510318341." name="/" resourcePath="">
<toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.407447051" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain">
<targetPlatform id="org.eclipse.cdt.build.core.prefbase.toolchain.407447051.1470931541" name=""/>
<builder id="org.eclipse.cdt.build.core.settings.default.builder.823611263" keepEnvironmentInBuildfile="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
<tool id="org.eclipse.cdt.build.core.settings.holder.libs.1685234798" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/>
<tool id="org.eclipse.cdt.build.core.settings.holder.570824141" name="Assembly" superClass="org.eclipse.cdt.build.core.settings.holder">
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.491129717" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">
<listOptionValue builtIn="false" value="/usr/include/lua5.1"/>
<listOptionValue builtIn="false" value="/usr/include"/>
</option>
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.858094059" languageId="org.eclipse.cdt.core.assembly" languageName="Assembly" sourceContentType="org.eclipse.cdt.core.asmSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
</tool>
<tool id="org.eclipse.cdt.build.core.settings.holder.344617955" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.564526987" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">
<listOptionValue builtIn="false" value="/usr/include/lua5.1"/>
<listOptionValue builtIn="false" value="/usr/include"/>
</option>
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1426860237" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" sourceContentType="org.eclipse.cdt.core.cxxSource,org.eclipse.cdt.core.cxxHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
</tool>
<tool id="org.eclipse.cdt.build.core.settings.holder.869454750" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder">
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.838425449" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">
<listOptionValue builtIn="false" value="/usr/include/lua5.1"/>
<listOptionValue builtIn="false" value="/usr/include"/>
</option>
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1755775295" languageId="org.eclipse.cdt.core.gcc" languageName="GNU C" sourceContentType="org.eclipse.cdt.core.cSource,org.eclipse.cdt.core.cHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
</tool>
</toolChain>
</folderInfo>
</configuration>
</storageModule>
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="preference.org.eclipse.cdt.managedbuilder.core.configurationDataProvider.1510318341" moduleId="org.eclipse.cdt.core.settings" name="Preference Configuration">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<scannerConfigBuildInfo instanceId="preference.org.eclipse.cdt.managedbuilder.core.configurationDataProvider.1510318341">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="makefileGenerator">
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
<buildOutputProvider>
<openAction enabled="true" filePath=""/>
<parser enabled="true"/>
</buildOutputProvider>
<scannerInfoProvider id="specsFile">
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
<parser enabled="true"/>
</scannerInfoProvider>
</profile>
</scannerConfigBuildInfo>
</storageModule>
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="luci.null.949486034" name="luci"/>
</storageModule>
</cproject>

View File

@ -1,6 +0,0 @@
dist/
/host
*.o
*.so
*.swp
/docs

View File

@ -1,78 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>luci</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<triggers>clean,full,incremental,</triggers>
<arguments>
<dictionary>
<key>?name?</key>
<value></value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.append_environment</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.autoBuildTarget</key>
<value>all</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.buildArguments</key>
<value></value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.buildCommand</key>
<value>make</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
<value>clean</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.contents</key>
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
<value>false</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.fullBuildTarget</key>
<value>all</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.stopOnError</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
<value>true</value>
</dictionary>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.dltk.lua.core.nature</nature>
</natures>
</projectDescription>

View File

@ -1,27 +0,0 @@
LuCI Installation Instructions
TOC:
1. Kamikaze Feed
2. Kamikaze Packages
1. Kamikaze Feed
1. Change to your OpenWrt buildroot
2. Add the following line to your OpenWrt feeds.conf:
src-svn luci http://svn.luci.subsignal.org/luci/trunk/contrib/package
3. Run ./scripts/feeds update
4. Run ./scripts/feeds install -a -p luci
5. Type make menuconfig and you will find luci in the menu "Administration"
2. Kamikaze Packages
1. cd to the "package" directory of your kamikaze buildroot
3. Type: ln -s /path/to/luci/contrib/package/* ./
4. cd to your kamikaze build root and type: make menuconfig
You will find luci in the menu "Administration"

View File

@ -1,201 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
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
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -1,84 +0,0 @@
include build/config.mk
MODULES = contrib/* applications/* libs/* modules/* themes/* i18n/*
OS:=$(shell uname)
export OS
.PHONY: all build gccbuild luabuild clean host gcchost luahost hostcopy hostclean
all: build
build: gccbuild luabuild
gccbuild:
for i in $(MODULES); do make -C$$i compile; done
luabuild:
for i in $(MODULES); do make -C$$i luabuild; done
clean:
rm -rf docs
for i in $(MODULES); do make -C$$i clean; done
host: build hostcopy
gcchost: gccbuild hostcopy
luahost: luabuild hostcopy
hostcopy:
mkdir -p host/tmp
for i in $(MODULES); do cp -pR $$i/dist/* host/ 2>/dev/null || true; done
for i in $(MODULES); do cp -pR $$i/hostfiles/* host/ 2>/dev/null || true; done
rm -f host/luci
ln -s .$(LUCI_MODULEDIR) host/luci
rm -rf /tmp/luci-* || true
hostenv: host ucidefaults
ucidefaults:
build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "$(realpath host)/bin/uci-defaults --exclude luci-freifunk-*"
runboa: hostenv
libs/sgi-webuci/host/buildconfig.sh $(realpath host) > host/etc/boa/boa.conf
build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "$(realpath host/usr/bin/boa) -c $(realpath host/etc/boa) -d"
runhttpd: hostenv
build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "$(realpath host/usr/bin/lucittpd) $(realpath host)/usr/lib/lucittpd/plugins"
runluci: luahost
build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "$(realpath libs/httpd/host/runluci) $(realpath host) $(HTDOCS)"
runlua: hostenv
build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) lua
runshell: hostenv
build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) $$SHELL
hostclean: clean
rm -rf host
apidocs: hostenv
build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "build/makedocs.sh host/luci/ docs"
uvldocs: hostenv
build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) \
"build/uvldoc $(realpath host) $(UVL_SCHEMEDIR) uvldocs $(DOCS)"
run:
# make run is deprecated #
# Please use: #
# #
# To run LuCI WebUI using LuCIttpd #
# make runhttpd #
# #
# To run LuCI WebUI using Boa/Webuci #
# make runboa #
# #
# To start a shell in the LuCI environment #
# make runshell #
# #
# To run Lua CLI in the LuCI environment #
# make runlua #

View File

@ -1,8 +0,0 @@
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.
Contains code from:
coxpcall - Copyright 2005 - Kepler Project (www.keplerproject.org)
ltn12/luasocket - Copyright 2004-2007 Diego Nehab

View File

@ -1,26 +0,0 @@
I'd like to thank the following people for contributing to this software:
* Anton Popov
- for rewriting the openwrt.org theme
* Florian Fainelli (OpenWrt)
- for the french translation
* Alina Friedrichsen
- for the reworked translation system, help on standards compliance and accessibility
* Yanira
- several applications and bugreports
Also a big thank you goes to:
* Mono (Freifunk Halle)
- for donating a Linksys WRT54GL for development purposes
* tetzlav (Freifunk Leipzig)
- for donating several boards for testing and his feedback
* Mickey (Freifunk Hannover)
- for his feedback and fixes for the OpenWrt builds

View File

@ -1,2 +0,0 @@
include ../../build/config.mk
include ../../build/module.mk

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="refresh" content="0; URL=/cgi-bin/luci/freifunk/olsr" />
</head>
<body style="background-color: black">
<a style="color: white; text-decoration: none" href="/cgi-bin/luci/freifunk/olsr">LuCI - Lua Configuration Interface</a>
</body>
</html>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="refresh" content="0; URL=/cgi-bin/luci/freifunk/olsr" />
</head>
<body style="background-color: black">
<a style="color: white; text-decoration: none" href="/cgi-bin/luci/freifunk/olsr">LuCI - Lua Configuration Interface</a>
</body>
</html>

View File

@ -1,2 +0,0 @@
include ../../build/config.mk
include ../../build/module.mk

View File

@ -1,32 +0,0 @@
--[[
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: ddns.lua 3987 2009-01-02 21:35:25Z Cyrus $
]]--
module("luci.controller.ddns", package.seeall)
function index()
require("luci.i18n")
luci.i18n.loadc("ddns")
if not luci.fs.access("/etc/config/ddns") then
return
end
local page = entry({"admin", "services", "ddns"}, cbi("ddns/ddns"), luci.i18n.translate("ddns"), 60)
page.i18n = "ddns"
page.dependent = true
local page = entry({"mini", "network", "ddns"}, cbi("ddns/ddnsmini", {autoapply=true}), luci.i18n.translate("ddns"), 60)
page.i18n = "ddns"
page.dependent = true
end

View File

@ -1,8 +0,0 @@
ddns = 'Dynamisches DNS'
ddns_desc = 'Dynamisches DNS erlaubt es, den Router bei dynamischer IP-Adresse über einen festen DNS-Namen zu erreichen.'
ddns_service_ipsource = 'Quelle der IP-Adresse'
ddns_service_checkinterval = 'Teste auf neue IP alle'
ddns_service_checkunit = 'Test-Zeiteinheit'
ddns_service_forceinterval = 'Erzwinge Aktualisierung alle'
ddns_service_forceunit = 'Erzwinge-Zeiteinheit'
ddns_service_updateurl = 'Eigene Update-URL'

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="ddns">Dynamisches DNS</i18n:msg>
<i18n:msg xml:id="ddns_desc">Dynamisches DNS erlaubt es, den Router bei dynamischer IP-Adresse über einen festen DNS-Namen zu erreichen.</i18n:msg>
<i18n:msg xml:id="ddns_service_ipsource">Quelle der IP-Adresse</i18n:msg>
<i18n:msg xml:id="ddns_service_checkinterval">Teste auf neue IP alle</i18n:msg>
<i18n:msg xml:id="ddns_service_checkunit">Test-Zeiteinheit</i18n:msg>
<i18n:msg xml:id="ddns_service_forceinterval">Erzwinge Aktualisierung alle</i18n:msg>
<i18n:msg xml:id="ddns_service_forceunit">Erzwinge-Zeiteinheit</i18n:msg>
<i18n:msg xml:id="ddns_service_updateurl">Eigene Update-URL</i18n:msg>
</i18n:msgs>

View File

@ -1,8 +0,0 @@
ddns = 'Dynamic DNS'
ddns_desc = 'Dynamic DNS allows that your router can be reached with a fixed hostname while having a dynamically changing IP-Address.'
ddns_service_ipsource = 'Source of IP-Address'
ddns_service_checkinterval = 'Check for changed IP every'
ddns_service_checkunit = 'Check-Time unit'
ddns_service_forceinterval = 'Force update every'
ddns_service_forceunit = 'Force-Time unit'
ddns_service_updateurl = 'Custom Update-URL'

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="ddns">Dynamic DNS</i18n:msg>
<i18n:msg xml:id="ddns_desc">Dynamic DNS allows that your router can be reached with a fixed hostname while having a dynamically changing IP-Address.</i18n:msg>
<i18n:msg xml:id="ddns_service_ipsource">Source of IP-Address</i18n:msg>
<i18n:msg xml:id="ddns_service_checkinterval">Check for changed IP every</i18n:msg>
<i18n:msg xml:id="ddns_service_checkunit">Check-Time unit</i18n:msg>
<i18n:msg xml:id="ddns_service_forceinterval">Force update every</i18n:msg>
<i18n:msg xml:id="ddns_service_forceunit">Force-Time unit</i18n:msg>
<i18n:msg xml:id="ddns_service_updateurl">Custom Update-URL</i18n:msg>
</i18n:msgs>

View File

@ -1,8 +0,0 @@
ddns = 'DNS Dynamique'
ddns_desc = 'Le DNS Dynamique permet au routeur d&#39;être joint avec un nom d&#39;hôte fixe bien que changeant dynamiquement d&#39;adresse IP.'
ddns_service_ipsource = 'Source de l&#39;adresse IP'
ddns_service_checkinterval = 'Vérifier l&#39;adresse IP toutes les'
ddns_service_checkunit = 'Unité de temps'
ddns_service_forceinterval = 'Vérification forcée toutes les'
ddns_service_forceunit = 'Unité de temps'
ddns_service_updateurl = 'Url de mise à jour personnalisée'

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="ddns">DNS Dynamique</i18n:msg>
<i18n:msg xml:id="ddns_desc">Le DNS Dynamique permet au routeur d'être joint avec un nom d'hôte fixe bien que changeant dynamiquement d'adresse IP.</i18n:msg>
<i18n:msg xml:id="ddns_service_ipsource">Source de l'adresse IP</i18n:msg>
<i18n:msg xml:id="ddns_service_checkinterval">Vérifier l'adresse IP toutes les</i18n:msg>
<i18n:msg xml:id="ddns_service_checkunit">Unité de temps</i18n:msg>
<i18n:msg xml:id="ddns_service_forceinterval">Vérification forcée toutes les</i18n:msg>
<i18n:msg xml:id="ddns_service_forceunit">Unité de temps</i18n:msg>
<i18n:msg xml:id="ddns_service_updateurl">Url de mise à jour personnalisée</i18n:msg>
</i18n:msgs>

View File

@ -1,8 +0,0 @@
ddns = 'DNS Dinâmico'
ddns_desc = 'DNS dinâmico permite que o seu router possa ser encontrado a partir de um hostname fixo, mesmo usando um Endereço-IP dinâmico.'
ddns_service_ipsource = 'Origem do Endereço-IP'
ddns_service_checkinterval = 'Verificar a cada mudança de IP'
ddns_service_checkunit = 'Unidade de tempo para verificação'
ddns_service_forceinterval = 'Forçar atualização a cada'
ddns_service_forceunit = 'Unidade de tempo para atualização forçada'
ddns_service_updateurl = 'URL para atualização customizada'

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="ddns">DNS Dinâmico</i18n:msg>
<i18n:msg xml:id="ddns_desc">DNS dinâmico permite que o seu router possa ser encontrado a partir de um hostname fixo, mesmo usando um Endereço-IP dinâmico.</i18n:msg>
<i18n:msg xml:id="ddns_service_ipsource">Origem do Endereço-IP</i18n:msg>
<i18n:msg xml:id="ddns_service_checkinterval">Verificar a cada mudança de IP</i18n:msg>
<i18n:msg xml:id="ddns_service_checkunit">Unidade de tempo para verificação</i18n:msg>
<i18n:msg xml:id="ddns_service_forceinterval">Forçar atualização a cada</i18n:msg>
<i18n:msg xml:id="ddns_service_forceunit">Unidade de tempo para atualização forçada</i18n:msg>
<i18n:msg xml:id="ddns_service_updateurl">URL para atualização customizada</i18n:msg>
</i18n:msgs>

View File

@ -1,74 +0,0 @@
--[[
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: ddns.lua 3643 2008-10-29 05:34:34Z jow $
]]--
require("luci.tools.webadmin")
m = Map("ddns", translate("ddns"), translate("ddns_desc"))
s = m:section(TypedSection, "service", "")
s.addremove = true
s:option(Flag, "enabled", translate("enable"))
svc = s:option(ListValue, "service_name", translate("service"))
svc.rmempty = true
svc:value("")
svc:value("dyndns.org")
svc:value("changeip.com")
svc:value("zoneedit.com")
svc:value("no-ip.com")
svc:value("freedns.afraid.org")
s:option(Value, "domain", translate("hostname")).rmempty = true
s:option(Value, "username", translate("username")).rmempty = true
pw = s:option(Value, "password", translate("password"))
pw.rmempty = true
pw.password = true
src = s:option(ListValue, "ip_source")
src:value("network", translate("network"))
src:value("interface", translate("interface"))
src:value("web", "URL")
iface = s:option(ListValue, "ip_network", translate("network"))
iface:depends("ip_source", "network")
iface.rmempty = true
luci.tools.webadmin.cbi_add_networks(iface)
iface = s:option(ListValue, "ip_interface", translate("interface"))
iface:depends("ip_source", "interface")
iface.rmempty = true
for k, v in pairs(luci.sys.net.devices()) do
iface:value(v)
end
web = s:option(Value, "ip_url", "URL")
web:depends("ip_source", "web")
web.rmempty = true
s:option(Value, "update_url").optional = true
s:option(Value, "check_interval").default = 10
unit = s:option(ListValue, "check_unit")
unit.default = "minutes"
unit:value("minutes", "min")
unit:value("hours", "h")
s:option(Value, "force_interval").default = 72
unit = s:option(ListValue, "force_unit")
unit.default = "hours"
unit:value("minutes", "min")
unit:value("hours", "h")
return m

View File

@ -1,52 +0,0 @@
--[[
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: ddnsmini.lua 3643 2008-10-29 05:34:34Z jow $
]]--
m = Map("ddns", translate("ddns"), translate("ddns_desc"))
s = m:section(TypedSection, "service", "")
s.addremove = true
s:option(Flag, "enabled", translate("enable"))
svc = s:option(ListValue, "service_name", translate("service"))
svc.rmempty = true
svc:value("dyndns.org")
svc:value("changeip.com")
svc:value("zoneedit.com")
svc:value("no-ip.com")
svc:value("freedns.afraid.org")
s:option(Value, "domain", translate("hostname")).rmempty = true
s:option(Value, "username", translate("username")).rmempty = true
pw = s:option(Value, "password", translate("password"))
pw.rmempty = true
pw.password = true
s.defaults.ip_source = "network"
s.defaults.ip_network = "wan"
s:option(Value, "check_interval").default = 10
unit = s:option(ListValue, "check_unit")
unit.default = "minutes"
unit:value("minutes", "min")
unit:value("hours", "h")
s:option(Value, "force_interval").default = 72
unit = s:option(ListValue, "force_unit")
unit.default = "hours"
unit:value("minutes", "min")
unit:value("hours", "h")
return m

View File

@ -1,147 +0,0 @@
package ddns
config package
option title 'Dynamic DNS configuration'
config section
option name 'service'
option title 'DynDNS service entry'
option package 'ddns'
option named true
option required true
config variable
option name 'enabled'
option title 'Enable this service entry'
option section 'ddns.service'
option datatype 'boolean'
config variable
option name 'service_name'
option title 'Name of the DynDNS provider'
option section 'ddns.service'
option datatype 'string'
config variable
option name 'domain'
option title 'Own DynDNS domain'
option section 'ddns.service'
option required true
config variable
option name 'username'
option title 'Account username'
option section 'ddns.service'
option required true
config variable
option name 'password'
option title 'Account password'
option section 'ddns.service'
option required true
config variable
option name 'ip_source'
option title 'Method to determine current IP address'
option section 'ddns.service'
option type 'enum'
option required true
config enum
option variable 'ddns.service.ip_source'
option value 'network'
option title 'Read ip address from /etc/config/network'
config enum
option variable 'ddns.service.ip_source'
option value 'interface'
option title 'Determine ip address from given hardware interface'
config enum
option variable 'ddns.service.ip_source'
option value 'web'
option title 'Determine own IP using a remote web page'
config variable
option name 'ip_network'
option title 'Configured network to use IP from'
option section 'ddns.service'
option depends 'ip_source=network'
option valueof 'network.interface'
config variable
option name 'ip_interface'
option title 'Physical network interface to read IP from'
option section 'ddns.service'
option depends 'ip_source=interface'
config variable
option name 'ip_url'
option title 'Web page used to determine IP address'
option section 'ddns.service'
option depends 'ip_source=web'
config variable
option name 'update_url'
option title 'URL format to use for updating DNS information (for yet-unknown providers)'
option section 'ddns.service'
config variable
option name 'check_interval'
option title 'Update check interval'
option section 'ddns.service'
option datatype 'integer'
option required true
config variable
option name 'check_unit'
option title 'Unit for update check interval'
option section 'ddns.service'
option type 'enum'
option required true
config enum
option variable 'ddns.service.check_unit'
option value 'seconds'
config enum
option variable 'ddns.service.check_unit'
option value 'minutes'
config enum
option variable 'ddns.service.check_unit'
option value 'hours'
config enum
option variable 'ddns.service.check_unit'
option value 'days'
config variable
option name 'force_interval'
option title 'Forced update interval'
option section 'ddns.service'
option datatype 'integer'
option required true
config variable
option name 'force_unit'
option title 'Unit of forced update interval'
option section 'ddns.service'
option type 'enum'
option required true
config enum
option variable 'ddns.service.force_unit'
option value 'seconds'
config enum
option variable 'ddns.service.force_unit'
option value 'minutes'
config enum
option variable 'ddns.service.force_unit'
option value 'hours'
config enum
option variable 'ddns.service.force_unit'
option value 'days'

View File

@ -1,2 +0,0 @@
include ../../build/config.mk
include ../../build/module.mk

View File

@ -1,21 +0,0 @@
--[[
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: ffwizard.lua 3941 2008-12-23 21:39:38Z jow $
]]--
module "luci.controller.ffwizard"
function index()
entry({"admin", "freifunk", "ffwizard"}, form("ffwizard"), "Freifunkassistent", 50)
end

View File

@ -1,391 +0,0 @@
--[[
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: ffwizard.lua 4187 2009-01-30 15:07:36Z jow $
]]--
local uci = require "luci.model.uci".cursor()
local tools = require "luci.tools.ffwizard"
local util = require "luci.util"
local sys = require "luci.sys"
-------------------- View --------------------
f = SimpleForm("ffwizward", "Freifunkassistent",
"Dieser Assistent unterstüzt bei der Einrichtung des Routers für das Freifunknetz.")
dev = f:field(ListValue, "device", "WLAN-Gerät")
uci:foreach("wireless", "wifi-device",
function(section)
dev:value(section[".name"])
end)
main = f:field(Flag, "wifi", "Freifunkzugang einrichten")
net = f:field(Value, "net", "Freifunknetz", "1. Teil der IP-Adresse")
net.rmempty = true
net:depends("wifi", "1")
uci:foreach("freifunk", "community", function(s)
net:value(s[".name"], "%s (%s)" % {s.name, s.prefix})
end)
function net.cfgvalue(self, section)
return uci:get("freifunk", "wizard", "net")
end
function net.write(self, section, value)
uci:set("freifunk", "wizard", "net", value)
uci:save("freifunk")
end
subnet = f:field(Value, "subnet", "Subnetz (Projekt)", "2. Teil der IP-Adresse")
subnet.rmempty = true
subnet:depends("wifi", "1")
function subnet.cfgvalue(self, section)
return uci:get("freifunk", "wizard", "subnet")
end
function subnet.write(self, section, value)
uci:set("freifunk", "wizard", "subnet", value)
uci:save("freifunk")
end
node = f:field(Value, "node", "Knoten", "3. Teil der IP-Adresse")
node.rmempty = true
node:depends("wifi", "1")
for i=1, 51 do
node:value(i)
end
function node.cfgvalue(self, section)
return uci:get("freifunk", "wizard", "node")
end
function node.write(self, section, value)
uci:set("freifunk", "wizard", "node", value)
uci:save("freifunk")
end
client = f:field(Flag, "client", "WLAN-DHCP anbieten")
client:depends("wifi", "1")
client.rmempty = true
olsr = f:field(Flag, "olsr", "OLSR einrichten")
olsr.rmempty = true
share = f:field(Flag, "sharenet", "Eigenen Internetzugang freigeben")
share.rmempty = true
-------------------- Control --------------------
function f.handle(self, state, data)
if state == FORM_VALID then
luci.http.redirect(luci.dispatcher.build_url("admin", "uci", "changes"))
return false
elseif state == FORM_INVALID then
self.errmessage = "Ungültige Eingabe: Bitte die Formularfelder auf Fehler prüfen."
end
return true
end
local function _strip_internals(tbl)
tbl = tbl or {}
for k, v in pairs(tbl) do
if k:sub(1, 1) == "." then
tbl[k] = nil
end
end
return tbl
end
-- Configure Freifunk checked
function main.write(self, section, value)
if value == "0" then
return
end
local device = dev:formvalue(section)
local community, external
-- Collect IP-Address
local inet = net:formvalue(section)
local isubnet = subnet:formvalue(section)
local inode = node:formvalue(section)
-- Invalidate fields
if not inet then
net.tag_missing[section] = true
else
community = inet
external = uci:get("freifunk", community, "external") or ""
inet = uci:get("freifunk", community, "prefix") or inet
end
if not isubnet then
subnet.tag_missing[section] = true
end
if not inode then
node.tag_missing[section] = true
end
if not inet or not isubnet or not inode then
return
end
local ip = "%s.%s.%s" % {inet, isubnet, inode}
-- Cleanup
tools.wifi_delete_ifaces(device)
tools.network_remove_interface(device)
tools.firewall_zone_remove_interface("freifunk", device)
-- Tune community settings
if community and uci:get("freifunk", community) then
uci:tset("freifunk", "community", uci:get_all("freifunk", community))
end
-- Tune wifi device
local devconfig = uci:get_all("freifunk", "wifi_device")
util.update(devconfig, uci:get_all(external, "wifi_device") or {})
uci:tset("wireless", device, devconfig)
-- Create wifi iface
local ifconfig = uci:get_all("freifunk", "wifi_iface")
util.update(ifconfig, uci:get_all(external, "wifi_iface") or {})
ifconfig.device = device
ifconfig.network = device
ifconfig.ssid = uci:get("freifunk", community, "ssid")
uci:section("wireless", "wifi-iface", nil, ifconfig)
-- Save wifi
uci:save("wireless")
-- Create firewall zone and add default rules (first time)
local newzone = tools.firewall_create_zone("freifunk", "REJECT", "ACCEPT", "REJECT", true)
if newzone then
uci:foreach("freifunk", "fw_forwarding", function(section)
uci:section("firewall", "forwarding", nil, section)
end)
uci:foreach(external, "fw_forwarding", function(section)
uci:section("firewall", "forwarding", nil, section)
end)
uci:foreach("freifunk", "fw_rule", function(section)
uci:section("firewall", "rule", nil, section)
end)
uci:foreach(external, "fw_rule", function(section)
uci:section("firewall", "rule", nil, section)
end)
end
-- Enforce firewall include
local has_include = false
uci:foreach("firewall", "include",
function(section)
if section.path == "/etc/firewall.freifunk" then
has_include = true
end
end)
if not has_include then
uci:section("firewall", "include", nil,
{ path = "/etc/firewall.freifunk" })
end
-- Allow state: invalid packets
uci:foreach("firewall", "defaults",
function(section)
uci:set("firewall", section[".name"], "drop_invalid", "0")
end)
-- Prepare advanced config
local has_advanced = false
uci:foreach("firewall", "advanced",
function(section) has_advanced = true end)
if not has_advanced then
uci:section("firewall", "advanced", nil,
{ tcp_ecn = "0" })
end
uci:save("firewall")
-- Create network interface
local netconfig = uci:get_all("freifunk", "interface")
util.update(netconfig, uci:get_all(external, "interface") or {})
netconfig.proto = "static"
netconfig.ipaddr = ip
uci:section("network", "interface", device, netconfig)
uci:save("network")
tools.firewall_zone_add_interface("freifunk", device)
-- Set hostname
local new_hostname = ip:gsub("%.", "-")
local old_hostname = sys.hostname()
if old_hostname == "OpenWrt" or old_hostname:match("^%d+-%d+-%d+-%d+$") then
uci:foreach("system", "system",
function(s)
uci:set("system", s['.name'], "hostname", new_hostname)
end)
luci.fs.writefile( "/proc/sys/kernel/hostname", new_hostname.."\n" )
uci:save("system")
end
end
function olsr.write(self, section, value)
if value == "0" then
return
end
local device = dev:formvalue(section)
local community = net:formvalue(section)
local external = community and uci:get("freifunk", community, "external") or ""
-- Configure nameservice
local hostname
uci:foreach("system", "system", function(s) hostname = s.hostname end)
if hostname then
uci:foreach("olsrd", "LoadPlugin",
function(s)
if s.library == "olsrd_nameservice.so.0.3" then
uci:set("olsrd", s['.name'], "name", hostname)
end
end)
end
-- Delete old interface
uci:delete_all("olsrd", "Interface", {interface=device})
-- Write new interface
local olsrbase = uci:get_all("freifunk", "olsr_interface")
util.update(olsrbase, uci:get_all(external, "olsr_interface") or {})
olsrbase.interface = device
olsrbase.ignore = "0"
uci:section("olsrd", "Interface", nil, olsrbase)
uci:save("olsrd")
-- Import hosts
uci:foreach("dhcp", "dnsmasq", function(s)
uci:set("dhcp", s[".name"], "addnhosts", "/var/etc/hosts.olsr")
end)
uci:save("dhcp")
end
function share.write(self, section, value)
uci:delete_all("firewall", "forwarding", {src="freifunk", dest="wan"})
uci:delete_all("olsrd", "LoadPlugin", {library="olsrd_dyn_gw_plain.so.0.4"})
if value == "1" then
uci:section("firewall", "forwarding", nil, {src="freifunk", dest="wan"})
uci:section("olsrd", "LoadPlugin", nil, {library="olsrd_dyn_gw_plain.so.0.4"})
end
uci:save("firewall")
uci:save("olsrd")
end
function client.write(self, section, value)
if value == "0" then
return
end
local device = dev:formvalue(section)
-- Collect IP-Address
local inet = net:formvalue(section)
local isubnet = subnet:formvalue(section)
local inode = node:formvalue(section)
if not inet or not isubnet or not inode then
return
end
local community = inet
local external = community and uci:get("freifunk", community, "external") or ""
inet = uci:get("freifunk", community, "prefix") or inet
local dhcpbeg = 48 + tonumber(inode) * 4
local dclient = "%s.%s.%s" % {inet:gsub("^[0-9]+", "10"), isubnet, dhcpbeg}
local limit = dhcpbeg < 252 and 3 or 2
-- Delete old alias
uci:delete("network", device .. "dhcp")
-- Create alias
local aliasbase = uci:get_all("freifunk", "alias")
util.update(aliasbase, uci:get_all(external, "alias") or {})
aliasbase.interface = device
aliasbase.ipaddr = dclient
aliasbase.proto = "static"
uci:section("network", "alias", device .. "dhcp", aliasbase)
uci:save("network")
-- Create dhcp
local dhcpbase = uci:get_all("freifunk", "dhcp")
util.update(dhcpbase, uci:get_all(external, "dhcp") or {})
dhcpbase.interface = device .. "dhcp"
dhcpbase.start = dhcpbeg
dhcpbase.limit = limit
uci:section("dhcp", "dhcp", device .. "dhcp", dhcpbase)
uci:save("dhcp")
uci:delete_all("firewall", "rule", {
src="freifunk",
proto="udp",
src_port="68",
dest_port="67"
})
uci:section("firewall", "rule", nil, {
src="freifunk",
proto="udp",
src_port="68",
dest_port="67",
target="ACCEPT"
})
uci:delete_all("firewall", "rule", {
src="freifunk",
proto="tcp",
dest_port="8082",
})
uci:section("firewall", "rule", nil, {
src="freifunk",
proto="tcp",
dest_port="8082",
target="ACCEPT"
})
-- Delete old splash
uci:delete_all("luci_splash", "iface", {net=device, zone="freifunk"})
-- Register splash
uci:section("luci_splash", "iface", nil, {net=device, zone="freifunk"})
uci:save("luci_splash")
end
return f

View File

@ -1,149 +0,0 @@
--[[
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: ffwizard.lua 3941 2008-12-23 21:39:38Z jow $
]]--
local uci = require "luci.model.uci"
local util = require "luci.util"
local table = require "table"
local type = type
module "luci.tools.ffwizard"
-- Deletes all references of a wifi device
function wifi_delete_ifaces(device)
local cursor = uci.cursor()
cursor:delete_all("wireless", "wifi-iface", {device=device})
cursor:save("wireless")
end
-- Deletes a network interface and all occurences of it in firewall zones and dhcp
function network_remove_interface(iface)
local cursor = uci.cursor()
if not cursor:delete("network", iface) then
return false
end
local aliases = {iface}
cursor:foreach("network", "alias",
function(section)
if section.interface == iface then
table.insert(aliases, section[".name"])
end
end)
-- Delete Aliases and Routes
cursor:delete_all("network", "route", {interface=iface})
cursor:delete_all("network", "alias", {interface=iface})
-- Delete DHCP sections
cursor:delete_all("dhcp", "dhcp",
function(section)
return util.contains(aliases, section.interface)
end)
-- Remove OLSR sections
cursor:delete_all("olsrd", "Interface", {Interface=iface})
-- Remove Splash sections
cursor:delete_all("luci-splash", "iface", {network=iface})
cursor:save("network")
cursor:save("olsr")
cursor:save("dhcp")
cursor:save("luci-splash")
end
-- Creates a firewall zone
function firewall_create_zone(zone, input, output, forward, masq)
local cursor = uci.cursor()
if not firewall_find_zone(zone) then
local stat = cursor:section("firewall", "zone", nil, {
input = input,
output = output,
forward = forward,
masq = masq and "1",
name = zone
})
cursor:save("firewall")
return stat
end
end
-- Adds interface to zone, creates zone on-demand
function firewall_zone_add_interface(name, interface)
local cursor = uci.cursor()
local zone = firewall_find_zone(name)
local net = cursor:get("firewall", zone, "network")
local old = net or (cursor:get("network", name) and name)
cursor:set("firewall", zone, "network", (old and old .. " " or "") .. interface)
cursor:save("firewall")
end
-- Removes interface from zone
function firewall_zone_remove_interface(name, interface)
local cursor = uci.cursor()
local zone = firewall_find_zone(name)
if zone then
local net = cursor:get("firewall", zone, "network")
local new = remove_list_entry(net, interface)
if new then
if #new > 0 then
cursor:set("firewall", zone, "network", new)
else
cursor:delete("firewall", zone, "network")
end
cursor:save("firewall")
end
end
end
-- Finds the firewall zone with given name
function firewall_find_zone(name)
local find
uci.cursor():foreach("firewall", "zone",
function (section)
if section.name == name then
find = section[".name"]
end
end)
return find
end
-- Helpers --
-- Removes a listentry, handles real and pseduo lists transparently
function remove_list_entry(value, entry)
if type(value) == "nil" then
return nil
end
local result = type(value) == "table" and value or util.split(value, " ")
local key = util.contains(result, entry)
while key do
table.remove(result, key)
key = util.contains(result, entry)
end
result = type(value) == "table" and result or table.concat(result, " ")
return result ~= value and result
end

View File

@ -1,2 +0,0 @@
include ../../build/config.mk
include ../../build/module.mk

View File

@ -1,13 +0,0 @@
module("luci.controller.luci_fw.luci_fw", package.seeall)
function index()
require("luci.i18n").loadc("luci-fw")
local i18n = luci.i18n.translate
entry({"admin", "network", "firewall"}, alias("admin", "network", "firewall", "zones"), i18n("fw_fw"), 60).i18n = "luci-fw"
entry({"admin", "network", "firewall", "zones"}, cbi("luci_fw/zones"), i18n("fw_zones"), 10)
entry({"admin", "network", "firewall", "redirect"}, arcombine(cbi("luci_fw/redirect"), cbi("luci_fw/rrule")), i18n("fw_redirect"), 30).leaf = true
entry({"admin", "network", "firewall", "rule"}, arcombine(cbi("luci_fw/traffic"), cbi("luci_fw/trule")), i18n("fw_traffic"), 20).leaf = true
entry({"mini", "network", "portfw"}, cbi("luci_fw/miniportfw", {autoapply=true}), i18n("fw_portfw", "Portweiterleitung"), 70).i18n = "luci-fw"
end

View File

@ -1,56 +0,0 @@
fw_portfw = 'Portweiterleitung'
fw_redirect = 'Umleitungen'
fw_redirect_desc = 'Umleitungen erlauben es das Ziel von weitergeleiteten Paketen zu verändern.'
fw_forwarding = 'Zone-zu-Zone Verkehr'
fw_fw = 'Firewall'
fw_zone = 'Zone'
fw_zones = 'Zonen'
fw_custfwd = 'Erweiterte Weiterleitung'
firewall_rule = 'Erweiterte Regeln'
firewall_rule_desc = 'Mit erweiterten Regeln kann die Firewall an die eigenen Bedürfnisse angepasst werden. Es werden nur neue Verbindungen betrachtet. Pakete, die zu bereits bestehenden Verbindungen gehören werden automatisch akzeptiert.'
fw_fw1 = 'Die Firewall erstellt Netzwerkzonen über bestimmte Netzwerkschnittstellen um den Netzverkehr zu trennen.'
fw_src = 'Quelle'
fw_dest = 'Ziel'
fw_traffic = 'Verkehrskontrolle'
fw_mtufix = 'MSS Clamping'
fw_dropinvalid = 'Ungültige Pakete verwerfen'
firewall_rule_src = 'Eingangszone'
firewall_rule_dest = 'Ausgangszone'
firewall_rule_srcip = 'Quelladresse'
firewall_rule_destip = 'Zieladresse'
firewall_rule_srcmac = 'Quell-MAC-Adresse'
firewall_rule_srcport = 'Quellport'
firewall_rule_destport = 'Zielport'
firewall_rule_target = 'Aktion'
fw_accept = 'annehmen'
fw_reject = 'zurückweisen'
fw_drop = 'verwerfen'
fw_portfw1 = 'Portweiterleitungen ermöglichen es interne Netzwerkdienste aus einem externen Netzwerk heraus erreichbar zu machen.'
firewall_redirect_src_desc = 'Externe Zone'
firewall_redirect_srcdport = 'Externer Port'
firewall_redirect_srcdport_desc = 'Port od. Erster-Letzter Port'
firewall_redirect_destip = 'Interne Adresse'
firewall_redirect_destip_desc = 'IP-Adresse'
firewall_redirect_destport = 'Interner Port (optional)'
firewall_redirect_destport_desc = 'Port od. Erster-Letzter Port'
firewall_redirect_srcip = 'Quelladresse'
firewall_redirect_srcmac = 'Quell-MAC-Adresse'
fw_forwarding1 = 'An dieser Stelle kann festgelegt zwischen welchen Zonen Netzverkehr hin und her fließen kann. Es werden nur neue Verbindungen betrachtet. Pakete, die zu bereits bestehenden Verbindungen gehören werden automatisch akzeptiert. Bei gelegentlich auftretenden Verbindungsproblemen kann MSS Clamping helfen, ansonsten sollte dies aus Performancegründen deaktiviert bleiben.'
firewall_forwarding_src = 'Eingang'
firewall_forwarding_dest = 'Ausgang'
firewall_defaults = 'Grundeinstellungen'
firewall_defaults_desc = 'Grundeinstellungen die verwendet werden, wenn keine andere Regel angewandt werden kann.'
firewall_defaults_synflood = 'Schutz vor SYN-flood-Attacken'
firewall_defaults_input = 'Eingehender Verkehr'
firewall_defaults_output = 'Ausgehender Verkehr'
firewall_defaults_forward = 'Weitergeleiteter Verkehr'
firewall_zone_desc = 'Zonen teilen das Netzwerk in mehrere Bereiche ein um Netzverkehr sicher zu trennen. Ein oder mehrere Netzwerke gehören zu einer Zone. Das MASQ-Flag legt fest, dass aller ausgehende Netzverkehr einer Zone NAT-maskiert wird.'
firewall_zone_input = 'Eingehender Verkehr'
firewall_zone_input_desc = 'Standardaktion'
firewall_zone_output = 'Ausgehender Verkehr'
firewall_zone_output_desc = 'Standardaktion'
firewall_zone_forward = 'Weitergeleiteter Verkehr'
firewall_zone_forward_desc = 'Standardaktion'
firewall_zone_masq = 'MASQ'
firewall_zone_network = 'Netzwerke'
firewall_zone_network_desc = 'verbundene Netzwerke'

View File

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="fw_portfw">Portweiterleitung</i18n:msg>
<i18n:msg xml:id="fw_redirect">Umleitungen</i18n:msg>
<i18n:msg xml:id="fw_redirect_desc">Umleitungen erlauben es das Ziel von weitergeleiteten Paketen zu verändern.</i18n:msg>
<i18n:msg xml:id="fw_forwarding">Zone-zu-Zone Verkehr</i18n:msg>
<i18n:msg xml:id="fw_fw">Firewall</i18n:msg>
<i18n:msg xml:id="fw_zone">Zone</i18n:msg>
<i18n:msg xml:id="fw_zones">Zonen</i18n:msg>
<i18n:msg xml:id="fw_custfwd">Erweiterte Weiterleitung</i18n:msg>
<i18n:msg xml:id="firewall_rule">Erweiterte Regeln</i18n:msg>
<i18n:msg xml:id="firewall_rule_desc">Mit erweiterten Regeln kann die Firewall an die eigenen Bedürfnisse angepasst werden. Es werden nur neue Verbindungen betrachtet. Pakete, die zu bereits bestehenden Verbindungen gehören werden automatisch akzeptiert.</i18n:msg>
<i18n:msg xml:id="fw_fw1">Die Firewall erstellt Netzwerkzonen über bestimmte Netzwerkschnittstellen um den Netzverkehr zu trennen.</i18n:msg>
<i18n:msg xml:id="fw_src">Quelle</i18n:msg>
<i18n:msg xml:id="fw_dest">Ziel</i18n:msg>
<i18n:msg xml:id="fw_traffic">Verkehrskontrolle</i18n:msg>
<i18n:msg xml:id="fw_mtufix">MSS Clamping</i18n:msg>
<i18n:msg xml:id="fw_dropinvalid">Ungültige Pakete verwerfen</i18n:msg>
<i18n:msg xml:id="firewall_rule_src">Eingangszone</i18n:msg>
<i18n:msg xml:id="firewall_rule_dest">Ausgangszone</i18n:msg>
<i18n:msg xml:id="firewall_rule_srcip">Quelladresse</i18n:msg>
<i18n:msg xml:id="firewall_rule_destip">Zieladresse</i18n:msg>
<i18n:msg xml:id="firewall_rule_srcmac">Quell-MAC-Adresse</i18n:msg>
<i18n:msg xml:id="firewall_rule_srcport">Quellport</i18n:msg>
<i18n:msg xml:id="firewall_rule_destport">Zielport</i18n:msg>
<i18n:msg xml:id="firewall_rule_target">Aktion</i18n:msg>
<i18n:msg xml:id="fw_accept">annehmen</i18n:msg>
<i18n:msg xml:id="fw_reject">zurückweisen</i18n:msg>
<i18n:msg xml:id="fw_drop">verwerfen</i18n:msg>
<i18n:msg xml:id="fw_portfw1">Portweiterleitungen ermöglichen es interne Netzwerkdienste aus einem externen Netzwerk heraus erreichbar zu machen.</i18n:msg>
<i18n:msg xml:id="firewall_redirect_src_desc">Externe Zone</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcdport">Externer Port</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcdport_desc">Port od. Erster-Letzter Port</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destip">Interne Adresse</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destip_desc">IP-Adresse</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destport">Interner Port (optional)</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destport_desc">Port od. Erster-Letzter Port</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcip">Quelladresse</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcmac">Quell-MAC-Adresse</i18n:msg>
<i18n:msg xml:id="fw_forwarding1">An dieser Stelle kann festgelegt zwischen welchen Zonen Netzverkehr hin und her fließen kann. Es werden nur neue Verbindungen betrachtet. Pakete, die zu bereits bestehenden Verbindungen gehören werden automatisch akzeptiert. Bei gelegentlich auftretenden Verbindungsproblemen kann MSS Clamping helfen, ansonsten sollte dies aus Performancegründen deaktiviert bleiben.</i18n:msg>
<i18n:msg xml:id="firewall_forwarding_src">Eingang</i18n:msg>
<i18n:msg xml:id="firewall_forwarding_dest">Ausgang</i18n:msg>
<i18n:msg xml:id="firewall_defaults">Grundeinstellungen</i18n:msg>
<i18n:msg xml:id="firewall_defaults_desc">Grundeinstellungen die verwendet werden, wenn keine andere Regel angewandt werden kann.</i18n:msg>
<i18n:msg xml:id="firewall_defaults_synflood">Schutz vor SYN-flood-Attacken</i18n:msg>
<i18n:msg xml:id="firewall_defaults_input">Eingehender Verkehr</i18n:msg>
<i18n:msg xml:id="firewall_defaults_output">Ausgehender Verkehr</i18n:msg>
<i18n:msg xml:id="firewall_defaults_forward">Weitergeleiteter Verkehr</i18n:msg>
<i18n:msg xml:id="firewall_zone_desc">Zonen teilen das Netzwerk in mehrere Bereiche ein um Netzverkehr sicher zu trennen. Ein oder mehrere Netzwerke gehören zu einer Zone. Das MASQ-Flag legt fest, dass aller ausgehende Netzverkehr einer Zone NAT-maskiert wird.</i18n:msg>
<i18n:msg xml:id="firewall_zone_input">Eingehender Verkehr</i18n:msg>
<i18n:msg xml:id="firewall_zone_input_desc">Standardaktion</i18n:msg>
<i18n:msg xml:id="firewall_zone_output">Ausgehender Verkehr</i18n:msg>
<i18n:msg xml:id="firewall_zone_output_desc">Standardaktion</i18n:msg>
<i18n:msg xml:id="firewall_zone_forward">Weitergeleiteter Verkehr</i18n:msg>
<i18n:msg xml:id="firewall_zone_forward_desc">Standardaktion</i18n:msg>
<i18n:msg xml:id="firewall_zone_masq">MASQ</i18n:msg>
<i18n:msg xml:id="firewall_zone_network">Netzwerke</i18n:msg>
<i18n:msg xml:id="firewall_zone_network_desc">verbundene Netzwerke</i18n:msg>
</i18n:msgs>

View File

@ -1,56 +0,0 @@
fw_portfw = 'Port forwarding'
fw_redirect = 'Traffic Redirection'
fw_redirect_desc = 'Traffic redirection allows you to change the destination address of forwarded packets.'
fw_forwarding = 'Zone-to-Zone traffic'
fw_fw = 'Firewall'
fw_zone = 'Zone'
fw_zones = 'Zones'
fw_custfwd = 'Custom forwarding'
fw_fw1 = 'The firewall creates zones over your network interfaces to control network traffic flow.'
firewall_rule = 'Advanced Rules'
firewall_rule_desc = 'Advanced rules let you customize the firewall to your needs. Only new connections will be matched. Packets belonging to already open connections are automatically allowed to pass the firewall.'
firewall_rule_src = 'Input Zone'
firewall_rule_dest = 'Output Zone'
firewall_rule_srcip = 'Source address'
firewall_rule_destip = 'Destination address'
firewall_rule_srcmac = 'Source MAC-Address'
firewall_rule_srcport = 'Source port'
firewall_rule_destport = 'Destination port'
firewall_rule_target = 'Action'
fw_accept = 'accept'
fw_reject = 'reject'
fw_drop = 'drop'
fw_src = 'Source'
fw_dest = 'Destination'
fw_traffic = 'Traffic Control'
fw_mtufix = 'MSS Clamping'
fw_dropinvalid = 'Drop invalid packets'
fw_portfw1 = 'Port forwarding allows to provide network services in the internal network to an external network.'
firewall_redirect_src_desc = 'External Zone'
firewall_redirect_srcdport = 'External port'
firewall_redirect_srcdport_desc = 'port or range as first-last'
firewall_redirect_srcip = 'Source address'
firewall_redirect_srcmac = 'Source MAC'
firewall_redirect_destip = 'Internal address'
firewall_redirect_destip_desc = 'IP-Address'
firewall_redirect_destport = 'Internal port (optional)'
firewall_redirect_destport_desc = 'port or range as first-last'
fw_forwarding1 = 'Here you can specify which network traffic is allowed to flow between network zones. Only new connections will be matched. Packets belonging to already open connections are automatically allowed to pass the firewall. If you experience occasional connection problems try enabling MSS Clamping otherwise disable it for performance reasons.'
firewall_forwarding_src = 'Input'
firewall_forwarding_dest = 'Output'
firewall_defaults = 'Defaults'
firewall_defaults_desc = 'These are the default settings that are used if no other rules match.'
firewall_defaults_synflood = 'SYN-flood protection'
firewall_defaults_input = 'Incoming Traffic'
firewall_defaults_output = 'Outgoing Traffic'
firewall_defaults_forward = 'Forwarded Traffic'
firewall_zone_desc = 'Zones part the network interfaces into certain isolated areas to separate network traffic. One or more networks can belong to a zone. The MASQ-flag enables NAT masquerading for all outgoing traffic on this zone.'
firewall_zone_input = 'Incoming Traffic'
firewall_zone_input_desc = 'Default Policy'
firewall_zone_output = 'Outgoing Traffic'
firewall_zone_output_desc = 'Default Policy'
firewall_zone_forward = 'Forwarded Traffic'
firewall_zone_forward_desc = 'Default Policy'
firewall_zone_masq = 'MASQ'
firewall_zone_network = 'Networks'
firewall_zone_network_desc = 'contained networks'

View File

@ -1,66 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="fw_portfw">Port forwarding</i18n:msg>
<i18n:msg xml:id="fw_redirect">Traffic Redirection</i18n:msg>
<i18n:msg xml:id="fw_redirect_desc">Traffic redirection allows you to change the destination address of forwarded packets.</i18n:msg>
<i18n:msg xml:id="fw_forwarding">Zone-to-Zone traffic</i18n:msg>
<i18n:msg xml:id="fw_fw">Firewall</i18n:msg>
<i18n:msg xml:id="fw_zone">Zone</i18n:msg>
<i18n:msg xml:id="fw_zones">Zones</i18n:msg>
<i18n:msg xml:id="fw_custfwd">Custom forwarding</i18n:msg>
<i18n:msg xml:id="fw_fw1">The firewall creates zones over your network interfaces to control network traffic flow.</i18n:msg>
<i18n:msg xml:id="firewall_rule">Advanced Rules</i18n:msg>
<i18n:msg xml:id="firewall_rule_desc">Advanced rules let you customize the firewall to your needs. Only new connections will be matched. Packets belonging to already open connections are automatically allowed to pass the firewall.</i18n:msg>
<i18n:msg xml:id="firewall_rule_src">Input Zone</i18n:msg>
<i18n:msg xml:id="firewall_rule_dest">Output Zone</i18n:msg>
<i18n:msg xml:id="firewall_rule_srcip">Source address</i18n:msg>
<i18n:msg xml:id="firewall_rule_destip">Destination address</i18n:msg>
<i18n:msg xml:id="firewall_rule_srcmac">Source MAC-Address</i18n:msg>
<i18n:msg xml:id="firewall_rule_srcport">Source port</i18n:msg>
<i18n:msg xml:id="firewall_rule_destport">Destination port</i18n:msg>
<i18n:msg xml:id="firewall_rule_target">Action</i18n:msg>
<i18n:msg xml:id="fw_accept">accept</i18n:msg>
<i18n:msg xml:id="fw_reject">reject</i18n:msg>
<i18n:msg xml:id="fw_drop">drop</i18n:msg>
<i18n:msg xml:id="fw_src">Source</i18n:msg>
<i18n:msg xml:id="fw_dest">Destination</i18n:msg>
<i18n:msg xml:id="fw_traffic">Traffic Control</i18n:msg>
<i18n:msg xml:id="fw_mtufix">MSS Clamping</i18n:msg>
<i18n:msg xml:id="fw_dropinvalid">Drop invalid packets</i18n:msg>
<i18n:msg xml:id="fw_portfw1">Port forwarding allows to provide network services in the internal network to an external network.</i18n:msg>
<i18n:msg xml:id="firewall_redirect_src_desc">External Zone</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcdport">External port</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcdport_desc">port or range as first-last</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcip">Source address</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcmac">Source MAC</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destip">Internal address</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destip_desc">IP-Address</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destport">Internal port (optional)</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destport_desc">port or range as first-last</i18n:msg>
<i18n:msg xml:id="fw_forwarding1">Here you can specify which network traffic is allowed to flow between network zones. Only new connections will be matched. Packets belonging to already open connections are automatically allowed to pass the firewall. If you experience occasional connection problems try enabling MSS Clamping otherwise disable it for performance reasons.</i18n:msg>
<i18n:msg xml:id="firewall_forwarding_src">Input</i18n:msg>
<i18n:msg xml:id="firewall_forwarding_dest">Output</i18n:msg>
<i18n:msg xml:id="firewall_defaults">Defaults</i18n:msg>
<i18n:msg xml:id="firewall_defaults_desc">These are the default settings that are used if no other rules match.</i18n:msg>
<i18n:msg xml:id="firewall_defaults_synflood">SYN-flood protection</i18n:msg>
<i18n:msg xml:id="firewall_defaults_input">Incoming Traffic</i18n:msg>
<i18n:msg xml:id="firewall_defaults_output">Outgoing Traffic</i18n:msg>
<i18n:msg xml:id="firewall_defaults_forward">Forwarded Traffic</i18n:msg>
<i18n:msg xml:id="firewall_zone_desc">Zones part the network interfaces into certain isolated areas to separate network traffic. One or more networks can belong to a zone. The MASQ-flag enables NAT masquerading for all outgoing traffic on this zone.</i18n:msg>
<i18n:msg xml:id="firewall_zone_input">Incoming Traffic</i18n:msg>
<i18n:msg xml:id="firewall_zone_input_desc">Default Policy</i18n:msg>
<i18n:msg xml:id="firewall_zone_output">Outgoing Traffic</i18n:msg>
<i18n:msg xml:id="firewall_zone_output_desc">Default Policy</i18n:msg>
<i18n:msg xml:id="firewall_zone_forward">Forwarded Traffic</i18n:msg>
<i18n:msg xml:id="firewall_zone_forward_desc">Default Policy</i18n:msg>
<i18n:msg xml:id="firewall_zone_masq">MASQ</i18n:msg>
<i18n:msg xml:id="firewall_zone_network">Networks</i18n:msg>
<i18n:msg xml:id="firewall_zone_network_desc">contained networks</i18n:msg>
</i18n:msgs>

View File

@ -1,56 +0,0 @@
fw_portfw = 'Redirection de port'
fw_redirect = 'Redirection de trafic'
fw_redirect_desc = 'La redirection de trafic vous permet de changer l&#39;adresse de destination des paquets transférés.'
fw_forwarding = 'Trafic inter-zone'
fw_fw = 'Pare-Feu'
fw_zone = 'Zone'
fw_zones = 'Zones'
fw_custfwd = 'Transfert particulière'
fw_fw1 = 'Le pare-feu crée des zone à partir des interfaces réseaux pour controller le trafic réseau.'
firewall_rule = 'Règles Avancées'
firewall_rule_desc = 'Les règles avancées vous laisse personnaliser le pare-feu selon vos besoins. Seules les nouvelles connexions seront prises en compte. Les paquets appartenant à des connexions déjà ouvertes sont automatiquement admises à passer le pare-feu.'
firewall_rule_src = 'Zone d&#39;Entrée (Input)'
firewall_rule_dest = 'Zone de Sortie (Output)'
firewall_rule_srcip = 'Adresse source'
firewall_rule_destip = 'Adresse de destination'
firewall_rule_srcmac = 'Adresse MAC source'
firewall_rule_srcport = 'Port source'
firewall_rule_destport = 'Port de destination'
firewall_rule_target = 'Action'
fw_accept = 'accepter'
fw_reject = 'rejeter'
fw_drop = 'ignorer (drop)'
fw_src = 'Source'
fw_dest = 'Destination'
fw_traffic = 'Contrôle de Trafic'
fw_mtufix = 'MSS-Correction'
fw_dropinvalid = 'Drop incorrect packets'
fw_portfw1 = 'La redirection de port vous permet d&#39;exposer des services réseaux de votre réseau local au réseau externe.'
firewall_redirect_src_desc = 'Zone externe'
firewall_redirect_srcdport = 'Port externe'
firewall_redirect_srcdport_desc = 'port ou plage de ports (premier-dernier)'
firewall_redirect_srcip = 'Adresse source'
firewall_redirect_srcmac = 'MAC source'
firewall_redirect_destip = 'Adresse interne'
firewall_redirect_destip_desc = 'Adresse IP'
firewall_redirect_destport = 'Port interne'
firewall_redirect_destport_desc = 'port ou plage de ports (premier-dernier)'
fw_forwarding1 = 'Ici, vous pouvez spécifier quel trafic réseau est autorisé à transiter entre les zones réseaux. Seules les nouvelles connexions seront prises en compte. Les paquets appartenant à des connexions déjà ouvertes sont automatiquement admises à passer le pare-feu.'
firewall_forwarding_src = 'Entrée (Input)'
firewall_forwarding_dest = 'Sortie (Output)'
firewall_defaults = 'Défauts'
firewall_defaults_desc = 'Ceci sont les paramètres par défaut qui sont utilisés si aucune autre règle ne s&#39;applique.'
firewall_defaults_synflood = 'Protection anti SYN-flood'
firewall_defaults_input = 'Trafic Entrant'
firewall_defaults_output = 'Trafic Sortant'
firewall_defaults_forward = 'Trafic Transféré'
firewall_zone_desc = 'Les zones partagent les interfaces réseaux en régions isolées pour séparer les trafic réseaux. Seules les nouvelles connexions seront prises en compte. Les paquets appartenant à des connexions déjà ouvertes sont automatiquement admises à passer le pare-feu.'
firewall_zone_input = 'Trafic Entrant'
firewall_zone_input_desc = 'Politique par Défaut'
firewall_zone_output = 'Trafic Sortant'
firewall_zone_output_desc = 'Politique par Défaut'
firewall_zone_forward = 'Trafic Transféré'
firewall_zone_forward_desc = 'Politique par Défaut'
firewall_zone_masq = 'MASQ'
firewall_zone_network = 'Réseaux'
firewall_zone_network_desc = 'réseaux compris'

View File

@ -1,66 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="fw_portfw">Redirection de port</i18n:msg>
<i18n:msg xml:id="fw_redirect">Redirection de trafic</i18n:msg>
<i18n:msg xml:id="fw_redirect_desc">La redirection de trafic vous permet de changer l'adresse de destination des paquets transférés.</i18n:msg>
<i18n:msg xml:id="fw_forwarding">Trafic inter-zone</i18n:msg>
<i18n:msg xml:id="fw_fw">Pare-Feu</i18n:msg>
<i18n:msg xml:id="fw_zone">Zone</i18n:msg>
<i18n:msg xml:id="fw_zones">Zones</i18n:msg>
<i18n:msg xml:id="fw_custfwd">Transfert particulière</i18n:msg>
<i18n:msg xml:id="fw_fw1">Le pare-feu crée des zone à partir des interfaces réseaux pour controller le trafic réseau.</i18n:msg>
<i18n:msg xml:id="firewall_rule">Règles Avancées</i18n:msg>
<i18n:msg xml:id="firewall_rule_desc">Les règles avancées vous laisse personnaliser le pare-feu selon vos besoins. Seules les nouvelles connexions seront prises en compte. Les paquets appartenant à des connexions déjà ouvertes sont automatiquement admises à passer le pare-feu.</i18n:msg>
<i18n:msg xml:id="firewall_rule_src">Zone d'Entrée (Input)</i18n:msg>
<i18n:msg xml:id="firewall_rule_dest">Zone de Sortie (Output)</i18n:msg>
<i18n:msg xml:id="firewall_rule_srcip">Adresse source</i18n:msg>
<i18n:msg xml:id="firewall_rule_destip">Adresse de destination</i18n:msg>
<i18n:msg xml:id="firewall_rule_srcmac">Adresse MAC source</i18n:msg>
<i18n:msg xml:id="firewall_rule_srcport">Port source</i18n:msg>
<i18n:msg xml:id="firewall_rule_destport">Port de destination</i18n:msg>
<i18n:msg xml:id="firewall_rule_target">Action</i18n:msg>
<i18n:msg xml:id="fw_accept">accepter</i18n:msg>
<i18n:msg xml:id="fw_reject">rejeter</i18n:msg>
<i18n:msg xml:id="fw_drop">ignorer (drop)</i18n:msg>
<i18n:msg xml:id="fw_src">Source</i18n:msg>
<i18n:msg xml:id="fw_dest">Destination</i18n:msg>
<i18n:msg xml:id="fw_traffic">Contrôle de Trafic</i18n:msg>
<i18n:msg xml:id="fw_mtufix">MSS-Correction</i18n:msg>
<i18n:msg xml:id="fw_dropinvalid">Drop incorrect packets</i18n:msg>
<i18n:msg xml:id="fw_portfw1">La redirection de port vous permet d'exposer des services réseaux de votre réseau local au réseau externe.</i18n:msg>
<i18n:msg xml:id="firewall_redirect_src_desc">Zone externe</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcdport">Port externe</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcdport_desc">port ou plage de ports (premier-dernier)</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcip">Adresse source</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcmac">MAC source</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destip">Adresse interne</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destip_desc">Adresse IP</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destport">Port interne</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destport_desc">port ou plage de ports (premier-dernier)</i18n:msg>
<i18n:msg xml:id="fw_forwarding1">Ici, vous pouvez spécifier quel trafic réseau est autorisé à transiter entre les zones réseaux. Seules les nouvelles connexions seront prises en compte. Les paquets appartenant à des connexions déjà ouvertes sont automatiquement admises à passer le pare-feu.</i18n:msg>
<i18n:msg xml:id="firewall_forwarding_src">Entrée (Input)</i18n:msg>
<i18n:msg xml:id="firewall_forwarding_dest">Sortie (Output)</i18n:msg>
<i18n:msg xml:id="firewall_defaults">Défauts</i18n:msg>
<i18n:msg xml:id="firewall_defaults_desc">Ceci sont les paramètres par défaut qui sont utilisés si aucune autre règle ne s'applique.</i18n:msg>
<i18n:msg xml:id="firewall_defaults_synflood">Protection anti SYN-flood</i18n:msg>
<i18n:msg xml:id="firewall_defaults_input">Trafic Entrant</i18n:msg>
<i18n:msg xml:id="firewall_defaults_output">Trafic Sortant</i18n:msg>
<i18n:msg xml:id="firewall_defaults_forward">Trafic Transféré</i18n:msg>
<i18n:msg xml:id="firewall_zone_desc">Les zones partagent les interfaces réseaux en régions isolées pour séparer les trafic réseaux. Seules les nouvelles connexions seront prises en compte. Les paquets appartenant à des connexions déjà ouvertes sont automatiquement admises à passer le pare-feu.</i18n:msg>
<i18n:msg xml:id="firewall_zone_input">Trafic Entrant</i18n:msg>
<i18n:msg xml:id="firewall_zone_input_desc">Politique par Défaut</i18n:msg>
<i18n:msg xml:id="firewall_zone_output">Trafic Sortant</i18n:msg>
<i18n:msg xml:id="firewall_zone_output_desc">Politique par Défaut</i18n:msg>
<i18n:msg xml:id="firewall_zone_forward">Trafic Transféré</i18n:msg>
<i18n:msg xml:id="firewall_zone_forward_desc">Politique par Défaut</i18n:msg>
<i18n:msg xml:id="firewall_zone_masq">MASQ</i18n:msg>
<i18n:msg xml:id="firewall_zone_network">Réseaux</i18n:msg>
<i18n:msg xml:id="firewall_zone_network_desc">réseaux compris</i18n:msg>
</i18n:msgs>

View File

@ -1,56 +0,0 @@
fw_portfw = 'Redirecionamento de portas'
fw_redirect = 'Redirecionamento de Tráfego'
fw_redirect_desc = 'Redirecionamento do tráfego permite que você altere o endereço de destino dos pacotes enviados.'
fw_forwarding = 'Tráfego de Zona-para-Zona'
fw_fw = 'Firewall'
fw_zone = 'Zona'
fw_zones = 'Zonas'
fw_custfwd = 'Redirecionamento customizado'
fw_fw1 = 'O firewall cria zonas sobre suas interfaces de rede para controlar o fluxo do tráfego.'
firewall_rule = 'Regras Avançadas'
firewall_rule_desc = 'As regras avançadas permitem que você personalize o firewall de acordo com suas necessidades. Somente novas conexões serão processadas. Pacotes pertencentes às conexões já abertas estão automaticamente permitidos para passar pelo firewall.'
firewall_rule_src = 'Zona de Entrada'
firewall_rule_dest = 'Zona de Saída'
firewall_rule_srcip = 'Endereço de origem'
firewall_rule_destip = 'Endereço de destino'
firewall_rule_srcmac = 'Endereço-MAC de origem'
firewall_rule_srcport = 'Porta de origem'
firewall_rule_destport = 'Porta de destino'
firewall_rule_target = 'Ação'
fw_accept = 'aceitar'
fw_reject = 'rejeitar'
fw_drop = 'dropar'
fw_src = 'Origem'
fw_dest = 'Destino'
fw_traffic = 'Controle de Tráfego'
fw_mtufix = 'MSS-Correction'
fw_dropinvalid = 'Drop invalid packets'
fw_portfw1 = 'O redirecionamento de portas permite prover serviços de rede na rede interna para uma rede externa.'
firewall_redirect_src_desc = 'Zona Externa'
firewall_redirect_srcdport = 'Porta Externa'
firewall_redirect_srcdport_desc = 'porta ou intervalo primeira-última'
firewall_redirect_srcip = 'Endereço de origem'
firewall_redirect_srcmac = 'MAC de origem'
firewall_redirect_destip = 'Endereço interno'
firewall_redirect_destip_desc = 'Endereço-IP'
firewall_redirect_destport = 'Porta interna (opcional)'
firewall_redirect_destport_desc = 'porta ou intervalo primeira-última'
fw_forwarding1 = 'Aqui você pode especificar qual tráfego de rede será permitido para o fluxo entre zonas das redes. Somente novas conexões serão processadas. Pacotes pertencentes à conexões já abertas estão automaticamente permitidos para passar pelo firewall.'
firewall_forwarding_src = 'Entrada'
firewall_forwarding_dest = 'Saída'
firewall_defaults = 'Padrões'
firewall_defaults_desc = 'Estas são as configurações padrões, que serão usadas se não houver outras regras.'
firewall_defaults_synflood = 'Proteção SYN-flood'
firewall_defaults_input = 'Tráfego de Entrada'
firewall_defaults_output = 'Tráfego de Saída'
firewall_defaults_forward = 'Tráfego Redirecionado'
firewall_zone_desc = 'Zonas são interfaces de redes usadas para separar o tráfego da rede. Uma ou mais redes podem pertencer a uma zona. A flag-MASQ ativa o mascaramento NAT para todo o tráfego de saída desta zona.'
firewall_zone_input = 'Tráfego de Entrada'
firewall_zone_input_desc = 'Política Padrão'
firewall_zone_output = 'Tráfego de Saída'
firewall_zone_output_desc = 'Política Padrão'
firewall_zone_forward = 'Tráfego Redirecionado'
firewall_zone_forward_desc = 'Política Padrão'
firewall_zone_masq = 'MASQ'
firewall_zone_network = 'Redes'
firewall_zone_network_desc = 'redes contidas'

View File

@ -1,66 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="fw_portfw">Redirecionamento de portas</i18n:msg>
<i18n:msg xml:id="fw_redirect">Redirecionamento de Tráfego</i18n:msg>
<i18n:msg xml:id="fw_redirect_desc">Redirecionamento do tráfego permite que você altere o endereço de destino dos pacotes enviados.</i18n:msg>
<i18n:msg xml:id="fw_forwarding">Tráfego de Zona-para-Zona</i18n:msg>
<i18n:msg xml:id="fw_fw">Firewall</i18n:msg>
<i18n:msg xml:id="fw_zone">Zona</i18n:msg>
<i18n:msg xml:id="fw_zones">Zonas</i18n:msg>
<i18n:msg xml:id="fw_custfwd">Redirecionamento customizado</i18n:msg>
<i18n:msg xml:id="fw_fw1">O firewall cria zonas sobre suas interfaces de rede para controlar o fluxo do tráfego.</i18n:msg>
<i18n:msg xml:id="firewall_rule">Regras Avançadas</i18n:msg>
<i18n:msg xml:id="firewall_rule_desc">As regras avançadas permitem que você personalize o firewall de acordo com suas necessidades. Somente novas conexões serão processadas. Pacotes pertencentes às conexões já abertas estão automaticamente permitidos para passar pelo firewall.</i18n:msg>
<i18n:msg xml:id="firewall_rule_src">Zona de Entrada</i18n:msg>
<i18n:msg xml:id="firewall_rule_dest">Zona de Saída</i18n:msg>
<i18n:msg xml:id="firewall_rule_srcip">Endereço de origem</i18n:msg>
<i18n:msg xml:id="firewall_rule_destip">Endereço de destino</i18n:msg>
<i18n:msg xml:id="firewall_rule_srcmac">Endereço-MAC de origem</i18n:msg>
<i18n:msg xml:id="firewall_rule_srcport">Porta de origem</i18n:msg>
<i18n:msg xml:id="firewall_rule_destport">Porta de destino</i18n:msg>
<i18n:msg xml:id="firewall_rule_target">Ação</i18n:msg>
<i18n:msg xml:id="fw_accept">aceitar</i18n:msg>
<i18n:msg xml:id="fw_reject">rejeitar</i18n:msg>
<i18n:msg xml:id="fw_drop">dropar</i18n:msg>
<i18n:msg xml:id="fw_src">Origem</i18n:msg>
<i18n:msg xml:id="fw_dest">Destino</i18n:msg>
<i18n:msg xml:id="fw_traffic">Controle de Tráfego</i18n:msg>
<i18n:msg xml:id="fw_mtufix">MSS-Correction</i18n:msg>
<i18n:msg xml:id="fw_dropinvalid">Drop invalid packets</i18n:msg>
<i18n:msg xml:id="fw_portfw1">O redirecionamento de portas permite prover serviços de rede na rede interna para uma rede externa.</i18n:msg>
<i18n:msg xml:id="firewall_redirect_src_desc">Zona Externa</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcdport">Porta Externa</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcdport_desc">porta ou intervalo primeira-última</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcip">Endereço de origem</i18n:msg>
<i18n:msg xml:id="firewall_redirect_srcmac">MAC de origem</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destip">Endereço interno</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destip_desc">Endereço-IP</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destport">Porta interna (opcional)</i18n:msg>
<i18n:msg xml:id="firewall_redirect_destport_desc">porta ou intervalo primeira-última</i18n:msg>
<i18n:msg xml:id="fw_forwarding1">Aqui você pode especificar qual tráfego de rede será permitido para o fluxo entre zonas das redes. Somente novas conexões serão processadas. Pacotes pertencentes à conexões já abertas estão automaticamente permitidos para passar pelo firewall.</i18n:msg>
<i18n:msg xml:id="firewall_forwarding_src">Entrada</i18n:msg>
<i18n:msg xml:id="firewall_forwarding_dest">Saída</i18n:msg>
<i18n:msg xml:id="firewall_defaults">Padrões</i18n:msg>
<i18n:msg xml:id="firewall_defaults_desc">Estas são as configurações padrões, que serão usadas se não houver outras regras.</i18n:msg>
<i18n:msg xml:id="firewall_defaults_synflood">Proteção SYN-flood</i18n:msg>
<i18n:msg xml:id="firewall_defaults_input">Tráfego de Entrada</i18n:msg>
<i18n:msg xml:id="firewall_defaults_output">Tráfego de Saída</i18n:msg>
<i18n:msg xml:id="firewall_defaults_forward">Tráfego Redirecionado</i18n:msg>
<i18n:msg xml:id="firewall_zone_desc">Zonas são interfaces de redes usadas para separar o tráfego da rede. Uma ou mais redes podem pertencer a uma zona. A flag-MASQ ativa o mascaramento NAT para todo o tráfego de saída desta zona.</i18n:msg>
<i18n:msg xml:id="firewall_zone_input">Tráfego de Entrada</i18n:msg>
<i18n:msg xml:id="firewall_zone_input_desc">Política Padrão</i18n:msg>
<i18n:msg xml:id="firewall_zone_output">Tráfego de Saída</i18n:msg>
<i18n:msg xml:id="firewall_zone_output_desc">Política Padrão</i18n:msg>
<i18n:msg xml:id="firewall_zone_forward">Tráfego Redirecionado</i18n:msg>
<i18n:msg xml:id="firewall_zone_forward_desc">Política Padrão</i18n:msg>
<i18n:msg xml:id="firewall_zone_masq">MASQ</i18n:msg>
<i18n:msg xml:id="firewall_zone_network">Redes</i18n:msg>
<i18n:msg xml:id="firewall_zone_network_desc">redes contidas</i18n:msg>
</i18n:msgs>

View File

@ -1,45 +0,0 @@
--[[
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: miniportfw.lua 3070 2008-09-02 11:27:00Z Cyrus $
]]--
require("luci.sys")
m = Map("firewall", translate("fw_portfw"), translate("fw_portfw1"))
s = m:section(TypedSection, "redirect", "")
s:depends("src", "wan")
s.defaults.src = "wan"
s.template = "cbi/tblsection"
s.addremove = true
s.anonymous = true
name = s:option(Value, "_name", translate("name"), translate("cbi_optional"))
name.size = 10
proto = s:option(ListValue, "proto", translate("protocol"))
proto:value("tcp", "TCP")
proto:value("udp", "UDP")
proto:value("tcpudp", "TCP+UDP")
dport = s:option(Value, "src_dport")
dport.size = 5
to = s:option(Value, "dest_ip")
for i, dataset in ipairs(luci.sys.net.arptable()) do
to:value(dataset["IP address"])
end
toport = s:option(Value, "dest_port")
toport.size = 5
return m

View File

@ -1,50 +0,0 @@
--[[
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: redirect.lua 3500 2008-10-03 16:23:43Z Cyrus $
]]--
require("luci.sys")
m = Map("firewall", translate("fw_redirect"), translate("fw_redirect_desc"))
s = m:section(TypedSection, "redirect", "")
s.template = "cbi/tblsection"
s.addremove = true
s.anonymous = true
s.extedit = luci.dispatcher.build_url("admin", "network", "firewall", "redirect", "%s")
name = s:option(Value, "_name", translate("name"), translate("cbi_optional"))
name.size = 10
iface = s:option(ListValue, "src", translate("fw_zone"))
iface.default = "wan"
luci.model.uci.cursor():foreach("firewall", "zone",
function (section)
iface:value(section.name)
end)
proto = s:option(ListValue, "proto", translate("protocol"))
proto:value("tcp", "TCP")
proto:value("udp", "UDP")
proto:value("tcpudp", "TCP+UDP")
dport = s:option(Value, "src_dport")
dport.size = 5
to = s:option(Value, "dest_ip")
for i, dataset in ipairs(luci.sys.net.arptable()) do
to:value(dataset["IP address"])
end
toport = s:option(Value, "dest_port")
toport.size = 5
return m

View File

@ -1,69 +0,0 @@
--[[
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: rrule.lua 4200 2009-01-30 18:57:14Z Cyrus $
]]--
require("luci.sys")
arg[1] = arg[1] or ""
m = Map("firewall", translate("fw_redirect"), translate("fw_redirect_desc"))
s = m:section(NamedSection, arg[1], "redirect", "")
s.anonymous = true
s.addremove = false
back = s:option(DummyValue, "_overview", translate("overview"))
back.value = ""
back.titleref = luci.dispatcher.build_url("admin", "network", "firewall", "redirect")
name = s:option(Value, "_name", translate("name"))
name.rmempty = true
name.size = 10
iface = s:option(ListValue, "src", translate("fw_zone"))
iface.default = "wan"
luci.model.uci.cursor():foreach("firewall", "zone",
function (section)
iface:value(section.name)
end)
s:option(Value, "src_ip", translate("firewall_redirect_srcip")).optional = true
s:option(Value, "src_mac", translate("firewall_redirect_srcmac")).optional = true
sport = s:option(Value, "src_port", translate("firewall_rule_srcport"))
sport:depends("proto", "tcp")
sport:depends("proto", "udp")
sport:depends("proto", "tcpudp")
proto = s:option(ListValue, "proto", translate("protocol"))
proto.optional = true
proto:value("")
proto:value("tcp", "TCP")
proto:value("udp", "UDP")
proto:value("tcpudp", "TCP+UDP")
dport = s:option(Value, "src_dport", translate("firewall_redirect_srcdport"))
dport.size = 5
dport:depends("proto", "tcp")
dport:depends("proto", "udp")
dport:depends("proto", "tcpudp")
to = s:option(Value, "dest_ip", translate("firewall_redirect_destip"))
for i, dataset in ipairs(luci.sys.net.arptable()) do
to:value(dataset["IP address"])
end
toport = s:option(Value, "dest_port", translate("firewall_redirect_destport"))
toport.optional = true
toport.size = 5
return m

View File

@ -1,82 +0,0 @@
--[[
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: traffic.lua 4181 2009-01-29 15:04:16Z Cyrus $
]]--
m = Map("firewall", translate("fw_traffic"))
s = m:section(TypedSection, "forwarding", translate("fw_forwarding"), translate("fw_forwarding1"))
s.template = "cbi/tblsection"
s.addremove = true
s.anonymous = true
iface = s:option(ListValue, "src", translate("fw_src"))
oface = s:option(ListValue, "dest", translate("fw_dest"))
s:option(Flag, "mtu_fix", translate("fw_mtufix"))
luci.model.uci.cursor():foreach("firewall", "zone",
function (section)
iface:value(section.name)
oface:value(section.name)
end)
s = m:section(TypedSection, "rule")
s.addremove = true
s.anonymous = true
s.template = "cbi/tblsection"
s.extedit = luci.dispatcher.build_url("admin", "network", "firewall", "rule", "%s")
s.defaults.target = "ACCEPT"
local created = nil
function s.create(self, section)
created = TypedSection.create(self, section)
end
function s.parse(self, ...)
TypedSection.parse(self, ...)
if created then
m.uci:save("firewall")
luci.http.redirect(luci.dispatcher.build_url(
"admin", "network", "firewall", "rule", created
))
end
end
s:option(DummyValue, "_name", translate("name"))
s:option(DummyValue, "proto", translate("protocol"))
src = s:option(DummyValue, "src", translate("fw_src"))
function src.cfgvalue(self, s)
return "%s:%s:%s" % {
self.map:get(s, "src") or "*",
self.map:get(s, "src_ip") or "0.0.0.0/0",
self.map:get(s, "src_port") or "*"
}
end
dest = s:option(DummyValue, "dest", translate("fw_dest"))
function dest.cfgvalue(self, s)
return "%s:%s:%s" % {
self.map:get(s, "dest") or translate("device", "device"),
self.map:get(s, "dest_ip") or "0.0.0.0/0",
self.map:get(s, "dest_port") or "*"
}
end
s:option(DummyValue, "target")
return m

View File

@ -1,72 +0,0 @@
--[[
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: trule.lua 4012 2009-01-09 10:05:59Z Cyrus $
]]--
arg[1] = arg[1] or ""
m = Map("firewall", translate("firewall_rule"), translate("firewall_rule_desc"))
s = m:section(NamedSection, arg[1], "rule", "")
s.anonymous = true
s.addremove = false
back = s:option(DummyValue, "_overview", translate("overview"))
back.value = ""
back.titleref = luci.dispatcher.build_url("admin", "network", "firewall", "rule")
name = s:option(Value, "_name", translate("name")..translate("cbi_optional"))
name.rmempty = true
iface = s:option(ListValue, "src", translate("fw_src"))
iface.rmempty = true
oface = s:option(ListValue, "dest", translate("fw_dest"))
oface:value("", translate("device", "device"))
oface.rmempty = true
luci.model.uci.cursor():foreach("firewall", "zone",
function (section)
iface:value(section.name)
oface:value(section.name)
end)
proto = s:option(Value, "proto", translate("protocol"))
proto.optional = true
proto:value("")
proto:value("tcpudp", "TCP+UDP")
proto:value("tcp", "TCP")
proto:value("udp", "UDP")
proto:value("icmp", "ICMP")
s:option(Value, "src_ip", translate("firewall_rule_srcip")).optional = true
s:option(Value, "dest_ip", translate("firewall_rule_destip")).optional = true
s:option(Value, "src_mac", translate("firewall_rule_srcmac")).optional = true
sport = s:option(Value, "src_port", translate("firewall_rule_srcport"))
sport:depends("proto", "tcp")
sport:depends("proto", "udp")
sport:depends("proto", "tcpudp")
dport = s:option(Value, "dest_port", translate("firewall_rule_destport"))
dport:depends("proto", "tcp")
dport:depends("proto", "udp")
dport:depends("proto", "tcpudp")
jump = s:option(ListValue, "target", translate("firewall_rule_target"))
jump.rmempty = true
jump.default = "ACCEPT"
jump:value("DROP", translate("fw_drop"))
jump:value("ACCEPT", translate("fw_accept"))
jump:value("REJECT", translate("fw_reject"))
return m

View File

@ -1,71 +0,0 @@
--[[
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: zones.lua 4051 2009-01-16 20:29:47Z Cyrus $
]]--
require("luci.tools.webadmin")
m = Map("firewall", translate("fw_fw"), translate("fw_fw1"))
s = m:section(TypedSection, "defaults")
s.anonymous = true
s:option(Flag, "syn_flood")
local di = s:option(Flag, "drop_invalid", translate("fw_dropinvalid"))
di.rmempty = false
function di.cfgvalue(...)
return AbstractValue.cfgvalue(...) or "1"
end
p = {}
p[1] = s:option(ListValue, "input")
p[2] = s:option(ListValue, "output")
p[3] = s:option(ListValue, "forward")
for i, v in ipairs(p) do
v:value("REJECT", translate("fw_reject"))
v:value("DROP", translate("fw_drop"))
v:value("ACCEPT", translate("fw_accept"))
end
s = m:section(TypedSection, "zone", translate("fw_zones"))
s.template = "cbi/tblsection"
s.anonymous = true
s.addremove = true
name = s:option(Value, "name", translate("name"))
name.size = 8
p = {}
p[1] = s:option(ListValue, "input")
p[2] = s:option(ListValue, "output")
p[3] = s:option(ListValue, "forward")
for i, v in ipairs(p) do
v:value("REJECT", translate("fw_reject"))
v:value("DROP", translate("fw_drop"))
v:value("ACCEPT", translate("fw_accept"))
end
s:option(Flag, "masq")
net = s:option(MultiValue, "network")
net.widget = "select"
net.rmempty = true
luci.tools.webadmin.cbi_add_networks(net)
function net.cfgvalue(self, section)
local value = MultiValue.cfgvalue(self, section)
return value or name:cfgvalue(section)
end
return m

View File

@ -1,255 +0,0 @@
package firewall
config package
option title 'Firewall configuration'
config section
option name 'zone'
option title 'Firewall zones'
option package 'firewall'
config variable
option name 'name'
option title 'Name'
option section 'firewall.zone'
option required true
config variable
option name 'network'
option title 'Networks belonging to this zone'
option section 'firewall.zone'
option valueof 'network.interface'
option multival true
config variable
option name 'forward'
option title 'Zone specific action for forwarded traffic'
option section 'firewall.zone'
option required true
config variable
option name 'input'
option title 'Zone specific action for incoming traffic'
option section 'firewall.zone'
option required true
config variable
option name 'output'
option title 'Zone specific action for outgoing traffic'
option section 'firewall.zone'
option required true
config variable
option name 'masq'
option title 'Enable masquerading for outgoing zone traffic'
option section 'firewall.zone'
option datatype 'boolean'
config section
option name 'defaults'
option title 'Global firewall defaults'
option package 'firewall'
option unique true
option required true
config variable
option name 'forward'
option title 'Action for forwarded traffic'
option section 'firewall.defaults'
option required true
config variable
option name 'input'
option title 'Action for incoming traffic'
option section 'firewall.defaults'
option required true
config variable
option name 'output'
option title 'Action for outgoing traffic'
option section 'firewall.defaults'
option required true
config variable
option name 'syn_flood'
option title 'Enable syn-flood protection'
option section 'firewall.defaults'
option datatype 'boolean'
config variable
option name 'drop_invalid'
option title 'Do not drop packages with state invalid'
option section 'firewall.defaults'
option datatype 'boolean'
config section
option name 'forwarding'
option title 'Forwarding rules'
option package 'firewall'
config variable
option name 'src'
option title 'Source zone'
option section 'firewall.forwarding'
option valueof 'firewall.zone.name'
option required true
config variable
option name 'dest'
option title 'Destination zone'
option section 'firewall.forwarding'
option valueof 'firewall.zone.name'
option required true
config variable
option name 'mtu_fix'
option title 'Fixup MTU of outgoing packages'
option section 'firewall.forwarding'
option datatype 'boolean'
config section
option name 'rule'
option title 'Custom rules'
option package 'firewall'
list depends 'target, src'
list depends 'target, dest'
list depends 'target, src_ip'
list depends 'target, src_port'
list depends 'target, src_mac'
list depends 'target, dest_ip'
list depends 'target, dest_port'
list depends 'target, proto'
config variable
option name 'src'
option title 'Source zone'
option section 'firewall.rule'
option valueof 'firewall.zone.name'
config variable
option name 'src_ip'
option title 'Source IP address'
option section 'firewall.rule'
option datatype 'ipaddr'
config variable
option name 'src_port'
option title 'Source port'
option section 'firewall.rule'
option datatype 'portrange'
config variable
option name 'src_mac'
option title 'Source MAC address'
option section 'firewall.rule'
option datatype 'macaddr'
config variable
option name 'dest'
option title 'Destination zone'
option section 'firewall.rule'
option valueof 'firewall.zone.name'
config variable
option name 'dest_ip'
option title 'Destination IP address'
option section 'firewall.rule'
option datatype 'ipaddr'
config variable
option name 'dest_port'
option title 'Destination port'
option section 'firewall.rule'
option datatype 'portrange'
config variable
option name 'proto'
option title 'Protocol'
option section 'firewall.rule'
option datatype 'string'
config variable
option name 'target'
option title 'Option target'
option section 'firewall.rule'
option datatype 'string'
config section
option name 'redirect'
option title 'Redirection rules'
option package 'firewall'
config variable
option name 'src'
option title 'Source zone'
option section 'firewall.redirect'
option valueof 'firewall.zone.name'
config variable
option name 'src_ip'
option title 'Source IP address'
option section 'firewall.redirect'
option datatype 'ipaddr'
config variable
option name 'src_port'
option title 'Source port'
option section 'firewall.redirect'
option datatype 'portrange'
config variable
option name 'src_dport'
option title 'Source destination port'
option section 'firewall.redirect'
option datatype 'portrange'
config variable
option name 'src_mac'
option title 'Option src_mac'
option section 'firewall.redirect'
option datatype 'macaddr'
config variable
option name 'dest'
option title 'Destination zone'
option section 'firewall.redirect'
option valueof 'firewall.zone.name'
config variable
option name 'dest_ip'
option title 'Destination IP address'
option section 'firewall.redirect'
option datatype 'ipaddr'
config variable
option name 'dest_port'
option title 'Destination port'
option section 'firewall.redirect'
option datatype 'portrange'
config variable
option name 'proto'
option title 'Protocol'
option section 'firewall.redirect'
option datatype 'string'
config section
option name 'include'
option title 'User defined config includes'
option package 'firewall'
config variable
option name 'path'
option title 'Path to the include file'
option section 'firewall.include'
option datatype 'file'

View File

@ -1,2 +0,0 @@
include ../../build/config.mk
include ../../build/module.mk

View File

@ -1,4 +0,0 @@
#!/bin/sh
[ -n "${IPKG_INSTROOT}" ] || {
( . /etc/uci-defaults/luci-hd_idle ) && rm -f /etc/uci-defaults/luci-hd_idle
}

View File

@ -1,28 +0,0 @@
--[[
LuCI hd-idle
(c) 2008 Yanira <forum-2008@email.de>
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: hd_idle.lua 3987 2009-01-02 21:35:25Z Cyrus $
]]--
module("luci.controller.hd_idle", package.seeall)
function index()
require("luci.i18n")
luci.i18n.loadc("hd_idle")
if not luci.fs.access("/etc/config/hd-idle") then
return
end
local page = entry({"admin", "services", "hd_idle"}, cbi("hd_idle"), luci.i18n.translate("hd_idle", "hd-idle"), 60)
page.i18n = "hd_idle"
page.dependent = true
end

View File

@ -1,7 +0,0 @@
disk = 'Festplatte'
enable_debug = 'Debug-Ausgaben aktivieren'
hd_idle = 'hd-idle'
hd_idle_desc = 'hd-idle ist ein Hilfsprogramm um externe Festplatten nach einer festgelegten Leerlaufzeit herunter zu fahren.'
idle_time_interval = 'Leerlaufzeit'
idle_time_unit = 'Leerlaufzeiteinheit'
settings = 'Einstellungen'

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="disk">Festplatte</i18n:msg>
<i18n:msg xml:id="enable_debug">Debug-Ausgaben aktivieren</i18n:msg>
<i18n:msg xml:id="hd_idle">hd-idle</i18n:msg>
<i18n:msg xml:id="hd_idle_desc">hd-idle ist ein Hilfsprogramm um externe Festplatten nach einer festgelegten Leerlaufzeit herunter zu fahren.</i18n:msg>
<i18n:msg xml:id="idle_time_interval">Leerlaufzeit</i18n:msg>
<i18n:msg xml:id="idle_time_unit">Leerlaufzeiteinheit</i18n:msg>
<i18n:msg xml:id="settings">Einstellungen</i18n:msg>
</i18n:msgs>

View File

@ -1,7 +0,0 @@
disk = 'Disk'
enable_debug = 'Enable debug'
hd_idle = 'hd-idle'
hd_idle_desc = 'hd-idle is a utility program for spinning-down external disks after a period of idle time.'
idle_time_interval = 'Idle-Time'
idle_time_unit = 'Idle-Time unit'
settings = 'Settings'

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="disk">Disk</i18n:msg>
<i18n:msg xml:id="enable_debug">Enable debug</i18n:msg>
<i18n:msg xml:id="hd_idle">hd-idle</i18n:msg>
<i18n:msg xml:id="hd_idle_desc">hd-idle is a utility program for spinning-down external disks after a period of idle time.</i18n:msg>
<i18n:msg xml:id="idle_time_interval">Idle-Time</i18n:msg>
<i18n:msg xml:id="idle_time_unit">Idle-Time unit</i18n:msg>
<i18n:msg xml:id="settings">Settings</i18n:msg>
</i18n:msgs>

View File

@ -1,7 +0,0 @@
disk = 'Disco'
enable_debug = 'Habilitar debug'
hd_idle = 'Hd-idle'
hd_idle_desc = 'Hd-idle é um programa utilitário para ativar o modo &quot;economia de energia&quot; (spinning-down) de discos externos após um período de ociosidade.'
idle_time_interval = 'Tempo de ociosidade'
idle_time_unit = 'Unidade do tempo de ociosidade'
settings = 'Configurações'

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="disk">Disco</i18n:msg>
<i18n:msg xml:id="enable_debug">Habilitar debug</i18n:msg>
<i18n:msg xml:id="hd_idle">Hd-idle</i18n:msg>
<i18n:msg xml:id="hd_idle_desc">Hd-idle é um programa utilitário para ativar o modo "economia de energia" (spinning-down) de discos externos após um período de ociosidade.</i18n:msg>
<i18n:msg xml:id="idle_time_interval">Tempo de ociosidade</i18n:msg>
<i18n:msg xml:id="idle_time_unit">Unidade do tempo de ociosidade</i18n:msg>
<i18n:msg xml:id="settings">Configurações</i18n:msg>
</i18n:msgs>

View File

@ -1,41 +0,0 @@
--[[
LuCI hd-idle
(c) 2008 Yanira <forum-2008@email.de>
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: hd_idle.lua 3503 2008-10-03 16:49:00Z jow $
]]--
require("luci.fs")
m = Map("hd-idle", translate("hd_idle"), translate("hd_idle_desc"))
s = m:section(TypedSection, "hd-idle", translate("settings"))
s.anonymous = true
s:option(Flag, "enabled", translate("enable", "Enable"))
disk = s:option(Value, "disk", translate("disk"))
disk.rmempty = true
for _, dev in ipairs(luci.fs.glob("/dev/[sh]d[a-z]")) do
disk:value(luci.fs.basename(dev))
end
s:option(Value, "idle_time_interval", translate("idle_time_interval")).default = 10
s.rmempty = true
unit = s:option(ListValue, "idle_time_unit", translate("idle_time_unit"))
unit.default = "minutes"
unit:value("minutes", "min")
unit:value("hours", "h")
unit.rmempty = true
s:option(Flag, "enable_debug", translate("enable_debug"))
return m

View File

@ -1,7 +0,0 @@
#!/bin/sh
uci batch <<-EOF
add ucitrack hd-idle
set ucitrack.@hd-idle[-1].init=hd-idle
commit ucitrack
EOF

View File

@ -1,2 +0,0 @@
include ../../build/config.mk
include ../../build/module.mk

View File

@ -1,29 +0,0 @@
--[[
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: init.lua 3987 2009-01-02 21:35:25Z Cyrus $
]]--
module("luci.controller.init", package.seeall)
function index()
if not luci.fs.access("/etc/rc.common") then
return
end
require("luci.i18n")
luci.i18n.loadc("initmgr")
entry(
{"admin", "system", "init"}, form("init/init"),
luci.i18n.translate("initmgr", "Init Scripts")
).i18n = "initmgr"
end

View File

@ -1,5 +0,0 @@
initmgr = 'Startscripte'
initmgr_desc = 'Hier können installierte Startscripte aktiviert oder deaktiviert werden. Änderungen werden erst mit einem Geräteneustart angewendet.<br /><strong>Warnung: Wenn essentialle Startscripte wie &quot;network&quot; deaktiviert werden könnte das Gerät unerreichbar werden!</strong>'
initmgr_index = 'Startpriorität'
initmgr_name = 'Startscript'
initmgr_enabled = 'Aktivieren/Deaktivieren'

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="initmgr">Startscripte</i18n:msg>
<i18n:msg xml:id="initmgr_desc">Hier können installierte Startscripte aktiviert oder deaktiviert werden. Änderungen werden erst mit einem Geräteneustart angewendet.<br /><strong>Warnung: Wenn essentialle Startscripte wie "network" deaktiviert werden könnte das Gerät unerreichbar werden!</strong></i18n:msg>
<i18n:msg xml:id="initmgr_index">Startpriorität</i18n:msg>
<i18n:msg xml:id="initmgr_name">Startscript</i18n:msg>
<i18n:msg xml:id="initmgr_enabled">Aktivieren/Deaktivieren</i18n:msg>
</i18n:msgs>

View File

@ -1,5 +0,0 @@
initmgr = 'Initscripts'
initmgr_desc = 'You can enable or disable installed init scripts here. Changes will applied after a device reboot.<br /><strong>Warning: If you disable essential init scripts like &quot;network&quot;, your device might become inaccesable!</strong>'
initmgr_index = 'Start priority'
initmgr_name = 'Initscript'
initmgr_enabled = 'Enable/Disable'

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="initmgr">Initscripts</i18n:msg>
<i18n:msg xml:id="initmgr_desc">You can enable or disable installed init scripts here. Changes will applied after a device reboot.<br /><strong>Warning: If you disable essential init scripts like "network", your device might become inaccesable!</strong></i18n:msg>
<i18n:msg xml:id="initmgr_index">Start priority</i18n:msg>
<i18n:msg xml:id="initmgr_name">Initscript</i18n:msg>
<i18n:msg xml:id="initmgr_enabled">Enable/Disable</i18n:msg>
</i18n:msgs>

View File

@ -1,5 +0,0 @@
initmgr = 'Scripts de Inicialização'
initmgr_desc = 'Você pode ativar ou desativar os scripts de inicialização instalados aqui. As mudanças serão aplicadas após a reinicialização do equipamento.<br /><strong>Aviso: Se você desativar algum script de inicialização essencial como por exemplo &quot;rede/network&quot;, o dispositivo poderá tornar-se inacessível!</strong>'
initmgr_index = 'Prioridade de inicialização'
initmgr_name = 'Script de inicialização'
initmgr_enabled = 'Ativar/Desativar'

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="initmgr">Scripts de Inicialização</i18n:msg>
<i18n:msg xml:id="initmgr_desc">Você pode ativar ou desativar os scripts de inicialização instalados aqui. As mudanças serão aplicadas após a reinicialização do equipamento.<br /><strong>Aviso: Se você desativar algum script de inicialização essencial como por exemplo "rede/network", o dispositivo poderá tornar-se inacessível!</strong></i18n:msg>
<i18n:msg xml:id="initmgr_index">Prioridade de inicialização</i18n:msg>
<i18n:msg xml:id="initmgr_name">Script de inicialização</i18n:msg>
<i18n:msg xml:id="initmgr_enabled">Ativar/Desativar</i18n:msg>
</i18n:msgs>

View File

@ -1,58 +0,0 @@
--[[
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: init.lua 3528 2008-10-06 20:09:06Z jow $
]]--
require("luci.sys")
require("luci.util")
local inits = { }
for _, name in ipairs(luci.sys.init.names()) do
local index = luci.sys.init.index(name)
local enabled = luci.sys.init.enabled(name)
inits["%02i.%s" % { index, name }] = {
name = name,
index = tostring(index),
enabled = enabled
}
end
m = SimpleForm("initmgr", translate("initmgr"), translate("initmgr_desc"))
m.reset = false
s = m:section(Table, inits)
i = s:option(DummyValue, "index", translate("initmgr_index"))
n = s:option(DummyValue, "name", translate("initmgr_name"))
e = s:option(Flag, "enabled", translate("initmgr_enabled"))
e.cfgvalue = function(self, section)
return inits[section].enabled and "1" or "0"
end
e.write = function(self, section, value)
if value == "1" and not inits[section].enabled then
inits[section].enabled = true
return luci.sys.init.enable(inits[section].name)
elseif value == "0" and inits[section].enabled then
inits[section].enabled = false
return luci.sys.init.disable(inits[section].name)
end
return true
end
return m

View File

@ -1,2 +0,0 @@
include ../../build/config.mk
include ../../build/module.mk

View File

@ -1,19 +0,0 @@
if(!window.CanvasRenderingContext2D){(function(){var I=Math,i=I.round,L=I.sin,M=I.cos,m=10,A=m/2,Q={init:function(a){var b=a||document;if(/MSIE/.test(navigator.userAgent)&&!window.opera){var c=this;b.attachEvent("onreadystatechange",function(){c.r(b)})}},r:function(a){if(a.readyState=="complete"){if(!a.namespaces["s"]){a.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml")}var b=a.createStyleSheet();b.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}g_vml_\\:*{behavior:url(#default#VML)}";
var c=a.getElementsByTagName("canvas");for(var d=0;d<c.length;d++){if(!c[d].getContext){this.initElement(c[d])}}}},q:function(a){var b=a.outerHTML,c=a.ownerDocument.createElement(b);if(b.slice(-2)!="/>"){var d="/"+a.tagName,e;while((e=a.nextSibling)&&e.tagName!=d){e.removeNode()}if(e){e.removeNode()}}a.parentNode.replaceChild(c,a);return c},initElement:function(a){a=this.q(a);a.getContext=function(){if(this.l){return this.l}return this.l=new K(this)};a.attachEvent("onpropertychange",V);a.attachEvent("onresize",
W);var b=a.attributes;if(b.width&&b.width.specified){a.style.width=b.width.nodeValue+"px"}else{a.width=a.clientWidth}if(b.height&&b.height.specified){a.style.height=b.height.nodeValue+"px"}else{a.height=a.clientHeight}return a}};function V(a){var b=a.srcElement;switch(a.propertyName){case "width":b.style.width=b.attributes.width.nodeValue+"px";b.getContext().clearRect();break;case "height":b.style.height=b.attributes.height.nodeValue+"px";b.getContext().clearRect();break}}function W(a){var b=a.srcElement;
if(b.firstChild){b.firstChild.style.width=b.clientWidth+"px";b.firstChild.style.height=b.clientHeight+"px"}}Q.init();var R=[];for(var E=0;E<16;E++){for(var F=0;F<16;F++){R[E*16+F]=E.toString(16)+F.toString(16)}}function J(){return[[1,0,0],[0,1,0],[0,0,1]]}function G(a,b){var c=J();for(var d=0;d<3;d++){for(var e=0;e<3;e++){var g=0;for(var h=0;h<3;h++){g+=a[d][h]*b[h][e]}c[d][e]=g}}return c}function N(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit=
a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX=a.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.d=a.d;b.e=a.e}function O(a){var b,c=1;a=String(a);if(a.substring(0,3)=="rgb"){var d=a.indexOf("(",3),e=a.indexOf(")",d+1),g=a.substring(d+1,e).split(",");b="#";for(var h=0;h<3;h++){b+=R[Number(g[h])]}if(g.length==4&&a.substr(3,1)=="a"){c=g[3]}}else{b=a}return[b,c]}function S(a){switch(a){case "butt":return"flat";case "round":return"round";
case "square":default:return"square"}}function K(a){this.a=J();this.m=[];this.k=[];this.c=[];this.strokeStyle="#000";this.fillStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=m*1;this.globalAlpha=1;this.canvas=a;var b=a.ownerDocument.createElement("div");b.style.width=a.clientWidth+"px";b.style.height=a.clientHeight+"px";b.style.overflow="hidden";b.style.position="absolute";a.appendChild(b);this.j=b;this.d=1;this.e=1}var j=K.prototype;j.clearRect=function(){this.j.innerHTML=
"";this.c=[]};j.beginPath=function(){this.c=[]};j.moveTo=function(a,b){this.c.push({type:"moveTo",x:a,y:b});this.f=a;this.g=b};j.lineTo=function(a,b){this.c.push({type:"lineTo",x:a,y:b});this.f=a;this.g=b};j.bezierCurveTo=function(a,b,c,d,e,g){this.c.push({type:"bezierCurveTo",cp1x:a,cp1y:b,cp2x:c,cp2y:d,x:e,y:g});this.f=e;this.g=g};j.quadraticCurveTo=function(a,b,c,d){var e=this.f+0.6666666666666666*(a-this.f),g=this.g+0.6666666666666666*(b-this.g),h=e+(c-this.f)/3,l=g+(d-this.g)/3;this.bezierCurveTo(e,
g,h,l,c,d)};j.arc=function(a,b,c,d,e,g){c*=m;var h=g?"at":"wa",l=a+M(d)*c-A,n=b+L(d)*c-A,o=a+M(e)*c-A,f=b+L(e)*c-A;if(l==o&&!g){l+=0.125}this.c.push({type:h,x:a,y:b,radius:c,xStart:l,yStart:n,xEnd:o,yEnd:f})};j.rect=function(a,b,c,d){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath()};j.strokeRect=function(a,b,c,d){this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath();this.stroke()};j.fillRect=function(a,
b,c,d){this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+d);this.lineTo(a,b+d);this.closePath();this.fill()};j.createLinearGradient=function(a,b,c,d){var e=new H("gradient");return e};j.createRadialGradient=function(a,b,c,d,e,g){var h=new H("gradientradial");h.n=c;h.o=g;h.i.x=a;h.i.y=b;return h};j.drawImage=function(a,b){var c,d,e,g,h,l,n,o,f=a.runtimeStyle.width,k=a.runtimeStyle.height;a.runtimeStyle.width="auto";a.runtimeStyle.height="auto";var q=a.width,r=a.height;a.runtimeStyle.width=
f;a.runtimeStyle.height=k;if(arguments.length==3){c=arguments[1];d=arguments[2];h=(l=0);n=(e=q);o=(g=r)}else if(arguments.length==5){c=arguments[1];d=arguments[2];e=arguments[3];g=arguments[4];h=(l=0);n=q;o=r}else if(arguments.length==9){h=arguments[1];l=arguments[2];n=arguments[3];o=arguments[4];c=arguments[5];d=arguments[6];e=arguments[7];g=arguments[8]}else{throw"Invalid number of arguments";}var s=this.b(c,d),t=[],v=10,w=10;t.push(" <g_vml_:group",' coordsize="',m*v,",",m*w,'"',' coordorigin="0,0"',
' style="width:',v,";height:",w,";position:absolute;");if(this.a[0][0]!=1||this.a[0][1]){var x=[];x.push("M11='",this.a[0][0],"',","M12='",this.a[1][0],"',","M21='",this.a[0][1],"',","M22='",this.a[1][1],"',","Dx='",i(s.x/m),"',","Dy='",i(s.y/m),"'");var p=s,y=this.b(c+e,d),z=this.b(c,d+g),B=this.b(c+e,d+g);p.x=Math.max(p.x,y.x,z.x,B.x);p.y=Math.max(p.y,y.y,z.y,B.y);t.push("padding:0 ",i(p.x/m),"px ",i(p.y/m),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",x.join(""),", sizingmethod='clip');")}else{t.push("top:",
i(s.y/m),"px;left:",i(s.x/m),"px;")}t.push(' ">','<g_vml_:image src="',a.src,'"',' style="width:',m*e,";"," height:",m*g,';"',' cropleft="',h/q,'"',' croptop="',l/r,'"',' cropright="',(q-h-n)/q,'"',' cropbottom="',(r-l-o)/r,'"'," />","</g_vml_:group>");this.j.insertAdjacentHTML("BeforeEnd",t.join(""))};j.stroke=function(a){var b=[],c=O(a?this.fillStyle:this.strokeStyle),d=c[0],e=c[1]*this.globalAlpha,g=10,h=10;b.push("<g_vml_:shape",' fillcolor="',d,'"',' filled="',Boolean(a),'"',' style="position:absolute;width:',
g,";height:",h,';"',' coordorigin="0 0" coordsize="',m*g," ",m*h,'"',' stroked="',!a,'"',' strokeweight="',this.lineWidth,'"',' strokecolor="',d,'"',' path="');var l={x:null,y:null},n={x:null,y:null};for(var o=0;o<this.c.length;o++){var f=this.c[o];if(f.type=="moveTo"){b.push(" m ");var k=this.b(f.x,f.y);b.push(i(k.x),",",i(k.y))}else if(f.type=="lineTo"){b.push(" l ");var k=this.b(f.x,f.y);b.push(i(k.x),",",i(k.y))}else if(f.type=="close"){b.push(" x ")}else if(f.type=="bezierCurveTo"){b.push(" c ");
var k=this.b(f.x,f.y),q=this.b(f.cp1x,f.cp1y),r=this.b(f.cp2x,f.cp2y);b.push(i(q.x),",",i(q.y),",",i(r.x),",",i(r.y),",",i(k.x),",",i(k.y))}else if(f.type=="at"||f.type=="wa"){b.push(" ",f.type," ");var k=this.b(f.x,f.y),s=this.b(f.xStart,f.yStart),t=this.b(f.xEnd,f.yEnd);b.push(i(k.x-this.d*f.radius),",",i(k.y-this.e*f.radius)," ",i(k.x+this.d*f.radius),",",i(k.y+this.e*f.radius)," ",i(s.x),",",i(s.y)," ",i(t.x),",",i(t.y))}if(k){if(l.x==null||k.x<l.x){l.x=k.x}if(n.x==null||k.x>n.x){n.x=k.x}if(l.y==
null||k.y<l.y){l.y=k.y}if(n.y==null||k.y>n.y){n.y=k.y}}}b.push(' ">');if(typeof this.fillStyle=="object"){var v={x:"50%",y:"50%"},w=n.x-l.x,x=n.y-l.y,p=w>x?w:x;v.x=i(this.fillStyle.i.x/w*100+50)+"%";v.y=i(this.fillStyle.i.y/x*100+50)+"%";var y=[];if(this.fillStyle.p=="gradientradial"){var z=this.fillStyle.n/p*100,B=this.fillStyle.o/p*100-z}else{var z=0,B=100}var C={offset:null,color:null},D={offset:null,color:null};this.fillStyle.h.sort(function(T,U){return T.offset-U.offset});for(var o=0;o<this.fillStyle.h.length;o++){var u=
this.fillStyle.h[o];y.push(u.offset*B+z,"% ",u.color,",");if(u.offset>C.offset||C.offset==null){C.offset=u.offset;C.color=u.color}if(u.offset<D.offset||D.offset==null){D.offset=u.offset;D.color=u.color}}y.pop();b.push("<g_vml_:fill",' color="',D.color,'"',' color2="',C.color,'"',' type="',this.fillStyle.p,'"',' focusposition="',v.x,", ",v.y,'"',' colors="',y.join(""),'"',' opacity="',e,'" />')}else if(a){b.push('<g_vml_:fill color="',d,'" opacity="',e,'" />')}else{b.push("<g_vml_:stroke",' opacity="',
e,'"',' joinstyle="',this.lineJoin,'"',' miterlimit="',this.miterLimit,'"',' endcap="',S(this.lineCap),'"',' weight="',this.lineWidth,'px"',' color="',d,'" />')}b.push("</g_vml_:shape>");this.j.insertAdjacentHTML("beforeEnd",b.join(""));this.c=[]};j.fill=function(){this.stroke(true)};j.closePath=function(){this.c.push({type:"close"})};j.b=function(a,b){return{x:m*(a*this.a[0][0]+b*this.a[1][0]+this.a[2][0])-A,y:m*(a*this.a[0][1]+b*this.a[1][1]+this.a[2][1])-A}};j.save=function(){var a={};N(this,a);
this.k.push(a);this.m.push(this.a);this.a=G(J(),this.a)};j.restore=function(){N(this.k.pop(),this);this.a=this.m.pop()};j.translate=function(a,b){var c=[[1,0,0],[0,1,0],[a,b,1]];this.a=G(c,this.a)};j.rotate=function(a){var b=M(a),c=L(a),d=[[b,c,0],[-c,b,0],[0,0,1]];this.a=G(d,this.a)};j.scale=function(a,b){this.d*=a;this.e*=b;var c=[[a,0,0],[0,b,0],[0,0,1]];this.a=G(c,this.a)};j.clip=function(){};j.arcTo=function(){};j.createPattern=function(){return new P};function H(a){this.p=a;this.n=0;this.o=
0;this.h=[];this.i={x:0,y:0}}H.prototype.addColorStop=function(a,b){b=O(b);this.h.push({offset:1-a,color:b})};function P(){}G_vmlCanvasManager=Q;CanvasRenderingContext2D=K;CanvasGradient=H;CanvasPattern=P})()};

View File

@ -1,204 +0,0 @@
function Graph(container, id, options, transform, legend) {
if( !options ) options = { };
this.id = id;
this.cols = 100;
this.type = "line";
this.options = options;
this.transform = transform;
this.dataset = {};
this.legend = legend;
this.lastvalue = {};
var name = (options.instanceNames && options.instanceNames[id])
? options.instanceNames[id] : id;
var graph = document.createElement('div');
var label = document.createElement('h2');
label.innerHTML = options.title
? options.title.replace("%s", name) : name;
container.appendChild( label );
container.appendChild( graph );
this.canvas = document.createElement('canvas');
graph.appendChild( this.canvas );
this.canvas.id = id;
this.canvas.width = ( options.width || graph.offsetWidth - 20 );
this.canvas.height = ( options.height || 300 );
}
Graph.prototype.addDataset = function(name, ds) {
if( !this.layout ) {
this.layout = new PlotKit.Layout( this.type, this.options );
}
if( !ds ) {
ds = new Array();
for( var i = 0; i < this.cols; i++ )
ds[i] = new Array( i, 0 );
}
this.dataset[name] = ds;
this.layout.addDataset(name, ds);
}
Graph.prototype.updateDataset = function(name, value) {
if( this.dataset[name] ) {
var ds = this.dataset[name];
for( var i = 1; i < this.cols; i++ )
ds[i-1][1] = ds[i][1];
value = Math.abs( parseFloat(value) || 0 );
if( this.transform ) {
var orgvalue = value;
value = (this.lastvalue[name]) ? this.transform(value, this.lastvalue[name]) : 0;
this.lastvalue[name] = orgvalue;
}
ds[this.cols-1][1] = value;
this.layout.addDataset(name, ds);
}
}
Graph.prototype.draw = function( options ) {
if( this.layout ) {
this.plotter = new PlotKit.CanvasRenderer(
this.canvas, this.layout, this.options || options || {}
);
this.layout.evaluate();
this.plotter.render();
legend_opt = {
"legendStyle": 'li'
};
legend = new LegendRenderer(this.legend, this.layout, legend_opt);
legend.render();
}
}
Graph.prototype.redraw = function() {
if( this.layout && this.plotter ) {
this.layout.evaluate();
this.plotter.clear();
this.plotter.render();
}
}
function GraphRPC(container, uri, action, interval, datasources, options, transform, legend) {
this.ds = datasources;
this.uri = uri
this.action = action;
this.options = options || { };
this.container = container;
this.transform = transform;
this.proxy = new MochiKit.JsonRpc.JsonRpcProxy(uri, [action]);
this.graphs = new Object();
this.legend = legend;
this.requestData();
if( interval ) {
var self = this;
window.setInterval(function(){self.requestData()}, interval);
}
}
GraphRPC.prototype.requestData = function() {
var r = this.proxy[this.action](); var self = this;
r.addCallback(function(r){ self.dispatchResponse(r) });
r.addErrback(function(e){ throw('Error: ' + e) });
}
GraphRPC.prototype.dispatchResponse = function(response) {
var instances;
if( this.options.instances ) {
instances = this.options.instances;
}
else {
instances = new Array();
for( var instance in response ) {
instances[instances.length] = instance;
}
}
for( var j = 0; j < instances.length; j++ ) {
var instance = instances[j];
if( this.options.separateDS ) {
for( var i = 0; i < this.ds.length; i += 2 ) {
var name = this.ds[i+1] || this.ds[i];
var gid = instance + '-' + name;
var otle = this.options.title || instance;
if( !this.graphs[gid] ) {
this.options.title = otle.replace('%s', instance) + ': ' + name;
this.graphs[gid] = new Graph(
this.container, gid, this.options, this.transform, this.legend
);
this.graphs[gid].addDataset(name);
this.graphs[gid].draw();
this.options.title = otle;
}
else
{
var datum = null;
if (typeof (this.ds[i]) == "function") {
datum = this.ds[i](
instance ? response[instance] : response
);
} else {
datum = instance
? response[instance][this.ds[i]]
: response[this.ds[i]]
}
this.graphs[gid].updateDataset(
name, datum
);
this.graphs[gid].redraw();
}
}
}
else {
var gid = instance || 'livegraph';
if( !this.graphs[gid] ) {
this.graphs[gid] = new Graph(
this.container, gid, this.options, this.transform, this.legend
);
for( var i = 0; i < this.ds.length; i += 2 ) {
var name = this.ds[i+1] || this.ds[i];
this.graphs[gid].addDataset(name);
}
this.graphs[gid].draw();
}
else {
for( var i = 0; i < this.ds.length; i += 2 ) {
var name = this.ds[i+1] || this.ds[i];
var datum = null;
if (typeof (this.ds[i]) == "function") {
datum = this.ds[i](
instance ? response[instance] : response
);
} else {
datum = instance
? response[instance][this.ds[i]]
: response[this.ds[i]]
}
this.graphs[gid].updateDataset(
name, datum
);
}
this.graphs[gid].redraw();
}
}
}
}

View File

@ -1,220 +0,0 @@
/* MochiKit.JsonRpc */
if (typeof(dojo) != 'undefined') {
dojo.provide("MochiKit.JsonRpc");
dojo.require("MochiKit.Base");
dojo.require("MochiKit.DOM");
dojo.require("MochiKit.Async");
}
if (typeof(JSAN) != 'undefined') {
JSAN.use("MochiKit.Base", []);
JSAN.use("MochiKit.DOM", []);
JSAN.use("MochiKit.Async", []);
}
try {
if (typeof(MochiKit.Base) == 'undefined' ||
typeof(MochiKit.DOM) == 'undefined' ||
typeof(MochiKit.Async) == 'undefined') {
throw "";
}
} catch (e) {
throw "MochiKit.JsonRpc depends on MochiKit.Base, MochiKit.DOM and MochiKit.Async";
}
if (typeof(MochiKit.JsonRpc) == 'undefined') {
MochiKit.JsonRpc = {};
}
MochiKit.JsonRpc.NAME = "MochiKit.JsonRpc";
MochiKit.JsonRpc.VERSION = "0.90";
MochiKit.JsonRpc.__repr__ = function () {
return "[" + this.NAME + " " + this.VERSION + "]";
}
MochiKit.JsonRpc.toString = function () {
return this.__repr__();
}
MochiKit.JsonRpc.JsonRpcError = function (message) {
this.message = message;
this.name = 'JsonRpcError';
}
MochiKit.JsonRpc.JsonRpcError.prototype = new Error();
MochiKit.JsonRpc.JsonRpcError.prototype.repr = function () {
return 'JsonRpcError(' + this.message + ')';
}
MochiKit.JsonRpc.JsonRpcError.prototype.toString = function () {
return this.repr();
}
MochiKit.JsonRpc.jsonObject = function (o) {
var attrs=[];
for(attr in o){
if(typeof o[attr] != "function"){
attrs.push('"' + attr + '": ' + json(o[attr]));
}
}
return "{" + attrs.join(", ") + "}";
}
MochiKit.JsonRpc.isObject = function (o) {
return true;
}
MochiKit.JsonRpc.jsonArray = function (o) {
return "[" + MochiKit.Base.map(json, o).join(", ") + "]";
}
var MB = MochiKit.Base
MochiKit.JsonRpc.jsonRegistry = new MochiKit.Base.AdapterRegistry();
MochiKit.JsonRpc.jsonRegistry.register('arrayLike',MB.isArrayLike,MochiKit.JsonRpc.jsonArray);
MochiKit.JsonRpc.jsonRegistry.register("string", MB.typeMatcher("string"), MB.reprString);
MochiKit.JsonRpc.jsonRegistry.register("numbers", MB.typeMatcher("number", "boolean"), MB.reprNumber);
MochiKit.JsonRpc.jsonRegistry.register("undefined", MB.isUndefined, MB.reprUndefined);
MochiKit.JsonRpc.jsonRegistry.register("null", MB.isNull, MB.reprNull);
MochiKit.JsonRpc.jsonRegistry.register("objectLike", MochiKit.JsonRpc.isObject, MochiKit.JsonRpc.jsonObject);
MochiKit.JsonRpc.json = function (o) {
try {
if (typeof(o.__json__) == 'function') {
return o.__json__();
} else if (typeof(o.json) == 'function' && o.json != arguments.callee) {
return o.json();
}
return jsonRegistry.match(o);
} catch (e) {
if (typeof(o.NAME) == 'string' && (
o.toString == Function.prototype.toString ||
o.toString == Object.prototype.toString
)) {
return o.NAME;
}
return o;
}
}
MochiKit.JsonRpc.JsonRpcCall = function (method,params) {
this.method = method;
this.params = params;
this.id = '0';
}
MochiKit.JsonRpc.JsonRpcProxy = function (url,methNames) {
MochiKit.Base.bindMethods(this);
this.url = url;
if (methNames) {
MochiKit.Base.map(this._proxyMethod,methNames);
}
}
update(MochiKit.JsonRpc.JsonRpcProxy.prototype, {
'call': function () {
var arglist = MochiKit.Base.map(null,arguments)
var methname = arglist.shift()
log(arglist);
var callobj = new MochiKit.JsonRpc.JsonRpcCall(methname,arglist);
var callstr = json(callobj);
var req = MochiKit.Async.getXMLHttpRequest();
req.open("POST",this.url,true);
req.setRequestHeader("Content-Type","text/plain");
req.setRequestHeader("Content-Length",callstr.length);
var d = MochiKit.Async.sendXMLHttpRequest(req,callstr);
d.addCallback(MochiKit.Async.evalJSONRequest);
d.addCallback(this._extractResult);
return d
},
'addSingleMethod': function (methName) {
if (methName) {
this._proxyMethod(methName);
}
},
'addMethods': function (methNames) {
if (methNames) {
MochiKit.Base.map(this._proxyMethod,methNames);
}
},
'_extractResult': function (resp) {
if (!resp.error){
return resp.result;
} else {
throw new MochiKit.JsonRpc.JsonRpcError(resp.error);
}
},
'_proxyMethod': function (methname) {
this[methname] = MochiKit.Base.partial(this.call,methname);
}
});
MochiKit.JsonRpc.DomObjectFromJson = function (){
var retval = false;
if (arguments.length == 1) {
var arg = arguments[0];
if (typeof(arg) == 'string'){
retval = MochiKit.DOM.SPAN(null,arg);
} else {
var objrepr = arguments[0];
var elem = document.createElement(objrepr[0]);
var attrs = objrepr[1];
if (attrs) {
MochiKit.DOM.updateNodeAttributes(elem, attrs);
}
if (objrepr.length >= 3){
var extraobj = objrepr[2]
for (var i=0;i<extraobj.length;i++) {
var value = MochiKit.JsonRpc.DomObjectFromJson(extraobj[i]);
if (value) {
elem.appendChild(value);
}
}
}
retval = elem;
}
}
return retval;
};
MochiKit.JsonRpc.EXPORT = [
"JsonRpcError",
"JsonRpcProxy",
];
MochiKit.JsonRpc.EXPORT_OK = [
"jsonObject",
"jsonArray",
"jsonRegistry",
"json",
"JsonRpcCall",
"DomObjectFromJson",
];
MochiKit.JsonRpc.__new__ = function () {
this.EXPORT_TAGS = {
":common": this.EXPORT,
":all": MochiKit.Base.concat(this.EXPORT, this.EXPORT_OK)
};
MochiKit.Base.nameFunctions(this);
};
MochiKit.JsonRpc.__new__();
if ((typeof(JSAN) == 'undefined' && typeof(dojo) == 'undefined')
|| (typeof(MochiKit.__compat__) == 'boolean' && MochiKit.__compat__)) {
(function (self) {
var all = self.EXPORT_TAGS[":all"];
for (var i = 0; i < all.length; i++) {
this[all[i]] = self[all[i]];
}
})(MochiKit.JsonRpc);
}

View File

@ -1,228 +0,0 @@
/*
PlotKit Legend
==============
Handles laying out legend into a DIV element.
Design taken from comments of Julien Wajsberg (http://
groups.google.com/group/plotkit/browse_thread/thread/2494bd88e6e9956d)
and Niel Domingo (http://nieldomingo.blogspot.com/2007/03/legend-
for-plotkit-bar-charts.html).
Copyright
---------
Copyright 2007 (c) Ashley Martens <ashleym_72^yahoo.com>
For use under the BSD license. <http://www.liquidx.net/plotkit>
*/
try {
if (typeof(MochiKit.Base) == 'undefined' ||
typeof(MochiKit.DOM) == 'undefined' ||
typeof(MochiKit.Color) == 'undefined' ||
typeof(MochiKit.Format) == 'undefined' ||
typeof(PlotKit.Layout) == 'undefined' ||
typeof(PlotKit.Base) == 'undefined')
{
throw "";
}
}
catch (e) {
throw "PlotKit depends on MochiKit.{Base,Color,DOM,Format}"
}
if (typeof(PlotKit.LegendRenderer) == 'undefined') {
PlotKit.LegendRenderer = {};
}
PlotKit.LegendRenderer = function(element, layout, options) {
if (arguments.length > 0)
this.__init__(element, layout, options);
};
PlotKit.LegendRenderer.NAME = "PlotKit.LegendRenderer";
PlotKit.LegendRenderer.VERSION = PlotKit.VERSION;
PlotKit.LegendRenderer.__repr__ = function() {
return "[" + this.NAME + " " + this.VERSION + "]";
};
PlotKit.LegendRenderer.toString = function() {
return this.__repr__();
}
PlotKit.LegendRenderer.prototype.__init__ = function(element, layout,
options) {
var isNil = MochiKit.Base.isUndefinedOrNull;
var Color = MochiKit.Color.Color;
this.options = {
"colorScheme": PlotKit.Base.palette(PlotKit.Base.baseColors()
[0]),
"legendStyle": "table",
"tableColumns": 1
};
MochiKit.Base.update(this.options, options ? options : {});
this.layout = layout;
this.element = MochiKit.DOM.getElement(element);
// --- check whether everything is ok before we return
if (isNil(this.element))
throw "CRILegend() - passed legend is not found";
};
PlotKit.LegendRenderer.prototype.render = function() {
var colorScheme = this.options.colorScheme;
var setNames = PlotKit.Base.keys(this.layout.datasets);
MochiKit.DOM.updateNodeAttributes(this.element,
{"style":
{"margin":"0"
,"padding":"0"
}
});
var ul = null;
if (this.options.legendStyle == "table")
ul = this._renderListTable(colorScheme, setNames);
else
ul = this._renderList(colorScheme, setNames);
MochiKit.DOM.appendChildNodes(this.element, ul);
};
PlotKit.LegendRenderer.prototype._renderList = function(colorScheme,
setNames) {
var ul = document.createElement("ul");
ul.style.listStyle="none";
ul.style.margin="0";
ul.style.padding="0";
var colorCount = colorScheme.length;
var setCount = setNames.length;
for (var i = 0; i < setCount; i++) {
var setName = setNames[i];
var color = colorScheme[i%colorCount];
var le = this._renderElement(setName, color.toRGBString());
ul.appendChild(le);
}
return ul;
};
PlotKit.LegendRenderer.prototype._renderElement = function(title,
color) {
var le = MochiKit.DOM.createDOM("li");
le.style.listStyle="none";
le.style.margin="0 0 5px 0";
le.style.padding="0";
var box = MochiKit.DOM.createDOM("div");
box.style.backgroundColor=color;
box.style.width="2em";
box.style.height=".9em";
box.style.border="1px solid black";
box.style.margin="0 5px 0 0";
box.style.padding="0";
box.style.float="left";
box.style.cssFloat="left";
box.style.clear="left";
box.style.cssClear="left";
var span = MochiKit.DOM.createDOM("span");
MochiKit.DOM.appendChildNodes(span,
document.createTextNode(title));
MochiKit.DOM.appendChildNodes(le, box, span);
return le;
};
PlotKit.LegendRenderer.prototype._renderListTable =
function(colorScheme, setNames) {
var tabhead = THEAD(null);
var tabfoot = TFOOT(null);
var tabbody = partial(TBODY, null);
var i = 0;
var colorcount = colorScheme.length;
var tabrow;
var columns = this.options.tableColumns;
for (var label in setNames)
{
var legendcolor = colorScheme[i%colorcount];
var legendbox = DIV({'class': 'legendbox', 'className':
'legendbox'});
legendbox.style.width = "10px";
legendbox.style.height = "10px";
legendbox.style.backgroundColor = legendcolor.toHexString();
legendbox.style.borderWidth = "1px";
legendbox.style.borderStyle = "solid";
legendbox.style.borderColor = "#000000";
var boxcell = TD(null, legendbox);
var labelcell = TD({'class': 'legendlabel', 'className':
'legendlabel'}, setNames[i]);
labelcell.style.font = 'normal 10pt arial';
if (!(i % columns))
{
tabrow = partial(TR, null);
}
tabrow = partial(tabrow, boxcell, labelcell);
if (i % columns)
{
tabrow = tabrow(null);
tabbody = partial(tabbody, tabrow);
}
i++;
}
if ((setNames % columns))
{
tabrow = tabrow(TD(null), TD(null));
tabbody = partial(tabbody, tabrow);
}
tabbody = tabbody(null);
tab = TABLE({'class': 'legendcontainer', 'className':
'legendcontainer'}, tabhead, tabfoot, tabbody);
tab.style.marginTop = '1em';
tab.style.marginLeft = '1.5em';
tab.style.marginBottom = '1em';
tab.style.borderWidth = '1px';
tab.style.borderStyle = 'solid';
tab.style.borderColor = '#000000';
return tab;
};
// Namespace Iniitialisation
PlotKit.Legend = {}
PlotKit.Legend.LegendRenderer = PlotKit.LegendRenderer;
PlotKit.Legend.EXPORT = [
"LegendRenderer"
];
PlotKit.Legend.EXPORT_OK = [
"LegendRenderer"
];
PlotKit.Legend.__new__ = function() {
var m = MochiKit.Base;
m.nameFunctions(this);
this.EXPORT_TAGS = {
":common": this.EXPORT,
":all": m.concat(this.EXPORT, this.EXPORT_OK)
};
};
PlotKit.Legend.__new__();
MochiKit.Base._exportSymbols(this, PlotKit.Legend);

View File

@ -1,29 +0,0 @@
--[[
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: livestats.lua 3941 2008-12-23 21:39:38Z jow $
]]--
module("luci.controller.livestats", package.seeall)
function index()
require("luci.i18n")
luci.i18n.loadc("livestats")
entry( {"admin", "status", "wifistat"}, template("livestats/wireless"), luci.i18n.translate("livestats_stat_wireless"), 90 ).i18n = "livestats"
entry( {"admin", "status", "trafstat"}, template("livestats/traffic"), luci.i18n.translate("livestats_stat_traffic"), 91 ).i18n = "livestats"
entry( {"admin", "status", "loadavg"}, template("livestats/loadavg"), luci.i18n.translate("livestats_stat_loadavg"), 92 ).i18n = "livestats"
entry( {"mini", "network", "wifistat"}, template("livestats/wireless"), luci.i18n.translate("livestats_stat_wireless"), 90 ).i18n = "livestats"
entry( {"mini", "network", "trafstat"}, template("livestats/traffic"), luci.i18n.translate("livestats_stat_traffic"), 91 ).i18n = "livestats"
entry( {"mini", "system", "loadavg"}, template("livestats/loadavg"), luci.i18n.translate("livestats_stat_loadavg"), 92 ).i18n = "livestats"
end

View File

@ -1,8 +0,0 @@
livestats_incoming = "eingehend"
livestats_outgoing = "ausgehend"
livestats_traffic = "Netzverkehr auf"
livestats_wifi = "Signal-Rauschabstand für"
livestats_loadavg = "Durchschnittliche Systemlast"
livestats_stat_wireless = "Echtzeit-Drahtlosstatus"
livestats_stat_traffic = "Echtzeit-Netzwerkverkehr"
livestats_stat_loadavg = "Echtzeit-Systemlast"

View File

@ -1,8 +0,0 @@
livestats_incoming = "incoming"
livestats_outgoing = "outgoing"
livestats_traffic = "traffic on"
livestats_wifi = "signal-to-noise ratio for"
livestats_loadavg = "load average"
livestats_stat_wireless = "Realtime Wireless Status"
livestats_stat_traffic = "Realtime Network Traffic"
livestats_stat_loadavg = "Realtime System Load"

View File

@ -1,33 +0,0 @@
<%+header%>
<!--[if IE]><script type="text/javascript" src="<%=resource%>/livestats/ExCanvas.js"></script><![endif]-->
<script type="text/javascript" src="<%=resource%>/livestats/MochiKit.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/JsonRpc.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/PlotKit.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/GraphRPC.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/Legend.js"></script>
<script type="text/javascript">
function initGraphs() {
var rpc = new GraphRPC(
document.getElementById('live_graphs'),
'<%=luci.dispatcher.build_url('rpc', 'sys')%>', 'loadavg',
2000,
// Data sources
[ 0, "1 min", 1, "5 min", 2, "15 min" ],
// Graph layout options
{ title: '<%:livestats_loadavg%>', strokeWidth: 2.5, shouldFill: false, strokeColor: null,
padding: { left: 70, right: 10, top: 10, bottom: 20 },
instances: [ false ], yAxis: [ 0, 2 ], drawBackground: false },
null,
'live_graphs'
);
}
MochiKit.DOM.addLoadEvent(initGraphs);
</script>
<div id="live_graphs"></div>
<%+footer%>

View File

@ -1,66 +0,0 @@
<%+header%>
<!--[if IE]><script type="text/javascript" src="<%=resource%>/livestats/ExCanvas.js"></script><![endif]-->
<script type="text/javascript" src="<%=resource%>/livestats/MochiKit.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/JsonRpc.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/PlotKit.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/GraphRPC.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/Legend.js"></script>
<%
local interfaces = { }
local ifnames = {}
local uci = luci.model.uci.cursor_state()
uci:foreach("network", "interface",
function(s)
if s.ifname ~= "lo" then
table.insert( interfaces,
"'" .. ( s.ifname or s['.name'] ) .. "'"
)
ifnames[s.ifname or s['.name']] = s['.name']
end
end
)
-%>
<script type="text/javascript">
function initGraphs() {
var rpc = new GraphRPC(
document.getElementById('live_graphs'),
'<%=luci.dispatcher.build_url('rpc', 'sys')%>', 'net.deviceinfo',
2000,
// Data sources
[ "0", "<%:livestats_incoming%> (kiB/s)", "8", "<%:livestats_outgoing%> (kiB/s)" ],
// Graph layout options
{
shouldFill: false,
drawBackground: false,
strokeColor: null,
title: '<%:livestats_traffic%> %s',
strokeWidth: 2.5, height: 140,
padding: { left: 70, right: 10, top: 10, bottom: 20 },
instances: [ <%=table.concat(interfaces, ", ") %> ],
instanceNames: {
<%- for iface, network in pairs(ifnames) do %>
<%-="%q:%q," % {iface, network}-%>
<% end %>
"0": ""
}},
// transform function
function (cur, last) {
return (cur - last) / 2048;
},
'live_graphs'
);
}
MochiKit.DOM.addLoadEvent(initGraphs);
</script>
<div id="live_graphs"></div>
<%+footer%>

View File

@ -1,43 +0,0 @@
<%+header%>
<!--[if IE]><script type="text/javascript" src="<%=resource%>/livestats/ExCanvas.js"></script><![endif]-->
<script type="text/javascript" src="<%=resource%>/livestats/MochiKit.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/JsonRpc.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/PlotKit.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/GraphRPC.js"></script>
<script type="text/javascript" src="<%=resource%>/livestats/Legend.js"></script>
<script type="text/javascript">
function initGraphs() {
var rpc = new GraphRPC(
document.getElementById('live_graphs'),
'<%=luci.dispatcher.build_url('rpc', 'sys')%>', 'wifi.getiwconfig',
1500,
// Data sources
[ function(data) {
return parseFloat(data["Signal level"])
- parseFloat(data["Noise level"]);
}, "S/N (dBm)"],
// Graph layout options
{ drawBackground: false, yAxis: [ 0, 50 ],
title: '<%:livestats_wifi%> %s',
padding: { left: 40, right: 10, top: 10, bottom: 20 },
instanceNames: {
<%- for k,v in pairs(luci.sys.wifi.getiwconfig()) do %>
<%-="%q:%q," % {k, "%s (%s)" % {k, tostring(v.ESSID)}}-%>
<% end %>
"0": ""
}},
null,
'live_graphs'
);
}
MochiKit.DOM.addLoadEvent(initGraphs);
</script>
<div id="live_graphs"></div>
<%+footer%>

View File

@ -1,2 +0,0 @@
include ../../build/config.mk
include ../../build/module.mk

View File

@ -1,4 +0,0 @@
#!/bin/sh
[ -n "${IPKG_INSTROOT}" ] || {
( . /etc/uci-defaults/luci-mmc_over_gpio ) && rm -f /etc/uci-defaults/luci-mmc_over_gpio
}

View File

@ -1,28 +0,0 @@
--[[
LuCI mmc_over_gpio
(c) 2008 Yanira <forum-2008@email.de>
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: mmc_over_gpio.lua 3987 2009-01-02 21:35:25Z Cyrus $
]]--
module("luci.controller.mmc_over_gpio", package.seeall)
function index()
require("luci.i18n")
luci.i18n.loadc("mmc_over_gpio")
if not luci.fs.access("/etc/config/mmc_over_gpio") then
return
end
local page = entry({"admin", "system", "mmc_over_gpio"}, cbi("mmc_over_gpio"), luci.i18n.translate("mmc_over_gpio", "mmc_over_gpio"), 60)
page.i18n = "mmc_over_gpio"
page.dependent = true
end

View File

@ -1,3 +0,0 @@
mmc_over_gpio = 'MMC/SD Treiberkonfiguration'
mmc_over_gpio_desc = 'Konfiguriert die Einstellungen des MMC/SD Karten Treibers'
settings = 'Einstellungen'

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="mmc_over_gpio">MMC/SD Treiberkonfiguration</i18n:msg>
<i18n:msg xml:id="mmc_over_gpio_desc">Konfiguriert die Einstellungen des MMC/SD Karten Treibers</i18n:msg>
<i18n:msg xml:id="settings">Einstellungen</i18n:msg>
</i18n:msgs>

View File

@ -1,3 +0,0 @@
mmc_over_gpio = 'MMC/SD driver configuration'
mmc_over_gpio_desc = 'MMC/SD driver configuration'
settings = 'Settings'

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="mmc_over_gpio">MMC/SD driver configuration</i18n:msg>
<i18n:msg xml:id="mmc_over_gpio_desc">MMC/SD driver configuration</i18n:msg>
<i18n:msg xml:id="settings">Settings</i18n:msg>
</i18n:msgs>

View File

@ -1,3 +0,0 @@
mmc_over_gpio = 'Configuração do driver MMC/SD'
mmc_over_gpio_desc = 'Configuração do driver MMC/SD'
settings = 'Configurações'

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="mmc_over_gpio">Configuração do driver MMC/SD</i18n:msg>
<i18n:msg xml:id="mmc_over_gpio_desc">Configuração do driver MMC/SD</i18n:msg>
<i18n:msg xml:id="settings">Configurações</i18n:msg>
</i18n:msgs>

View File

@ -1,41 +0,0 @@
--[[
LuCI mmc_over_gpio
(c) 2008 Yanira <forum-2008@email.de>
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: mmc_over_gpio.lua 3635 2008-10-27 23:07:46Z jow $
]]--
m = Map("mmc_over_gpio", translate("mmc_over_gpio"),
translate("mmc_over_gpio_desc"))
s = m:section(TypedSection, "mmc_over_gpio", translate("settings"))
s.addremove = true
s.anonymous = true
s:option(Flag, "enabled", translate("enabled", "Enable"))
s:option(Value, "name", translate("name"))
pin = s:option(Value, "DI_pin", translate("DI_pin"))
for i = 0,7 do pin:value(i) end
pin = s:option(Value, "DO_pin", translate("DO_pin"))
for i = 0,7 do pin:value(i) end
pin = s:option(Value, "CLK_pin", translate("CLK_pin"))
for i = 0,7 do pin:value(i) end
pin = s:option(Value, "CS_pin", translate("CS_pin"))
for i = 0,7 do pin:value(i) end
s:option(Value, "mode", translate("mode"))
return m

View File

@ -1,7 +0,0 @@
#!/bin/sh
uci batch <<-EOF
add ucitrack mmc_over_gpio
set ucitrack.@mmc_over_gpio[-1].init=mmc_over_gpio
commit ucitrack
EOF

View File

@ -1,2 +0,0 @@
include ../../build/config.mk
include ../../build/module.mk

View File

@ -1,32 +0,0 @@
--[[
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: ntpc.lua 3987 2009-01-02 21:35:25Z Cyrus $
]]--
module("luci.controller.ntpc", package.seeall)
function index()
require("luci.i18n")
luci.i18n.loadc("ntpc")
if not luci.fs.access("/etc/config/ntpclient") then
return
end
local page = entry({"admin", "system", "ntpc"}, cbi("ntpc/ntpc"), luci.i18n.translate("ntpc"), 50)
page.i18n = "ntpc"
page.dependent = true
local page = entry({"mini", "system", "ntpc"}, cbi("ntpc/ntpcmini", {autoapply=true}), luci.i18n.translate("ntpc"), 50)
page.i18n = "ntpc"
page.dependent = true
end

View File

@ -1,9 +0,0 @@
ntpc = 'Zeitsynchronisation'
ntpc_desc = 'Synchronisiert die Systemzeit'
ntpc_timeserver = 'Zeitserver'
ntpc_interval = 'Aktualisierungsintervall (in s)'
ntpc_count = 'Anzahl der Zeitmessungen'
ntpc_count_desc = 'leer = unendlich'
ntpc_drift = 'Zeitgeberjustierung'
ntpc_drift_freq = 'Frequenzabweichung'
ntpc_current = 'Aktuelle Systemzeit'

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="ntpc">Zeitsynchronisation</i18n:msg>
<i18n:msg xml:id="ntpc_desc">Synchronisiert die Systemzeit</i18n:msg>
<i18n:msg xml:id="ntpc_timeserver">Zeitserver</i18n:msg>
<i18n:msg xml:id="ntpc_interval">Aktualisierungsintervall (in s)</i18n:msg>
<i18n:msg xml:id="ntpc_count">Anzahl der Zeitmessungen</i18n:msg>
<i18n:msg xml:id="ntpc_count_desc">leer = unendlich</i18n:msg>
<i18n:msg xml:id="ntpc_drift">Zeitgeberjustierung</i18n:msg>
<i18n:msg xml:id="ntpc_drift_freq">Frequenzabweichung</i18n:msg>
<i18n:msg xml:id="ntpc_current">Aktuelle Systemzeit</i18n:msg>
</i18n:msgs>

View File

@ -1,9 +0,0 @@
ntpc = 'Time Synchronisation'
ntpc_desc = 'Synchronizes the system time'
ntpc_timeserver = 'Time Server'
ntpc_interval = 'Update Interval (in s)'
ntpc_count = 'Count of Time Measurements'
ntpc_count_desc = 'empty = infinite'
ntpc_drift = 'Clock Adjustment'
ntpc_drift_freq = 'Offset Frequency'
ntpc_current = 'Current system time'

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="ntpc">Time Synchronisation</i18n:msg>
<i18n:msg xml:id="ntpc_desc">Synchronizes the system time</i18n:msg>
<i18n:msg xml:id="ntpc_timeserver">Time Server</i18n:msg>
<i18n:msg xml:id="ntpc_interval">Update Interval (in s)</i18n:msg>
<i18n:msg xml:id="ntpc_count">Count of Time Measurements</i18n:msg>
<i18n:msg xml:id="ntpc_count_desc">empty = infinite</i18n:msg>
<i18n:msg xml:id="ntpc_drift">Clock Adjustment</i18n:msg>
<i18n:msg xml:id="ntpc_drift_freq">Offset Frequency</i18n:msg>
<i18n:msg xml:id="ntpc_current">Current system time</i18n:msg>
</i18n:msgs>

View File

@ -1,9 +0,0 @@
ntpc = 'Sincronização de Horário'
ntpc_desc = 'Sincroniza a hora do sistema'
ntpc_timeserver = 'Servidor de Hora'
ntpc_interval = 'Intervalo de Atualização (em s)'
ntpc_count = 'Quantas vezes irá atualizar'
ntpc_count_desc = 'vazio = infinito'
ntpc_drift = 'Ajuste do Relógio'
ntpc_drift_freq = 'Frequência do Offset'
ntpc_current = 'Hora atual do sistema'

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">
<i18n:msg xml:id="ntpc">Sincronização de Horário</i18n:msg>
<i18n:msg xml:id="ntpc_desc">Sincroniza a hora do sistema</i18n:msg>
<i18n:msg xml:id="ntpc_timeserver">Servidor de Hora</i18n:msg>
<i18n:msg xml:id="ntpc_interval">Intervalo de Atualização (em s)</i18n:msg>
<i18n:msg xml:id="ntpc_count">Quantas vezes irá atualizar</i18n:msg>
<i18n:msg xml:id="ntpc_count_desc">vazio = infinito</i18n:msg>
<i18n:msg xml:id="ntpc_drift">Ajuste do Relógio</i18n:msg>
<i18n:msg xml:id="ntpc_drift_freq">Frequência do Offset</i18n:msg>
<i18n:msg xml:id="ntpc_current">Hora atual do sistema</i18n:msg>
</i18n:msgs>

View File

@ -1,39 +0,0 @@
--[[
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: ntpc.lua 3240 2008-09-11 17:25:44Z Cyrus $
]]--
m = Map("ntpclient", translate("ntpc"), translate("ntpc_desc"))
s = m:section(TypedSection, "ntpclient", translate("general"))
s.anonymous = true
s:option(DummyValue, "_time", translate("ntpc_current")).value = os.date("%c")
s:option(Value, "interval", translate("ntpc_interval")).rmempty = true
s:option(Value, "count", translate("ntpc_count"), translate("ntpc_count_desc")).rmempty = true
s2 = m:section(TypedSection, "ntpdrift", translate("ntpc_drift"))
s2.anonymous = true
s2:option(Value, "freq", translate("ntpc_drift_freq")).rmempty = true
s3 = m:section(TypedSection, "ntpserver", translate("ntpc_timeserver"))
s3.anonymous = true
s3.addremove = true
s3.template = "cbi/tblsection"
s3:option(Value, "hostname", translate("hostname"))
s3:option(Value, "port", translate("port")).rmempty = true
return m

View File

@ -1,34 +0,0 @@
--[[
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: ntpcmini.lua 3240 2008-09-11 17:25:44Z Cyrus $
]]--
require("luci.tools.webadmin")
m = Map("ntpclient", translate("ntpc"), translate("ntpc_desc"))
s = m:section(TypedSection, "ntpclient", translate("general"))
s.anonymous = true
s:option(DummyValue, "_time", translate("ntpc_current")).value = os.date("%c")
s:option(Value, "interval", translate("ntpc_interval")).rmempty = true
s3 = m:section(TypedSection, "ntpserver", translate("ntpc_timeserver"))
s3.anonymous = true
s3.addremove = true
s3.template = "cbi/tblsection"
s3:option(Value, "hostname", translate("hostname"))
s3:option(Value, "port", translate("port")).rmempty = true
return m

Some files were not shown because too many files have changed in this diff Show More