openwrt: remove LuCI 0.8.6 from the package repository
This commit is contained in:
parent
e00f6a91ec
commit
adbb953b1c
|
@ -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>
|
|
|
@ -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>
|
|
|
@ -1,6 +0,0 @@
|
||||||
dist/
|
|
||||||
/host
|
|
||||||
*.o
|
|
||||||
*.so
|
|
||||||
*.swp
|
|
||||||
/docs
|
|
|
@ -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>
|
|
|
@ -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"
|
|
|
@ -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.
|
|
|
@ -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 #
|
|
|
@ -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
|
|
|
@ -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
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
include ../../build/config.mk
|
|
||||||
include ../../build/module.mk
|
|
|
@ -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>
|
|
|
@ -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>
|
|
|
@ -1,2 +0,0 @@
|
||||||
include ../../build/config.mk
|
|
||||||
include ../../build/module.mk
|
|
|
@ -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
|
|
|
@ -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'
|
|
|
@ -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>
|
|
|
@ -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'
|
|
|
@ -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>
|
|
|
@ -1,8 +0,0 @@
|
||||||
ddns = 'DNS Dynamique'
|
|
||||||
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.'
|
|
||||||
ddns_service_ipsource = 'Source de l'adresse IP'
|
|
||||||
ddns_service_checkinterval = 'Vérifier l'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'
|
|
|
@ -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>
|
|
|
@ -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'
|
|
|
@ -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>
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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'
|
|
|
@ -1,2 +0,0 @@
|
||||||
include ../../build/config.mk
|
|
||||||
include ../../build/module.mk
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -1,2 +0,0 @@
|
||||||
include ../../build/config.mk
|
|
||||||
include ../../build/module.mk
|
|
|
@ -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
|
|
|
@ -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'
|
|
|
@ -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>
|
|
|
@ -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'
|
|
|
@ -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>
|
|
|
@ -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'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'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'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'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'
|
|
|
@ -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>
|
|
|
@ -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'
|
|
|
@ -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>
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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'
|
|
|
@ -1,2 +0,0 @@
|
||||||
include ../../build/config.mk
|
|
||||||
include ../../build/module.mk
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
[ -n "${IPKG_INSTROOT}" ] || {
|
|
||||||
( . /etc/uci-defaults/luci-hd_idle ) && rm -f /etc/uci-defaults/luci-hd_idle
|
|
||||||
}
|
|
|
@ -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
|
|
|
@ -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'
|
|
|
@ -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>
|
|
|
@ -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'
|
|
|
@ -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>
|
|
|
@ -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 "economia de energia" (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'
|
|
|
@ -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>
|
|
|
@ -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
|
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
uci batch <<-EOF
|
|
||||||
add ucitrack hd-idle
|
|
||||||
set ucitrack.@hd-idle[-1].init=hd-idle
|
|
||||||
commit ucitrack
|
|
||||||
EOF
|
|
|
@ -1,2 +0,0 @@
|
||||||
include ../../build/config.mk
|
|
||||||
include ../../build/module.mk
|
|
|
@ -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
|
|
|
@ -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 "network" deaktiviert werden könnte das Gerät unerreichbar werden!</strong>'
|
|
||||||
initmgr_index = 'Startpriorität'
|
|
||||||
initmgr_name = 'Startscript'
|
|
||||||
initmgr_enabled = 'Aktivieren/Deaktivieren'
|
|
|
@ -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>
|
|
|
@ -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 "network", your device might become inaccesable!</strong>'
|
|
||||||
initmgr_index = 'Start priority'
|
|
||||||
initmgr_name = 'Initscript'
|
|
||||||
initmgr_enabled = 'Enable/Disable'
|
|
|
@ -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>
|
|
|
@ -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 "rede/network", o dispositivo poderá tornar-se inacessível!</strong>'
|
|
||||||
initmgr_index = 'Prioridade de inicialização'
|
|
||||||
initmgr_name = 'Script de inicialização'
|
|
||||||
initmgr_enabled = 'Ativar/Desativar'
|
|
|
@ -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>
|
|
|
@ -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
|
|
|
@ -1,2 +0,0 @@
|
||||||
include ../../build/config.mk
|
|
||||||
include ../../build/module.mk
|
|
|
@ -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})()};
|
|
|
@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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);
|
|
||||||
}
|
|
|
@ -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);
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -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
|
|
|
@ -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"
|
|
|
@ -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"
|
|
|
@ -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%>
|
|
|
@ -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%>
|
|
|
@ -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%>
|
|
|
@ -1,2 +0,0 @@
|
||||||
include ../../build/config.mk
|
|
||||||
include ../../build/module.mk
|
|
|
@ -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
|
|
||||||
}
|
|
|
@ -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
|
|
|
@ -1,3 +0,0 @@
|
||||||
mmc_over_gpio = 'MMC/SD Treiberkonfiguration'
|
|
||||||
mmc_over_gpio_desc = 'Konfiguriert die Einstellungen des MMC/SD Karten Treibers'
|
|
||||||
settings = 'Einstellungen'
|
|
|
@ -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>
|
|
|
@ -1,3 +0,0 @@
|
||||||
mmc_over_gpio = 'MMC/SD driver configuration'
|
|
||||||
mmc_over_gpio_desc = 'MMC/SD driver configuration'
|
|
||||||
settings = 'Settings'
|
|
|
@ -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>
|
|
|
@ -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'
|
|
|
@ -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>
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -1,2 +0,0 @@
|
||||||
include ../../build/config.mk
|
|
||||||
include ../../build/module.mk
|
|
|
@ -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
|
|
|
@ -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'
|
|
|
@ -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>
|
|
|
@ -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'
|
|
|
@ -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>
|
|
|
@ -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'
|
|
|
@ -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>
|
|
|
@ -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
|
|
|
@ -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
Loading…
Reference in New Issue