Danja Vasiliev před 10 roky
rodič
revize
7bc93eb317
100 změnil soubory, kde provedl 2302 přidání a 0 odebrání
  1. 0 0
      openwrt/DIR505A1/etc/banner
  2. 0 0
      openwrt/DIR505A1/etc/config/dhcp
  3. 0 0
      openwrt/DIR505A1/etc/config/dropbear
  4. 0 0
      openwrt/DIR505A1/etc/config/firewall
  5. 0 0
      openwrt/DIR505A1/etc/config/fstab
  6. 0 0
      openwrt/DIR505A1/etc/config/network
  7. 0 0
      openwrt/DIR505A1/etc/config/system
  8. 0 0
      openwrt/DIR505A1/etc/config/ubootenv
  9. 0 0
      openwrt/DIR505A1/etc/config/wireless
  10. 0 0
      openwrt/DIR505A1/etc/group
  11. 0 0
      openwrt/DIR505A1/etc/lighttpd/htpasswd-dist
  12. 0 0
      openwrt/DIR505A1/etc/lighttpd/lighttpd.conf
  13. 0 0
      openwrt/DIR505A1/etc/lighttpd/mime.conf
  14. 0 0
      openwrt/DIR505A1/etc/opkg.conf
  15. 0 0
      openwrt/DIR505A1/etc/passwd
  16. 0 0
      openwrt/DIR505A1/etc/rc.local
  17. 0 0
      openwrt/DIR505A1/etc/shadow
  18. 0 0
      openwrt/DIR505A1/etc/superglue_model
  19. 0 0
      openwrt/DIR505A1/etc/superglue_version
  20. 0 0
      openwrt/DIR505A1/etc/uci-defaults/12-fstab-enable
  21. 0 0
      openwrt/DIR505A1/etc/uci-defaults/20-set-ssid
  22. 0 0
      openwrt/DIR505A1/mnt/sda1-dist/opkg-link
  23. 0 0
      openwrt/DIR505A1/mnt/sda1-dist/opkg-link-clean
  24. 0 0
      openwrt/DIR505A1/root/pull-serverside-repo.sh
  25. 0 0
      openwrt/DIR505A1/www/htdocs/index.html
  26. 0 0
      openwrt/DIR505A1/www/lib/.keep
  27. 0 0
      openwrt/DIR505A1/www/lib/cgi/post.sh
  28. 0 0
      openwrt/DIR505A1/www/lib/cgi/sysinfo.sh
  29. 0 0
      openwrt/DIR505A1/www/lib/devTools/SCSystemBrowser.html
  30. 0 0
      openwrt/DIR505A1/www/lib/devTools/ace/ace.js
  31. 0 0
      openwrt/DIR505A1/www/lib/devTools/ace/ext-language_tools.js
  32. 0 0
      openwrt/DIR505A1/www/lib/devTools/ace/mode-javascript.js
  33. 0 0
      openwrt/DIR505A1/www/lib/devTools/ace/theme-monokai.js
  34. 0 0
      openwrt/DIR505A1/www/lib/devTools/ace/worker-javascript.js
  35. 0 0
      openwrt/DIR505A1/www/lib/devTools/ace/worker-javascript.js.bak
  36. 0 0
      openwrt/DIR505A1/www/lib/resources/default/css/normalize.css
  37. 0 0
      openwrt/DIR505A1/www/lib/resources/default/css/style.css
  38. 0 0
      openwrt/DIR505A1/www/lib/resources/default/fonts/Dosis/Dosis-Bold.otf
  39. 0 0
      openwrt/DIR505A1/www/lib/resources/default/fonts/Dosis/Dosis-Light.otf
  40. 0 0
      openwrt/DIR505A1/www/lib/resources/default/fonts/Dosis/Dosis-Regular.otf
  41. 0 0
      openwrt/DIR505A1/www/lib/resources/default/fonts/Dosis/SIL Open Font License.txt
  42. 0 0
      openwrt/DIR505A1/www/lib/resources/default/fonts/Montserrat/Montserrat-Bold.ttf
  43. 0 0
      openwrt/DIR505A1/www/lib/resources/default/fonts/Montserrat/Montserrat-Regular.ttf
  44. 0 0
      openwrt/DIR505A1/www/lib/resources/default/fonts/Montserrat/OFL.txt
  45. 0 0
      openwrt/DIR505A1/www/lib/resources/default/fonts/Titillium_Web/OFL.txt
  46. 0 0
      openwrt/DIR505A1/www/lib/resources/default/fonts/Titillium_Web/TitilliumWeb-Bold.ttf
  47. 0 0
      openwrt/DIR505A1/www/lib/resources/default/fonts/Titillium_Web/TitilliumWeb-Light.ttf
  48. 0 0
      openwrt/DIR505A1/www/lib/resources/default/fonts/Titillium_Web/TitilliumWeb-Regular.ttf
  49. 0 0
      openwrt/DIR505A1/www/lib/resources/default/img/placeholder.png
  50. 0 0
      openwrt/DIR505A1/www/lib/resources/default/js/jquery.js
  51. 0 0
      openwrt/DIR505A1/www/lib/resources/index.html
  52. 0 0
      openwrt/DIR505A1/www/lib/templates/blank.html
  53. 14 0
      openwrt/TLWA701/etc/banner
  54. 41 0
      openwrt/TLWA701/etc/config/dhcp
  55. 5 0
      openwrt/TLWA701/etc/config/dropbear
  56. 177 0
      openwrt/TLWA701/etc/config/firewall
  57. 19 0
      openwrt/TLWA701/etc/config/fstab
  58. 19 0
      openwrt/TLWA701/etc/config/network
  59. 19 0
      openwrt/TLWA701/etc/config/system
  60. 0 0
      openwrt/TLWA701/etc/config/ubootenv
  61. 14 0
      openwrt/TLWA701/etc/config/wireless
  62. 10 0
      openwrt/TLWA701/etc/group
  63. 6 0
      openwrt/TLWA701/etc/lighttpd/htpasswd-dist
  64. 51 0
      openwrt/TLWA701/etc/lighttpd/lighttpd.conf
  65. 79 0
      openwrt/TLWA701/etc/lighttpd/mime.conf
  66. 6 0
      openwrt/TLWA701/etc/opkg.conf
  67. 6 0
      openwrt/TLWA701/etc/passwd
  68. 31 0
      openwrt/TLWA701/etc/rc.local
  69. 6 0
      openwrt/TLWA701/etc/shadow
  70. 1 0
      openwrt/TLWA701/etc/superglue_model
  71. 1 0
      openwrt/TLWA701/etc/superglue_version
  72. 5 0
      openwrt/TLWA701/etc/uci-defaults/12-fstab-enable
  73. 9 0
      openwrt/TLWA701/etc/uci-defaults/20-set-ssid
  74. 58 0
      openwrt/TLWA701/mnt/sda1-dist/opkg-link
  75. 21 0
      openwrt/TLWA701/mnt/sda1-dist/opkg-link-clean
  76. 50 0
      openwrt/TLWA701/root/pull-serverside-repo.sh
  77. 7 0
      openwrt/TLWA701/www/htdocs/index.html
  78. 0 0
      openwrt/TLWA701/www/lib/.keep
  79. 302 0
      openwrt/TLWA701/www/lib/cgi/post.sh
  80. 29 0
      openwrt/TLWA701/www/lib/cgi/sysinfo.sh
  81. 421 0
      openwrt/TLWA701/www/lib/devTools/SCSystemBrowser.html
  82. 0 0
      openwrt/TLWA701/www/lib/devTools/ace/ace.js
  83. 0 0
      openwrt/TLWA701/www/lib/devTools/ace/ext-language_tools.js
  84. 0 0
      openwrt/TLWA701/www/lib/devTools/ace/mode-javascript.js
  85. 0 0
      openwrt/TLWA701/www/lib/devTools/ace/theme-monokai.js
  86. 0 0
      openwrt/TLWA701/www/lib/devTools/ace/worker-javascript.js
  87. 0 0
      openwrt/TLWA701/www/lib/devTools/ace/worker-javascript.js.bak
  88. 430 0
      openwrt/TLWA701/www/lib/resources/default/css/normalize.css
  89. 236 0
      openwrt/TLWA701/www/lib/resources/default/css/style.css
  90. binární
      openwrt/TLWA701/www/lib/resources/default/fonts/Dosis/Dosis-Bold.otf
  91. binární
      openwrt/TLWA701/www/lib/resources/default/fonts/Dosis/Dosis-Light.otf
  92. binární
      openwrt/TLWA701/www/lib/resources/default/fonts/Dosis/Dosis-Regular.otf
  93. 45 0
      openwrt/TLWA701/www/lib/resources/default/fonts/Dosis/SIL Open Font License.txt
  94. binární
      openwrt/TLWA701/www/lib/resources/default/fonts/Montserrat/Montserrat-Bold.ttf
  95. binární
      openwrt/TLWA701/www/lib/resources/default/fonts/Montserrat/Montserrat-Regular.ttf
  96. 92 0
      openwrt/TLWA701/www/lib/resources/default/fonts/Montserrat/OFL.txt
  97. 92 0
      openwrt/TLWA701/www/lib/resources/default/fonts/Titillium_Web/OFL.txt
  98. binární
      openwrt/TLWA701/www/lib/resources/default/fonts/Titillium_Web/TitilliumWeb-Bold.ttf
  99. binární
      openwrt/TLWA701/www/lib/resources/default/fonts/Titillium_Web/TitilliumWeb-Light.ttf
  100. binární
      openwrt/TLWA701/www/lib/resources/default/fonts/Titillium_Web/TitilliumWeb-Regular.ttf

+ 0 - 0
openwrt/dir505/etc/banner → openwrt/DIR505A1/etc/banner


+ 0 - 0
openwrt/dir505/etc/config/dhcp → openwrt/DIR505A1/etc/config/dhcp


+ 0 - 0
openwrt/dir505/etc/config/dropbear → openwrt/DIR505A1/etc/config/dropbear


+ 0 - 0
openwrt/dir505/etc/config/firewall → openwrt/DIR505A1/etc/config/firewall


+ 0 - 0
openwrt/dir505/etc/config/fstab → openwrt/DIR505A1/etc/config/fstab


+ 0 - 0
openwrt/dir505/etc/config/network → openwrt/DIR505A1/etc/config/network


+ 0 - 0
openwrt/dir505/etc/config/system → openwrt/DIR505A1/etc/config/system


+ 0 - 0
openwrt/dir505/etc/config/ubootenv → openwrt/DIR505A1/etc/config/ubootenv


+ 0 - 0
openwrt/dir505/etc/config/wireless → openwrt/DIR505A1/etc/config/wireless


+ 0 - 0
openwrt/dir505/etc/group → openwrt/DIR505A1/etc/group


+ 0 - 0
openwrt/dir505/etc/lighttpd/htpasswd-dist → openwrt/DIR505A1/etc/lighttpd/htpasswd-dist


+ 0 - 0
openwrt/dir505/etc/lighttpd/lighttpd.conf → openwrt/DIR505A1/etc/lighttpd/lighttpd.conf


+ 0 - 0
openwrt/dir505/etc/lighttpd/mime.conf → openwrt/DIR505A1/etc/lighttpd/mime.conf


+ 0 - 0
openwrt/dir505/etc/opkg.conf → openwrt/DIR505A1/etc/opkg.conf


+ 0 - 0
openwrt/dir505/etc/passwd → openwrt/DIR505A1/etc/passwd


+ 0 - 0
openwrt/dir505/etc/rc.local → openwrt/DIR505A1/etc/rc.local


+ 0 - 0
openwrt/dir505/etc/shadow → openwrt/DIR505A1/etc/shadow


+ 0 - 0
openwrt/dir505/etc/superglue_model → openwrt/DIR505A1/etc/superglue_model


+ 0 - 0
openwrt/dir505/etc/superglue_version → openwrt/DIR505A1/etc/superglue_version


+ 0 - 0
openwrt/dir505/etc/uci-defaults/12-fstab-enable → openwrt/DIR505A1/etc/uci-defaults/12-fstab-enable


+ 0 - 0
openwrt/dir505/etc/uci-defaults/20-set-ssid → openwrt/DIR505A1/etc/uci-defaults/20-set-ssid


+ 0 - 0
openwrt/dir505/mnt/sda1-dist/opkg-link → openwrt/DIR505A1/mnt/sda1-dist/opkg-link


+ 0 - 0
openwrt/dir505/mnt/sda1-dist/opkg-link-clean → openwrt/DIR505A1/mnt/sda1-dist/opkg-link-clean


+ 0 - 0
openwrt/dir505/root/pull-serverside-repo.sh → openwrt/DIR505A1/root/pull-serverside-repo.sh


+ 0 - 0
openwrt/dir505/www/htdocs/index.html → openwrt/DIR505A1/www/htdocs/index.html


+ 0 - 0
openwrt/dir505/www/lib/.keep → openwrt/DIR505A1/www/lib/.keep


+ 0 - 0
openwrt/dir505/www/lib/cgi/post.sh → openwrt/DIR505A1/www/lib/cgi/post.sh


+ 0 - 0
openwrt/dir505/www/lib/cgi/sysinfo.sh → openwrt/DIR505A1/www/lib/cgi/sysinfo.sh


+ 0 - 0
openwrt/dir505/www/lib/devTools/SCSystemBrowser.html → openwrt/DIR505A1/www/lib/devTools/SCSystemBrowser.html


+ 0 - 0
openwrt/dir505/www/lib/devTools/ace/ace.js → openwrt/DIR505A1/www/lib/devTools/ace/ace.js


+ 0 - 0
openwrt/dir505/www/lib/devTools/ace/ext-language_tools.js → openwrt/DIR505A1/www/lib/devTools/ace/ext-language_tools.js


+ 0 - 0
openwrt/dir505/www/lib/devTools/ace/mode-javascript.js → openwrt/DIR505A1/www/lib/devTools/ace/mode-javascript.js


+ 0 - 0
openwrt/dir505/www/lib/devTools/ace/theme-monokai.js → openwrt/DIR505A1/www/lib/devTools/ace/theme-monokai.js


+ 0 - 0
openwrt/dir505/www/lib/devTools/ace/worker-javascript.js → openwrt/DIR505A1/www/lib/devTools/ace/worker-javascript.js


+ 0 - 0
openwrt/dir505/www/lib/devTools/ace/worker-javascript.js.bak → openwrt/DIR505A1/www/lib/devTools/ace/worker-javascript.js.bak


+ 0 - 0
openwrt/dir505/www/lib/resources/default/css/normalize.css → openwrt/DIR505A1/www/lib/resources/default/css/normalize.css


+ 0 - 0
openwrt/dir505/www/lib/resources/default/css/style.css → openwrt/DIR505A1/www/lib/resources/default/css/style.css


+ 0 - 0
openwrt/dir505/www/lib/resources/default/fonts/Dosis/Dosis-Bold.otf → openwrt/DIR505A1/www/lib/resources/default/fonts/Dosis/Dosis-Bold.otf


+ 0 - 0
openwrt/dir505/www/lib/resources/default/fonts/Dosis/Dosis-Light.otf → openwrt/DIR505A1/www/lib/resources/default/fonts/Dosis/Dosis-Light.otf


+ 0 - 0
openwrt/dir505/www/lib/resources/default/fonts/Dosis/Dosis-Regular.otf → openwrt/DIR505A1/www/lib/resources/default/fonts/Dosis/Dosis-Regular.otf


+ 0 - 0
openwrt/dir505/www/lib/resources/default/fonts/Dosis/SIL Open Font License.txt → openwrt/DIR505A1/www/lib/resources/default/fonts/Dosis/SIL Open Font License.txt


+ 0 - 0
openwrt/dir505/www/lib/resources/default/fonts/Montserrat/Montserrat-Bold.ttf → openwrt/DIR505A1/www/lib/resources/default/fonts/Montserrat/Montserrat-Bold.ttf


+ 0 - 0
openwrt/dir505/www/lib/resources/default/fonts/Montserrat/Montserrat-Regular.ttf → openwrt/DIR505A1/www/lib/resources/default/fonts/Montserrat/Montserrat-Regular.ttf


+ 0 - 0
openwrt/dir505/www/lib/resources/default/fonts/Montserrat/OFL.txt → openwrt/DIR505A1/www/lib/resources/default/fonts/Montserrat/OFL.txt


+ 0 - 0
openwrt/dir505/www/lib/resources/default/fonts/Titillium_Web/OFL.txt → openwrt/DIR505A1/www/lib/resources/default/fonts/Titillium_Web/OFL.txt


+ 0 - 0
openwrt/dir505/www/lib/resources/default/fonts/Titillium_Web/TitilliumWeb-Bold.ttf → openwrt/DIR505A1/www/lib/resources/default/fonts/Titillium_Web/TitilliumWeb-Bold.ttf


+ 0 - 0
openwrt/dir505/www/lib/resources/default/fonts/Titillium_Web/TitilliumWeb-Light.ttf → openwrt/DIR505A1/www/lib/resources/default/fonts/Titillium_Web/TitilliumWeb-Light.ttf


+ 0 - 0
openwrt/dir505/www/lib/resources/default/fonts/Titillium_Web/TitilliumWeb-Regular.ttf → openwrt/DIR505A1/www/lib/resources/default/fonts/Titillium_Web/TitilliumWeb-Regular.ttf


+ 0 - 0
openwrt/dir505/www/lib/resources/default/img/placeholder.png → openwrt/DIR505A1/www/lib/resources/default/img/placeholder.png


+ 0 - 0
openwrt/dir505/www/lib/resources/default/js/jquery.js → openwrt/DIR505A1/www/lib/resources/default/js/jquery.js


+ 0 - 0
openwrt/dir505/www/lib/resources/index.html → openwrt/DIR505A1/www/lib/resources/index.html


+ 0 - 0
openwrt/dir505/www/lib/templates/blank.html → openwrt/DIR505A1/www/lib/templates/blank.html


+ 14 - 0
openwrt/TLWA701/etc/banner

@@ -0,0 +1,14 @@
+                                _
+  ___  _ _  ___  ___  ___  ___ | | _ _  ___
+ |_ -|| | || . || -_||  _|| . || || | || -_|
+ |___||___||  _||___||_|  |_  ||_||___||___|
+           |_|   personal |___| server
+ http://superglue.it 
+ -----------------------------------------------------
+ based on OpenWRT r40774 (trunk)
+ -----------------------------------------------------
+ provides now:            will provide:
+   * HTTP (lighthttp)       * SMTP      
+   * Bash CGI               * IMAP
+                            * Lua CGI
+ -----------------------------------------------------

+ 41 - 0
openwrt/TLWA701/etc/config/dhcp

@@ -0,0 +1,41 @@
+
+config dnsmasq
+	option domainneeded '1'
+	option boguspriv '1'
+	option filterwin2k '0'
+	option localise_queries '1'
+	option rebind_protection '1'
+	option rebind_localhost '1'
+	option local '/lan/'
+	option domain 'lan'
+	option expandhosts '1'
+	option nonegcache '0'
+	option authoritative '1'
+	option readethers '1'
+	option leasefile '/tmp/dhcp.leases'
+	option resolvfile '/tmp/resolv.conf.auto'
+
+config dhcp 'lan'
+	option interface 'lan'
+	option start '100'
+	option limit '150'
+	option leasetime '12h'
+	option dhcpv6 'hybrid'
+	option ra 'hybrid'
+	option ndp 'hybrid'
+
+config dhcp 'wan'
+	option interface 'wan'
+	option ignore '1'
+
+config odhcpd 'odhcpd'
+	option maindhcp '0'
+	option leasefile '/tmp/hosts/odhcpd'
+	option leasetrigger '/usr/sbin/odhcpd-update'
+
+config dhcp 'wan6'
+	option dhcpv6 'hybrid'
+	option ra 'hybrid'
+	option ndp 'hybrid'
+	option master '1'
+

+ 5 - 0
openwrt/TLWA701/etc/config/dropbear

@@ -0,0 +1,5 @@
+config dropbear
+	option PasswordAuth 'on'
+	option RootPasswordAuth 'on'
+	option Port         '22'
+#	option BannerFile   '/etc/banner'

+ 177 - 0
openwrt/TLWA701/etc/config/firewall

