1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| #include <stdio.h>
#include <stdlib.h>
#define MAXLEN 600000
#define EXTRA 5
/* 4 for field name "data", 1 for "=" */
#define MAXINPUT MAXLEN+EXTRA+2
/* 1 for added line break, 1 for trailing NUL */
#define DATAFILE "essaie.wav"
void PrintHeaderAndMessage(int code, char const *code2, char const * message)
{
printf("HTTP/1.0 %d %s\r\n", code, code2);
printf("%s","Content-Type:text/html;charset=iso-8859-1\n");
putchar('\n');
printf("%s", message);
}
int main(void)
{
char *lenstr;
char input[MAXINPUT], data[MAXINPUT];
long len;
lenstr = getenv("CONTENT_LENGTH");
if(lenstr == NULL)
PrintHeaderAndMessage(500, "internal server error", "lentstr problem\n");
else if ( sscanf(lenstr,"%ld",&len)!=1)
PrintHeaderAndMessage(500, "internal server error", "error sscanf.\n");
else if ( len > MAXLEN)
PrintHeaderAndMessage(500, "internal server error", "len et MAXLEN prob.\n");
else
{
FILE *f;
fgets(input, len+1, stdin);
f = fopen(DATAFILE, "a");
if(f == NULL)
PrintHeaderAndMessage(500, "internal server error", "Sorry, cannot store your data.\n");
else
{
fputs(data, f);
fclose(f);
PrintHeaderAndMessage(200, "OK", "Thank you! Your contribution has been stored.\n");
}
}
return 0;
} |
Partager