]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
tvhdhomerun: check return values of setsockopt
authorBeralt <beralt@beralt.nl>
Tue, 14 Oct 2014 15:04:32 +0000 (17:04 +0200)
committerJaroslav Kysela <perex@perex.cz>
Wed, 15 Oct 2014 18:20:34 +0000 (20:20 +0200)
src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c

index c1ffe27ecb6f7c1b4be0d0978e946df1075abb3d..33e993305ea230103a20727cfe839d12dd35c108 100644 (file)
@@ -127,11 +127,20 @@ tvhdhomerun_frontend_input_thread ( void *aux )
   }
 
   /* enable broadcast */
-  setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, (char *) &sock_opt, sizeof(sock_opt));
-  setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char *) &sock_opt, sizeof(sock_opt));
+  if(setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, (char *) &sock_opt, sizeof(sock_opt)) < 0) {
+    tvhlog(LOG_ERR, "tvhdhomerun", "failed to enable broadcast on socket (%d)", errno);
+    return NULL;
+  }
+
+  if(setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char *) &sock_opt, sizeof(sock_opt)) < 0) {
+    tvhlog(LOG_ERR, "tvhdhomerun", "failed to set address reuse on socket (%d)", errno);
+    return NULL;
+  }
 
   /* important: we need large rx buffers to accomodate the large amount of traffic */
-  setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, (char *) &rx_size, sizeof(rx_size));
+  if(setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, (char *) &rx_size, sizeof(rx_size)) < 0) {
+    tvhlog(LOG_WARNING, "tvhdhomerun", "failed set socket rx buffer size, expect CC errors (%d)", errno);
+  }
 
   memset(&sock_addr, 0, sizeof(sock_addr));
   sock_addr.sin_family = AF_INET;