@@ -0,0 +1,177 @@
+config defaults
+	option syn_flood	1
+	option input		ACCEPT
+	option output		ACCEPT
+	option forward		REJECT
+# Uncomment this line to disable ipv6 rules
+	option disable_ipv6	1
+
+config zone
+	option name		lan
+	list   network		'lan'
+	option input		ACCEPT
+	option output		ACCEPT
+	option forward		ACCEPT
+
+config zone
+	option name		wan
+	list   network		'wan'
+	list   network		'wan6'
+	option input		REJECT
+	option output		ACCEPT
+	option forward		REJECT
+	option masq		1
+	option mtu_fix		1
+
+config forwarding
+	option src		lan
+	option dest		wan
+
+# We need to accept udp packets on port 68,
+# see https://dev.openwrt.org/ticket/4108
+config rule
+	option name		Allow-DHCP-Renew
+	option src		wan
+	option proto		udp
+	option dest_port	68
+	option target		ACCEPT
+	option family		ipv4
+
+# Allow IPv4 ping
+config rule
+	option name		Allow-Ping
+	option src		wan
+	option proto		icmp
+	option icmp_type	echo-request
+	option family		ipv4
+	option target		ACCEPT
+
+# Allow DHCPv6 replies
+# see https://dev.openwrt.org/ticket/10381
+config rule
+	option name		Allow-DHCPv6
+	option src		wan
+	option proto		udp
+	option src_ip		fe80::/10
+	option src_port		547
+	option dest_ip		fe80::/10
+	option dest_port	546
+	option family		ipv6
+	option target		ACCEPT
+
+# Allow essential incoming IPv6 ICMP traffic
+config rule
+	option name		Allow-ICMPv6-Input
+	option src		wan
+	option proto	icmp
+	list icmp_type		echo-request
+	list icmp_type		echo-reply
+	list icmp_type		destination-unreachable
+	list icmp_type		packet-too-big
+	list icmp_type		time-exceeded
+	list icmp_type		bad-header
+	list icmp_type		unknown-header-type
+	list icmp_type		router-solicitation
+	list icmp_type		neighbour-solicitation
+	list icmp_type		router-advertisement
+	list icmp_type		neighbour-advertisement
+	option limit		1000/sec
+	option family		ipv6
+	option target		ACCEPT
+
+# Allow essential forwarded IPv6 ICMP traffic
+config rule
+	option name		Allow-ICMPv6-Forward
+	option src		wan
+	option dest		*
+	option proto		icmp
+	list icmp_type		echo-request
+	list icmp_type		echo-reply
+	list icmp_type		destination-unreachable
+	list icmp_type		packet-too-big
+	list icmp_type		time-exceeded
+	list icmp_type		bad-header
+	list icmp_type		unknown-header-type
+	option limit		1000/sec
+	option family		ipv6
+	option target		ACCEPT
+
+# include a file with users custom iptables rules
+config include
+	option path /etc/firewall.user
+
+
+### EXAMPLE CONFIG SECTIONS
+# do not allow a specific ip to access wan
+#config rule
+#	option src		lan
+#	option src_ip	192.168.45.2
+#	option dest		wan
+#	option proto	tcp
+#	option target	REJECT
+
+# block a specific mac on wan
+#config rule
+#	option dest		wan
+#	option src_mac	00:11:22:33:44:66
+#	option target	REJECT
+
+# block incoming ICMP traffic on a zone
+#config rule
+#	option src		lan
+#	option proto	ICMP
+#	option target	DROP
+
+# port redirect port coming in on wan to lan
+#config redirect
+#	option src			wan
+#	option src_dport	80
+#	option dest			lan
+#	option dest_ip		192.168.16.235
+#	option dest_port	80
+#	option proto		tcp
+
+# port redirect of remapped ssh port (22001) on wan
+#config redirect
+#	option src		wan
+#	option src_dport	22001
+#	option dest		lan
+#	option dest_port	22
+#	option proto		tcp
+
+# allow IPsec/ESP and ISAKMP passthrough
+#config rule
+#	option src		wan
+#	option dest		lan
+#	option protocol		esp
+#	option target		ACCEPT
+
+#config rule
+#	option src		wan
+#	option dest		lan
+#	option src_port		500
+#	option dest_port	500
+#	option proto		udp
+#	option target		ACCEPT
+
+### FULL CONFIG SECTIONS
+#config rule
+#	option src		lan
+#	option src_ip	192.168.45.2
+#	option src_mac	00:11:22:33:44:55
+#	option src_port	80
+#	option dest		wan
+#	option dest_ip	194.25.2.129
+#	option dest_port	120
+#	option proto	tcp
+#	option target	REJECT
+
+#config redirect
+#	option src		lan
+#	option src_ip	192.168.45.2
+#	option src_mac	00:11:22:33:44:55
+#	option src_port		1024
+#	option src_dport	80
+#	option dest_ip	194.25.2.129
+#	option dest_port	120
+#	option proto	tcp

+ 19 - 0
openwrt/TLWA701/etc/config/fstab

@@ -0,0 +1,19 @@
+config 'global'
+  option  'anon_swap'   '0'
+  option  'anon_mount'  '0'
+  option  'auto_swap'   '0'
+  option  'auto_mount'  '0'
+  option  'delay_root'  '5'
+  option  'check_fs'    '0'
+
+config 'global' 'automount'
+  option  'from_fstab'  '1'
+  option  'anon_mount'  '0'
+
+config 'mount'
+  option 'label'        'superglue'
+  option 'target'       '/www/htdocs'
+  option 'enabled'      '1'
+  option 'enabled_fsck' '0'
+  option 'options'      'rw,noatime'
+

+ 19 - 0
openwrt/TLWA701/etc/config/network

@@ -0,0 +1,19 @@
+
+config interface 'loopback'
+	option ifname 'lo'
+	option proto 'static'
+	option ipaddr '127.0.0.1'
+	option netmask '255.0.0.0'
+
+config globals 'globals'
+	option ula_prefix 'fd2c:90fd:3f5a::/48'
+
+config interface 'lan'
+	option ifname 'eth1'
+	option force_link '1'
+	option type 'bridge'
+	option proto 'static'
+	option ipaddr '192.168.1.1'
+	option netmask '255.255.255.0'
+	option ip6assign '60'
+

+ 19 - 0
openwrt/TLWA701/etc/config/system

@@ -0,0 +1,19 @@
+
+config system
+	option hostname 'sg'
+	option timezone 'UTC'
+
+config timeserver 'ntp'
+	list server '0.openwrt.pool.ntp.org'
+	list server '1.openwrt.pool.ntp.org'
+	list server '2.openwrt.pool.ntp.org'
+	list server '3.openwrt.pool.ntp.org'
+	option enable_server '0'
+
+config led 'led_lan'
+	option name 'LAN'
+	option sysfs 'd-link:green:power'
+	option trigger 'netdev'
+	option dev 'eth1'
+	option mode 'link tx rx'
+

+ 0 - 0
openwrt/TLWA701/etc/config/ubootenv


+ 14 - 0
openwrt/TLWA701/etc/config/wireless

@@ -0,0 +1,14 @@
+config wifi-device  radio0
+	option type     mac80211
+	option channel  auto
+	option hwmode	11g
+	option path	'platform/ar933x_wmac'
+	option htmode	HT20
+
+config wifi-iface
+	option device   radio0
+	option network  lan
+	option mode     ap
+	option ssid     SuperGlue_server
+	option encryption none
+

+ 10 - 0
openwrt/TLWA701/etc/group

@@ -0,0 +1,10 @@
+root:x:0:
+daemon:x:1:
+adm:x:4:
+mail:x:8:
+audio:x:29:
+www-data:x:33:
+ftp:x:55:
+users:x:100:
+network:x:101:
+nogroup:x:65534:

+ 6 - 0
openwrt/TLWA701/etc/lighttpd/htpasswd-dist

@@ -0,0 +1,6 @@
+# to enable HTTP authentication you should must this file
+# to .htpasswd and run a following command:
+#
+# # htdigest .htpasswd superglue username
+#
+# and then provide a password

+ 51 - 0
openwrt/TLWA701/etc/lighttpd/lighttpd.conf

@@ -0,0 +1,51 @@
+server.modules = (
+ "mod_access",
+ "mod_cgi",
+ "mod_compress",
+ "mod_accesslog",
+ "mod_rewrite",
+ "mod_auth",
+# "mod_setenv",
+# "mod_status",
+# "mod_alias",
+# "mod_redirect",
+# "mod_debug"
+)
+
+server.document-root = "/www/htdocs"
+server.upload-dirs = ( "/www/tmp" )
+server.errorlog = "/tmp/lighttpd-error.log"
+accesslog.filename = "/tmp/lighttpd-access.log"
+server.pid-file = "/var/run/lighttpd.pid"
+server.username = "httpd"
+server.groupname = "www-data"
+server.port = 80
+
+#debug.log-request-handling = "enable"
+#debug.log-request-header = "enable"
+#debug.log-file-not-found	= "enable"
+#debug.log-request-header-on-error = "enable"
+#debug.log-response-header = "enable"
+#debug.log-condition-handling	= "enable"
+
+auth.backend		= "htdigest"
+auth.backend.htdigest.userfile = "/etc/lighttpd/.htpasswd"
+#auth.debug = 2
+
+#setenv.add-response-header = ( "Access-Control-Allow-Origin" => "*" )
+compress.cache-dir = "/tmp/lighttpd/compress"
+compress.filetype = ( "application/x-javascript", "text/css", "text/html", "text/plain" )
+
+index-file.names = ( "index.html" )
+
+cgi.assign = ( ".sh" => "/bin/bash" )
+url.access-deny = ( "~", ".inc", ".htaccess", ".htpasswd")
+
+$HTTP["request-method"] == "POST" {
+ server.document-root = "/www/lib"
+ url.rewrite = ( ".*" => "post.sh" )
+}
+
+#auth.require = ( "/post.sh" => ( "method" => "digest", "realm" => "superglue test", "require" => "valid-user" ) )
+
+include "/etc/lighttpd/mime.conf"

+ 79 - 0
openwrt/TLWA701/etc/lighttpd/mime.conf

