nftable-gui
Cambiados todos los nombres de los metodos
.
Se ha cambiando todos los nombres de los metodos y variables
para una mejor lectura del código, por ej:
Se ha cambiado NFTABLES_GUI_ATTR_TABLE_NAME POR NFTGUI_TABLE_NAME
De esta manera se puede leer mucho mejor el código
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
Modified:
src/chain.c
src/chain.h
src/main.c
src/prototypes.c
src/rule.c
src/rule.h
src/table.c
src/table.h
Deleted:
Commit:
Link
Versión alfa para la evaluación del concurso software libre.
Buenos días, de nuevo vuelvo a publicar los resultados diarios del desarrollo, hasta ahora, por falta de tiempo debido a la carrera y unas prácticas las cuales me hicieron perder un mes, pero bueno, la mayor dificultad ha sido no tener ninguna idea sobre C.
Gracias a un curso que estoy dando en centro de formación continua de la universidad de Sevilla, he mejorado mucho mi nivel de c.
Aunque es muy bajo todavía y esto se nota en el código la falta de experiencia en este lenguaje, pero gracias a mi profesor de la universidad Pablo Neira y a mi profesor del curso de c Alvaro Neira, he avanzado a pasos agigantados para este proyecto, que también forma parte de mi proyecto de fin de carrera, por lo cual, después del concurso seguirá desarrollándose hasta llevarlo a una versión estable sin fallos.
Pero vamos al tema:
Para paliar la temprana edad de este software por el poco tiempo de desarrollo, he decidido recortar un par de funcionalidades de cara al concurso, para evitar que pudiera fallar por cualquier fallo relacionado con la experiencia (segmentaciones de memoria, fugas, punteros inválidos, etc y sobretodo ncurses) . Básicamente, nftables-gui puede hacer ahora mismo de manera correcta lo siguiente:
Crear tablas de tipo ip, ip6, arp y brigde
Crear cadenas de tipo base (las de tipo no base se desarrollará en el futuro próximo)
Crear reglas pudiendo elegir protocolo tcp o udp, puertos destino y origen y las acciones sobre los paquetes drop, reject, accept.
Todo esto esta controlado de la forma que la aplicación no deja seguir adelante si los datos se introducen de manera inadecuada (tablas/cadenas/reglas vacías, cadenas no base, acciones no starndard etc).
Igualmente, este desarrollo seguirá en adelante para cumplir los siguientes requisitos de cara a junio:
Crear tablas de tipo ip, ip6, arp y brigde
Crear cadenas de tipo basey no base
Crear reglas pudiendo elegir protocolo tcp o udp, puertos destino y origen , las acciones sobre los paquetes drop, reject, accept, jump, interfaz, ip origen y destino, red origen y destino.
Exportar y importar reglas en el formato de nftables.
Leer tablas actuales del sistema y usarlas para editarlas desde nftables-gui, etc.
También se ha llevado a cabo el uso de buenas pracitcas como:
hacer uso del kernel style.
Apis para el correcto uso de memoria de las estructuras.
Api genérica la la creación de las interfaces de ncurses.
En definitiva, para el tiempo de desarrollo (apenas un poco mas de un mes) estoy bastante contento con el desarrollo ya que hay mas asignaturas, proyectos, etc.
Muchísima suerte a todos los participantes!
Refactorización del código principal
.
Se han cambiado todos los métodos que existían en main
a sus correspondientes ficheros .c y de cabecera .h
para una mejor lectura del código. Hecho en rama y testado
para luego mas tarde hacer el merge.
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
src/prototypes.c
src/prototypes.h
Modified:
src/Makefile.am
src/Makefile.in
src/main.c
Deleted:
Commit:
Link
Actualización del fichero README
.
Actualización del fichero README.md con las instrucciones necesarias
para la correcta ejecución de nftables-gui
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
Modified:
README.md
Deleted:
Commit:
Link
Actualización del README
.
Se actualiza el contenido del fichero README con las instrucciones
necesarias para la ejecución de nftables-gui
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
Modified:
README.md
Deleted:
Commit:
Link
Añadidos archivos para la correcta compilación del software
.
Se añaden los archivos que faltaba la correcta construcción del
software.
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
depcomp
missing
Modified:
Deleted:
Commit:
Link
Añadidos archivos para la correcta compilación
.
Se añaden los archivos necesario para la correcta construcción del
software.
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
src/Makefile.in
Modified:
Deleted:
Commit:
Link
Añadidos archivos de configuración que faltaban
.
Se añaden los siguintes archivos que faltaban para la correcta
compilación del software.
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
Makefile
Makefile.in
Modified:
Deleted:
Commit:
Link
Añadido el fichero install-sh
.
Se añade el fichero install-sh que era necesario para la compilación.
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
install-sh
Modified:
Deleted:
Commit:
Link
Añadidos los ficheros necesarios para la compilación con makefile
.
A partir de ahora se pueden usar estos fichero para la correcta
construcción de este software usando make, los pasos son:
* ./configure
* make
Una vez ejecutados, se habrá creado el ejecutable nftables-gui en
/src
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
Makefile.am
configure
configure.ac
src/Makefile.am
Modified:
Deleted:
Commit:
Link
Añadida vista para crear reglas
.
Se añade la fista de crear una regla (sin funcionalidad aún)
Cuando se crea una tabla y una cadena, una vez dentro de la regla
se pueden crear las reglas en esa cadena dando lugar a la siguiente
vista:
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
Modified:
src/main.c
Deleted:
Commit:
Link
Añadida funcionalidad de borrar una cadena
Añadida funcionalidad de borrar una cadena.
A partir de ahora desde la lista de cadenas se pueden borrar
las cadenas, cuando selecciona una cadena, se puede borrar esta:
En nuestra lista de cadenas:
Seleccionamos borrar la cadena:
Al volver a listar las cadenas no nos dejará puesto que la hemos
borrado:
Cambios en el codigo para seguir el kernel style
.
Se empieza a realizar cambios en el código para que sea
las legible y intente seguir el estilo del kernel.
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
Modified:
src/chain.c
src/main.c
src/screen_work_flow.h
Deleted:
Commit:
Link
Añadida vistas de crear cadenas y mostrar cadenas
Se añade las vistas correspondientes a crear cadenas (con funcionalidad
hecha) y listar cadenas, esta última lista las cadenas
pero no muestra detalles de esta. Se deja como tarea pendiente.
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
Modified:
src/main.c
src/table.c
Deleted:
Añadida la vista de detalles de una tabla
Cuando se listan las tablas, al seleccionar una de ellas
se pasará a la siguiente vista que contiene los detalles de tabla
así como opciones para la edición de la tabla.
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
Modified:
src/main.c
src/screen_work_flow.h
Deleted:
Añadida funcionalidad de listar las tablas creadas
Se añade la funcionalidad de listar las tablas creadas para
que cuando se pulse en alguna de ellas se obtengan los detalles
necesario para su uso.
Esto es:
~Añadir cadenas (sin implementación)
~Listar cadenas (sin implementación)
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
Modified:
src/main.c
src/screen_work_flow.h
Deleted:
Fix de error al listar las tablas
Se soluciona un bug que al listar las tablas creadas
provocaba un fallo de segmentación.
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
Modified:
src/main.c
src/screen_work_flow.h
Deleted:
Añadido archivo main.c
Se añade el fichero principal main.c con los métodos de inicio.
main(): Llama a las apis de tabla, que a su vez llama a las de
chain y rule. También llama a la api de ncurses para recrear
el menu principal de la aplicación.
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
src/main.c
Modified:
Deleted:
Modificación en la creación de estructuras
Se modifica las apis de table,chain y rule para reservar la
memoria con calloc en vez de con malloc para inicializar
a 0 la memoria para las estructuras y así eliminar fallos
en valgrind.
Commiter:
José María Caballero Alba
caballeroalba@gmail.com
Added:
Modified:
src/chain.c
src/rule.c
Deleted:
Saneamiento del repositorio la carpeta src
Se sanea el contenido de src para su mejor uso eliminando
ficheros antiguos o inválidos.
Commiter:
Jose Maria Caballero Alba
caballeroalba@gmail.com
Added:
Modified:
Deleted:
screen_Utilites.h
src/main.c
src/main1.c
src/main3.c
src/screen_maker.c
src/screen_maker.h
src/test.c