package matcher import ( csm "git.loafle.net/commons/service_matcher-go" "git.loafle.net/commons/service_matcher-go/activedirectory" "git.loafle.net/commons/service_matcher-go/cassandra" "git.loafle.net/commons/service_matcher-go/dns" "git.loafle.net/commons/service_matcher-go/ftp" "git.loafle.net/commons/service_matcher-go/http" "git.loafle.net/commons/service_matcher-go/imap" "git.loafle.net/commons/service_matcher-go/ldap" "git.loafle.net/commons/service_matcher-go/mongodb" "git.loafle.net/commons/service_matcher-go/mysql" "git.loafle.net/commons/service_matcher-go/netbios" "git.loafle.net/commons/service_matcher-go/oracle" "git.loafle.net/commons/service_matcher-go/pop" "git.loafle.net/commons/service_matcher-go/postgresql" "git.loafle.net/commons/service_matcher-go/redis" redis_protected "git.loafle.net/commons/service_matcher-go/redis/protected" "git.loafle.net/commons/service_matcher-go/rmi" "git.loafle.net/commons/service_matcher-go/smb" "git.loafle.net/commons/service_matcher-go/smtp" snmp_v2 "git.loafle.net/commons/service_matcher-go/snmp/v2" snmp_v3 "git.loafle.net/commons/service_matcher-go/snmp/v3" "git.loafle.net/commons/service_matcher-go/sqlserver" "git.loafle.net/commons/service_matcher-go/ssh" "git.loafle.net/commons/service_matcher-go/telnet" "git.loafle.net/commons/service_matcher-go/wmi" ) var ( AllMatchers []csm.Matcher TCPMatchers []csm.Matcher UDPMatchers []csm.UDPMatcher TCPPrePacketMatchers []csm.Matcher TCPNotPrePacketMatchers []csm.Matcher ) func init() { //TCP addTCPMatcher(smtp.NewMatcher()) addTCPMatcher(ldap.NewMatcher()) addTCPMatcher(activedirectory.NewMatcher()) addTCPMatcher(mongodb.NewMatcher()) addTCPMatcher(mysql.NewMatcher()) addTCPMatcher(sqlserver.NewMatcher()) addTCPMatcher(redis.NewMatcher()) addTCPMatcher(redis_protected.NewMatcher()) addTCPMatcher(netbios.NewMatcher()) addTCPMatcher(smb.NewMatcher()) addTCPMatcher(cassandra.NewMatcher()) addTCPMatcher(imap.NewMatcher()) addTCPMatcher(oracle.NewMatcher()) addTCPMatcher(postgresql.NewMatcher()) addTCPMatcher(pop.NewMatcher()) addTCPMatcher(wmi.NewMatcher()) addTCPMatcher(ftp.NewMatcher()) addTCPMatcher(http.NewMatcher()) addTCPMatcher(rmi.NewMatcher()) addTCPMatcher(ssh.NewMatcher()) addTCPMatcher(telnet.NewMatcher()) // UDP addUDPMatcher(dns.NewMatcher()) addUDPMatcher(snmp_v2.NewMatcher()) addUDPMatcher(snmp_v3.NewMatcher()) } func addTCPMatcher(m csm.Matcher) { AllMatchers = append(AllMatchers, m) TCPMatchers = append(TCPMatchers, m) if m.IsPrePacket() { TCPPrePacketMatchers = append(TCPPrePacketMatchers, m) } else { TCPNotPrePacketMatchers = append(TCPNotPrePacketMatchers, m) } } func addUDPMatcher(m csm.UDPMatcher) { AllMatchers = append(AllMatchers, m) UDPMatchers = append(UDPMatchers, m) } func GetTCPMatchers(isPrePacket bool) []csm.Matcher { if isPrePacket { return TCPPrePacketMatchers } return TCPNotPrePacketMatchers } func GetUDPMatchers() []csm.UDPMatcher { return UDPMatchers } func GetMatcherByKey(key string) csm.Matcher { for _, m := range AllMatchers { if m.Key() == key { return m } } return nil }