Prechádzať zdrojové kódy

- Support for dstip and dstport in the parameter parser

Jan Janak 20 rokov pred
rodič
commit
eb91ce7fe1
2 zmenil súbory, kde vykonal 20 pridanie a 0 odobranie
  1. 16 0
      parser/parse_param.c
  2. 4 0
      parser/parse_param.h

+ 16 - 0
parser/parse_param.c

@@ -144,7 +144,21 @@ static inline void parse_uri_class(param_hooks_t* _h, param_t* _p)
 			_h->uri.maddr = _p;
 		}
 		break;
+		
+	case 'd':
+	case 'D':
+		if ((_p->name.len == 5) &&
+		    (!strncasecmp(_p->name.s + 1, "stip", 4))) {
+			_p->type = P_DSTIP;
+			_h->uri.dstip = _p;
+		} else if ((_p->name.len == 7) &&
+			   (!strncasecmp(_p->name.s + 1, "stport", 6))) {
+			_p->type = P_DSTPORT;
+			_h->uri.dstport = _p;
+		}
+		break;
 	}
+
 }
 
 
@@ -475,6 +489,8 @@ static inline void print_param(FILE* _o, param_t* _p)
 	case P_MADDR:     type = "P_MADDR";     break;
 	case P_TTL:       type = "P_TTL";       break;
 	case P_RECEIVED:  type = "P_RECEIVED";  break;
+	case P_DSTIP:     type = "P_DSTIP";     break;
+	case P_DSTPORT:   type = "P_DSTPORT";   break;
 	default:          type = "UNKNOWN";     break;
 	}
 	

+ 4 - 0
parser/parse_param.h

@@ -53,6 +53,8 @@ typedef enum ptype {
 	P_R2,        /* URI: r2 parameter (ser specific) */
 	P_MADDR,     /* URI: maddr parameter */
 	P_TTL,       /* URI: ttl parameter */
+	P_DSTIP,     /* URI: dstip parameter */
+	P_DSTPORT,   /* URi: dstport parameter */
 } ptype_t;
 
 
@@ -98,6 +100,8 @@ struct uri_hooks {
 	struct param* r2;        /* r2 parameter */
 	struct param* maddr;     /* maddr parameter */
 	struct param* ttl;       /* ttl parameter */
+	struct param* dstip;     /* Destination IP */
+	struct param* dstport;   /* Destination port */
 };