diff options
author | Michele Campus <fci1908@gmail.com> | 2015-07-08 22:21:10 +0200 |
---|---|---|
committer | Michele Campus <fci1908@gmail.com> | 2015-07-08 22:21:10 +0200 |
commit | 824c5f82d3384bb50f39f33c0611816bd897fb57 (patch) | |
tree | bfc31b688c82bd67368994f463046b9edc517e6d /src/lib/ndpi_main.c | |
parent | a4b22a612ed84c9107757c5fa8ec3212e9939441 (diff) | |
parent | 5266c726f257a6512ccd8de466f939ee950ade83 (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.c | 165 |
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); |