aboutsummaryrefslogtreecommitdiff
path: root/src/lib/protocols/skype.c
diff options
context:
space:
mode:
authorRenan de Souza <renan.souza@setinet.com.br>2019-10-29 14:59:18 -0300
committerRenan de Souza <renan.souza@setinet.com.br>2019-10-29 14:59:18 -0300
commitd619ba08572d1404970c04a0e65a39b75a69c78e (patch)
tree13af928b2399a0692383fdb3a7417a7b41cf9274 /src/lib/protocols/skype.c
parentfbea243e563abe0799307afa939514af56e1bff0 (diff)
parentd2f04f5bdfe986082ca5e5f479a99e4c24a5a898 (diff)
Merge remote-tracking branch 'upstream/dev' into dev
Diffstat (limited to 'src/lib/protocols/skype.c')
-rw-r--r--src/lib/protocols/skype.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/lib/protocols/skype.c b/src/lib/protocols/skype.c
index 8ada5d997..e758fd5b8 100644
--- a/src/lib/protocols/skype.c
+++ b/src/lib/protocols/skype.c
@@ -32,11 +32,17 @@ static void ndpi_check_skype(struct ndpi_detection_module_struct *ndpi_struct, s
// const u_int8_t *packet_payload = packet->payload;
u_int32_t payload_len = packet->payload_packet_len;
- if(flow->host_server_name[0] != '\0')
+ /* No need to do ntohl() with 0xFFFFFFFF */
+ if(packet->iph && (packet->iph->daddr == 0xFFFFFFFF /* 255.255.255.255 */)) {
+ NDPI_EXCLUDE_PROTO(ndpi_struct, flow);
return;
+ }
+ if(flow->host_server_name[0] != '\0')
+ return;
+
// UDP check
- if(packet->udp != NULL) {
+ if(packet->udp != NULL) {
flow->l4.udp.skype_packet_id++;
if(flow->l4.udp.skype_packet_id < 5) {
@@ -52,6 +58,7 @@ static void ndpi_check_skype(struct ndpi_detection_module_struct *ndpi_struct, s
if(((payload_len == 3) && ((packet->payload[2] & 0x0F)== 0x0d)) ||
((payload_len >= 16)
&& (packet->payload[0] != 0x30) /* Avoid invalid SNMP detection */
+ && (packet->payload[0] != 0x0) /* Avoid invalid CAPWAP detection */
&& (packet->payload[2] == 0x02))) {
if(is_port(sport, dport, 8801))