From 4847b59378dc803153adc9d260cf7ad1b500f2c1 Mon Sep 17 00:00:00 2001 From: Wouter R Date: Mon, 8 Jul 2013 21:45:21 +0200 Subject: [PATCH] Update TODO --- TODO | 61 ----------------------------------------- TODO.md | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main.lua | 5 ++-- 3 files changed, 79 insertions(+), 64 deletions(-) delete mode 100644 TODO create mode 100644 TODO.md diff --git a/TODO b/TODO deleted file mode 100644 index d3aa860..0000000 --- a/TODO +++ /dev/null @@ -1,61 +0,0 @@ -# TODO -- licensing (also for hardware and firmware) + credits - http://www.codinghorror.com/blog/2007/04/pick-a-license-any-license.html -- add more config options to package; candidates: - reconf.WWW_RENAME_NAME, wifihelper.{AP_ADDRESS, AP_NETMASK, (NET)} - about bridging this to lua: have some Makefile stage create a ini/lua file with k/v's and have lua read out that file? - https://github.com/2ion/ini.lua -- in captive portal mode, https is not redirected -- postinstall operations should be conditional, or work properly on image creation -- write a shellscript to automate tasks like swapping out /www and packaging modified code for git merging -- see if updating works when a new version is 'released' (probably needs a real feed) -- perhaps opkg+safeboot could be useful in the update mechanism? -- add aliases to root profile only when debugging was requested in menuconfig -- add config option to compile sources using luac? -- add dependency on either wr703n or mr3020 (and probably comment it out to avoid being to conservative...) -- add/link general OpenWrt build instructions for OSX to installation page on wiki. -- relocatabilty of package (take root prefix into consideration everywhere) - - -# TODO for autowifi.js -- escape text where necessary (e.g. in getKnown, '' is currently interpreted as html...) -- why is $.trim() required in string comparison? do we need to strip newlines in the parse functions? -- add hidden field in html to remember encryption (so we know whether or not a passphrase should be entered) -- instead of showing alerts on missing ssid/phrase in connect, disable the button until contraints have been satisfied - (this is also cleaner in case no networks are present) -- use json for communication? - - -# Logos - -Check http://geon.github.io/Programming/2012/04/25/ascii-art-signatures-in-the-wild/ for inspiration - - - D o o d l e 3 D - -------- ____ .--- v 1.0.1 -| | | | __ | __|.--.| ._| .---..-.-. -| | | ||--|| _| |--|| . || . |\ / -|________||__||__| |__||____||___|/_._\ - - - D o o d l e 3 D - -------- ____ .---- v 1.0.1 -| | | |--.| __|-.| ._|---.-.-. -| | | |--|| _|--|| . | . |_ _/ -|________|__||__||__||____|___|_._\ - - -....D o o d l e 3 D -...________ _____ _____ v 1.0.1 -../ / / |__ / __/ / - /___ __ -./ ' ' /--// _|-// - | . /v / -/________/__//__/__//____/___/_^_\ - - - -# Shelled bugs/annoyances (all except the lua errors have been filed) -+ scripts are only allowed to be created in src folder? (nothing else shown, root greys out 'Finish') -+ text inside heredoc is highlighted -+ only one space allowed at start of line...makes it impossible to draw ascii art - plus: I think it breaks my spaces/tabs occasionally but that could have been something else -- errors after creating new script file (mentioning lua...maybe a conflict?) diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..2a55afe --- /dev/null +++ b/TODO.md @@ -0,0 +1,77 @@ +# TODO (from api_info.lua) + - The endpoint function info in response objects is incorrect when the global function is called with a blank argument, + to cleanly solve this, module/function resolution should be moved from main() to the request object + FIX: handle mod/func resolution and calling in request:handle() which returns a response object + then send it using response:send("json") + - fix up init script handling as described here: http://wiki.openwrt.org/doc/devel/packages#packaging.a.service + - versioning/updating + * versioning scheme + * create feed location (e.g. www.doodle3d.com/firmware/packages) (see here: http://wiki.openwrt.org/doc/packages#third.party.packages) + * create opkg (already present in bin/ar71xx/packages as .ipk file) + * create listing info for package list (checksum, size, etc. ...is this inside the .ipk file?) + * find a way to add the feed url to opkg.conf (directly in files during image building?) + * determine how opkg decides what is 'upgradeable' + * at this point manual updating should be possible, now find out how to implement in lua (execve? or write a minimalistic binding to libopkg?) + * expose through info API and/or system API; also provide a way (future) to flash a new image + - dynamic AP name based on partial MAC + - require api functions which change state to be invoked as post request + - add functions to test network connectivity in steps (ifup? hasip? resolve? ping?) to network or test + - add system api module? with check-updates/do-update/etc + - write a simple client script to autotest as much of the api as possible + - extend the client script to run arbitrary post/get requests + + +# TODO (from main.lua) + - document REST API (mention rq IDs and endpoint information, list endpoints+args+CRUD type, unknown values are empty fields) + (describe fail/error difference: fail is valid rq..could not comply, while error is invalid rq _or_ system error) + - use a slightly more descriptive success/error definition (e.g. errortype=system/missing-arg/generic) + - how to handle requests which need a restart of uhttpd? (e.g. network/openap) + - a plain GET request (no ajax/script) runs the risk of timing out on lengthy operations: implement polling in API to get progress updates? + (this would require those operations to run in a separate daemon process which can be monitored by the CGI handler) + (!!!is this true? it could very well be caused by a uhttpd restart) + - protect dump function against reference loops (see: http://lua-users.org/wiki/TableSerialization, json also handles this well) + - (this is an old todo item from network:available(), might still be relevant at some point) + extend netconf interface to support function arguments (as tables) so wifihelper functionality can be integrated + but how? idea: pass x_args={arg1="a",arg2="2342"} for component 'x' + or: allow alternative for x="y" --> x={action="y", arg1="a", arg2="2342"} + in any case, arguments should be put in a new table to pass to the function (since order is undefined it must be an assoc array) + + +# TODO +- in captive portal mode, https is not redirected +- see if updating works when a new version is 'released' (probably needs a real feed) +- perhaps opkg+safeboot could be useful in the update mechanism? +- licensing (also for hardware and firmware) + credits for external code and used ideas + http://www.codinghorror.com/blog/2007/04/pick-a-license-any-license.html +- add more config options to package, which should act as defaults for a config file on the system; candidates: + reconf.WWW_RENAME_NAME, wifihelper.{AP_ADDRESS, AP_NETMASK, (NET)} + https://github.com/2ion/ini.lua +- add config option to compile sources using luac _or_ add an option to minify the lua code +- add dependency on either wr703n or mr3020 (and probably comment it out again to avoid being to conservative...) +- relocatabilty of package (take root prefix into consideration everywhere) + + +# Logos + +Check for inspiration. + + + D o o d l e 3 D + -------- ____ .--- v 1.0.1 + | | | | __ | __|.--.| ._| .---..-.-. + | | | ||--|| _| |--|| . || . |\ / + |________||__||__| |__||____||___|/_._\ + + + D o o d l e 3 D + -------- ____ .---- v 1.0.1 + | | | |--.| __|-.| ._|---.-.-. + | | | |--|| _|--|| . | . |_ _/ + |________|__||__||__||____|___|_._\ + + + ....D o o d l e 3 D + ...________ _____ _____ v 1.0.1 + ../ / / |__ / __/ / - /___ __ + ./ ' ' /--// _|-// - | . /v / + /________/__//__/__//____/___/_^_\ diff --git a/src/main.lua b/src/main.lua index 4403159..efa9d22 100644 --- a/src/main.lua +++ b/src/main.lua @@ -5,7 +5,8 @@ TODO: - use a slightly more descriptive success/error definition (e.g. errortype=system/missing-arg/generic) - how to handle requests which need a restart of uhttpd? (e.g. network/openap) - a plain GET request (no ajax/script) runs the risk of timing out on lengthy operations: implement polling in API to get progress updates? - (this would require those operations to run in a separate daemon process which can be monitored by the CGI handler) + (this would require those operations to run in a separate daemon process which can be monitored by the CGI handler) + (!!!is this true? it could very well be caused by a uhttpd restart) - protect dump function against reference loops (see: http://lua-users.org/wiki/TableSerialization, json also handles this well) - (this is an old todo item from network:available(), might still be relevant at some point) extend netconf interface to support function arguments (as tables) so wifihelper functionality can be integrated @@ -16,8 +17,6 @@ TODO: NOTES: - using iwinfo with interface name 'radio0' yields very little 'info' output while wlan0 works fine. However, sometimes wlan0 disappears (happened after trying to associate with non-existing network)...why? - - The endpoint function info in response objects is incorrect when the global function is called with a blank argument, - to cleanly solve this, module/function resolution should be moved from main() to the request object ]]-- local l = require("logger")