Changeset 4600
- Timestamp:
- 11/07/08 04:38:56 (2 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/charon/plugins/kernel_pfkey/kernel_pfkey_ipsec.c
r4599 r4600 835 835 { 836 836 pfkey_msg_t response; 837 sockaddr_t *local_addr, *remote_addr;838 837 traffic_selector_t *src_ts, *dst_ts; 839 838 policy_dir_t dir; 840 u_int32_t local_len,reqid = 0;841 host_t *local , *remote;839 u_int32_t reqid = 0; 840 host_t *local = NULL, *remote = NULL; 842 841 job_t *job; 843 842 … … 851 850 src_ts = sadb_address2ts(response.src); 852 851 dst_ts = sadb_address2ts(response.dst); 853 local_addr = (sockaddr_t*)&response.x_kmaddress[1];854 local = host_create_from_sockaddr(local_addr);855 local_len = (local_addr->sa_family == AF_INET6)?856 sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in);857 remote_addr = (sockaddr_t*)((u_int8_t*)local_addr + local_len);858 remote = host_create_from_sockaddr(remote_addr);859 852 dir = kernel2dir(response.x_policy->sadb_x_policy_dir); 860 853 DBG2(DBG_KNL, " policy %R === %R %N, id %u", src_ts, dst_ts, 861 854 policy_dir_names, dir, response.x_policy->sadb_x_policy_id); 862 DBG2(DBG_KNL, " kmaddress: %H...%H", local, remote); 855 856 /* SADB_X_EXT_KMADDRESS is not present in unpatched kernels < 2.6.28 */ 857 if (response.x_kmaddress) 858 { 859 sockaddr_t *local_addr, *remote_addr; 860 u_int32_t local_len; 861 862 local_addr = (sockaddr_t*)&response.x_kmaddress[1]; 863 local = host_create_from_sockaddr(local_addr); 864 local_len = (local_addr->sa_family == AF_INET6)? 865 sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in); 866 remote_addr = (sockaddr_t*)((u_int8_t*)local_addr + local_len); 867 remote = host_create_from_sockaddr(remote_addr); 868 DBG2(DBG_KNL, " kmaddress: %H...%H", local, remote); 869 } 863 870 864 871 if (src_ts && dst_ts)
