mirror of
https://github.com/utoni/nDPId.git
synced 2026-10-14 02:20:14 +00:00
Disallow I/O Output for Distributors with all buffers in use/full
Some checks failed
RPM Build / build (push) Has been cancelled
Build / macOS-14 cc (push) Has been cancelled
Build / ubuntu-latest clang (push) Has been cancelled
Build / ubuntu-latest clang-1 (push) Has been cancelled
Build / ubuntu-22.04 clang-12 (push) Has been cancelled
ArchLinux PKGBUILD / build (push) Has been cancelled
Docker Build / docker (push) Has been cancelled
FreeBSD Build / Build and Test (push) Has been cancelled
Build OpenWrt Packages / build (malta-be) (push) Has been cancelled
Build OpenWrt Packages / build (armsr-armv8) (push) Has been cancelled
Build OpenWrt Packages / build (ramips-mt7621) (push) Has been cancelled
Build / ubuntu-latest gcc (push) Has been cancelled
Build / ubuntu-latest gcc-1 (push) Has been cancelled
Build / ubuntu-22.04 gcc-9 (push) Has been cancelled
Build OpenWrt Packages / build (x86-64) (push) Has been cancelled
Build / ubuntu-latest gcc-2 (push) Has been cancelled
Build / ubuntu-22.04 gcc-10 (push) Has been cancelled
SonarQube Scan / Build and analyze (push) Has been cancelled
Some checks failed
RPM Build / build (push) Has been cancelled
Build / macOS-14 cc (push) Has been cancelled
Build / ubuntu-latest clang (push) Has been cancelled
Build / ubuntu-latest clang-1 (push) Has been cancelled
Build / ubuntu-22.04 clang-12 (push) Has been cancelled
ArchLinux PKGBUILD / build (push) Has been cancelled
Docker Build / docker (push) Has been cancelled
FreeBSD Build / Build and Test (push) Has been cancelled
Build OpenWrt Packages / build (malta-be) (push) Has been cancelled
Build OpenWrt Packages / build (armsr-armv8) (push) Has been cancelled
Build OpenWrt Packages / build (ramips-mt7621) (push) Has been cancelled
Build / ubuntu-latest gcc (push) Has been cancelled
Build / ubuntu-latest gcc-1 (push) Has been cancelled
Build / ubuntu-22.04 gcc-9 (push) Has been cancelled
Build OpenWrt Packages / build (x86-64) (push) Has been cancelled
Build / ubuntu-latest gcc-2 (push) Has been cancelled
Build / ubuntu-22.04 gcc-10 (push) Has been cancelled
SonarQube Scan / Build and analyze (push) Has been cancelled
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
This commit is contained in:
parent
5d5c6c732c
commit
65fb7c2185
2 changed files with 16 additions and 13 deletions
|
|
@ -149,9 +149,9 @@ static int pcap_open_or_append(int packet_datalink,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void decode_base64(pcap_dumper_t * const pd,
|
static int decode_base64(pcap_dumper_t * const pd,
|
||||||
struct packet_data * const pd_elt,
|
struct packet_data * const pd_elt,
|
||||||
struct flow_packet_data * const fd_elt)
|
struct flow_packet_data * const fd_elt)
|
||||||
{
|
{
|
||||||
char const * base64_packet;
|
char const * base64_packet;
|
||||||
size_t base64_packet_size;
|
size_t base64_packet_size;
|
||||||
|
|
@ -176,7 +176,7 @@ static void decode_base64(pcap_dumper_t * const pd,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logger(1, "%s", "BUG: Can not decode base64 packet.");
|
logger(1, "%s", "BUG: Can not decode base64 packet.");
|
||||||
return;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nDPIsrvd_base64decode(base64_packet, base64_packet_size, pkt_buf, &pkt_buf_len) != 0 || pkt_buf_len == 0)
|
if (nDPIsrvd_base64decode(base64_packet, base64_packet_size, pkt_buf, &pkt_buf_len) != 0 || pkt_buf_len == 0)
|
||||||
|
|
@ -186,6 +186,7 @@ static void decode_base64(pcap_dumper_t * const pd,
|
||||||
} else {
|
} else {
|
||||||
logger(1, "Packet event Base64 decode failed (%zu bytes)", base64_packet_size);
|
logger(1, "Packet event Base64 decode failed (%zu bytes)", base64_packet_size);
|
||||||
}
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -195,6 +196,7 @@ static void decode_base64(pcap_dumper_t * const pd,
|
||||||
phdr.caplen = pkt_buf_len;
|
phdr.caplen = pkt_buf_len;
|
||||||
phdr.len = pkt_buf_len;
|
phdr.len = pkt_buf_len;
|
||||||
pcap_dump((unsigned char *)pd, &phdr, pkt_buf);
|
pcap_dump((unsigned char *)pd, &phdr, pkt_buf);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -735,7 +737,7 @@ static enum nDPIsrvd_callback_return captured_json_callback(struct nDPIsrvd_sock
|
||||||
|
|
||||||
if (TOKEN_GET_SZ(sock, "error_event_name") != NULL)
|
if (TOKEN_GET_SZ(sock, "error_event_name") != NULL)
|
||||||
{
|
{
|
||||||
logger(1, "Received an error event for packet id %llu.", packet_id);
|
//logger(1, "Received an error event for packet id %llu.", packet_id);
|
||||||
|
|
||||||
if (TOKEN_GET_SZ(sock, "error_event_id") == NULL)
|
if (TOKEN_GET_SZ(sock, "error_event_id") == NULL)
|
||||||
{
|
{
|
||||||
|
|
@ -754,7 +756,7 @@ static enum nDPIsrvd_callback_return captured_json_callback(struct nDPIsrvd_sock
|
||||||
}
|
}
|
||||||
else if (TOKEN_VALUE_EQUALS_SZ(sock, TOKEN_GET_SZ(sock, "packet_event_name"), "packet") != 0)
|
else if (TOKEN_VALUE_EQUALS_SZ(sock, TOKEN_GET_SZ(sock, "packet_event_name"), "packet") != 0)
|
||||||
{
|
{
|
||||||
logger(1, "Received an packet event for packet id %llu.", packet_id);
|
//logger(1, "Received an packet event for packet id %llu.", packet_id);
|
||||||
|
|
||||||
if (capture_mode != 0)
|
if (capture_mode != 0)
|
||||||
{
|
{
|
||||||
|
|
@ -804,7 +806,7 @@ static enum nDPIsrvd_callback_return captured_json_callback(struct nDPIsrvd_sock
|
||||||
|
|
||||||
if (packet_write_pcap_file(global_user) != 0)
|
if (packet_write_pcap_file(global_user) != 0)
|
||||||
{
|
{
|
||||||
logger(1, "%s", "Could not dump non-flow packet data");
|
//logger(1, "%s", "Could not dump non-flow packet data");
|
||||||
return CALLBACK_OK;
|
return CALLBACK_OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -977,7 +979,7 @@ static enum nDPIsrvd_callback_return captured_json_callback(struct nDPIsrvd_sock
|
||||||
errno = 0;
|
errno = 0;
|
||||||
if (flow_write_pcap_file(flow_user, pcap_filename) != 0)
|
if (flow_write_pcap_file(flow_user, pcap_filename) != 0)
|
||||||
{
|
{
|
||||||
logger(1, "Could not dump packet data to pcap file %s: %s", pcap_filename, strerror(errno));
|
//logger(1, "Could not dump packet data to pcap file %s", pcap_filename);
|
||||||
return CALLBACK_OK;
|
return CALLBACK_OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
11
nDPIsrvd.c
11
nDPIsrvd.c
|
|
@ -336,7 +336,7 @@ static UT_array * get_additional_write_buffers(struct remote_desc * const remote
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int add_to_additional_write_buffers(struct nio * const io, int index,
|
static int add_to_additional_write_buffers(struct nio * const io,
|
||||||
struct remote_desc * const remote,
|
struct remote_desc * const remote,
|
||||||
uint8_t * const buf,
|
uint8_t * const buf,
|
||||||
nDPIsrvd_ull json_message_length)
|
nDPIsrvd_ull json_message_length)
|
||||||
|
|
@ -349,9 +349,6 @@ static int add_to_additional_write_buffers(struct nio * const io, int index,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nio_can_output(io, index) == NIO_SUCCESS) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (utarray_len(additional_write_buffers) >= GET_CMDARG_ULL(nDPIsrvd_options.max_write_buffers))
|
if (utarray_len(additional_write_buffers) >= GET_CMDARG_ULL(nDPIsrvd_options.max_write_buffers))
|
||||||
{
|
{
|
||||||
logger_nDPIsrvd(remote,
|
logger_nDPIsrvd(remote,
|
||||||
|
|
@ -1807,10 +1804,14 @@ static int handle_incoming_data(struct nio * const io, int index, struct remote_
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (nio_can_output(io, index) == NIO_SUCCESS) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (json_bytes == NULL || *json_bytes > write_buffer->buf.max - write_buffer->buf.used ||
|
if (json_bytes == NULL || *json_bytes > write_buffer->buf.max - write_buffer->buf.used ||
|
||||||
utarray_len(additional_write_buffers) > 0)
|
utarray_len(additional_write_buffers) > 0)
|
||||||
{
|
{
|
||||||
if (add_to_additional_write_buffers(io, index,
|
if (add_to_additional_write_buffers(io,
|
||||||
&remotes.desc[i],
|
&remotes.desc[i],
|
||||||
json_read_buffer->buf.ptr.raw,
|
json_read_buffer->buf.ptr.raw,
|
||||||
*json_bytes) != 0)
|
*json_bytes) != 0)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue