Mercurial > hg > freeDiameter
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;