From: Vivia Nikolaidou Date: Tue, 3 Mar 2020 13:19:21 +0000 (+0200) Subject: tcpclientsrc: Fix compilation on FreeBSD X-Git-Tag: 1.19.3~511^2~749 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d1c9972e9422342bf0056feb939f0e76c4c6d7f3;p=platform%2Fupstream%2Fgstreamer.git tcpclientsrc: Fix compilation on FreeBSD The members of the tcp_info struct are prefixed with a double underscore, as reported in https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/584#note_423487 --- diff --git a/gst/tcp/gsttcpclientsrc.c b/gst/tcp/gsttcpclientsrc.c index b236e1a..b007650 100644 --- a/gst/tcp/gsttcpclientsrc.c +++ b/gst/tcp/gsttcpclientsrc.c @@ -585,6 +585,16 @@ gst_tcp_client_src_get_stats (GstTCPClientSrc * src) fd = g_socket_get_fd (src->socket); if (getsockopt (fd, IPPROTO_TCP, TCP_INFO, &info, &info_len) == 0) { + /* this is system-specific */ +#ifdef HAVE_BSD_TCP_INFO + gst_structure_set (s, + "reordering", G_TYPE_UINT, info.__tcpi_reordering, + "unacked", G_TYPE_UINT, info.__tcpi_unacked, + "sacked", G_TYPE_UINT, info.__tcpi_sacked, + "lost", G_TYPE_UINT, info.__tcpi_lost, + "retrans", G_TYPE_UINT, info.__tcpi_retrans, + "fackets", G_TYPE_UINT, info.__tcpi_fackets, NULL); +#elif defined(HAVE_LINUX_TCP_INFO) gst_structure_set (s, "reordering", G_TYPE_UINT, info.tcpi_reordering, "unacked", G_TYPE_UINT, info.tcpi_unacked, @@ -592,6 +602,7 @@ gst_tcp_client_src_get_stats (GstTCPClientSrc * src) "lost", G_TYPE_UINT, info.tcpi_lost, "retrans", G_TYPE_UINT, info.tcpi_retrans, "fackets", G_TYPE_UINT, info.tcpi_fackets, NULL); +#endif } } #endif diff --git a/meson.build b/meson.build index 967fdab..92958ed 100644 --- a/meson.build +++ b/meson.build @@ -375,6 +375,14 @@ else endif endif +if cc.has_member('struct tcp_info', '__tcpi_reordering', prefix: '#include ') + core_conf.set('HAVE_BSD_TCP_INFO', true) +endif + +if cc.has_member('struct tcp_info', 'tcpi_reordering', prefix: '#include ') + core_conf.set('HAVE_LINUX_TCP_INFO', true) +endif + gir = find_program('g-ir-scanner', required : get_option('introspection')) gnome = import('gnome') build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled())