aboutsummaryrefslogtreecommitdiff
path: root/src/lib/protocols/jabber.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/protocols/jabber.c')
-rw-r--r--src/lib/protocols/jabber.c186
1 files changed, 0 insertions, 186 deletions
diff --git a/src/lib/protocols/jabber.c b/src/lib/protocols/jabber.c
index a5e5a069e..89dd3c8db 100644
--- a/src/lib/protocols/jabber.c
+++ b/src/lib/protocols/jabber.c
@@ -65,9 +65,6 @@ static void check_content_type_and_change_protocol(struct ndpi_detection_module_
void ndpi_search_jabber_tcp(struct ndpi_detection_module_struct *ndpi_struct, struct ndpi_flow_struct *flow)
{
struct ndpi_packet_struct *packet = &ndpi_struct->packet;
- struct ndpi_id_struct *src = flow->src;
- struct ndpi_id_struct *dst = flow->dst;
- u_int16_t x;
NDPI_LOG_DBG(ndpi_struct, "search JABBER\n");
@@ -76,193 +73,10 @@ void ndpi_search_jabber_tcp(struct ndpi_detection_module_struct *ndpi_struct, st
return;
}
- /* search for jabber file transfer */
- /* this part is working asymmetrically */
- if (packet->tcp != NULL && packet->tcp->syn != 0 && packet->payload_packet_len == 0) {
- NDPI_LOG_DBG2(ndpi_struct, "check jabber syn\n");
- if (src != NULL && src->jabber_file_transfer_port[0] != 0) {
- NDPI_LOG_DBG2(ndpi_struct, "src jabber ft port set, ports are: %u, %u\n",
- ntohs(src->jabber_file_transfer_port[0]),
- ntohs(src->jabber_file_transfer_port[1]));
- if (((u_int32_t)
- (packet->current_time_ms - src->jabber_stun_or_ft_ts)) >= ndpi_struct->jabber_file_transfer_timeout) {
- NDPI_LOG_DBG2(ndpi_struct, "JABBER src stun timeout %u %u\n",
- src->jabber_stun_or_ft_ts, packet->current_time_ms);
- src->jabber_file_transfer_port[0] = 0;
- src->jabber_file_transfer_port[1] = 0;
- } else if (src->jabber_file_transfer_port[0] == packet->tcp->dest
- || src->jabber_file_transfer_port[0] == packet->tcp->source
- || src->jabber_file_transfer_port[1] == packet->tcp->dest
- || src->jabber_file_transfer_port[1] == packet->tcp->source) {
- NDPI_LOG_INFO(ndpi_struct, "found jabber file transfer\n");
-
- ndpi_int_jabber_add_connection(ndpi_struct, flow,
- NDPI_PROTOCOL_JABBER, NDPI_CONFIDENCE_DPI_SRC_DST_ID);
- }
- }
- if (dst != NULL && dst->jabber_file_transfer_port[0] != 0) {
- NDPI_LOG_DBG2(ndpi_struct, "dst jabber ft port set, ports are: %u, %u\n",
- ntohs(dst->jabber_file_transfer_port[0]),
- ntohs(dst->jabber_file_transfer_port[1]));
- if (((u_int32_t)
- (packet->current_time_ms - dst->jabber_stun_or_ft_ts)) >= ndpi_struct->jabber_file_transfer_timeout) {
- NDPI_LOG_DBG2(ndpi_struct, "JABBER dst stun timeout %u %u\n",
- dst->jabber_stun_or_ft_ts, packet->current_time_ms);
- dst->jabber_file_transfer_port[0] = 0;
- dst->jabber_file_transfer_port[1] = 0;
- } else if (dst->jabber_file_transfer_port[0] == packet->tcp->dest
- || dst->jabber_file_transfer_port[0] == packet->tcp->source
- || dst->jabber_file_transfer_port[1] == packet->tcp->dest
- || dst->jabber_file_transfer_port[1] == packet->tcp->source) {
- NDPI_LOG_INFO(ndpi_struct, "found jabber file transfer\n");
-
- ndpi_int_jabber_add_connection(ndpi_struct, flow,
- NDPI_PROTOCOL_JABBER, NDPI_CONFIDENCE_DPI_SRC_DST_ID);
- }
- }
- return;
- }
-
if (packet->tcp != 0 && packet->payload_packet_len == 0) {
return;
}
-
- /* this part parses a packet and searches for port=. it works asymmetrically. */
- if (flow->detected_protocol_stack[0] == NDPI_PROTOCOL_JABBER) {
- u_int16_t lastlen;
- u_int16_t j_port = 0;
- /* check for google jabber voip connections ... */
- /* need big packet */
- if (packet->payload_packet_len < 100) {
- NDPI_LOG_DBG2(ndpi_struct, "packet too small, return\n");
- return;
- }
- /* need message to or type for file-transfer */
- if (memcmp(packet->payload, "<iq from=\"", 10) == 0 || memcmp(packet->payload, "<iq from=\'", 10) == 0) {
- NDPI_LOG_DBG2(ndpi_struct, "JABBER <iq from=\"\n");
- lastlen = packet->payload_packet_len - 11;
- for (x = 10; x < lastlen; x++) {
- if (packet->payload[x] == 'p') {
- if (memcmp(&packet->payload[x], "port=", 5) == 0) {
- NDPI_LOG_DBG2(ndpi_struct, "port=\n");
- if (src != NULL) {
- src->jabber_stun_or_ft_ts = packet->current_time_ms;
- }
-
- if (dst != NULL) {
- dst->jabber_stun_or_ft_ts = packet->current_time_ms;
- }
- x += 6;
- j_port = ntohs_ndpi_bytestream_to_number(&packet->payload[x], packet->payload_packet_len, &x);
- NDPI_LOG_DBG2(ndpi_struct, "JABBER port : %u\n", ntohs(j_port));
- if (src != NULL) {
- if (src->jabber_file_transfer_port[0] == 0 || src->jabber_file_transfer_port[0] == j_port) {
- NDPI_LOG_DBG2(ndpi_struct, "src->jabber_file_transfer_port[0] = j_port = %u;\n",
- ntohs(j_port));
- src->jabber_file_transfer_port[0] = j_port;
- } else {
- NDPI_LOG_DBG2(ndpi_struct, "src->jabber_file_transfer_port[1] = j_port = %u;\n",
- ntohs(j_port));
- src->jabber_file_transfer_port[1] = j_port;
- }
- }
- if (dst != NULL) {
- if (dst->jabber_file_transfer_port[0] == 0 || dst->jabber_file_transfer_port[0] == j_port) {
- NDPI_LOG_DBG2(ndpi_struct, "dst->jabber_file_transfer_port[0] = j_port = %u;\n",
- ntohs(j_port));
- dst->jabber_file_transfer_port[0] = j_port;
- } else {
- NDPI_LOG_DBG2(ndpi_struct, "dst->jabber_file_transfer_port[1] = j_port = %u;\n",
- ntohs(j_port));
- dst->jabber_file_transfer_port[1] = j_port;
- }
- }
- }
-
-
- }
- }
-
- } else if (memcmp(packet->payload, "<iq to=\"", 8) == 0 || memcmp(packet->payload, "<iq to=\'", 8) == 0
- || memcmp(packet->payload, "<iq type=", 9) == 0) {
- NDPI_LOG_DBG2(ndpi_struct, "JABBER <iq to=\"/type=\"\n");
- lastlen = packet->payload_packet_len - 21;
- for (x = 8; x < lastlen; x++) {
- /* invalid character */
- if (packet->payload[x] < 32 || packet->payload[x] > 127) {
- return;
- }
- if (packet->payload[x] == '@') {
- NDPI_LOG_DBG2(ndpi_struct, "JABBER @\n");
- break;
- }
- }
- if (x >= lastlen) {
- return;
- }
-
- lastlen = packet->payload_packet_len - 10;
- for (; x < lastlen; x++) {
- if (packet->payload[x] == 'p') {
- if (memcmp(&packet->payload[x], "port=", 5) == 0) {
- NDPI_LOG_DBG2(ndpi_struct, "port=\n");
- if (src != NULL) {
- src->jabber_stun_or_ft_ts = packet->current_time_ms;
- }
-
- if (dst != NULL) {
- dst->jabber_stun_or_ft_ts = packet->current_time_ms;
- }
-
- x += 6;
- j_port = ntohs_ndpi_bytestream_to_number(&packet->payload[x], packet->payload_packet_len, &x);
- NDPI_LOG_DBG2(ndpi_struct, "JABBER port : %u\n", ntohs(j_port));
-
- if (src != NULL && src->jabber_voice_stun_used_ports < JABBER_MAX_STUN_PORTS - 1) {
- if (packet->payload[5] == 'o') {
- src->jabber_voice_stun_port[src->jabber_voice_stun_used_ports++]
- = j_port;
- } else {
- if (src->jabber_file_transfer_port[0] == 0
- || src->jabber_file_transfer_port[0] == j_port) {
- NDPI_LOG_DBG2(ndpi_struct, "src->jabber_file_transfer_port[0] = j_port = %u;\n",
- ntohs(j_port));
- src->jabber_file_transfer_port[0] = j_port;
- } else {
- NDPI_LOG_DBG2(ndpi_struct, "src->jabber_file_transfer_port[1] = j_port = %u;\n",
- ntohs(j_port));
- src->jabber_file_transfer_port[1] = j_port;
- }
- }
- }
-
- if (dst != NULL && dst->jabber_voice_stun_used_ports < JABBER_MAX_STUN_PORTS - 1) {
- if (packet->payload[5] == 'o') {
- dst->jabber_voice_stun_port[dst->jabber_voice_stun_used_ports++]
- = j_port;
- } else {
- if (dst->jabber_file_transfer_port[0] == 0
- || dst->jabber_file_transfer_port[0] == j_port) {
- NDPI_LOG_DBG2(ndpi_struct, "dst->jabber_file_transfer_port[0] = j_port = %u;\n",
- ntohs(j_port));
- dst->jabber_file_transfer_port[0] = j_port;
- } else {
- NDPI_LOG_DBG2(ndpi_struct, "dst->jabber_file_transfer_port[1] = j_port = %u;\n",
- ntohs(j_port));
- dst->jabber_file_transfer_port[1] = j_port;
- }
- }
- }
- return;
- }
- }
- }
- }
- return;
- }
-
-
/* search for jabber here */
/* this part is working asymmetrically */
if ((packet->payload_packet_len > 13 && memcmp(packet->payload, "<?xml version=", 14) == 0)