summaryrefslogtreecommitdiffstats
path: root/net/dccp/options.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@mandriva.com>2005-09-09 07:30:07 +0200
committerArnaldo Carvalho de Melo <acme@mandriva.com>2005-09-09 07:30:07 +0200
commit507d37cf269ebbd1b32bcc435fe577e411f73151 (patch)
tree68b797a2f2c8645a86ac1a5f521df6b8873d9338 /net/dccp/options.c
parent[CCID3] Avoid unsigned integer overflows in usecs_div (diff)
downloadlinux-507d37cf269ebbd1b32bcc435fe577e411f73151.tar.xz
linux-507d37cf269ebbd1b32bcc435fe577e411f73151.zip
[CCID] Only call the HC insert_options methods when requested
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Diffstat (limited to 'net/dccp/options.c')
-rw-r--r--net/dccp/options.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/net/dccp/options.c b/net/dccp/options.c
index 382c5894acb2..7ad2f4266ff9 100644
--- a/net/dccp/options.c
+++ b/net/dccp/options.c
@@ -505,13 +505,18 @@ void dccp_insert_options(struct sock *sk, struct sk_buff *skb)
(dp->dccps_hc_rx_ackpkts->dccpap_buf_ackno !=
DCCP_MAX_SEQNO + 1))
dccp_insert_option_ack_vector(sk, skb);
-
if (dp->dccps_timestamp_echo != 0)
dccp_insert_option_timestamp_echo(sk, skb);
}
- ccid_hc_rx_insert_options(dp->dccps_hc_rx_ccid, sk, skb);
- ccid_hc_tx_insert_options(dp->dccps_hc_tx_ccid, sk, skb);
+ if (dp->dccps_hc_rx_insert_options) {
+ ccid_hc_rx_insert_options(dp->dccps_hc_rx_ccid, sk, skb);
+ dp->dccps_hc_rx_insert_options = 0;
+ }
+ if (dp->dccps_hc_tx_insert_options) {
+ ccid_hc_tx_insert_options(dp->dccps_hc_tx_ccid, sk, skb);
+ dp->dccps_hc_tx_insert_options = 0;
+ }
/* XXX: insert other options when appropriate */