diff options
author | Gerrit Renker <gerrit@erg.abdn.ac.uk> | 2006-11-28 16:55:06 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-12-03 00:31:02 -0500 |
commit | 6b57c93dc3aa0115b589cb89ef862d46ab9bd95e (patch) | |
tree | f825b1288d7839ade26225bb0a630540e38ffe41 /net/dccp/ccid.h | |
parent | a79ef76f4d8424324c2f108824a7398571193f43 (diff) |
[DCCP]: Use `unsigned' for packet lengths
This patch implements a suggestion by Ian McDonald and
1) Avoids tests against negative packet lengths by using unsigned int
for packet payload lengths in the CCID send_packet()/packet_sent() routines
2) As a consequence, it removes an now unnecessary test with regard to `len > 0'
in ccid3_hc_tx_packet_sent: that condition is always true, since
* negative packet lengths are avoided
* ccid3_hc_tx_send_packet flags an error whenever the payload length is 0.
As a consequence, ccid3_hc_tx_packet_sent is never called as all errors
returned by ccid_hc_tx_send_packet are caught in dccp_write_xmit
3) Removes the third argument of ccid_hc_tx_send_packet (the `len' parameter),
since it is currently always set to skb->len. The code is updated with regard
to this parameter change.
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Diffstat (limited to 'net/dccp/ccid.h')
-rw-r--r-- | net/dccp/ccid.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/net/dccp/ccid.h b/net/dccp/ccid.h index f7eb6c613414..c7c29514dce8 100644 --- a/net/dccp/ccid.h +++ b/net/dccp/ccid.h | |||
@@ -52,9 +52,9 @@ struct ccid_operations { | |||
52 | unsigned char len, u16 idx, | 52 | unsigned char len, u16 idx, |
53 | unsigned char* value); | 53 | unsigned char* value); |
54 | int (*ccid_hc_tx_send_packet)(struct sock *sk, | 54 | int (*ccid_hc_tx_send_packet)(struct sock *sk, |
55 | struct sk_buff *skb, int len); | 55 | struct sk_buff *skb); |
56 | void (*ccid_hc_tx_packet_sent)(struct sock *sk, int more, | 56 | void (*ccid_hc_tx_packet_sent)(struct sock *sk, |
57 | int len); | 57 | int more, unsigned int len); |
58 | void (*ccid_hc_rx_get_info)(struct sock *sk, | 58 | void (*ccid_hc_rx_get_info)(struct sock *sk, |
59 | struct tcp_info *info); | 59 | struct tcp_info *info); |
60 | void (*ccid_hc_tx_get_info)(struct sock *sk, | 60 | void (*ccid_hc_tx_get_info)(struct sock *sk, |
@@ -94,16 +94,16 @@ extern void ccid_hc_rx_delete(struct ccid *ccid, struct sock *sk); | |||
94 | extern void ccid_hc_tx_delete(struct ccid *ccid, struct sock *sk); | 94 | extern void ccid_hc_tx_delete(struct ccid *ccid, struct sock *sk); |
95 | 95 | ||
96 | static inline int ccid_hc_tx_send_packet(struct ccid *ccid, struct sock *sk, | 96 | static inline int ccid_hc_tx_send_packet(struct ccid *ccid, struct sock *sk, |
97 | struct sk_buff *skb, int len) | 97 | struct sk_buff *skb) |
98 | { | 98 | { |
99 | int rc = 0; | 99 | int rc = 0; |
100 | if (ccid->ccid_ops->ccid_hc_tx_send_packet != NULL) | 100 | if (ccid->ccid_ops->ccid_hc_tx_send_packet != NULL) |
101 | rc = ccid->ccid_ops->ccid_hc_tx_send_packet(sk, skb, len); | 101 | rc = ccid->ccid_ops->ccid_hc_tx_send_packet(sk, skb); |
102 | return rc; | 102 | return rc; |
103 | } | 103 | } |
104 | 104 | ||
105 | static inline void ccid_hc_tx_packet_sent(struct ccid *ccid, struct sock *sk, | 105 | static inline void ccid_hc_tx_packet_sent(struct ccid *ccid, struct sock *sk, |
106 | int more, int len) | 106 | int more, unsigned int len) |
107 | { | 107 | { |
108 | if (ccid->ccid_ops->ccid_hc_tx_packet_sent != NULL) | 108 | if (ccid->ccid_ops->ccid_hc_tx_packet_sent != NULL) |
109 | ccid->ccid_ops->ccid_hc_tx_packet_sent(sk, more, len); | 109 | ccid->ccid_ops->ccid_hc_tx_packet_sent(sk, more, len); |