raop: Add call to pa_sink_set_max_request()
authorColin Guthrie <cguthrie@mandriva.org>
Wed, 25 Mar 2009 23:05:41 +0000 (23:05 +0000)
committerColin Guthrie <cguthrie@mandriva.org>
Wed, 25 Mar 2009 23:05:41 +0000 (23:05 +0000)
This is just a copy from the ESD version which is a little crude, but will do for now.

src/modules/module-raop-sink.c

index 00f0c63..d8ddf18 100644 (file)
@@ -135,13 +135,22 @@ enum {
 /* Forward declaration */
 static void sink_set_volume_cb(pa_sink *);
 
-static void on_connection(PA_GCC_UNUSED int fd, void*userdata) {
+static void on_connection(int fd, void*userdata) {
+    int so_sndbuf = 0;
+    socklen_t sl = sizeof(int);
     struct userdata *u = userdata;
     pa_assert(u);
 
     pa_assert(u->fd < 0);
     u->fd = fd;
 
+    if (getsockopt(u->fd, SOL_SOCKET, SO_SNDBUF, &so_sndbuf, &sl) < 0)
+        pa_log_warn("getsockopt(SO_SNDBUF) failed: %s", pa_cstrerror(errno));
+    else {
+        pa_log_debug("SO_SNDBUF is %zu.", (size_t) so_sndbuf);
+        pa_sink_set_max_request(u->sink, PA_MAX((size_t) so_sndbuf, u->block_size));
+    }
+
     /* Set the initial volume */
     sink_set_volume_cb(u->sink);