-+ target[length+offset] = '\0';
-+
-+ return length;
-+}
-+
-+/* add the new app data to the buffer. Return number of bytes added. */
-+static int add_data(char *target, int offset, const struct sk_buff *skb)
-+{
-+ int length, length_sum = 0;
-+ int data_start = app_data_offset(skb);
-+ int remaining = skb->len - data_start;
-+ int to_copy;
-+ uint8_t buf[512];
-+ uint8_t *data;
-+
-+ while ((offset < maxdatalen - 1) && (remaining > 0)) {
-+ to_copy = min_t(int, remaining, sizeof(buf));
-+
-+ data = skb_header_pointer(skb, data_start, to_copy, buf);
-+ length = add_datastr(target, offset, data, to_copy);
-+
-+ remaining -= to_copy;
-+ data_start += to_copy;
-+ offset += length;
-+ length_sum += length;
-+ }
-+
-+ return length_sum;
-+}
-+
-+/* add the new app data to the conntrack. Return number of bytes added. */
-+static int add_data_conntrack(struct nf_conn *master_conntrack,
-+ const struct sk_buff *skb)
-+{
-+ int length;