Răsfoiți Sursa

- more ipv6 received= & via==us debuging

Andrei Pelinescu-Onciul 23 ani în urmă
părinte
comite
5d71ce1ee6
2 a modificat fișierele cu 20 adăugiri și 4 ștergeri
  1. 9 2
      forward.c
  2. 11 2
      msg_translator.c

+ 9 - 2
forward.c

@@ -195,14 +195,22 @@ int forward_reply(struct sip_msg* msg)
 	
 	to=0;
 	new_buf=0;
-#ifndef BOGDANS_CUTOFF
 	/*check if first via host = us */
 	if (check_via){
 		for (r=0; r<sock_no; r++)
+		{
+			DBG("forward_reply - checking if via==us: %d==%d && "
+					" [%.*s] == [%.*s]\n", 
+					msg->via1->host.len,
+					sock_info[r].name.len,
+					msg->via1->host.len, msg->via1->host.s,
+					sock_info[r].name.len, sock_info[r].name.s
+				);
 			if ( (msg->via1->host.len==sock_info[r].name.len) && 
 					(memcmp(msg->via1->host.s, sock_info[r].name.s, 
 										sock_info[r].name.len)==0) )
 				break;
+		}
 		if (r==sock_no){
 			LOG(L_NOTICE, "ERROR: forward_reply: host in first via!=me :"
 					" %.*s\n", msg->via1->host.len, msg->via1->host.s);
@@ -210,7 +218,6 @@ int forward_reply(struct sip_msg* msg)
 			goto error;
 		}
 	}
-#endif
 	/* quick hack, slower for mutliple modules*/
 	for (mod=modules;mod;mod=mod->next){
 		if ((mod->exports) && (mod->exports->response_f)){

+ 11 - 2
msg_translator.c

@@ -55,10 +55,19 @@ int check_address(struct ip_addr* ip, char *name, int resolver)
 {
 	struct hostent* he;
 	int i;
+	char* s;
 
 	/* maybe we are lucky and name it's an ip */
-	if (strcmp(name, ip_addr2a(ip))==0)
-		return 0;
+	s=ip_addr2a(ip);
+	if (s){
+		DBG("check_address(%s, %s, %d)\n", ip_addr2a(ip), name, resolver);
+		if (strcmp(name, s)==0)
+			return 0;
+	}else{
+		LOG(L_CRIT, "check_address: BUG: could not convert ip address\n");
+		return -1;
+	}
+		
 	if (resolver&DO_DNS){
 		DBG("check_address: doing dns lookup\n");
 		/* try all names ips */