36 lines
722 B
C
36 lines
722 B
C
#include <libowfat/buffer.h>
|
|
#include <libowfat/errmsg.h>
|
|
#include <libowfat/str.h>
|
|
#include <unistd.h>
|
|
|
|
#define dieusage() die(100, argv0, " PROG ARGS");
|
|
|
|
static void consume_headers(void) {
|
|
char buf[2048];
|
|
int r;
|
|
for (;;) {
|
|
r=buffer_getline(buffer_0, buf, sizeof buf);
|
|
if (r==0) die(100,"EOF before header end");
|
|
if (buf[0]=='\r')
|
|
break;
|
|
}
|
|
}
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
char *header;
|
|
(void)argc;
|
|
errmsg_iam(*argv);
|
|
|
|
if (argc<2) dieusage();
|
|
|
|
consume_headers();
|
|
|
|
header = "HTTP/1.0 200 OK\r\n"
|
|
"Connection: close\r\n"
|
|
"\r\n";
|
|
if (write(1, header, str_len(header)) < 0)
|
|
diesys(111, "write to stdout");
|
|
execvp(argv[1], argv+1);
|
|
diesys(111, "exec ", argv[1]);
|
|
}
|