diff libfdproto/dictionary_functions.c @ 1136:140450615773

Revert changeset 1122 (ADDRESS_AVP_INCLUDE_PORT) as this will create too much interop issues. The Host-IP-Address AVP is not normally used to discover peer address, but only for validation of the addresses where a packet is received from -- which is quite useless with a connected transport connection, but anyway...
author Sebastien Decugis <sdecugis@freediameter.net>
date Thu, 16 May 2013 14:56:31 +0800
parents d4371b7aa0ff
children 1020da0ea4bc
line wrap: on
line diff
--- a/libfdproto/dictionary_functions.c	Thu May 16 14:54:42 2013 +0800
+++ b/libfdproto/dictionary_functions.c	Thu May 16 14:56:31 2013 +0800
@@ -73,20 +73,11 @@
 				
 				AddressType = 1;/* see http://www.iana.org/assignments/address-family-numbers/ */
 				size = 6;	/* 2 for AddressType + 4 for data */
-				#ifdef ADDRESS_AVP_INCLUDE_PORT
-				if (sin->sin_port != 0)
-					size += 2;
-				#endif /* ADDRESS_AVP_INCLUDE_PORT */
 				
 				CHECK_MALLOC(  buf = malloc(size)  );
 				
 				/* may not work because of alignment: *(uint32_t *)(buf+2) = htonl(sin->sin_addr.s_addr); */
 				memcpy(buf + 2, &sin->sin_addr.s_addr, 4);
-				
-				#ifdef ADDRESS_AVP_INCLUDE_PORT
-				if (sin->sin_port != 0)
-					memcpy(buf + 6, &sin->sin_port, 2);
-				#endif /* ADDRESS_AVP_INCLUDE_PORT */
 			}
 			break;
 				
@@ -97,20 +88,12 @@
 				
 				AddressType = 2;/* see http://www.iana.org/assignments/address-family-numbers/ */
 				size = 18;	/* 2 for AddressType + 16 for data */
-				#ifdef ADDRESS_AVP_INCLUDE_PORT
-				if (sin6->sin6_port != 0)
-					size += 2;
-				#endif /* ADDRESS_AVP_INCLUDE_PORT */
 				
 				CHECK_MALLOC(  buf = malloc(size)  );
 				
 				/* The order is already good here */
 				memcpy(buf + 2, &sin6->sin6_addr.s6_addr, 16);
 				
-				#ifdef ADDRESS_AVP_INCLUDE_PORT
-				if (sin6->sin6_port != 0)
-					memcpy(buf + 18, &sin6->sin6_port, 2);
-				#endif /* ADDRESS_AVP_INCLUDE_PORT */
 			}
 			break;
 				
@@ -143,14 +126,11 @@
 			{
 				sSA4 * sin = (sSA4 *)interpreted;
 				
-				CHECK_PARAMS(  avp_value->os.len >= 6  );
+				CHECK_PARAMS(  avp_value->os.len == 6  );
 				
 				sin->sin_family = AF_INET;
 				/* sin->sin_addr.s_addr = ntohl( * (uint32_t *) buf); -- may not work because of bad alignment */
 				memcpy(&sin->sin_addr.s_addr, buf, 4);
-				
-				if (avp_value->os.len == 8)
-					memcpy(&sin->sin_port, buf + 4, 2);
 			}
 			break;
 				
@@ -158,14 +138,11 @@
 			{
 				sSA6 * sin6 = (sSA6 *)interpreted;
 				
-				CHECK_PARAMS(  avp_value->os.len >= 18  );
+				CHECK_PARAMS(  avp_value->os.len == 18  );
 				
 				sin6->sin6_family = AF_INET6;
 				memcpy(&sin6->sin6_addr.s6_addr, buf, 16);
 				
-				if (avp_value->os.len == 20)
-					memcpy(&sin6->sin6_port, buf + 16, 2);
-				
 			}
 			break;
 				
"Welcome to our mercurial repository"