diff options
-rw-r--r-- | src/main.c | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -169,7 +169,7 @@ increment_read_timer (STPServerCtx *ctx) if (ctx->seconds_since_read < server_timeout) return G_SOURCE_CONTINUE; - g_printerr ("Stream timed out, sending EOS\n"); + g_debug ("Stream timed out, sending EOS\n"); stream_finished_cb (ctx->msg, ctx); return G_SOURCE_REMOVE; } @@ -733,16 +733,14 @@ PUT: { /* The chunks we'll get are a continuation of the previous one */ g_signal_connect (msg, "got-chunk", G_CALLBACK (got_request_body_chunk), ctx); - PUT_out: - stp_stream_token_free (token); - goto out; + goto PUT_out; } /* This is a new connection; treat it as such */ ctx = g_new0 (STPServerCtx, 1); ctx->stream_type = token->stream_type; if (ctx->stream_type & STP_STREAM_TYPE_RTP_UDP) - ctx->udp_clients = token->udp_clients; + ctx->udp_clients = g_strdup (token->udp_clients); ctx->msg = msg; ctx->encoding = encoding; ctx->status = STP_STATUS_STREAMING; @@ -760,6 +758,8 @@ PUT: { if (encoding == SOUP_ENCODING_CONTENT_LENGTH) ctx->timeout_handler_id = g_timeout_add_seconds (2, (GSourceFunc)increment_read_timer, ctx); + PUT_out: + stp_stream_token_free (token); goto out; } @@ -1142,6 +1142,7 @@ gboolean exit_on_signal_cb (SoupServer *server) { soup_server_quit (server); + g_object_unref (server); return G_SOURCE_REMOVE; } @@ -1225,5 +1226,9 @@ main (int argc, g_unix_signal_add (SIGINT, (GSourceFunc)exit_on_signal_cb, server); soup_server_run (server); + + g_hash_table_unref (tables->tokens); + g_hash_table_unref (tables->ctxs); + g_free (tables); return 0; } |