code: func (r *route) Match(m *Message) bool {
  	if m.ProtocolOpName() != r.operation {
  		return false
  	}
  
  	switch v := m.ProtocolOp().(type) {
  	case ldap.BindRequest:
  		if r.uAuthChoice == true {
  			if strings.ToLower(v.AuthenticationChoice()) != r.sAuthChoice {
  				return false
  			}
  		}
  		return true
  
  	case ldap.ExtendedRequest:
  		if string(v.RequestName()) != r.exoName {
  			return false
  		}
  		return true
  
  	case ldap.SearchRequest:
  		if r.uBasedn == true {
  			if strings.ToLower(string(v.BaseObject())) != r.sBasedn {
  				return false
  			}
  		}
  
  		if r.uFilter == true {
  			if strings.ToLower(v.FilterString()) != r.sFilter {
  				return false
  			}
  		}
  
  		if r.uScope == true {
  			if int(v.Scope()) != r.sScope {
  				return false
  			}
  		}
  		return true
  	}
  	return true
  }
docs: // Match return true when the *Message matches the route
  // conditions