]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - net/dccp/minisocks.c
Merge branches 'pxa' and 'orion-fixes1'
[mv-sheeva.git] / net / dccp / minisocks.c
index b1d5da61f6afbf29ce7a9a3e13cc83bbd084efa5..33ad48321b08e0dda2e14dba752c0e27f4bf9111 100644 (file)
@@ -117,11 +117,13 @@ struct sock *dccp_create_openreq_child(struct sock *sk,
                struct dccp_sock *newdp = dccp_sk(newsk);
                struct dccp_minisock *newdmsk = dccp_msk(newsk);
 
-               newdp->dccps_role          = DCCP_ROLE_SERVER;
-               newdp->dccps_hc_rx_ackvec  = NULL;
-               newdp->dccps_service_list  = NULL;
-               newdp->dccps_service       = dreq->dreq_service;
-               newicsk->icsk_rto          = DCCP_TIMEOUT_INIT;
+               newdp->dccps_role           = DCCP_ROLE_SERVER;
+               newdp->dccps_hc_rx_ackvec   = NULL;
+               newdp->dccps_service_list   = NULL;
+               newdp->dccps_service        = dreq->dreq_service;
+               newdp->dccps_timestamp_echo = dreq->dreq_timestamp_echo;
+               newdp->dccps_timestamp_time = dreq->dreq_timestamp_time;
+               newicsk->icsk_rto           = DCCP_TIMEOUT_INIT;
 
                if (dccp_feat_clone(sk, newsk))
                        goto out_free;
@@ -214,7 +216,7 @@ struct sock *dccp_check_req(struct sock *sk, struct sk_buff *skb,
                         * counter (backoff, monitored by dccp_response_timer).
                         */
                        req->retrans++;
-                       req->rsk_ops->rtx_syn_ack(sk, req, NULL);
+                       req->rsk_ops->rtx_syn_ack(sk, req);
                }
                /* Network Duplicate, discard packet */
                return NULL;
@@ -303,9 +305,12 @@ EXPORT_SYMBOL_GPL(dccp_reqsk_send_ack);
 
 void dccp_reqsk_init(struct request_sock *req, struct sk_buff *skb)
 {
-       inet_rsk(req)->rmt_port = dccp_hdr(skb)->dccph_sport;
-       inet_rsk(req)->acked    = 0;
-       req->rcv_wnd            = sysctl_dccp_feat_sequence_window;
+       struct dccp_request_sock *dreq = dccp_rsk(req);
+
+       inet_rsk(req)->rmt_port   = dccp_hdr(skb)->dccph_sport;
+       inet_rsk(req)->acked      = 0;
+       req->rcv_wnd              = sysctl_dccp_feat_sequence_window;
+       dreq->dreq_timestamp_echo = 0;
 }
 
 EXPORT_SYMBOL_GPL(dccp_reqsk_init);