From 94ed43a4adf1aab3e952a8022508eed5ee80a415 Mon Sep 17 00:00:00 2001 From: Taeho Oh Date: Sat, 23 Jan 2016 19:20:52 +0900 Subject: [PATCH] Save the content of the udp url to png file. --- omvs_main.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/omvs_main.c b/omvs_main.c index bc65794..d2a4e92 100644 --- a/omvs_main.c +++ b/omvs_main.c @@ -5,6 +5,8 @@ #include #include +#include "omvs_gst.h" + #define _OMVS_IPPROTO_UDP 17 static gint _omvs_net_dev_idx; @@ -74,6 +76,7 @@ typedef struct _OMVSUDPHdr { typedef struct _OMVSIPAddr { guint32 addr; + OMVSGst *gsts; guint16 *ports; gint num_ports; } OMVSIPAddr; @@ -284,17 +287,32 @@ static gpointer _omvs_start_scan_job(gpointer data) { } if (!is_udp_port_found) { + gchar *uri; + gchar *filename; + uri = g_strdup_printf("udp://%s:%d", addr_str, udp_port); + filename = + g_strdup_printf("%s/%s-%d.png", _omvs_outdir, addr_str, udp_port); + if (_omvs_verbose) { + g_print("[%p] trying to save %s to %s\n", (void *)g_thread_self(), + uri, filename); + } + o_ipaddr->gsts = g_realloc(o_ipaddr->gsts, + (o_ipaddr->num_ports + 1) * sizeof(OMVSGst)); + o_ipaddr->gsts[o_ipaddr->num_ports] = omvs_gst_open(uri, filename); + g_free(filename); + g_free(uri); o_ipaddr->ports = g_realloc(o_ipaddr->ports, (o_ipaddr->num_ports + 1) * sizeof(guint16)); o_ipaddr->ports[o_ipaddr->num_ports] = udp_port; o_ipaddr->num_ports++; - if (_omvs_verbose) { - g_print("[%p] found udp://%s:%d\n", (void *)g_thread_self(), - addr_str, udp_port); - } } } + for (j = 0; j < o_ipaddr->num_ports; j++) { + omvs_gst_close(o_ipaddr->gsts[j]); + } + g_free(o_ipaddr->gsts); + if (_omvs_verbose) { g_print("[%p] finish scanning %s\n", (void *)g_thread_self(), addr_str); }