]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
SAT>IP: Add support for kernels before 2.6.33
authorJaroslav Kysela <perex@perex.cz>
Wed, 16 Apr 2014 16:09:28 +0000 (18:09 +0200)
committerJaroslav Kysela <perex@perex.cz>
Mon, 5 May 2014 20:00:36 +0000 (22:00 +0200)
src/input/mpegts/satip/satip_frontend.c

index 8eaf47deb23e3277e900d2d0cdd7e325491645b6..aa4dc3fd440cc58496b7fd9ded45887069bcb237 100644 (file)
@@ -26,6 +26,8 @@
 #include "http.h"
 #include "satip_private.h"
 
+#define PKTS 64
+
 #ifndef CONFIG_RECVMMSG
 
 #ifdef __linux__
@@ -42,19 +44,38 @@ struct mmsghdr {
 int recvmmsg(int sockfd, struct mmsghdr *msgvec, unsigned int vlen,
              unsigned int flags, struct timespec *timeout);
 
+#ifdef __NR_recvmmsg
+
 int recvmmsg(int sockfd, struct mmsghdr *msgvec, unsigned int vlen,
              unsigned int flags, struct timespec *timeout)
 {
   return syscall(__NR_recvmmsg, sockfd, msgvec, vlen, flags, timeout);
 }
 
+#else
+
+#undef PKTS
+#define PKTS 1
+/* receive only single packet */
+int recvmmsg(int sockfd, struct mmsghdr *msgvec, unsigned int vlen,
+             unsigned int flags, struct timespec *timeout)
+{
+  ssize_t r = recvmsg(sockfd, &msgvec->msg_hdr, flags);
+  if (r < 0)
+    return r;
+  msgvec->msg_len = r;
+  return 1;
+}
+
+#endif
+
 #else /* not __linux__ */
 
 #error "Add recvmmsg() support for your platform!!!"
 
 #endif
 
-#endif /* ENABLE_RECVMMSG */
+#endif /* !CONFIG_RECVMMSG */
 
 static int
 satip_frontend_tune1
@@ -693,7 +714,6 @@ satip_frontend_pid_changed( http_client_t *rtsp,
 static void *
 satip_frontend_input_thread ( void *aux )
 {
-#define PKTS 64
 #define HTTP_CMD_NONE 9874
   satip_frontend_t *lfe = aux;
   mpegts_mux_instance_t *mmi = lfe->sf_mmi;