diff options
author | Arnaldo Carvalho de Melo <acme@mandriva.com> | 2006-03-20 22:21:44 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-03-20 22:21:44 -0500 |
commit | 91f0ebf7b6d5cb2b6e818d48587566144821babe (patch) | |
tree | 505c66f36bd72014d7eacb7a04ea011bae2e9a3a /net/dccp/ccids/ccid3.h | |
parent | f38c39d6ce8226519455a6dfe91c2ad84f363f6f (diff) |
[DCCP] CCID: Improve CCID infrastructure
1. No need for ->ccid_init nor ->ccid_exit, this is what module_{init,exit}
does and anynways neither ccid2 nor ccid3 were using it.
2. Rename struct ccid to struct ccid_operations and introduce struct ccid
with a pointer to ccid_operations and rigth after it the rx or tx
private state.
3. Remove the pointer to the state of the half connections from struct
dccp_sock, now its derived thru ccid_priv() from the ccid pointer.
Now we also can implement the setsockopt for changing the CCID easily as
no ccid init routines can affect struct dccp_sock in any way that prevents
other CCIDs from working if a CCID switch operation is asked by apps.
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dccp/ccids/ccid3.h')
-rw-r--r-- | net/dccp/ccids/ccid3.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/dccp/ccids/ccid3.h b/net/dccp/ccids/ccid3.h index 0bde4583d091..f18b96d4e5a2 100644 --- a/net/dccp/ccids/ccid3.h +++ b/net/dccp/ccids/ccid3.h | |||
@@ -41,6 +41,7 @@ | |||
41 | #include <linux/time.h> | 41 | #include <linux/time.h> |
42 | #include <linux/types.h> | 42 | #include <linux/types.h> |
43 | #include <linux/tfrc.h> | 43 | #include <linux/tfrc.h> |
44 | #include "../ccid.h" | ||
44 | 45 | ||
45 | #define TFRC_MIN_PACKET_SIZE 16 | 46 | #define TFRC_MIN_PACKET_SIZE 16 |
46 | #define TFRC_STD_PACKET_SIZE 256 | 47 | #define TFRC_STD_PACKET_SIZE 256 |
@@ -135,12 +136,12 @@ struct ccid3_hc_rx_sock { | |||
135 | 136 | ||
136 | static inline struct ccid3_hc_tx_sock *ccid3_hc_tx_sk(const struct sock *sk) | 137 | static inline struct ccid3_hc_tx_sock *ccid3_hc_tx_sk(const struct sock *sk) |
137 | { | 138 | { |
138 | return dccp_sk(sk)->dccps_hc_tx_ccid_private; | 139 | return ccid_priv(dccp_sk(sk)->dccps_hc_tx_ccid); |
139 | } | 140 | } |
140 | 141 | ||
141 | static inline struct ccid3_hc_rx_sock *ccid3_hc_rx_sk(const struct sock *sk) | 142 | static inline struct ccid3_hc_rx_sock *ccid3_hc_rx_sk(const struct sock *sk) |
142 | { | 143 | { |
143 | return dccp_sk(sk)->dccps_hc_rx_ccid_private; | 144 | return ccid_priv(dccp_sk(sk)->dccps_hc_rx_ccid); |
144 | } | 145 | } |
145 | 146 | ||
146 | #endif /* _DCCP_CCID3_H_ */ | 147 | #endif /* _DCCP_CCID3_H_ */ |