@@ -0,0 +1,79 @@
+#######################################################################
+##
+##  MimeType handling
+## -------------------
+##
+## http://www.lighttpd.net/documentation/configuration.html#mimetypes
+##
+## Use the "Content-Type" extended attribute to obtain mime type if
+## possible
+##
+mimetype.use-xattr        = "disable"
+
+##
+## mimetype mapping
+##
+mimetype.assign             = (
+  ".pdf"          =>      "application/pdf",
+  ".sig"          =>      "application/pgp-signature",
+  ".spl"          =>      "application/futuresplash",
+  ".class"        =>      "application/octet-stream",
+  ".ps"           =>      "application/postscript",
+  ".torrent"      =>      "application/x-bittorrent",
+  ".dvi"          =>      "application/x-dvi",
+  ".gz"           =>      "application/x-gzip",
+  ".pac"          =>      "application/x-ns-proxy-autoconfig",
+  ".swf"          =>      "application/x-shockwave-flash",
+  ".tar.gz"       =>      "application/x-tgz",
+  ".tgz"          =>      "application/x-tgz",
+  ".tar"          =>      "application/x-tar",
+  ".zip"          =>      "application/zip",
+  ".mp3"          =>      "audio/mpeg",
+  ".m3u"          =>      "audio/x-mpegurl",
+  ".wma"          =>      "audio/x-ms-wma",
+  ".wax"          =>      "audio/x-ms-wax",
+  ".ogg"          =>      "application/ogg",
+  ".wav"          =>      "audio/x-wav",
+  ".gif"          =>      "image/gif",
+  ".jpg"          =>      "image/jpeg",
+  ".jpeg"         =>      "image/jpeg",
+  ".png"          =>      "image/png",
+  ".xbm"          =>      "image/x-xbitmap",
+  ".xpm"          =>      "image/x-xpixmap",
+  ".xwd"          =>      "image/x-xwindowdump",
+  ".css"          =>      "text/css",
+  ".html"         =>      "text/html",
+  ".htm"          =>      "text/html",
+  ".js"           =>      "text/javascript",
+  ".asc"          =>      "text/plain",
+  ".c"            =>      "text/plain",
+  ".cpp"          =>      "text/plain",
+  ".log"          =>      "text/plain",
+  ".conf"         =>      "text/plain",
+  ".text"         =>      "text/plain",
+  ".txt"          =>      "text/plain",
+  ".spec"         =>      "text/plain",
+  ".dtd"          =>      "text/xml",
+  ".xml"          =>      "text/xml",
+  ".mpeg"         =>      "video/mpeg",
+  ".mpg"          =>      "video/mpeg",
+  ".mov"          =>      "video/quicktime",
+  ".qt"           =>      "video/quicktime",
+  ".avi"          =>      "video/x-msvideo",
+  ".asf"          =>      "video/x-ms-asf",
+  ".asx"          =>      "video/x-ms-asf",
+  ".wmv"          =>      "video/x-ms-wmv",
+  ".bz2"          =>      "application/x-bzip",
+  ".tbz"          =>      "application/x-bzip-compressed-tar",
+  ".tar.bz2"      =>      "application/x-bzip-compressed-tar",
+  ".rpm"          =>      "application/x-rpm",
+  ".ttf"          =>      "application/font-sfnt",
+  ".otf"          =>      "application/font-sfnt",
+  # make the default mime type application/octet-stream.
+  ""              =>      "application/octet-stream",
+ )
+
+
+#
+#######################################################################
+

+ 6 - 0
openwrt/TLWA701/etc/opkg.conf

@@ -0,0 +1,6 @@
+src/gz barrier_breaker http://blast.k0a1a.net/~danja/sg-openwrt/packages
+dest root /
+dest ram /tmp
+dest opt /opt/root
+lists_dir ext /var/opkg-lists
+option overlay_root /overlay

+ 6 - 0
openwrt/TLWA701/etc/passwd

@@ -0,0 +1,6 @@
+root:x:0:0:root:/root:/bin/ash
+daemon:*:1:1:daemon:/var:/bin/false
+ftp:*:55:55:ftp:/home/ftp:/bin/false
+network:*:101:101:network:/var:/bin/false
+nobody:*:65534:65534:nobody:/var:/bin/false
+httpd:*:999:999:www-data:/www:/bin/false

+ 31 - 0
openwrt/TLWA701/etc/rc.local

@@ -0,0 +1,31 @@
+## some checks specific to SuperGlue
+
+## where SuperGlue storage is mounted 
+_SG=/www/htdocs
+
+## if /www is mounted
+mountpoint -q $_SG && (
+
+  ## if not writable chown with httpd
+  [ $(stat $_SG -c %U) != 'httpd' ] && chown -R httpd $_SG
+  [ $(stat $_SG -c %a) -lt '755' ] && chmod -R u+rwX $_SG
+
+  ## check if index.html is present
+  [ -e $_SG/index.html ] || (
+    cp /www/lib/resources/index.html $_SG
+    chown httpd $_SG/index.html
+    )
+
+  ## check symlinking
+  for i in devTools resources templates; do
+    [ -L $_SG/$i ] || ln -s /www/lib/$i $_SG/$i
+  done
+
+  ## if /www/tmp does not exist
+  [ -d /www/tmp ] || (
+    mkdir /www/tmp && chown httpd /www/tmp
+    )
+  )
+)
+
+exit 0

+ 6 - 0
openwrt/TLWA701/etc/shadow

@@ -0,0 +1,6 @@
+root::0:0:99999:7:::
+daemon:*:0:0:99999:7:::
+ftp:*:0:0:99999:7:::
+network:*:0:0:99999:7:::
+nobody:*:0:0:99999:7:::
+httpd:!:16134::::::

+ 1 - 0
openwrt/TLWA701/etc/superglue_model

@@ -0,0 +1 @@
+dir505

+ 1 - 0
openwrt/TLWA701/etc/superglue_version

@@ -0,0 +1 @@
+0.1

+ 5 - 0
openwrt/TLWA701/etc/uci-defaults/12-fstab-enable

@@ -0,0 +1,5 @@
+[ -e /etc/config/fstab ] && [ -z $(find /etc/rc.d/ -name 'S??fstab') ] && ( 
+  /etc/init.d/fstab enable
+  /etc/init.d/fstab start
+  )
+

+ 9 - 0
openwrt/TLWA701/etc/uci-defaults/20-set-ssid

@@ -0,0 +1,9 @@
+_MAC=$(iw wlan0 info | awk 'BEGIN { FS=":" } /addr/ { print $5$6 }')                 
+_MAC="SuperGlue-"$_MAC                                                               
+
+[ $(uci get wireless.@wifi-iface[0].ssid) != $_MAC ] && (
+  uci set wireless.@wifi-iface[0].ssid=$_MAC
+  uci commit
+  )
+
+exit 1

+ 58 - 0
openwrt/TLWA701/mnt/sda1-dist/opkg-link

