Librerías CGI en C/C++
- gnu cgicc trae el parsing entre Cgicc::parseFormInput y Cgicc::pareMIME (aquella va individualizando las partes y ésta parsea una parte, con la ayuda de Cgicc::parseHeader#) y deja el contenido en un vector de ficheros recibidos. El código de ésta es mas simple, entre otras cosas pq primero lee todo el input y luego lo procesa todo entero desde variables, lo que es fácil pero no eficiente. Tengo el código tabulado como me gusta allí en quickie-ptd. Cgicc.cpp
- cgilib es C, no C++ (CUIDADO: 7zip da problemas con el tar: hay que decirle que renombre automáticamente cuando dice que hay un fichero duplicado). Proclama estar lire del overhead for HTML production. Trae el parsing en cgi.c, entre cgiReadMultiPart y cgiReadFile y deja el contenido en un fichero en tmp. Esto puede ser mas interesante, pq en caso de ficheros grandes, chupa menos memoria, y al final hay que salvar el fichero, normalmente. Tengo el código ya medio destripado, allí en quickie-ptd: cgi.c
- rudecgi es C++. Se limita al parser, mientras que otras incluyen material para respuestas y tal que aquí no nos interesan, pero es algo barroca en cuanto a concepción del árbol de clases. Trae el parsing en NewMultipartParser.cpp, dividido entre parse() y parseSection() y también trabaja con todo en memoria. Tengo ese fichero en quickie-ptd.