-
Notifications
You must be signed in to change notification settings - Fork 1
agustinignaciovazquez/GatOxy
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
El objetivo del trabajo es implementar un servidor proxy que soporte el protocolo HTTP version 1.1 y a su vez pueda ser utilizado por distintos User-Agents para navegar por Internet. El servidor debe poder utilizarse de manera transparente y con previa configuración de los navegadores. Es necesario que se soporte la concurrencia de usuarios en simultáneo. Adicionalmente, el servidor implementa funciones de transformación, soporte de métricas y datos de uso. Estos datos se pueden obtener por consola en tiempo de ejecución, para los cuales se diseñó un protocolo “admin” que funciona sobre SCTP. Authors: -------- Grupo 5 Cifuentes, Ignacio Imanol 54311 Manganaro Bello, Santiago 56289 Soracco, Tomas 56002 Vazquez, Agustin Ignacio 55354 Construcción con CMake: ----------------------- Es posible construir el proyecto con <https://cmake.org/>. $ cd src $ make Ejecucion: ---------- $./proxy [-P port] -T -M mediatype,... Contruccion Cliente: -------------------- $ cd client $ make Ejecucion Cliente: $./client -a IP_ADDR -p PORT -c ADMIN_COMMAND Requerimientos: --------------- - cmake para la construcción - pthreads para que sea un server iterativo - lsctp para el funcionamiento del protocolo Organización: ------------ Los archivos se encuentran escritos en el dialecto GNU99. - httproxynio.c: punto de entrada del proxy, donde se lleva a cabo todo el manejo del flujo de mensajes. - admin.c: se conecta con el servidor, envía un mensaje donde se puede visualizar el estado de las configuraciones. - sctpadminnio.c: manejo de mensajes del protocolo implementado, funcionando sobre sctp. - main.c: monta un socket pasivos y maneja las conexiones entrantes. - proxy_state.c: almacena la estructura general que tiene las configuraciones de comunicación entre admin y server. - selector.c: multiplexor de entrada/salida, permite mantener la concurrencia de manera no bloqueante. Los parsers no realizan syscalls. Algunos de los archivos contienen pruebas de unidad. Si un archivo se llama `foo.c' su suite de pruebas estará en el archivo `foo_test.c', que generará el binario ejecutable `foo_test'. Cada suite contiene uno o más pruebas.
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published