@@ -0,0 +1,58 @@
+#!/bin/sh
+#
+# Create symbolic links from all files in
+# alternative opkg destinations
+#
+# By Stefan Tomanek <stefan@pico.ruhr.de>
+
+# readlink might not be installed, so we probably
+# cannot detect whether a link points to a specific target
+if which readlink >/dev/null; then
+    points_to() {
+        local DST
+        local SRC
+        DST="$1"
+        SRC="$2"
+        [ `readlink "$DST"` = "$SRC" ]
+    }
+else
+    # we cannot determine the target of the link,
+    # so we return false to be on the safe side
+    false
+fi
+
+# find out the installation directories
+awk '$1 == "dest" && $3 != "/" { print $2, $3 }' /etc/opkg.conf | \
+while read DEST DDIR; do
+    echo "Processing destination $DEST..." >&2
+    # if the direktory does not exist, continue
+    [ -d "$DDIR" ] || continue
+
+    for LIST in "$DDIR/usr/lib/opkg/info"/*.list; do
+        [ -e "$LIST" ] || continue;
+        PKG=${LIST##*/}
+        PKG=${PKG%.list}
+        echo "  Linking package ${PKG} from $DEST..." >&2
+        while read FSRC; do
+            FDST=${FSRC#$DDIR}
+            
+            FDSTDIR=${FDST%/*}/
+            [ ! -d "$FDSTDIR" ] && {
+                echo "   Creating directory $FDSTDIR..." >&2
+                mkdir -p "$FDSTDIR"
+            }
+            if [ ! -e "$FDST" ] || [ -L "$FDST" ]; then
+                # do not rewrite every link
+                if [ -L "$FDST" ] && [ `readlink "$FDST"` = "$FSRC" ]; then
+                    :
+                    #echo "   $FDST already linked." >&2
+                else
+                    echo "   linking $FSRC -> $FDST" >&2
+                    ln -sf "$FSRC" "$FDST" 
+                fi
+            else
+                echo "   Not replacing existing file $FDST!" >&2
+            fi
+        done < "$LIST"
+  done
+done

+ 21 - 0
openwrt/TLWA701/mnt/sda1-dist/opkg-link-clean

@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# Find dangling symlinks that point into
+# opkg destination
+#
+# this script must be called with an pkg destination as first
+# argument
+#
+# By Stefan Tomanek <stefan@pico.ruhr.de>
+
+DEST=$1
+
+DDIR=`awk -vDEST=$DEST '$1 == "dest" && $2 == DEST { print $3 }' /etc/opkg.conf`
+
+[ -z "$DDIR" ] && exit 1
+
+find / -xdev -type l | while read L; do
+    readlink $L
+done | grep "^${DDIR}" | while read T; do
+    [ ! -e "$T" ] && echo ${T#$DDIR}
+done

+ 50 - 0
openwrt/TLWA701/root/pull-serverside-repo.sh

@@ -0,0 +1,50 @@
+#!/bin/bash
+
+## fetch and update contents of /www/ from git.superglue.it
+
+_PWD=$(pwd)
+_USER='httpd'
+_WWW='/www'
+_URL='http://git.superglue.it/superglue/serverside/repository/archive.tar.gz'
+_ARC=$(curl -Is $_URL | awk -F\" '/serverside/ { print $2 }')
+
+cd /tmp
+
+if [[ -z "$_ARC" ]]; then
+  echo 'error fetching archive version'
+  exit 1
+fi
+
+if [[ ! -e "$_ARC" ]]; then
+  echo -n "$(date): fetching $_ARC "
+  curl -OJs "$_URL" || exit 1
+  echo "OK"
+else 
+#  echo 'im up-to-date'
+  exit 0
+fi
+
+_DIR=($(tar xvzf $_ARC 2>/dev/null))
+
+if [[ -z "$_DIR" ]]; then
+ echo 'error extracting archive'
+ exit 1
+fi
+
+cp -Rf "$_DIR"/* $_WWW/ &&
+chown -R $_USER $_WWW/* &&
+_OUT="$(date): update OK"
+
+echo "$_OUT"
+
+if [[ ! -z "_OUT" ]]; then 
+	echo -e "Subject: pull-serverside-repo.sh\n$_ARC\n$_OUT" | sendmail -f'sg1@superglue.it' -t -s192.168.1.100 robot@k0a1a.net
+fi
+
+## remove old archives and unpacked directory
+for i in $(ls -1d serverside* | grep -v "$_ARC"); do rm -Rf "$i"; done 
+
+cd $_PWD
+
+exit 0
+

+ 7 - 0
openwrt/TLWA701/www/htdocs/index.html

@@ -0,0 +1,7 @@
+<html>
+<head><title>Storage unavailable | SuperGlue</title></head>
+<body style='background-color:#777; color:#eee'>
+<h1>Storage unavailable..</h1>
+<h2>Please make sure that USB storage device is attached to the unit</h2>
+</body>
+</html>

+ 0 - 0
openwrt/TLWA701/www/lib/.keep


+ 302 - 0
openwrt/TLWA701/www/lib/cgi/post.sh

@@ -0,0 +1,302 @@
+#!/bin/bash
+
+## SuperGlue project | http://superglue.it | 2014 | GPLv3
+## http://git.superglue.it/superglue/serverside/edit/master/common/rootFS/www/lib/post.sh
+## author: Danja Vasiliev <danja@k0a1a.net>
+##
+## post.sh - all POST requests are redirected to this script.
+## 
+## examples:
+## text:    curl --data-urlencode '<html><title>' http://host/file.html
+## image:   curl --form "userimage=@file.png" -H "Expect:" http://host/file.png 
+## command: curl --data-urlencode 'ls' http://host/cmd
+##
+## returns: 200 (+ output of operation) on success
+##          406 (+ error message in debug mode) on error
+
+## no globbing, for safety
+set -o noglob
+
+## some path variables
+_WWW='/www'
+_HTDOCS="${_WWW}/htdocs"
+_TMP="${_WWW}/tmp"
+_LOG="${_TMP}/post.log"
+
+## _DEBUG=0 no logging at all
+## _DEBUG=1 writes to $_LOG file
+## _DEBUG=2 adds [verbose].. to HTTP response. Can be triggered via 'Content-Type' header option
+## eg: "Content-Type:application/octet-stream; verbose=1"
+_DEBUG=1
+
+#### FUNCTIONS
+
+## logging
+logThis() {
+  [[ $_DEBUG -gt 0 ]] || return 0
+  [[ $_ERR -gt 0 ]] && _TYPE='E:' || _TYPE='I:'  ## Info or Error indication
+  local _TIME=$(printf '%(%d.%m.%Y %H:%M:%S)T' -1)
+  printf '%b\n' "$_TIME  $_TYPE ${1} " >> $_LOG
+  [[ $_DEBUG -gt 1 ]] && printf '%b\n' "[verbose] $_TYPE ${1}"
+  return 0
+}
+
+## inject function execution trace to global _OUT
+wTf() {
+  local _WTF="$(printf '%s -> ' '| trace: '${FUNCNAME[*]:1})"
+  _OUT="$_OUT $_WTF"
+}
+
+## urldecode
+urlDecode() {
+  local encoded="${1//+/ }"
+  printf '%b' "${encoded//%/\x}"
+}
+
+## http response
+headerPrint() {
+  case ${1} in
+    200) printf '%b' 'HTTP/1.1 200 OK\nAccess-Control-Allow-Origin: *\n\n';;
+    405) printf '%b' 'HTTP/1.1 405 Method Not Allowed\n\n';;
+    406) printf '%b' 'HTTP/1.1 406 Not Acceptable\n\n';;
+  esac
+  return 0
+}
+
+## takes exit code variable $? and optional "message" string.
+## exit code 0 simply falls through. when local message 
+## is not provided tries to assign global $_OUT.
+##
+## eg: errorCheck $? "bad zombie"
+##
+## produces HTTP 406 header, $_OUT message, triggers logThis()
+## and exits the main loop with exit >= 1.
+errorCheck() {
+  _ERR=${1}  ## exit code
+  [[ $_ERR -gt 0 ]] || return 0
+  local _MSG=${2}
+  ## if $_OUT is present cut it down to one line
+  ## otherwise assign message from the invokation arguments
+  [[ $_OUT ]] && _OUT="${_OUT%%$'\n'*}" || { _OUT=${_MSG:='unknown error occured'}; wTf; }
+  [[ -e $_POST_TMP ]] && rm -f $_POST_TMP
+  headerPrint '406'
+  logThis "${_OUT}";
+  exit $_ERR
+}
+
+## urlencoded POST dispatcher
+postUrlenc() {
+  ## decode stream
+  _POST=$(urlDecode "$(< $_POST_TMP)")  ## decode global $_POST
+  case "${_REQUEST_URI}" in
+    \/cmd) postCmd  ;;  ## handle /cmd POST
+        *) postHtml ;;  ## handle html POST
+  esac
+}
+
+## handle /cmd POST
+postCmd() {
+  local _CMD=( ${_POST} )  ## convert POST to array
+  [[ ${#_CMD[@]} -lt 5 ]] || errorCheck '1' "'${_CMD[*]}': too many arguments"
+  local _EXE="${_CMD[0]}"  ## first member is command 
+  local _ARG="${_CMD[@]:1}"  ## the rest is arguments
+  ## note unquoted regex
+  [[ ! "$_ARG" =~ (\.\.|^/| /) ]] || errorCheck '1' "'$_ARG': illegal path"
+
+  ## 'ls' replacement function
+  lss() {
+    _D='\t' ## do we want a customizable delimiter? 
+    while getopts 'la' _OPT; do
+      case $_OPT in
+        l) local _LNG="$_D%F$_D%s$_D%y$_D%U$_D%G$_D%a" ;;
+        a) shopt -s dotglob
+      esac
+    done
+    shift $((OPTIND-1)) ## removing used args
+    [[ -z "${@}" ]] && _PT="./*"  ## list ./* if called with no args
+    [[ -d "${@}" ]] && _PT="/*" ## add /* to directories
+    ## if error occures return 0
+    stat --printf "%n$_LNG\n" -- "${@%%/}"$_PT 2>/dev/null || _ERR=0
+    return $_ERR
+  }
+  case "$_EXE" in
+   ls|lss) _EXE="lss"; _ARG="${_ARG}" ;;  ## no error is returned
+       cp) _ARG="${_ARG}" ;;
+       rm) _ARG="${_ARG}" ;;  ## add recursive option if you need
+       mv) _ARG="${_ARG}" ;;
+    mkdir) _ARG="${_ARG}" ;;
+      log) _EXE="tail"; _ARG="${_ARG} ${_LOG}" ;; 
+     wget) _ARG="-q ${_ARG/ */} -O ${_ARG/* /}" ;;  ## quiet
+        *) errorCheck '1' "'$_EXE': bad command" ;;
+  esac
+  ## toggle globbing  
+  set +o noglob  
+  _OUT=$($_EXE $_ARG 2>&1)
+  _ERR=$?
+   ## toggle globbing
+  set -o noglob
+  logThis "$_EXE $_ARG"
+  errorCheck $_ERR
+}
+
+## handle html POST
+postHtml() {
+  ## save POST to file
+  _OUT=$( (printf '%b' "${_POST}" > "${_HTDOCS}${_REQUEST_URI}") 2>&1)
+  _ERR=$?
+  errorCheck $_ERR
+}
+
+## octet POST dispatcher
+postOctet() {
+  ## get 'data:' header length 
+  local IFS=','; read -d',' -r _DH < $_POST_TMP
+  case "${_ENC}" in
+    base64) postBase64Enc;;
+    binary) postBinary ;;
+         *) postGuessEnc ;;  ## handle data POST
+  esac
+}
+
+## to be converted into a proper data-type detection function
+postGuessEnc() {
+  shopt -s nocasematch
+  local _DTP="^.*\;([[:alnum:]].+)$" ## data-type header pattern
+  ## look for encoding in the data header
+  [[ "${_DH}" =~ ${_DTP} ]] && _ENC="${BASH_REMATCH[1]}"
+  logThis "'$_ENC:' encoding is the best guess";
+  shopt -u nocasematch
+  case "$_ENC" in
+                base64) postBase64Enc ;;
+             ## binary) _ERR=1 ;; 
+             ##   json) _ERR=1 ;;
+   ## quoted-printable) _ERR=1 ;;
+                     *) _ERR=1; _OUT="'${_ENC:='unknown'}' encoding, unknown POST failed";;
+  esac
+  errorCheck $_ERR
+}
+
+## handle base64 post
+postBase64Enc() {
+  logThis "'${_ENC}:' decoding stream"
+  _DL=${#_DH}  ## get data-header length
+  [[ $_DL -lt 10 ]] && { _DL=23; _SKP=0; } || { let _DL+=1; _SKP=1; }  ## '23' - what?!
+  ## the line below seems to be the best solution for the time being
+  ## dd 'ibs' and 'iflags' seem not to work on OpenWRT - investigate as it might be very useful
+  _OUT=$( dd if=${_POST_TMP} bs=${_DL} skip=${_SKP} | base64 -d > "${_HTDOCS}${_REQUEST_URI}" 2>&1) 
+  _ERR=$?
+  errorCheck $_ERR
+}
+
+postBinary() {
+  logThis "'binary': decoding stream"
+  ## it is unclear what will be necessary to do here
+  _OUT=$( dd if="${_POST_TMP}" of="${_HTDOCS}${_REQUEST_URI}" 2>&1 )
+  _ERR=$?
+  errorCheck $_ERR
+}
+
+postMpart() {
+  logThis "'multipart': decoding stream"
+  local _BND=$(findPostOpt 'boundary')
+  ## bash is binary unsafe and eats away precious lines
+  ## thus using gawk
+  function cutFile() {
+    gawk -v "want=$1" -v "bnd=$_BND" '
+      BEGIN { RS="\r\n"; ORS="\r\n" }
+
+      # reset based on boundaries
+      $0 == "--"bnd""     { st=1; next; }
+      $0 == "--"bnd"--"   { st=0; next; }
+      $0 == "--"bnd"--\r" { st=0; next; }
+
+      # search for wanted file
+      st == 1 && $0 ~  "^Content-Disposition:.* name=\""want"\"" { st=2; next; }
+      st == 1 && $0 == "" { st=9; next; }
+
+      # wait for newline, then start printing
+      st == 2 && $0 == "" { st=3; next; }
+      st == 3 { print $0 }
+      ' 2>&1
+  }
+  cutFile 'userimage' < "${_POST_TMP}" > "${_HTDOCS}${_REQUEST_URI}"
+  _ERR=$?
+  errorCheck $_ERR
+}
+
+## find arbitrary option supplied in Content-Type header
+## eg: "Content-Type:application/octet-stream; verbose=1"
+findPostOpt() {
+  for i in "${CONTENT_TYPE[@]:1}"; do
+    case "${i/=*}" in 
+      "$1") printf '%b' "${i/*=}" ;;
+    esac
+  done
+  return 0
+}
+
+## sanitize by backslashing all expandable symbols
+escapeStr() {
+  printf "%q" "${*}"
+}
+
+## brutally replace unwanted characters
+cleanFname() {
+  shopt -s extglob
+  local _STR="${*}"
+  echo -n "${_STR//[^[:alnum:]._\-\/\\]/_}"
+  shopt -u extglob
+}
+
+#### MAIN LOOP
+
+## timing
+## TODO: remove it
+## run once here and once at the end
+read t z < /proc/uptime
+
+## check if we are in $_HTDOCS directory
+cd $_HTDOCS || errorCheck $? 'htdocs unavailable'
+[[ ${PWD} == ${_HTDOCS} ]] || errorCheck $? 'htdocs misconfigured'
+[[ $CONTENT_LENGTH -gt 0 ]] || errorCheck $? 'content length zero'
+
+## URI is considered as a file dest to work with
+## add 'index.html' to default and empty request uri
+_REQUEST_URI="${REQUEST_URI/%\///index.html}"
+_REQUEST_URI="$(urlDecode $_REQUEST_URI)"
+_PATH="${_REQUEST_URI%/*}"
+
+CONTENT_TYPE=( ${CONTENT_TYPE} )
+_CONTENT_TYPE="${CONTENT_TYPE[0]/;}"
+_ENC="${HTTP_CONTENT_ENCODING}"
+
+#logThis "Len: $CONTENT_LENGTH Ctype: $CONTENT_TYPE Enc: $_CONTENT_ENCODING"
+
+## check for 'verbose' option in POST
+findPostOpt 'verbose' || { _DEBUG=2; logThis 'verbose mode is requested'; }
+
+_POST_TMP=$(mktemp -p $_TMP)  ## make tmp POST file
+cat > $_POST_TMP  ## cautiously storing entire POST in a file
+
+## dispatching POST
+case "${_CONTENT_TYPE}" in
+  application\/x-www-form-urlencoded) postUrlenc ;;
+           application\/octet-stream) postOctet ;;
+                 multipart/form-data) postMpart ;;
+                                   *) _ERR=1; _OUT='this is not a post' ;;
+esac
+[[ -e $_POST_TMP ]] && rm -f $_POST_TMP
+
+## make sure we are good
+errorCheck $_ERR 
+
+[[ -z $_OUT ]] || _OUT="${_OUT}\n"
+
+headerPrint '200' ## on success
+printf '%b' "${_OUT}" 
+logThis 'OK 200' 
+
+read d z < /proc/uptime
+logThis $((${d/./}-${t/./}))"/100s"
+
+exit 0

+ 29 - 0
openwrt/TLWA701/www/lib/cgi/sysinfo.sh

@@ -0,0 +1,29 @@
+#!/bin/ash
+
+echo -e "Content-type: text/html\n"
+
+echo -e "<!doctype html><html>
+<head>
+<title>Superglue test</title>
+<style>body { font-family: monospace; white-space: pre;}</style>
+</head>
+<body>
+<h2>Superglue test server</h2>
+
+$(uptime)
+
+$(head -n5 /proc/cpuinfo)
+
+$(free)
+
+$(df -h)
+
+$(env)
+
+$(echo $PATH)
+
+$(echo $USER)
+
+</body></html>"
+
+exit 0

+ 421 - 0
openwrt/TLWA701/www/lib/devTools/SCSystemBrowser.html

@@ -0,0 +1,421 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <title>SystemBrowser &mdash; SmallClasses.js</title>
+        <script src="ace/ace.js" type="text/javascript" charset="utf-8"></script>
+        <script src="ace/ext-language_tools.js" type="text/javascript" charset="utf-8"></script>
+        <script type="text/javascript">
+
+            var SC = window.opener.SC;
+            window.ace = ace;
+
+            var onLoad = function(evt){
+
+                window.editorSharedPropertyValidator    = ace.edit("sharedPropertyValidatorEditor");
+                window.editorSharedPropertyTransformer  = ace.edit("sharedPropertyTransformerEditor");
+                window.editorPropertyValidator          = ace.edit("propertyValidatorEditor");
+                window.editorPropertyTransformer        = ace.edit("propertyTransformerEditor");
+                window.editorMethodCode                 = ace.edit("methodCodeEditor");
+                
+                allEditors = [
+                    editorSharedPropertyValidator,
+                    editorSharedPropertyTransformer,
+                    editorPropertyValidator,
+                    editorPropertyTransformer,
+                    editorMethodCode
+                ];
+
+                for(var i = 0; i < allEditors.length; i++){
+                    allEditors[i].setTheme("ace/theme/monokai");
+                    allEditors[i].getSession().setMode("ace/mode/javascript");
+                    allEditors[i].setFontSize(16)
+                    allEditors[i].setOptions({  maxLines:                   Infinity,
+                                                showPrintMargin:            false,
+                                                highlightActiveLine:        false,
+                                                enableBasicAutocompletion:  true,
+                    });
+
+                }
+                
+                onResize();
+
+                SC.init('SCSystemBrowser', { browserWindow: window });
+
+            };
+
+            var onResize = function(evt){
+
+                window.document.getElementById('packageList').style.height      = (window.innerHeight-100) + 'px';
+                window.document.getElementById('classControls').style.width     = (window.innerWidth-200) + 'px';
+                window.document.getElementById('classTraitsInput').style.width  = (window.innerWidth-300) + 'px';
+                window.document.getElementById('classMixinsInput').style.width  = (window.innerWidth-300) + 'px';
+                window.document.getElementById('classSharedPropertiesList').style.width = ((window.innerWidth-200)/3) + 'px';
+                window.document.getElementById('classPropertiesList').style.width       = ((window.innerWidth-200)/3) + 'px';
+                window.document.getElementById('classMethodsList').style.width          = ((window.innerWidth-200)/3) + 'px';
+                window.document.getElementById('classPropertiesList').style.left        = ((window.innerWidth-200)/3) + 'px';
+                window.document.getElementById('classMethodsList').style.left           = ((window.innerWidth-200)/3*2) + 'px';
+
+
+
+                for(var divsToFillWidth = [
+                        'classCommentEditor',
+                        'sharedPropertyCommentEditor',
+                        'sharedPropertyInitValueEditor',
+                        'sharedPropertyValidatorEditor',
+                        'sharedPropertyTransformerEditor',
+                        'propertyCommentEditor',
+                        'propertyValidatorEditor',
+                        'propertyTransformerEditor',
+                        'methodCommentEditor',
+                        'methodCodeEditor'
+                    ],
+                        i = 0; i < divsToFillWidth.length; i++){
+
+                    window.document.getElementById(divsToFillWidth[i]).style.width = (window.innerWidth-240) + 'px';
+
+                }
+
+
+
+
+                for(var editorPanes = window.document.getElementsByClassName('editorPane'),
+                    i = 0; i < editorPanes.length; i++){
+
+                    //editorPanes[i].style.width   = (window.innerWidth-200) + 'px';
+                    //editorPanes[i].style.height  = (window.innerHeight-330) + 'px';
+                    
+                    editorSharedPropertyValidator.resize();
+                    editorSharedPropertyTransformer.resize();
+                    editorPropertyValidator.resize();
+                    editorPropertyTransformer.resize();
+                    editorMethodCode.resize();
+
+                }
+
+            };
+
+            window.addEventListener('DOMContentLoaded', onLoad);
+            window.addEventListener('resize', onResize);
+
+        </script>
+        <style>
+
+            .ace-monokai .ace_gutter {
+                background: #333 !important;
+                color: #8F908A !important;
+            }
+            .ace-monokai .ace_marker-layer .ace_selection {
+                background: #6F70AA !important;
+            }
+
+            .ace_editor, .ace_editor * {
+                font-family: Consolas, "Lucida Console", Monaco, monospace !important;
+                font-size: 16px !important;
+                font-weight: 400 !important;
+                letter-spacing: 0 !important;
+            }
+
+            .ace_autocomplete {
+                background: #555 !important;
+                color: #fff !important;
+                box-shadow: 2px 3px 5px rgba(255,255,255,.2) !important;
+            }
+
+            .ace_autocomplete.ace-tm .ace_marker-layer .ace_active-line {
+                background-color: #6F70AA !important;
+            }
+
+            ::selection {
+                background: #6F70AA;
+            }
+
+            * {
+                font-family: Consolas, "Lucida Console", Monaco, monospace;
+                font-size:   16px;
+                font-weight: 400;
+                letter-spacing: 0;
+            }
+
+            body {
+                background-color: #333;
+                color: #FFF;
+                padding: 0px;
+                margin: 0px;
+                width: 100%;
+                height: 100%;
+                display: box;
+            }
+
+            input {
+                background-color: #444;
+                color: #FFF;
+                border: none;
+                padding: 3px;
+            }
+
+            select {
+                background-color: #444;
+                color: #FFF;
+                border: none;
+                padding: 3px;
+                padding-top: 6px;
+            }
+
+
+            ::-webkit-scrollbar {
+                width:  16px;
+                height: 16px;
+            }
+             
+            ::-webkit-scrollbar-track {
+                -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.4); 
+                border-radius: 10px;
+            }
+             
+            ::-webkit-scrollbar-thumb {
+                border-radius: 10px;
+                -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.6); 
+            }
+
+
+            .widgetContainer {
+                position: absolute;
+                display: box;
+                margin: 0px;
+                padding: 0px;
+            }
+
+
+
+            #packageControls {
+                top: 0px;
+                left: 0px;
+                width: 200px;
+                height: 100%;
+            }
+            #packageList {
+                top: 0px;
+                width: 200px;
+                height: 440px;
+            }
+            #packageList > * {
+                width: 100%;
+                height: 100%;
+            }
+            #packageAction {
+                bottom: 0px;
+                width:200px;
+                height:100px;
+            }
+
+
+
+            #classControls {
+                top: 0px;
+                left: 200px;
+                width: 590px;
+                height: 100%;
+                overflow-x: hidden;
+            }
+
+
+            #classTraits {
+                top: 0px;
+                height: 30px;
+            }
+            #classMixins {
+                top: 30px;
+                height: 30px;
+            }
+            #classTraitsLabel, #classMixinsLabel {
+                position: absolute;
+                top: 10px;
+                left: 6px;
+                width: 70px;
+                color: #707070;
+            }
+            #classTraitsInput, #classMixinsInput {
+                position: absolute;
+                top: 3px;
+                left: 80px;
+                width: 500px;
+            }
+
+            #classMembersBrowser {
+                top: 80px;
+                left: 0px;
+                width: 100%;
+                height:230px;
+            }
+
+            #classSharedPropertiesList, #classPropertiesList, #classMethodList {
+                height: 100%;
+                width: 200px;
+            }
+
+            #classSharedPropertiesSelect, #classPropertiesSelect, #classMethodsSelect {
+                width: 100%;
+                height: 180px;
+            }
+
+            .classBrowserLabel { 
+                margin-top:6px;
+                padding-left: 6px;
+                color: #707070;
+            }
+            .classBrowserIndent {
+                margin-left: 42px;
+            }
+
+
+            #classSharedPropertiesList { left:0px; }
+
+            #classPropertiesList { left:200px; }
+
+            #classMethodList { left:400px; }
+
+            
+            .classMembersToolbar{
+                width:100%;
+                display: block;
+            }
+
+
+
+            #classMemberEditor {
+                position: absolute;
+                top: 300px;
+                left: 0px;
+                width: 600px;
+            }
+
+            .editorPane {
+                position: absolute;
+                top: 0px;
+                left: 0px;
+                width: 600px;
+                height: 296px;
+            }
+
+            #classEditor, #sharedPropertyEditor, #propertyEditor, #methodEditor {
+                visibility: hidden;
+                position: absolute;
+                top: 0px;
+                left: 0px;
+                width: 100%;
+                height: 170px;
+            }
+
+            #classCommentEditor,
+            #sharedPropertyCommentEditor,
+            #sharedPropertyInitValueEditor,
+            #sharedPropertyValidatorEditor,
+            #sharedPropertyTransformerEditor,
+            #propertyCommentEditor,
+            #propertyValidatorEditor,
+            #propertyTransformerEditor,
+            #methodCommentEditor,
+            #methodCodeEditor {
+                display: block;
+                width: 600px;
+                
+                min-height: 80px;
+                background-color: #444;
+                color: #FFF;
+                margin-bottom: 10px;
+                padding: 6px
+            }
+
+
+        </style>
+    </head>
+    <body>
+        <div id="packageControls" class="widgetContainer">
+            <div id="packageList" class="widgetContainer">
+                <select id="packageListSelect">
+                </select>
+            </div>
+            <div id="packageAction" class="widgetContainer">
+                <p> &#8593; Class managment &#8593;<br>
+                    &mdash;New/Clone/Delete&mdash;<br>
+                    &mdash;File-in/File-out&mdash;
+                </p>
+            </div>
+        </div>
+        <div id="classControls" class="widgetContainer">
+            <div id="classTraits" class="widgetContainer">
+                <div id="classTraitsLabel">Traits:</div>
+                <input type="text" id="classTraitsInput">
+            </div>
+            <div id="classMixins" class="widgetContainer">
+                <div id="classMixinsLabel">Mixins:</div>
+                <input type="text" id="classMixinsInput">
+            </div>
+            <div id="classMembersBrowser" class="widgetContainer">
+                <div id="classSharedPropertiesList" class="widgetContainer">
+                    <div class="classBrowserLabel">Shared Properties</div>
+                    <select id="classSharedPropertiesSelect" size="3">
+                    </select>
+                    <div class="classMembersToolbar">
+                        <!--button id="classSharedPropertiesPlus">+</button>
+                        <button id="classSharedPropertiesMinus">-</button-->
+                    </div>
+                </div>
+                <div id="classPropertiesList" class="widgetContainer">
+                    <div class="classBrowserLabel">Properties</div>
+                    <select id="classPropertiesSelect" size="3">
+                    </select>
+                    <div class="classMembersToolbar">
+                        <!--button id="classPropertiesPlus">+</button>
+                        <button id="classPropertiesMinus">-</button-->
+                    </div>
+                </div>
+                <div id="classMethodsList" class="widgetContainer">
+                    <div class="classBrowserLabel">Methods</div>
+                    <select id="classMethodsSelect" size="3">
+                    </select>
+                    <div class="classMembersToolbar">
+                        <!--button id="classMethodsPlus">+</button>
+                        <button id="classMethodsMinus">-</button-->
+                    </div>
+                </div>
+            </div>
+            <div id="classMemberEditor" class="widgetContainer">
+
+                <div id="classEditor" class="editorPane">
+                    <div class="classBrowserLabel">Class Comment:</div>
+                    <div id="classCommentEditor"></div>
+                </div>
+                
+                <div id="sharedPropertyEditor" class="editorPane">
+                    <div class="classBrowserLabel classBrowserIndent">Comment:</div>
+                    <div id="sharedPropertyCommentEditor" class="classBrowserIndent"></div>
+                    <div class="classBrowserLabel classBrowserIndent">Initial Value:</div>
+                    <div id="sharedPropertyInitValueEditor" class="classBrowserIndent"></div>
+                    <div class="classBrowserLabel classBrowserIndent">Validator Function:</div>
+                    <div id="sharedPropertyValidatorEditor"></div>
+                    <div class="classBrowserLabel classBrowserIndent">Transformer Function:</div>
+                    <div id="sharedPropertyTransformerEditor"></div>
+                </div>
+
+                <div id="propertyEditor" class="editorPane">
+                    <div class="classBrowserLabel classBrowserIndent">Comment:</div>
+                    <div id="propertyCommentEditor" class="classBrowserIndent"></div>
+                    <div class="classBrowserLabel classBrowserIndent">Validator Function:</div>
+                    <div id="propertyValidatorEditor"></div>
+                    <div class="classBrowserLabel classBrowserIndent">Transformer Function:</div>
+                    <div id="propertyTransformerEditor"></div>
+                </div>
+
+                <div id="methodEditor" class="editorPane">
+                    <div class="classBrowserLabel classBrowserIndent">Comment:</div>
+                    <div id="methodCommentEditor" class="classBrowserIndent"></div>
+                    <div class="classBrowserLabel classBrowserIndent">Method Code:</div>
+                    <div id="methodCodeEditor"></div>
+                </div>
+                
+            </div>
+        </div>
+    </body>
+</html>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
openwrt/TLWA701/www/lib/devTools/ace/ace.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
openwrt/TLWA701/www/lib/devTools/ace/ext-language_tools.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
openwrt/TLWA701/www/lib/devTools/ace/mode-javascript.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
openwrt/TLWA701/www/lib/devTools/ace/theme-monokai.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
openwrt/TLWA701/www/lib/devTools/ace/worker-javascript.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
openwrt/TLWA701/www/lib/devTools/ace/worker-javascript.js.bak


+ 430 - 0
openwrt/TLWA701/www/lib/resources/default/css/normalize.css

@@ -0,0 +1,430 @@
+/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
+
+/**
+ * 1. Set default font family to sans-serif.
+ * 2. Prevent iOS text size adjust after orientation change, without disabling
+ *    user zoom.
+ */
+
+html {
+  font-family: sans-serif; /* 1 */
+  -ms-text-size-adjust: 100%; /* 2 */
+  -webkit-text-size-adjust: 100%; /* 2 */
+}
+
+/**
+ * Remove default margin.
+ */
+
+body {
+  margin: 0;
+}
+
+/* HTML5 display definitions
+   ========================================================================== */
+
+/**
+ * Correct `block` display not defined for any HTML5 element in IE 8/9.
+ * Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.
+ * Correct `block` display not defined for `main` in IE 11.
+ */
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section,
+summary {
+  display: block;
+}
+
+/**
+ * 1. Correct `inline-block` display not defined in IE 8/9.
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
+ */
+
+audio,
+canvas,
+progress,
+video {
+  display: inline-block; /* 1 */
+  vertical-align: baseline; /* 2 */
+}
+
+/**
+ * Prevent modern browsers from displaying `audio` without controls.
+ * Remove excess height in iOS 5 devices.
+ */
+
+audio:not([controls]) {
+  display: none;
+  height: 0;
+}
+
+/**
+ * Address `[hidden]` styling not present in IE 8/9/10.
+ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
+ */
+
+[hidden],
+template {
+  display: none;
+}
+
+/* Links
+   ========================================================================== */
+
+/**
+ * Remove the gray background color from active links in IE 10.
+ */
+
+a {
+  background: transparent;
+}
+
+/**
+ * Improve readability when focused and also mouse hovered in all browsers.
+ */
+
+a:active,
+a:hover {
+  outline: 0;
+}
+
+/* Text-level semantics
+   ========================================================================== */
+
+/**
+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
+ */
+
+abbr[title] {
+  border-bottom: 1px dotted;
+}
+
+/**
+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
+ */
+
+b,
+strong {
+  font-weight: bold;
+}
+
+/**
+ * Address styling not present in Safari and Chrome.
+ */
+
+dfn {
+  font-style: italic;
+}
+
+/**
+ * Address variable `h1` font-size and margin within `section` and `article`
+ * contexts in Firefox 4+, Safari, and Chrome.
+ */
+
+h1 {
+  font-size: 2em;
+  margin: 0.67em 0;
+}
+
+/**
+ * Address styling not present in IE 8/9.
+ */
+
+mark {
+  background: #ff0;
+  color: #000;
+}
+
+/**
+ * Address inconsistent and variable font size in all browsers.
+ */
+
+small {
+  font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
+ */
+
+sub,
+sup {
+  font-size: 75%;
+  line-height: 0;
+  position: relative;
+  vertical-align: baseline;
+}
+
+sup {
+  top: -0.5em;
+}
+
+sub {
+  bottom: -0.25em;
+}
+
+/* Embedded content
+   ========================================================================== */
+
+/**
+ * Remove border when inside `a` element in IE 8/9/10.
+ */
+
+img {
+  border: 0;
+}
+
+/**
+ * Correct overflow not hidden in IE 9/10/11.
+ */
+
+svg:not(:root) {
+  overflow: hidden;
+}
+
+/* Grouping content
+   ========================================================================== */
+
+/**
+ * Address margin not present in IE 8/9 and Safari.
+ */
+
+figure {
+  margin: 1em 40px;
+}
+
+/**
+ * Address differences between Firefox and other browsers.
+ */
+
+hr {
+  -moz-box-sizing: content-box;
+  box-sizing: content-box;
+  height: 0;
+}
+
+/**
+ * Contain overflow in all browsers.
+ */
+
+pre {
+  overflow: auto;
+}
+
+/**
+ * Address odd `em`-unit font size rendering in all browsers.
+ */
+
+code,
+kbd,
+pre,
+samp {
+  font-family: monospace, monospace;
+  font-size: 1em;
+}
+
+/* Forms
+   ========================================================================== */
+
+/**
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
+ * styling of `select`, unless a `border` property is set.
+ */
+
+/**
+ * 1. Correct color not being inherited.
+ *    Known issue: affects color of disabled elements.
+ * 2. Correct font properties not being inherited.
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
+ */
+
+button,
+input,
+optgroup,
+select,
+textarea {
+  color: inherit; /* 1 */
+  font: inherit; /* 2 */
+  margin: 0; /* 3 */
+}
+
+/**
+ * Address `overflow` set to `hidden` in IE 8/9/10/11.
+ */
+
+button {
+  overflow: visible;
+}
+
+/**
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
+ * All other form control elements do not inherit `text-transform` values.
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
+ * Correct `select` style inheritance in Firefox.
+ */
+
+button,
+select {
+  text-transform: none;
+}
+
+/**
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+ *    and `video` controls.
+ * 2. Correct inability to style clickable `input` types in iOS.
+ * 3. Improve usability and consistency of cursor style between image-type
+ *    `input` and others.
+ */
+
+button,
+html input[type="button"], /* 1 */
+input[type="reset"],
+input[type="submit"] {
+  -webkit-appearance: button; /* 2 */
+  cursor: pointer; /* 3 */
+}
+
+/**
+ * Re-set default cursor for disabled elements.
+ */
+
+button[disabled],
+html input[disabled] {
+  cursor: default;
+}
+
+/**
+ * Remove inner padding and border in Firefox 4+.
+ */
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+  border: 0;
+  padding: 0;
+}
+
+/**
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet.
+ */
+
+input {
+  line-height: normal;
+}
+
+/**
+ * It's recommended that you don't attempt to style these elements.
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
+ *
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
+ * 2. Remove excess padding in IE 8/9/10.
+ */
+
+input[type="checkbox"],
+input[type="radio"] {
+  box-sizing: border-box; /* 1 */
+  padding: 0; /* 2 */
+}
+
+/**
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
+ * `font-size` values of the `input`, it causes the cursor style of the
+ * decrement button to change from `default` to `text`.
+ */
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+  height: auto;
+}
+
+/**
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
+ *    (include `-moz` to future-proof).
+ */
+
+input[type="search"] {
+  -webkit-appearance: textfield; /* 1 */
+  -moz-box-sizing: content-box;
+  -webkit-box-sizing: content-box; /* 2 */
+  box-sizing: content-box;
+}
+
+/**
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
+ * Safari (but not Chrome) clips the cancel button when the search input has
+ * padding (and `textfield` appearance).
+ */
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+  -webkit-appearance: none;
+}
+
+/**
+ * Define consistent border, margin, and padding.
+ */
+
+fieldset {
+  border: 1px solid #c0c0c0;
+  margin: 0 2px;
+  padding: 0.35em 0.625em 0.75em;
+}
+
+/**
+ * 1. Correct `color` not being inherited in IE 8/9/10/11.
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
+ */
+
+legend {
+  border: 0; /* 1 */
+  padding: 0; /* 2 */
+}
+
+/**
+ * Remove default vertical scrollbar in IE 8/9/10/11.
+ */
+
+textarea {
+  overflow: auto;
+}
+
+/**
+ * Don't inherit the `font-weight` (applied by a rule above).
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
+ */
+
+optgroup {
+  font-weight: bold;
+}
+
+/* Tables
+   ========================================================================== */
+
+/**
+ * Remove most spacing between table cells.
+ */
+
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+
+td,
+th {
+  padding: 0;
+}
+
+ul,
+ol {
+  margin: 3px 0;
+}

