parslib/test.c

97 lines
2.7 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "parslib.h"
char *req_test_data = {
"GET / HTTP/1.1\r\n"
"Host: archive.0xdeadbeer.xyz\r\n"
"User-Agent: curl/8.9.1\r\n"
"Accept: */*\r\n"
"\r\n"
"{\"key\": \"kefjoiawejfojgorgjbosejrgo\"}|"
"GET / HTTP/1.1\r\n"
"Host: google.com\r\n"
"User-Agent: curl/8.9.1\r\n"
"Accept: */*\r\n|"
};
char *res_test_data = {
"HTTP/1.1 301 Moved Permanently\r\n"
"Location: http://www.google.com/\r\n"
"Content-Type: text/html; charset=UTF-8\r\n"
"Content-Security-Policy-Report-Only: object-src 'none';base-uri"
"'self';script-src 'nonce-7hRaJZVpUAa6E54ys6qpuA' 'strict-dynamic'"
"'report-sample' 'unsafe-eval' 'unsafe-inline' https:"
"http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp\r\n"
"Date: Wed, 04 Sep 2024 17:52:02 GMT\r\n"
"Expires: Fri, 04 Oct 2024 17:52:02 GMT\r\n"
"Cache-Control: public, max-age=2592000\r\n"
"Server: gws\r\n"
"Content-Length: 219\r\n"
"X-XSS-Protection: 0\r\n"
"X-Frame-Options: SAMEORIGIN\r\n|"
};
int main(void) {
int ret = 0;
char *reqs = strdup(req_test_data);
if (!reqs) {
fprintf(stderr, "Not enough dynamic memory\n");
return -1;
}
char *reses = strdup(res_test_data);
if (!reses) {
fprintf(stderr, "Not enough dynamic memory\n");
return -1;
}
struct httpareq *req =
(struct httpareq *) calloc(1, sizeof(struct httpareq));
if (!req) {
fprintf(stderr, "Not enough dynamic memory\n");
return -1;
}
struct httpares *res =
(struct httpares *) calloc(1, sizeof(struct httpares));
if (!res) {
fprintf(stderr, "Not enough dynamic memory\n");
return -1;
}
ret = initres();
if (ret < 0) {
fprintf(stderr, "Failed initializing parser\n");
return -1;
}
fprintf(stdout, "xxxREQxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n");
for (char *ch = strtok(reqs, "|"); ch != NULL; ch = strtok(NULL, "|")) {
ret = pareq(ch, req);
fprintf(stdout, "-------------------------------------\n");
printfpareq(req);
fprintf(stdout, "-------------------------------------\n");
frepareq(req);
}
fprintf(stdout, "xxxRESxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n");
for (char *ch = strtok(reses, "|"); ch != NULL; ch = strtok(NULL, "|")) {
ret = pares(ch, res);
fprintf(stdout, "-------------------------------------\n");
printfpares(res);
fprintf(stdout, "-------------------------------------\n");
frepares(res);
}
fprintf(stdout, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n");
fretres();
free(res);
free(req);
free(reses);
free(reqs);
return 0;
}