HTTP/s parse C library and algorithm development environment.
Go to file
2024-09-04 09:06:42 +02:00
streecmp@ca1293aa8f fix: remove cluttered state machine code 2024-09-03 21:07:52 +02:00
.gitignore feat: implement parsing of headers 2024-09-03 00:03:32 +02:00
.gitmodules feat: implement parsing of headers 2024-09-03 00:03:32 +02:00
Makefile fix: remove cluttered state machine code 2024-09-03 21:07:52 +02:00
README fix: edit docs and re-design struct use 2024-09-04 09:06:42 +02:00
strings.c fix: remove cluttered state machine code 2024-09-03 21:07:52 +02:00
tinyparser.c fix: edit docs and re-design struct use 2024-09-04 09:06:42 +02:00
tinyparser.h fix: edit docs and re-design struct use 2024-09-04 09:06:42 +02:00

+================+
|   tinyparser   |
+================+

    HTTP parsing prototype and algorithm development 
    environment for tinyproxy - my new proxy.

    RES: github.com/tinyproxy/tinyproxy
    RES: github.com/nginx/nginx

TECHNICALS

    int initres(void);
    void fretres(void);
    int readlin(char **buff, char **buff_lim);
    int parshfield(char **offset, int len, /* out */ struct point *hentries);
    int parstitle(char *offset, int len, /* out */ struct httitle *titl);
    int parsme(char **buff, /* out */ struct httpars *pars);

    Library is designed to follow source input unaltering. 
    Which means, that it does not directly alter the input
    data or strings while storing the information of all 
    parsed results on the stack or as pointers to specific 
    parts of the source data. This allows to provide it 
    with input that resides both within the stack or heap.

LEAKS 

    LEAKS file contains the most recent valgrind memory leaks 
    dump ran on main.c 

    LEAKS.TEST.[id] files respectively contain the most recent 
    valgrind memory leaks dump ran on a test with an id=[id]

TODO 
    
    * implement tests 
    * integrations with tinyproxy..?