+ 236 - 0
openwrt/TLWA701/www/lib/resources/default/css/style.css

@@ -0,0 +1,236 @@
+/*******************
+* Fonts
+*******************/
+
+@font-face {
+    font-family: Dosis;
+    src: url("../fonts/Dosis/Dosis-Regular.otf") format("opentype");
+}
+@font-face {
+    font-family: Dosis;
+    font-weight: bold;
+    src: url("../fonts/Dosis/Dosis-Bold.otf") format("opentype");
+}
+@font-face {
+    font-family: Dosis;
+    font-weight: light;
+    src: url("../fonts/Dosis/Dosis-Light.otf") format("opentype");
+}
+
+@font-face {
+    font-family: Montserrat;
+    src: url("../fonts/Montserrat/Montserrat-Regular.ttf") format("truetype");
+}
+@font-face {
+    font-family: Montserrat;
+    font-weight: bold;
+    src: url("../fonts/Montserrat/Montserrat-Bold.ttf") format("truetype");
+}
+
+@font-face {
+    font-family: TitilliumWeb;
+    src: url("../fonts/Titillium_Web/TitilliumWeb-Regular.ttf") format("truetype");
+}
+@font-face {
+    font-family: TitilliumWeb;
+    font-weight: bold;
+    src: url("../fonts/Titillium_Web/TitilliumWeb-Bold.ttf") format("truetype");
+}
+@font-face {
+    font-family: TitilliumWeb;
+    font-weight: light;
+    src: url("../fonts/Titillium_Web/TitilliumWeb-Light.ttf") format("truetype");
+}
+
+
+/*******************
+* Generic
+*******************/
+
+#globalEditBtn {
+	position: absolute;
+	top: 5px;
+	right: 5px;
+	background: orange;
+	z-index: 10000000;
+}
+
+body {
+	font-family: 'Arial', 'Helvetica', sans-serif;
+}
+
+/*******************
+* Font Class Definitions
+*******************/
+
+.align-left {
+	text-align: left;
+}
+
+.align-center {
+	text-align: center;
+}
+
+.align-justify {
+	text-align: justify;
+}
+
+.align-right {
+	text-align: right;
+}
+
+/*******************
+* Spaces & Shapes
+*******************/
+
+.space {
+	top:0;
+	left:0;
+	width: 100%;
+	height: 100%;
+}
+
+.space > .spaceContent {
+	border-width: 0;
+	border-style: solid;
+	border-color: transparent;
+	overflow: hidden;
+	width: 100%;
+	height: 100%;
+	position: absolute;
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.space.root {
+	overflow: auto;
+	position: relative;
+}
+
+.shape > a {
+    color: inherit;
+    text-decoration: inherit;
+}
+
+.shape .shapeContent {
+	overflow: hidden;
+	border-width: 0;
+	border-style: solid;
+	border-color: transparent;
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+body > .space {
+	position: absolute;
+}
+
+/* Absolute Space */
+
+.space[data-type="AbsoluteSpace"] {
+	
+}
+
+.space[data-type="AbsoluteSpace"] .shape, .space[data-type="AbsoluteSpace"] .space {
+	position: absolute;
+}
+
+.space[data-type="AbsoluteSpace"] .shape .shapeContent {
+	height: 100%;
+	background-color: transparent;
+}
+
+.space[data-type="AbsoluteSpace"] .shape[data-type="TextShape"] {
+	
+}
+
+.space[data-type="AbsoluteSpace"] .shape[data-type="ImageShape"] {
+	
+}
+
+.shape[data-type="ImageShape"] img, body > .shape[data-type="ImageShape"] img {
+	height: auto !important;
+    max-height: 100%;
+    max-width: 100%;
+    width: auto !important;
+}
+
+
+/* Grid Space */
+
+.space[data-type="GridSpace"] {
+	
+}
+
+.space[data-type="GridSpace"] .shape, .space[data-type="GridSpace"] .space {
+	position: absolute;
+	display: block;
+}
+
+.space[data-type="GridSpace"] .shape .shapeContent {
+	width: 100%;
+	height: 100%;
+	padding: 0;
+}
+
+.space[data-type="GridSpace"] .shape[data-type="TextShape"] {
+	
+}
+
+.space[data-type="GridSpace"] .shape[data-type="ImageShape"] {
+	
+}
+
+/* Center Space */
+
+.root.space[data-type="CenterSpace"] {
+	width: 100% !important;
+}
+
+.space[data-type="CenterSpace"] .shape, .space[data-type="CenterSpace"] .space {
+	position: absolute;
+	left: 50%;
+	display: block;
+}
+
+.space[data-type="CenterSpace"] .shape .shapeContent {
+	width: 100%;
+	height: 100%;
+	padding: 0;
+}
+
+.space[data-type="CenterSpace"] .shape[data-type="TextShape"] {
+	
+}
+
+.space[data-type="CenterSpace"] .shape[data-type="ImageShape"] {
+	
+}
+
+
+
+/*******************
+* Media Queries
+*******************/
+
+@media (min-width: 1220px) and (max-width: 2000px) {
+	
+}
+
+@media (min-width: 1010px) and (max-width: 1220px) {
+	
+}
+
+@media (min-width: 650px) and (max-width: 1010px) {
+	
+}
+
+@media (max-width: 650px) {
+
+}
+
+@media screen and (max-width: 480px) {
+	
+}

binární
openwrt/TLWA701/www/lib/resources/default/fonts/Dosis/Dosis-Bold.otf


binární
openwrt/TLWA701/www/lib/resources/default/fonts/Dosis/Dosis-Light.otf


binární
openwrt/TLWA701/www/lib/resources/default/fonts/Dosis/Dosis-Regular.otf


+ 45 - 0
openwrt/TLWA701/www/lib/resources/default/fonts/Dosis/SIL Open Font License.txt

@@ -0,0 +1,45 @@
+Copyright (c) 2011, Edgar Tolentino and Pablo Impallari (www.impallari.com|impallari@gmail.com),
+Copyright (c) 2011, Igino Marini. (www.ikern.com|mail@iginomarini.com),
+with Reserved Font Names &amp;amp;quot;Dosis&amp;amp;quot;.
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

binární
openwrt/TLWA701/www/lib/resources/default/fonts/Montserrat/Montserrat-Bold.ttf


binární
openwrt/TLWA701/www/lib/resources/default/fonts/Montserrat/Montserrat-Regular.ttf


+ 92 - 0
openwrt/TLWA701/www/lib/resources/default/fonts/Montserrat/OFL.txt

@@ -0,0 +1,92 @@
+Copyright (c) 2011-2012, Julieta Ulanovsky (julieta.ulanovsky@gmail.com), with Reserved Font Names 'Montserrat'
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded, 
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.

+ 92 - 0
openwrt/TLWA701/www/lib/resources/default/fonts/Titillium_Web/OFL.txt

@@ -0,0 +1,92 @@
+Copyright (c) 2009-2011 by Accademia di Belle Arti di Urbino and students of MA course of Visual design. Some rights reserved.
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded, 
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.

binární
openwrt/TLWA701/www/lib/resources/default/fonts/Titillium_Web/TitilliumWeb-Bold.ttf


binární
openwrt/TLWA701/www/lib/resources/default/fonts/Titillium_Web/TitilliumWeb-Light.ttf


binární
openwrt/TLWA701/www/lib/resources/default/fonts/Titillium_Web/TitilliumWeb-Regular.ttf


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů