H2Operations: Fix Dead Store (Dead assignement/Dead increment) Warning found by Clang
[metze/wireshark/wip.git] / sharkd_session.c
index d393145288e36eeb0f54cfb1816ec5bf26c522e9..010a543c236a83e3a60546260fa51c27d13095ca 100644 (file)
@@ -79,12 +79,6 @@ struct sharkd_filter_item
 
 static GHashTable *filter_table = NULL;
 
-static gboolean
-json_unescape_str(char *input)
-{
-       return wsjson_unescape_json_string(input, input);
-}
-
 static const char *
 json_find_attr(const char *buf, const jsmntok_t *tokens, int count, const char *attr)
 {
@@ -120,7 +114,7 @@ json_puts_string(const char *s)
                if (str[i] < 0x20)
                {
                        putchar('\\');
-                       fputs(json_cntrl[str[i]], stdout);
+                       fputs(json_cntrl[(guint)str[i]], stdout);
                }
                else
                {
@@ -344,7 +338,7 @@ sharkd_session_process_info_nstat_cb(const void *key, void *value, void *userdat
        int *pi = (int *) userdata;
 
        sharkd_json_object_open(*pi != 0);
-               sharkd_json_value_stringf(FALSE, "name", "%s", stat_tap->title);
+               sharkd_json_value_string(FALSE, "name", stat_tap->title);
                sharkd_json_value_stringf(TRUE, "tap", "nstat:%s", (const char *) key);
        sharkd_json_object_close();
 
@@ -389,7 +383,7 @@ sharkd_session_seq_analysis_cb(const void *key, void *value, void *userdata)
        int *pi = (int *) userdata;
 
        sharkd_json_object_open(*pi != 0);
-               sharkd_json_value_stringf(FALSE, "name", "%s", sequence_analysis_get_ui_name(analysis));
+               sharkd_json_value_string(FALSE, "name", sequence_analysis_get_ui_name(analysis));
                sharkd_json_value_stringf(TRUE, "tap", "seqa:%s", (const char *) key);
        sharkd_json_object_close();
 
@@ -479,6 +473,8 @@ sharkd_follower_visit_cb(const void *key _U_, void *value, void *user_data)
  * Process info request
  *
  * Output object with attributes:
+ *   (m) version - version number
+ *
  *   (m) columns - available column formats, array of object with attributes:
  *                  'name'   - column name
  *                  'format' - column format-name
@@ -507,15 +503,20 @@ sharkd_follower_visit_cb(const void *key _U_, void *value, void *user_data)
  *                  'name' - sequence analysis name
  *                  'tap'  - sharkd tap-name
  *
- *   (m) taps - available taps, array of object with attributes:
+ *   (m) taps    - available taps, array of object with attributes:
  *                  'name' - tap name
  *                  'tap'  - sharkd tap-name
  *
- *   (m) follow - available followers, array of object with attributes:
+ *   (m) follow  - available followers, array of object with attributes:
+ *                  'name' - tap name
+ *                  'tap'  - sharkd tap-name
+ *
+ *   (m) ftypes  - conversation table for FT_ number to string, array of FT_xxx strings.
+ *
+ *   (m) nstat   - available table-based taps, array of object with attributes:
  *                  'name' - tap name
  *                  'tap'  - sharkd tap-name
  *
- *   (m) ftypes   - conversation table for FT_ number to string
  */
 static void
 sharkd_session_process_info(void)
@@ -531,8 +532,8 @@ sharkd_session_process_info(void)
                const char *col_descr  = col_format_desc(i);
 
                sharkd_json_object_open(i != 0);
-                       sharkd_json_value_stringf(FALSE, "name", "%s", col_descr);
-                       sharkd_json_value_stringf(TRUE, "format", "%s", col_format);
+                       sharkd_json_value_string(FALSE, "name", col_descr);
+                       sharkd_json_value_string(TRUE, "format", col_format);
                sharkd_json_object_close();
        }
        sharkd_json_array_close();
@@ -548,7 +549,7 @@ sharkd_session_process_info(void)
                        stats_tree_cfg *cfg = (stats_tree_cfg *) l->data;
 
                        sharkd_json_object_open(sepa);
-                               sharkd_json_value_stringf(FALSE, "name", "%s", cfg->name);
+                               sharkd_json_value_string(FALSE, "name", cfg->name);
                                sharkd_json_value_stringf(TRUE, "tap", "stat:%s", cfg->abbr);
                        sharkd_json_object_close();
                        sepa = TRUE;
@@ -1003,16 +1004,16 @@ sharkd_session_process_frames(const char *buf, const jsmntok_t *tokens, int coun
 
                sharkd_json_value_anyf(TRUE, "num", "%u", framenum);
 
-               if (fdata->flags.has_user_comment || fdata->flags.has_phdr_comment)
+               if (fdata->has_user_comment || fdata->has_phdr_comment)
                {
-                       if (!fdata->flags.has_user_comment || sharkd_get_user_comment(fdata) != NULL)
+                       if (!fdata->has_user_comment || sharkd_get_user_comment(fdata) != NULL)
                                sharkd_json_value_anyf(TRUE, "ct", "true");
                }
 
-               if (fdata->flags.ignored)
+               if (fdata->ignored)
                        sharkd_json_value_anyf(TRUE, "i", "true");
 
-               if (fdata->flags.marked)
+               if (fdata->marked)
                        sharkd_json_value_anyf(TRUE, "m", "true");
 
                if (fdata->color_filter)
@@ -1047,13 +1048,23 @@ sharkd_session_process_tap_stats_node_cb(const stat_node *n)
                sharkd_json_object_open(sepa);
 
                /* code based on stats_tree_get_values_from_node() */
-               sharkd_json_value_stringf(FALSE, "name", "%s", node->name);
+               sharkd_json_value_string(FALSE, "name", node->name);
                sharkd_json_value_anyf(TRUE, "count", "%d", node->counter);
                if (node->counter && ((node->st_flags & ST_FLG_AVERAGE) || node->rng))
                {
-                       sharkd_json_value_anyf(TRUE, "avg", "%.2f", ((float)node->total) / node->counter);
-                       sharkd_json_value_anyf(TRUE, "min", "%d", node->minvalue);
-                       sharkd_json_value_anyf(TRUE, "max", "%d", node->maxvalue);
+                       switch(node->datatype)
+                       {
+                       case STAT_DT_INT:
+                               sharkd_json_value_anyf(TRUE, "avg", "%.2f", ((float)node->total.int_total) / node->counter);
+                               sharkd_json_value_anyf(TRUE, "min", "%d", node->minvalue.int_min);
+                               sharkd_json_value_anyf(TRUE, "max", "%d", node->maxvalue.int_max);
+                               break;
+                       case STAT_DT_FLOAT:
+                               sharkd_json_value_anyf(TRUE, "avg", "%.2f", node->total.float_total / node->counter);
+                               sharkd_json_value_anyf(TRUE, "min", "%f", node->minvalue.float_min);
+                               sharkd_json_value_anyf(TRUE, "max", "%f", node->maxvalue.float_max);
+                               break;
+                       }
                }
 
                if (node->st->elapsed)
@@ -1071,7 +1082,7 @@ sharkd_session_process_tap_stats_node_cb(const stat_node *n)
                        else
                                sharkd_json_value_anyf(TRUE, "burstrate", "%.4f", ((double)node->max_burst) / prefs.st_burst_windowlen);
 
-                       sharkd_json_value_anyf(TRUE, "bursttime", "%.3f", ((double)node->burst_time / 1000.0));
+                       sharkd_json_value_anyf(TRUE, "bursttime", "%.3f", (node->burst_time / 1000.0));
                }
 
                if (node->children)
@@ -1115,7 +1126,7 @@ sharkd_session_process_tap_stats_cb(void *psp)
 
        sharkd_json_value_stringf(FALSE, "tap", "stats:%s", st->cfg->abbr);
        sharkd_json_value_string(TRUE, "type", "stats");
-       sharkd_json_value_stringf(TRUE, "name", "%s", st->cfg->name);
+       sharkd_json_value_string(TRUE, "name", st->cfg->name);
 
        sharkd_json_value_anyf(TRUE, "stats", NULL);
        sharkd_session_process_tap_stats_node_cb(&st->root);
@@ -1196,7 +1207,7 @@ sharkd_session_process_tap_expert_cb(void *tapdata)
        putchar(',');
 }
 
-static gboolean
+static tap_packet_status
 sharkd_session_packet_tap_expert_cb(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *pointer)
 {
        struct sharkd_expert_tap *etd = (struct sharkd_expert_tap *) tapdata;
@@ -1204,7 +1215,7 @@ sharkd_session_packet_tap_expert_cb(void *tapdata, packet_info *pinfo _U_, epan_
        expert_info_t *ei_copy;
 
        if (ei == NULL)
-               return FALSE;
+               return TAP_PACKET_DONT_REDRAW;
 
        ei_copy = g_new(expert_info_t, 1);
        /* Note: this is a shallow copy */
@@ -1216,7 +1227,7 @@ sharkd_session_packet_tap_expert_cb(void *tapdata, packet_info *pinfo _U_, epan_
 
        etd->details = g_slist_prepend(etd->details, ei_copy);
 
-       return TRUE;
+       return TAP_PACKET_REDRAW;
 }
 
 static void
@@ -1281,7 +1292,7 @@ sharkd_session_process_tap_flow_cb(void *tapdata)
 
                sharkd_json_object_open(sepa);
 
-               sharkd_json_value_stringf(FALSE, "t", "%s", sai->time_str);
+               sharkd_json_value_string(FALSE, "t", sai->time_str);
                sharkd_json_value_anyf(TRUE, "n", "[%u,%u]", sai->src_node, sai->dst_node);
                sharkd_json_value_anyf(TRUE, "pn", "[%u,%u]", sai->port_src, sai->port_dst);
 
@@ -1426,7 +1437,7 @@ sharkd_session_process_tap_rtp_free_cb(void *tapdata)
        g_free(rtp_req);
 }
 
-static gboolean
+static tap_packet_status
 sharkd_session_packet_tap_rtp_analyse_cb(void *tapdata, packet_info *pinfo, epan_dissect_t *edt _U_, const void *pointer)
 {
        struct sharkd_analyse_rtp *rtp_req = (struct sharkd_analyse_rtp *) tapdata;
@@ -1460,7 +1471,7 @@ sharkd_session_packet_tap_rtp_analyse_cb(void *tapdata, packet_info *pinfo, epan
                rtp_req->packets = g_slist_append(rtp_req->packets, item);
        }
 
-       return TRUE;
+       return TAP_PACKET_REDRAW;
 }
 
 /**
@@ -1605,6 +1616,7 @@ sharkd_session_process_tap_rtp_analyse_cb(void *tapdata)
  *   (m) type       - tap output type
  *   (m) proto      - protocol short name
  *   (o) filter     - filter string
+ *   (o) geoip      - whether GeoIP information is available, boolean
  *
  *   (o) convs      - array of object with attributes:
  *                  (m) saddr - source address
@@ -1617,6 +1629,7 @@ sharkd_session_process_tap_rtp_analyse_cb(void *tapdata)
  *                  (m) rxb   - RX bytes
  *                  (m) start - (relative) first packet time
  *                  (m) stop  - (relative) last packet time
+ *                  (o) filter - conversation filter
  *
  *   (o) hosts      - array of object with attributes:
  *                  (m) host - host address
@@ -1671,13 +1684,13 @@ sharkd_session_process_tap_conv_cb(void *arg)
 
                        sharkd_json_object_open(i != 0);
 
-                       sharkd_json_value_stringf(FALSE, "saddr", "%s", (src_addr = get_conversation_address(NULL, &iui->src_address, iu->resolve_name)));
-                       sharkd_json_value_stringf(TRUE,  "daddr", "%s", (dst_addr = get_conversation_address(NULL, &iui->dst_address, iu->resolve_name)));
+                       sharkd_json_value_string(FALSE, "saddr", (src_addr = get_conversation_address(NULL, &iui->src_address, iu->resolve_name)));
+                       sharkd_json_value_string(TRUE,  "daddr", (dst_addr = get_conversation_address(NULL, &iui->dst_address, iu->resolve_name)));
 
                        if (proto_with_port)
                        {
-                               sharkd_json_value_stringf(TRUE, "sport", "%s", (src_port = get_conversation_port(NULL, iui->src_port, iui->etype, iu->resolve_port)));
-                               sharkd_json_value_stringf(TRUE, "dport", "%s", (dst_port = get_conversation_port(NULL, iui->dst_port, iui->etype, iu->resolve_port)));
+                               sharkd_json_value_string(TRUE, "sport", (src_port = get_conversation_port(NULL, iui->src_port, iui->etype, iu->resolve_port)));
+                               sharkd_json_value_string(TRUE, "dport", (dst_port = get_conversation_port(NULL, iui->dst_port, iui->etype, iu->resolve_port)));
 
                                wmem_free(NULL, src_port);
                                wmem_free(NULL, dst_port);
@@ -1695,7 +1708,7 @@ sharkd_session_process_tap_conv_cb(void *arg)
                        filter_str = get_conversation_filter(iui, CONV_DIR_A_TO_FROM_B);
                        if (filter_str)
                        {
-                               sharkd_json_value_stringf(TRUE, "filter", "%s", filter_str);
+                               sharkd_json_value_string(TRUE, "filter", filter_str);
                                g_free(filter_str);
                        }
 
@@ -1720,11 +1733,11 @@ sharkd_session_process_tap_conv_cb(void *arg)
 
                        sharkd_json_object_open(i != 0);
 
-                       sharkd_json_value_stringf(FALSE, "host", "%s", (host_str = get_conversation_address(NULL, &host->myaddress, iu->resolve_name)));
+                       sharkd_json_value_string(FALSE, "host", (host_str = get_conversation_address(NULL, &host->myaddress, iu->resolve_name)));
 
                        if (proto_with_port)
                        {
-                               sharkd_json_value_stringf(TRUE, "port", "%s", (port_str = get_conversation_port(NULL, host->port, host->etype, iu->resolve_port)));
+                               sharkd_json_value_string(TRUE, "port", (port_str = get_conversation_port(NULL, host->port, host->etype, iu->resolve_port)));
 
                                wmem_free(NULL, port_str);
                        }
@@ -1738,7 +1751,7 @@ sharkd_session_process_tap_conv_cb(void *arg)
                        filter_str = get_hostlist_filter(host);
                        if (filter_str)
                        {
-                               sharkd_json_value_stringf(TRUE, "filter", "%s", filter_str);
+                               sharkd_json_value_string(TRUE, "filter", filter_str);
                                g_free(filter_str);
                        }
 
@@ -1818,7 +1831,7 @@ sharkd_session_process_tap_nstat_cb(void *arg)
 
                sharkd_json_object_open(i != 0);
 
-               sharkd_json_value_stringf(FALSE, "t", "%s", table->title);
+               sharkd_json_value_string(FALSE, "t", table->title);
 
                sharkd_json_array_open(TRUE, "i");
                for (j = 0; j < table->num_elements; j++)
@@ -2133,7 +2146,7 @@ sharkd_session_process_tap_eo_cb(void *tapdata)
        sharkd_json_value_string(FALSE, "tap", object_list->type);
        sharkd_json_value_string(TRUE, "type", "eo");
 
-       sharkd_json_value_stringf(TRUE, "proto", "%s", object_list->proto);
+       sharkd_json_value_string(TRUE, "proto", object_list->proto);
 
        sharkd_json_array_open(TRUE, "objects");
        for (slist = object_list->entries; slist; slist = slist->next)
@@ -2214,7 +2227,7 @@ sharkd_session_process_tap_rtp_cb(void *arg)
        gboolean sepa = FALSE;
 
        sharkd_json_object_open(FALSE);
-       sharkd_json_value_stringf(FALSE, "tap", "rtp-streams");
+       sharkd_json_value_string(FALSE, "tap", "rtp-streams");
        sharkd_json_value_string(TRUE, "type", "rtp-streams");
 
        sharkd_json_array_open(TRUE, "streams");
@@ -2228,11 +2241,11 @@ sharkd_session_process_tap_rtp_cb(void *arg)
                sharkd_json_object_open(sepa);
 
                sharkd_json_value_anyf(FALSE, "ssrc", "%u", calc.ssrc);
-               sharkd_json_value_stringf(TRUE, "payload", "%s", calc.all_payload_type_names);
+               sharkd_json_value_string(TRUE, "payload", calc.all_payload_type_names);
 
-               sharkd_json_value_stringf(TRUE, "saddr", "%s", calc.src_addr_str);
+               sharkd_json_value_string(TRUE, "saddr", calc.src_addr_str);
                sharkd_json_value_anyf(TRUE, "sport", "%u", calc.src_port);
-               sharkd_json_value_stringf(TRUE, "daddr", "%s", calc.dst_addr_str);
+               sharkd_json_value_string(TRUE, "daddr", calc.dst_addr_str);
                sharkd_json_value_anyf(TRUE, "dport", "%u", calc.dst_port);
 
                sharkd_json_value_anyf(TRUE, "pkts", "%u", calc.packet_count);
@@ -2603,6 +2616,8 @@ sharkd_session_process_tap(char *buf, const jsmntok_t *tokens, int count)
 
        sharkd_json_array_open(FALSE, "taps");
        sharkd_retap();
+       // This dummy value exists to permit unconditionally adding ',' in the taps callback.
+       // XXX convert to json_dumper and remove this.
        sharkd_json_value_anyf(FALSE, NULL, "null");
        sharkd_json_array_close();
 
@@ -2797,7 +2812,7 @@ sharkd_session_process_frame_cb_tree(epan_dissect_t *edt, proto_tree *tree, tvbu
 
                        if (finfo->hfinfo->type == FT_PROTOCOL)
                        {
-                               sharkd_json_value_stringf(TRUE, "t", "proto");
+                               sharkd_json_value_string(TRUE, "t", "proto");
                        }
                        else if (finfo->hfinfo->type == FT_FRAMENUM)
                        {
@@ -2833,7 +2848,7 @@ sharkd_session_process_frame_cb_tree(epan_dissect_t *edt, proto_tree *tree, tvbu
 
                        g_assert(severity != NULL);
 
-                       sharkd_json_value_stringf(TRUE, "s", "%s", severity);
+                       sharkd_json_value_string(TRUE, "s", severity);
                }
 
                if (((proto_tree *) node)->first_child)
@@ -2898,9 +2913,9 @@ sharkd_session_process_frame_cb(epan_dissect_t *edt, proto_tree *tree, struct ep
 
        sharkd_json_value_anyf(FALSE, "err", "0");
 
-       if (fdata->flags.has_user_comment)
+       if (fdata->has_user_comment)
                pkt_comment = sharkd_get_user_comment(fdata);
-       else if (fdata->flags.has_phdr_comment)
+       else if (fdata->has_phdr_comment)
                pkt_comment = pi->rec->opt_comment;
 
        if (pkt_comment)
@@ -2948,10 +2963,10 @@ sharkd_session_process_frame_cb(epan_dissect_t *edt, proto_tree *tree, struct ep
                sharkd_json_array_close();
        }
 
-       if (fdata->flags.ignored)
+       if (fdata->ignored)
                sharkd_json_value_anyf(TRUE, "i", "true");
 
-       if (fdata->flags.marked)
+       if (fdata->marked)
                sharkd_json_value_anyf(TRUE, "m", "true");
 
        if (fdata->color_filter)
@@ -2976,7 +2991,7 @@ sharkd_session_process_frame_cb(epan_dissect_t *edt, proto_tree *tree, struct ep
                {
                        const guchar *cp = tvb_get_ptr(tvb, 0, length);
 
-                       /* XXX pi.fd->flags.encoding */
+                       /* XXX pi.fd->encoding */
                        sharkd_json_value_base64(TRUE, "bytes", cp, length);
                }
                else
@@ -3011,7 +3026,7 @@ sharkd_session_process_frame_cb(epan_dissect_t *edt, proto_tree *tree, struct ep
                        {
                                const guchar *cp = tvb_get_ptr(tvb, 0, length);
 
-                               /* XXX pi.fd->flags.encoding */
+                               /* XXX pi.fd->encoding */
                                sharkd_json_value_base64(TRUE, "bytes", cp, length);
                        }
                        else
@@ -3031,6 +3046,8 @@ sharkd_session_process_frame_cb(epan_dissect_t *edt, proto_tree *tree, struct ep
        }
 
        sharkd_json_array_open(TRUE, "fol");
+       // This dummy entry allows sharkd_follower_visit_layers_cb() to always insert ',' before dumping item.
+       // XXX convert to json_dumper and remove the dummy entry.
        sharkd_json_value_anyf(FALSE, NULL, "0");
        follow_iterate_followers(sharkd_follower_visit_layers_cb, pi);
        sharkd_json_array_close();
@@ -3055,15 +3072,16 @@ struct sharkd_iograph
        GString *error;
 };
 
-static gboolean
+static tap_packet_status
 sharkd_iograph_packet(void *g, packet_info *pinfo, epan_dissect_t *edt, const void *dummy _U_)
 {
        struct sharkd_iograph *graph = (struct sharkd_iograph *) g;
        int idx;
+       gboolean update_succeeded;
 
        idx = get_io_graph_index(pinfo, graph->interval);
        if (idx < 0 || idx >= SHARKD_IOGRAPH_MAX_ITEMS)
-               return FALSE;
+               return TAP_PACKET_DONT_REDRAW;
 
        if (idx + 1 > graph->num_items)
        {
@@ -3085,7 +3103,9 @@ sharkd_iograph_packet(void *g, packet_info *pinfo, epan_dissect_t *edt, const vo
                graph->num_items = idx + 1;
        }
 
-       return update_io_graph_item(graph->items, idx, pinfo, edt, graph->hf_index, graph->calc_type, graph->interval);
+       update_succeeded = update_io_graph_item(graph->items, idx, pinfo, edt, graph->hf_index, graph->calc_type, graph->interval);
+       /* XXX - TAP_PACKET_FAILED if the item couldn't be updated, with an error message? */
+       return update_succeeded ? TAP_PACKET_REDRAW : TAP_PACKET_DONT_REDRAW;
 }
 
 /**
@@ -3488,7 +3508,7 @@ sharkd_session_process_check(char *buf, const jsmntok_t *tokens, int count)
                        if (dfp && dfilter_deprecated_tokens(dfp))
                                s = "warn";
 
-                       sharkd_json_value_stringf(TRUE, "filter", "%s", s);
+                       sharkd_json_value_string(TRUE, "filter", s);
                        dfilter_free(dfp);
                }
                else
@@ -3502,7 +3522,7 @@ sharkd_session_process_check(char *buf, const jsmntok_t *tokens, int count)
        {
                header_field_info *hfi = proto_registrar_get_byname(tok_field);
 
-               sharkd_json_value_stringf(TRUE, "field", (hfi) ? "ok" : "notfound");
+               sharkd_json_value_string(TRUE, "field", (hfi) ? "ok" : "notfound");
        }
 
        sharkd_json_object_close();
@@ -3527,8 +3547,8 @@ sharkd_session_process_complete_pref_cb(module_t *module, gpointer d)
                return 0;
 
        sharkd_json_object_open(data->sepa);
-       sharkd_json_value_stringf(FALSE, "f", "%s", module->name);
-       sharkd_json_value_stringf(TRUE, "d", "%s", module->title);
+       sharkd_json_value_string(FALSE, "f", module->name);
+       sharkd_json_value_string(TRUE, "d", module->title);
        sharkd_json_object_close();
 
        data->sepa = TRUE;
@@ -3548,7 +3568,7 @@ sharkd_session_process_complete_pref_option_cb(pref_t *pref, gpointer d)
 
        sharkd_json_object_open(data->sepa);
        sharkd_json_value_stringf(FALSE, "f", "%s.%s", data->module, pref_name);
-       sharkd_json_value_stringf(TRUE, "d", "%s", pref_title);
+       sharkd_json_value_string(TRUE, "d", pref_title);
        sharkd_json_object_close();
 
        data->sepa = TRUE;
@@ -3819,7 +3839,7 @@ sharkd_session_process_dumpconf_cb(pref_t *pref, gpointer d)
                case PREF_DECODE_AS_RANGE:
                {
                        char *range_str = range_convert_range(NULL, prefs_get_range_value_real(pref, pref_current));
-                       sharkd_json_value_stringf(FALSE, "r", "%s", range_str);
+                       sharkd_json_value_string(FALSE, "r", range_str);
                        wmem_free(NULL, range_str);
                        break;
                }
@@ -4130,7 +4150,7 @@ sharkd_rtp_download_decode(struct sharkd_download_rtp *req)
        g_hash_table_destroy(decoders_hash_);
 }
 
-static gboolean
+static tap_packet_status
 sharkd_session_packet_download_tap_rtp_cb(void *tapdata, packet_info *pinfo, epan_dissect_t *edt _U_, const void *data)
 {
        const struct _rtp_info *rtp_info = (const struct _rtp_info *) data;
@@ -4138,7 +4158,7 @@ sharkd_session_packet_download_tap_rtp_cb(void *tapdata, packet_info *pinfo, epa
 
        /* do not consider RTP packets without a setup frame */
        if (rtp_info->info_setup_frame_num == 0)
-               return FALSE;
+               return TAP_PACKET_DONT_REDRAW;
 
        if (rtpstream_id_equal_pinfo_rtp_info(&req_rtp->id, pinfo, rtp_info))
        {
@@ -4160,7 +4180,7 @@ sharkd_session_packet_download_tap_rtp_cb(void *tapdata, packet_info *pinfo, epa
                req_rtp->packets = g_slist_append(req_rtp->packets, rtp_packet);
        }
 
-       return FALSE;
+       return TAP_PACKET_DONT_REDRAW;
 }
 
 /**
@@ -4321,7 +4341,7 @@ sharkd_session_process(char *buf, const jsmntok_t *tokens, int count)
                buf[tokens[i + 1].end] = '\0';
 
                /* unescape only value, as keys are simple strings */
-               if (tokens[i + 1].type == JSMN_STRING && !json_unescape_str(&buf[tokens[i + 1].start]))
+               if (tokens[i + 1].type == JSMN_STRING && !json_decode_string_inplace(&buf[tokens[i + 1].start]))
                {
                        fprintf(stderr, "sanity check(3b): [%d] cannot unescape string\n", i + 1);
                        return;
@@ -4416,7 +4436,7 @@ sharkd_session_main(void)
                /* every command is line seperated JSON */
                int ret;
 
-               ret = wsjson_parse(buf, NULL, 0);
+               ret = json_parse(buf, NULL, 0);
                if (ret < 0)
                {
                        fprintf(stderr, "invalid JSON -> closing\n");
@@ -4434,7 +4454,7 @@ sharkd_session_main(void)
 
                memset(tokens, 0, ret * sizeof(jsmntok_t));
 
-               ret = wsjson_parse(buf, tokens, ret);
+               ret = json_parse(buf, tokens, ret);
                if (ret < 0)
                {
                        fprintf(stderr, "invalid JSON(2) -> closing\n");