X-Git-Url: https://git.llucax.com/software/pymin.git/blobdiff_plain/b1a3330947438519e67924a389ed5bc2d0c1bedc..b4fcac506d5bf8ecc5e5c3c7ca2e788e7ef1b128:/TODO?ds=inline diff --git a/TODO b/TODO index 7b293b0..3438f7e 100644 --- a/TODO +++ b/TODO @@ -1,19 +1,45 @@ Ideas / TODO: -* Soportar comillas para argumentos con espacios y otros caracteres, onda: - 'misc set motd "Hola!\nEste es el servidor de garombia"' - -* 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') - -* 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. - -* Que las respuestas puedan ser listas, y que el encargado de "serializar" para - pasarlo por la red sea el daemon o una capa intermedia. +* 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) + +* Agregar logging. + +* Agregar validación con formencode. + +* 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