summaryrefslogtreecommitdiff
path: root/src/streamer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/streamer.c')
-rw-r--r--src/streamer.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/streamer.c b/src/streamer.c
index 4130a89..ae5f356 100644
--- a/src/streamer.c
+++ b/src/streamer.c
@@ -147,8 +147,34 @@ struct client_struct {
static gpointer client_thread_func(gpointer data)
{
struct client_struct *client = (struct client_struct*)data;
+
+ char buf;
+ int nlcnt = 0;
+ for(;;) {
+ int len = recv(client->fd_, &buf, 1, 0);
+ if(len!=1) {
+ free(client);
+ return NULL;
+ }
+
+ if(buf == '\n') nlcnt++;
+ else nlcnt = 0;
+
+ if(nlcnt >= 2)
+ break;
+ }
+
+ 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))
+ break;
+ }
+
add_fd(client->streamer_, client->fd_);
free(client);
+ return NULL;
}
static gpointer streamer_thread_func(gpointer data)