Ideas / TODO:
-* Soportar comillas para argumentos con espacios y otros caracteres, onda:
- 'misc set motd "Hola!\nEste es el servidor de garombia"'
+* Revisar interacción entre firewall y nat que ambos usan iptables. Es probable
+ que al manipular reglas por número de índice se complique todo porque tengo
+ indices separados por tipo de regla, entonces si pongo borrar la 2 tal vez es
+ la 13 en vez de la dos porque hay otras 11 reglas de otros sub-servicios que
+ usan iptables. Tal vez la solución simple es hacer algo como:
+ router firewall add [regla]
+ router nat masq add [masq]
+ router nat forward add [port]
+ router nat snat add [snat]
+ (u organizándolo de otra forma pero que tengan todos un root en común)
+
+* Agregar soporte de opciones de línea de comando/archivo de conf para:
+ * Dry run.
+ * Seleccionar servicios a usar.
+ * Puerto/bind addr.
+ * Logging.
+ * Paths.
+
+* SubHandlers:
+ * ComposeDictSubHandler con soporte de dirty/del/add (para ip y DNS).
+ * Agregar SimpleDictSubHandler? (que no use una clase, que use un dict
+ de strings directamente, para Proxy Users por ej.). Ídem List.
+ * Agregar SetSubHandler? (para Proxy Hosts)
-* Soportar keyword arguments, onda que:
- 'dns set pepe=10.10.10.1 juan=10.10.10.2'
- se mapee a algo como: dns.set(pepe='10.10.10.1', juan='10.10.10.2')
+* Agregar logging.
-* Hacer el protocolo completamente introspectivo, de manera que el cliente pueda
- ser muy simple y genérico y en caso de agregar funcionalidad no sea necesario
- modificarlo.
+* Agregar validación con formencode.
-* Agregar logging.
+* Ver como manejar la información sobre si un servicio está andando o no. Si se
+ agrega una acción 'status' para ver el estado y si ese estado se saca de posta
+ de /proc o si es un estado interno y se asume que los servicios no se caen (no
+ creo que sea una buena idea esto último). Además habría que ver cuando arranca
+ el pymin, si se inician servicios automáticamente o no y si la info de qué
+ servicios iniciar o no es persistente y si puede configurarla el usuario.
+
+* No usar comandos con templates, porque después si no hay que ejecutarlos con
+ un shell (porque el template devuelve un string todo grande) y hay que andar
+ teniendo cuidado de escapar las cosas (y hay riesgos de seguridad de shell
+ injection).
Estas cosas quedan sujetas a necesitada y a definición del protocolo.
Para mí lo ideal es que el protocolo de red sea igual que la consola del