tcpserversrc: close the server socket after accepting a connection
authorMichael Olbrich <m.olbrich@pengutronix.de>
Thu, 12 Jun 2014 10:36:26 +0000 (12:36 +0200)
committerTim-Philipp Müller <tim@centricular.com>
Fri, 13 Jun 2014 10:18:10 +0000 (11:18 +0100)
g_socket_accept() is only called once for a server socket. So
keeping the socket open ist just confusing possible clients.

https://bugzilla.gnome.org/show_bug.cgi?id=731566

gst/tcp/gsttcpserversrc.c

index 4bd56af..d2a09e9 100644 (file)
@@ -195,6 +195,12 @@ gst_tcp_server_src_create (GstPushSrc * psrc, GstBuffer ** outbuf)
         g_socket_accept (src->server_socket, src->cancellable, &err);
     if (!src->client_socket)
       goto accept_error;
+    GST_DEBUG_OBJECT (src, "closing server socket");
+
+    if (!g_socket_close (src->server_socket, &err)) {
+      GST_ERROR_OBJECT (src, "Failed to close socket: %s", err->message);
+      g_clear_error (&err);
+    }
     /* now read from the socket. */
   }