From efbdb29d1b1a519b77771f1cb7d71b006404cc86 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 8 Jun 2011 22:51:58 +0000 Subject: first working version --- src/streamer.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/streamer.c b/src/streamer.c index ae5f356..2c108c9 100644 --- a/src/streamer.c +++ b/src/streamer.c @@ -78,7 +78,7 @@ int init_server(const char* host, const char* port) struct sockaddr_in local_addr; memset((char *) &local_addr, 0, sizeof(local_addr)); local_addr.sin_family = AF_INET; - local_addr.sin_port = htons(9001); + local_addr.sin_port = htons(80); local_addr.sin_addr.s_addr = htonl(INADDR_ANY); int on = 1; @@ -158,7 +158,7 @@ static gpointer client_thread_func(gpointer data) } if(buf == '\n') nlcnt++; - else nlcnt = 0; + else if(buf != '\r') nlcnt = 0; if(nlcnt >= 2) break; @@ -167,8 +167,14 @@ static gpointer client_thread_func(gpointer data) char* answer = "HTTP/1.0 200 OK\n\n"; int written = 0; for(;;) { - written = send(client->fd_, &answer[written], sizeof(answer) - written, 0); - if(written == sizeof(answer)) + int len = send(client->fd_, &answer[written], strlen(answer) - written, 0); + if(len < 0) { + free(client); + return NULL; + } + + written+=len; + if(written >= strlen(answer)) break; } -- cgit v1.2.3