aboutsummaryrefslogtreecommitdiff
path: root/src/lib/ndpi_main.c
diff options
context:
space:
mode:
authorMichele Campus <fci1908@gmail.com>2015-07-08 22:21:10 +0200
committerMichele Campus <fci1908@gmail.com>2015-07-08 22:21:10 +0200
commit824c5f82d3384bb50f39f33c0611816bd897fb57 (patch)
treebfc31b688c82bd67368994f463046b9edc517e6d /src/lib/ndpi_main.c
parenta4b22a612ed84c9107757c5fa8ec3212e9939441 (diff)
parent5266c726f257a6512ccd8de466f939ee950ade83 (diff)
Merge remote-tracking branch 'upstream/dev' into dev
Conflicts: src/include/ndpi_protocols.h src/lib/ndpi_main.c src/lib/protocols/afp.c src/lib/protocols/aimini.c src/lib/protocols/applejuice.c src/lib/protocols/armagetron.c src/lib/protocols/ayiya.c src/lib/protocols/battlefield.c src/lib/protocols/bgp.c src/lib/protocols/bittorrent.c src/lib/protocols/ciscovpn.c src/lib/protocols/citrix.c src/lib/protocols/corba.c src/lib/protocols/crossfire.c src/lib/protocols/dcerpc.c src/lib/protocols/dhcp.c src/lib/protocols/dhcpv6.c src/lib/protocols/directconnect.c src/lib/protocols/directdownloadlink.c src/lib/protocols/dns.c src/lib/protocols/dofus.c src/lib/protocols/dropbox.c src/lib/protocols/eaq.c src/lib/protocols/edonkey.c src/lib/protocols/fasttrack.c src/lib/protocols/fiesta.c src/lib/protocols/filetopia.c src/lib/protocols/florensia.c src/lib/protocols/ftp_control.c src/lib/protocols/ftp_data.c src/lib/protocols/gnutella.c src/lib/protocols/gtp.c src/lib/protocols/guildwars.c src/lib/protocols/h323.c src/lib/protocols/halflife2_and_mods.c src/lib/protocols/http.c src/lib/protocols/http_activesync.c src/lib/protocols/iax.c src/lib/protocols/icecast.c src/lib/protocols/imesh.c src/lib/protocols/ipp.c src/lib/protocols/irc.c src/lib/protocols/jabber.c src/lib/protocols/kakaotalk_voice.c src/lib/protocols/kerberos.c src/lib/protocols/kontiki.c src/lib/protocols/ldap.c src/lib/protocols/lotus_notes.c src/lib/protocols/mail_imap.c src/lib/protocols/mail_pop.c src/lib/protocols/mail_smtp.c src/lib/protocols/maplestory.c src/lib/protocols/mdns.c src/lib/protocols/meebo.c src/lib/protocols/megaco.c src/lib/protocols/mgcp.c src/lib/protocols/mms.c src/lib/protocols/mpegts.c src/lib/protocols/msn.c src/lib/protocols/mssql.c src/lib/protocols/mysql.c src/lib/protocols/netbios.c src/lib/protocols/netflow.c src/lib/protocols/nfs.c src/lib/protocols/noe.c src/lib/protocols/ntp.c src/lib/protocols/openft.c src/lib/protocols/openvpn.c src/lib/protocols/oracle.c src/lib/protocols/oscar.c src/lib/protocols/pando.c src/lib/protocols/pcanywhere.c src/lib/protocols/postgres.c src/lib/protocols/pplive.c src/lib/protocols/ppstream.c src/lib/protocols/pptp.c src/lib/protocols/qq.c src/lib/protocols/quake.c src/lib/protocols/quic.c src/lib/protocols/radius.c src/lib/protocols/rdp.c src/lib/protocols/redis_net.c src/lib/protocols/rsync.c src/lib/protocols/rtcp.c src/lib/protocols/rtmp.c src/lib/protocols/rtp.c src/lib/protocols/rtsp.c src/lib/protocols/sflow.c src/lib/protocols/shoutcast.c src/lib/protocols/sip.c src/lib/protocols/skinny.c src/lib/protocols/skype.c src/lib/protocols/smb.c src/lib/protocols/snmp.c src/lib/protocols/socrates.c src/lib/protocols/sopcast.c src/lib/protocols/soulseek.c src/lib/protocols/spotify.c src/lib/protocols/ssdp.c src/lib/protocols/ssh.c src/lib/protocols/ssl.c src/lib/protocols/stealthnet.c src/lib/protocols/steam.c src/lib/protocols/stun.c src/lib/protocols/syslog.c src/lib/protocols/tds.c src/lib/protocols/teamspeak.c src/lib/protocols/teamviewer.c src/lib/protocols/telegram.c src/lib/protocols/telnet.c src/lib/protocols/tftp.c src/lib/protocols/thunder.c src/lib/protocols/tor.c src/lib/protocols/tvants.c src/lib/protocols/tvuplayer.c src/lib/protocols/twitter.c src/lib/protocols/usenet.c src/lib/protocols/veohtv.c src/lib/protocols/vhua.c src/lib/protocols/viber.c src/lib/protocols/vmware.c src/lib/protocols/vnc.c src/lib/protocols/warcraft3.c src/lib/protocols/whoisdas.c src/lib/protocols/winmx.c src/lib/protocols/world_of_kung_fu.c src/lib/protocols/world_of_warcraft.c src/lib/protocols/xbox.c src/lib/protocols/xdmcp.c src/lib/protocols/yahoo.c src/lib/protocols/zattoo.c src/lib/protocols/zeromq.c
Diffstat (limited to 'src/lib/ndpi_main.c')
-rw-r--r--src/lib/ndpi_main.c165
1 files changed, 13 insertions, 152 deletions
diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c
index 13467a52d..b4fb14e22 100644
--- a/src/lib/ndpi_main.c
+++ b/src/lib/ndpi_main.c
@@ -2147,17 +2147,25 @@ void ndpi_set_bitmask_protocol_detection( char * label,
Compare specify protocol bitmask with main detection bitmask
*/
if(NDPI_COMPARE_PROTOCOL_TO_BITMASK(*detection_bitmask, ndpi_protocol_id) != 0) {
- // #ifdef DEBUG
+#ifdef DEBUG
NDPI_LOG(0, ndpi_struct, NDPI_LOG_DEBUG,"[NDPI] ndpi_set_bitmask_protocol_detection: %s : [callback_buffer] idx= %u, [proto_defaults] protocol_id=%u\n", label, idx, ndpi_protocol_id);
- // #endif
+#endif
+
+ if(ndpi_struct->proto_defaults[ndpi_protocol_id].protoIdx != 0)
+ printf("[NDPI] Internal error: protocol %s/%u has been already registered\n", label, ndpi_protocol_id);
+ else {
+#ifdef DEBUG
+ printf("[NDPI] Adding %s with protocol id %d\n", label, ndpi_protocol_id);
+#endif
+ }
+
/*
Set funcition and index protocol within proto_default strcuture for port protocol detection
and callback_buffer function for DPI protocol detection
*/
ndpi_struct->proto_defaults[ndpi_protocol_id].protoIdx = idx;
+ ndpi_struct->proto_defaults[ndpi_protocol_id].func = ndpi_struct->callback_buffer[idx].func = func;
- ndpi_struct->proto_defaults[ndpi_protocol_id].func =
- ndpi_struct->callback_buffer[idx].func = func;
/*
Set ndpi_selection_bitmask for protocol
*/
@@ -2190,158 +2198,11 @@ void ndpi_set_protocol_detection_bitmask2(struct ndpi_detection_module_struct *n
ndpi_struct->callback_buffer_size = 0;
/* HTTP */
- /* init_http_dissector(ndpi_struct, &a, detection_bitmask); */
-#ifdef NDPI_PROTOCOL_HTTP
- ndpi_set_bitmask_protocol_detection("HTTP",ndpi_struct, detection_bitmask, a++,
- NDPI_PROTOCOL_HTTP,
- ndpi_search_http_tcp,
- NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_TCP_WITH_PAYLOAD,
- SAVE_DETECTION_BITMASK_AS_UNKNOWN,
- ADD_TO_DETECTION_BITMASK);
-
- ndpi_set_bitmask_protocol_detection("HTTP_PROXY", ndpi_struct, detection_bitmask, a++,
- NDPI_PROTOCOL_HTTP_PROXY,
- ndpi_search_http_tcp,
- NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_TCP_WITH_PAYLOAD,
- SAVE_DETECTION_BITMASK_AS_UNKNOWN,
- ADD_TO_DETECTION_BITMASK);
-
-#ifdef NDPI_CONTENT_MPEG
- ndpi_set_bitmask_protocol_detection("MPEG", ndpi_struct, detection_bitmask, a++,
- NDPI_CONTENT_MPEG,
- ndpi_search_http_tcp,
- NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_TCP_WITH_PAYLOAD,
- NO_SAVE_DETECTION_BITMASK_AS_UNKNOWN,
- ADD_TO_DETECTION_BITMASK);
-#endif
-#ifdef NDPI_CONTENT_FLASH
- ndpi_set_bitmask_protocol_detection("FLASH", ndpi_struct, detection_bitmask, a++,
- NDPI_CONTENT_FLASH,
- ndpi_search_http_tcp,
- NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_TCP_WITH_PAYLOAD,
- NO_SAVE_DETECTION_BITMASK_AS_UNKNOWN,
- ADD_TO_DETECTION_BITMASK);
-#endif
-#ifdef NDPI_CONTENT_QUICKTIME
- ndpi_set_bitmask_protocol_detection("QUICKTIME", ndpi_struct, detection_bitmask, a++,
- NDPI_CONTENT_QUICKTIME,
- ndpi_search_http_tcp,
- NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_TCP_WITH_PAYLOAD,
- NO_SAVE_DETECTION_BITMASK_AS_UNKNOWN,
- ADD_TO_DETECTION_BITMASK);
-#endif
-#ifdef NDPI_CONTENT_REALMEDIA
- ndpi_set_bitmask_protocol_detection("REALMEDIA", ndpi_struct, detection_bitmask, a++,
- NDPI_CONTENT_REALMEDIA,
- ndpi_search_http_tcp,
- NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_TCP_WITH_PAYLOAD,
- NO_SAVE_DETECTION_BITMASK_AS_UNKNOWN,
- ADD_TO_DETECTION_BITMASK);
-#endif
-#ifdef NDPI_CONTENT_WINDOWSMEDIA
- ndpi_set_bitmask_protocol_detection("WINDOWSMEDIA", ndpi_struct, detection_bitmask, a++,
- NDPI_CONTENT_WINDOWSMEDIA,
- ndpi_search_http_tcp,
- NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_TCP_WITH_PAYLOAD,
- NO_SAVE_DETECTION_BITMASK_AS_UNKNOWN,
- ADD_TO_DETECTION_BITMASK);
-#endif
-#ifdef NDPI_CONTENT_MMS
- ndpi_set_bitmask_protocol_detection("MMS", ndpi_struct, detection_bitmask, a++,
- NDPI_CONTENT_MMS,
- ndpi_search_http_tcp,
- NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_TCP_WITH_PAYLOAD,
- NO_SAVE_DETECTION_BITMASK_AS_UNKNOWN,
- ADD_TO_DETECTION_BITMASK);
-#endif
-#ifdef NDPI_PROTOCOL_XBOX
- ndpi_set_bitmask_protocol_detection("XBOX", ndpi_struct, detection_bitmask, a++,
- NDPI_PROTOCOL_XBOX,
- ndpi_search_http_tcp,
- NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_TCP_WITH_PAYLOAD,
- NO_SAVE_DETECTION_BITMASK_AS_UNKNOWN,
- ADD_TO_DETECTION_BITMASK);
-#endif
-#ifdef NDPI_PROTOCOL_WINDOWS_UPDATE
- ndpi_set_bitmask_protocol_detection("WINDOWS_UPDATE", ndpi_struct, detection_bitmask, a++,
- NDPI_PROTOCOL_WINDOWS_UPDATE,
- ndpi_search_http_tcp,
- NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_TCP_WITH_PAYLOAD,
- NO_SAVE_DETECTION_BITMASK_AS_UNKNOWN,
- ADD_TO_DETECTION_BITMASK);
-#endif
-#ifdef NDPI_PROTOCOL_QQ
- ndpi_set_bitmask_protocol_detection("QQ", ndpi_struct, detection_bitmask, a++,
- NDPI_PROTOCOL_QQ,
- ndpi_search_http_tcp,
- NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_TCP_WITH_PAYLOAD,
- NO_SAVE_DETECTION_BITMASK_AS_UNKNOWN,
- ADD_TO_DETECTION_BITMASK);
-#endif
-#ifdef NDPI_CONTENT_AVI
- ndpi_set_bitmask_protocol_detection("AVI", ndpi_struct, detection_bitmask, a++,
- NDPI_CONTENT_AVI,
- ndpi_search_http_tcp,
- NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_TCP_WITH_PAYLOAD,
- NO_SAVE_DETECTION_BITMASK_AS_UNKNOWN,
- ADD_TO_DETECTION_BITMASK);
-#endif
-#ifdef NDPI_CONTENT_OGG
- ndpi_set_bitmask_protocol_detection("OGG", ndpi_struct, detection_bitmask, a++,
- NDPI_CONTENT_OGG,
- ndpi_search_http_tcp,
- NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_TCP_WITH_PAYLOAD,
- NO_SAVE_DETECTION_BITMASK_AS_UNKNOWN,
- ADD_TO_DETECTION_BITMASK);
-#endif
-#ifdef NDPI_PROTOCOL_MOVE
- ndpi_set_bitmask_protocol_detection("MOVE", ndpi_struct, detection_bitmask, a++,
- NDPI_PROTOCOL_MOVE,
- ndpi_search_http_tcp,
- NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_TCP_WITH_PAYLOAD,
- NO_SAVE_DETECTION_BITMASK_AS_UNKNOWN,
- ADD_TO_DETECTION_BITMASK);
-#endif
-
+ init_http_dissector(ndpi_struct, &a, detection_bitmask);
/* SKYPE */
init_skype_dissector(ndpi_struct, &a, detection_bitmask);
- /* Update excluded protocol bitmask */
- NDPI_BITMASK_SET(ndpi_struct->callback_buffer[a].excluded_protocol_bitmask,
- ndpi_struct->callback_buffer[a].detection_bitmask);
-
- /*Delete protocol from exluded protocol bitmask*/
- NDPI_DEL_PROTOCOL_FROM_BITMASK(ndpi_struct->callback_buffer[a].excluded_protocol_bitmask,
- NDPI_PROTOCOL_UNKNOWN);
-
- NDPI_DEL_PROTOCOL_FROM_BITMASK(ndpi_struct->callback_buffer[a].excluded_protocol_bitmask,
- NDPI_PROTOCOL_QQ);
-
-#ifdef NDPI_CONTENT_FLASH
- NDPI_DEL_PROTOCOL_FROM_BITMASK(ndpi_struct->callback_buffer[a].excluded_protocol_bitmask,
- NDPI_CONTENT_FLASH);
-#endif
-
- NDPI_DEL_PROTOCOL_FROM_BITMASK(ndpi_struct->callback_buffer[a].excluded_protocol_bitmask,
- NDPI_CONTENT_MMS);
- /* #ifdef NDPI_PROTOCOL_RTSP */
- /* NDPI_DEL_PROTOCOL_FROM_BITMASK(ndpi_struct->callback_buffer[a].excluded_protocol_bitmask, */
- /* NDPI_PROTOCOL_RTSP); */
- /* #endif */
- NDPI_DEL_PROTOCOL_FROM_BITMASK(ndpi_struct->callback_buffer[a].excluded_protocol_bitmask,
- NDPI_PROTOCOL_XBOX);
-
- NDPI_BITMASK_SET(ndpi_struct->generic_http_packet_bitmask,
- ndpi_struct->callback_buffer[a].detection_bitmask);
-
- NDPI_DEL_PROTOCOL_FROM_BITMASK(ndpi_struct->generic_http_packet_bitmask, NDPI_PROTOCOL_UNKNOWN);
-
- /* Update callback_buffer index */
- a++;
-
-#endif
-
/* SSL */
init_ssl_dissector(ndpi_struct, &a, detection_bitmask);