|
@@ -106,6 +106,10 @@ int inet_sk_diag_fill(struct sock *sk, struct inet_connection_sock *icsk,
|
|
|
|
|
|
r->id.idiag_sport = inet->inet_sport;
|
|
|
r->id.idiag_dport = inet->inet_dport;
|
|
|
+
|
|
|
+ memset(&r->id.idiag_src, 0, sizeof(r->id.idiag_src));
|
|
|
+ memset(&r->id.idiag_dst, 0, sizeof(r->id.idiag_dst));
|
|
|
+
|
|
|
r->id.idiag_src[0] = inet->inet_rcv_saddr;
|
|
|
r->id.idiag_dst[0] = inet->inet_daddr;
|
|
|
|
|
@@ -240,12 +244,19 @@ static int inet_twsk_diag_fill(struct inet_timewait_sock *tw,
|
|
|
|
|
|
r->idiag_family = tw->tw_family;
|
|
|
r->idiag_retrans = 0;
|
|
|
+
|
|
|
r->id.idiag_if = tw->tw_bound_dev_if;
|
|
|
sock_diag_save_cookie(tw, r->id.idiag_cookie);
|
|
|
+
|
|
|
r->id.idiag_sport = tw->tw_sport;
|
|
|
r->id.idiag_dport = tw->tw_dport;
|
|
|
+
|
|
|
+ memset(&r->id.idiag_src, 0, sizeof(r->id.idiag_src));
|
|
|
+ memset(&r->id.idiag_dst, 0, sizeof(r->id.idiag_dst));
|
|
|
+
|
|
|
r->id.idiag_src[0] = tw->tw_rcv_saddr;
|
|
|
r->id.idiag_dst[0] = tw->tw_daddr;
|
|
|
+
|
|
|
r->idiag_state = tw->tw_substate;
|
|
|
r->idiag_timer = 3;
|
|
|
r->idiag_expires = jiffies_to_msecs(tmo);
|
|
@@ -726,8 +737,13 @@ static int inet_diag_fill_req(struct sk_buff *skb, struct sock *sk,
|
|
|
|
|
|
r->id.idiag_sport = inet->inet_sport;
|
|
|
r->id.idiag_dport = ireq->ir_rmt_port;
|
|
|
+
|
|
|
+ memset(&r->id.idiag_src, 0, sizeof(r->id.idiag_src));
|
|
|
+ memset(&r->id.idiag_dst, 0, sizeof(r->id.idiag_dst));
|
|
|
+
|
|
|
r->id.idiag_src[0] = ireq->ir_loc_addr;
|
|
|
r->id.idiag_dst[0] = ireq->ir_rmt_addr;
|
|
|
+
|
|
|
r->idiag_expires = jiffies_to_msecs(tmo);
|
|
|
r->idiag_rqueue = 0;
|
|
|
r->idiag_wqueue = 0;
|