1 | 1 |
===================================================================
|
2 | 2 |
--- condure.orig/Cargo.toml
|
3 | 3 |
+++ condure/Cargo.toml
|
4 | |
@@ -36,7 +36,7 @@ panic = "abort"
|
|
4 |
@@ -45,7 +45,7 @@ name = "condure"
|
5 | 5 |
name = "server"
|
6 | 6 |
harness = false
|
7 | 7 |
[dependencies.arrayvec]
|
|
14 | 14 |
===================================================================
|
15 | 15 |
--- condure.orig/src/connection.rs
|
16 | 16 |
+++ condure/src/connection.rs
|
17 | |
@@ -395,7 +395,7 @@ enum ServerReqState {
|
18 | |
}
|
19 | |
|
20 | |
pub struct ServerReqConnection {
|
21 | |
- id: ArrayString<[u8; 32]>,
|
22 | |
+ id: ArrayString<32>,
|
23 | |
peer_addr: Option<SocketAddr>,
|
24 | |
secure: bool,
|
25 | |
timeout: Duration,
|
26 | |
@@ -985,7 +985,7 @@ enum ServerStreamState {
|
27 | |
}
|
28 | |
|
29 | |
struct ServerStreamData {
|
30 | |
- id: ArrayString<[u8; 32]>,
|
31 | |
+ id: ArrayString<32>,
|
32 | |
peer_addr: Option<SocketAddr>,
|
33 | |
secure: bool,
|
34 | |
client_timeout: Duration,
|
35 | |
@@ -996,9 +996,9 @@ struct ServerStreamData {
|
36 | |
cont: [u8; 32],
|
37 | |
cont_len: usize,
|
38 | |
cont_left: usize,
|
|
17 |
@@ -67,7 +67,7 @@ const WS_ACCEPT_MAX: usize = 28; // base
|
|
18 |
const ZHTTP_SESSION_TIMEOUT: Duration = Duration::from_secs(60);
|
|
19 |
|
|
20 |
pub trait CidProvider {
|
|
21 |
- fn get_new_assigned_cid(&mut self) -> ArrayString<[u8; 32]>;
|
|
22 |
+ fn get_new_assigned_cid(&mut self) -> ArrayString<32>;
|
|
23 |
}
|
|
24 |
|
|
25 |
pub trait Identify {
|
|
26 |
@@ -94,7 +94,7 @@ fn get_host<'a>(headers: &'a [httparse::
|
|
27 |
"localhost"
|
|
28 |
}
|
|
29 |
|
|
30 |
-fn calculate_ws_accept(key: &[u8]) -> Result<ArrayString<[u8; WS_ACCEPT_MAX]>, ()> {
|
|
31 |
+fn calculate_ws_accept(key: &[u8]) -> Result<ArrayString<WS_ACCEPT_MAX>, ()> {
|
|
32 |
let input_len = key.len() + websocket::WS_GUID.len();
|
|
33 |
|
|
34 |
if input_len > WS_HASH_INPUT_MAX {
|
|
35 |
@@ -390,7 +390,7 @@ impl MessageTracker {
|
|
36 |
}
|
|
37 |
|
|
38 |
struct ServerStreamSharedDataInner {
|
39 | 39 |
- to_addr: Option<ArrayVec<[u8; 64]>>,
|
40 | 40 |
+ to_addr: Option<ArrayVec<u8, 64>>,
|
41 | |
websocket: bool,
|
42 | |
- ws_accept: Option<ArrayString<[u8; 28]>>, // base64_encode(sha1_hash) = 28 bytes
|
43 | |
+ ws_accept: Option<ArrayString<28>>, // base64_encode(sha1_hash) = 28 bytes
|
44 | |
in_seq: u32,
|
45 | 41 |
out_seq: u32,
|
46 | |
in_credits: u32,
|
|
42 |
}
|
|
43 |
|
|
44 |
@@ -428,7 +428,7 @@ impl ServerStreamSharedData {
|
|
45 |
s.out_seq = 0;
|
|
46 |
}
|
|
47 |
|
|
48 |
- fn set_to_addr(&self, addr: Option<ArrayVec<[u8; 64]>>) {
|
|
49 |
+ fn set_to_addr(&self, addr: Option<ArrayVec<u8, 64>>) {
|
|
50 |
let s = &mut *self.inner.borrow_mut();
|
|
51 |
|
|
52 |
s.to_addr = addr;
|
|
53 |
@@ -1390,7 +1390,7 @@ struct ZhttpStreamSessionOut<'a> {
|
|
54 |
instance_id: &'a str,
|
|
55 |
id: &'a str,
|
|
56 |
packet_buf: &'a RefCell<Vec<u8>>,
|
|
57 |
- sender_stream: &'a AsyncLocalSender<(ArrayVec<[u8; 64]>, zmq::Message)>,
|
|
58 |
+ sender_stream: &'a AsyncLocalSender<(ArrayVec<u8, 64>, zmq::Message)>,
|
|
59 |
shared: &'a ServerStreamSharedData,
|
|
60 |
}
|
|
61 |
|
|
62 |
@@ -1399,7 +1399,7 @@ impl<'a> ZhttpStreamSessionOut<'a> {
|
|
63 |
instance_id: &'a str,
|
|
64 |
id: &'a str,
|
|
65 |
packet_buf: &'a RefCell<Vec<u8>>,
|
|
66 |
- sender_stream: &'a AsyncLocalSender<(ArrayVec<[u8; 64]>, zmq::Message)>,
|
|
67 |
+ sender_stream: &'a AsyncLocalSender<(ArrayVec<u8, 64>, zmq::Message)>,
|
|
68 |
shared: &'a ServerStreamSharedData,
|
|
69 |
) -> Self {
|
|
70 |
Self {
|
|
71 |
@@ -1862,7 +1862,7 @@ async fn server_req_handler<S: AsyncRead
|
|
72 |
|
|
73 |
async fn server_req_connection_inner<P: CidProvider, S: AsyncRead + AsyncWrite + Identify>(
|
|
74 |
token: CancellationToken,
|
|
75 |
- cid: &mut ArrayString<[u8; 32]>,
|
|
76 |
+ cid: &mut ArrayString<32>,
|
|
77 |
cid_provider: &mut P,
|
|
78 |
mut stream: S,
|
|
79 |
peer_addr: Option<SocketAddr>,
|
|
80 |
@@ -1931,7 +1931,7 @@ async fn server_req_connection_inner<P:
|
|
81 |
|
|
82 |
pub async fn server_req_connection<P: CidProvider, S: AsyncRead + AsyncWrite + Identify>(
|
|
83 |
token: CancellationToken,
|
|
84 |
- mut cid: ArrayString<[u8; 32]>,
|
|
85 |
+ mut cid: ArrayString<32>,
|
|
86 |
cid_provider: &mut P,
|
|
87 |
stream: S,
|
|
88 |
peer_addr: Option<SocketAddr>,
|
|
89 |
@@ -2600,7 +2600,7 @@ async fn server_stream_handler<S, R1, R2
|
|
90 |
tmp_buf: &RefCell<Vec<u8>>,
|
|
91 |
instance_id: &str,
|
|
92 |
zsender: &AsyncLocalSender<zmq::Message>,
|
|
93 |
- zsender_stream: &AsyncLocalSender<(ArrayVec<[u8; 64]>, zmq::Message)>,
|
|
94 |
+ zsender_stream: &AsyncLocalSender<(ArrayVec<u8, 64>, zmq::Message)>,
|
|
95 |
zreceiver: &AsyncLocalReceiver<(arena::Rc<zhttppacket::OwnedResponse>, usize)>,
|
|
96 |
shared: &ServerStreamSharedData,
|
|
97 |
refresh_stream_timeout: &R1,
|
|
98 |
@@ -2673,7 +2673,7 @@ where
|
|
99 |
id, req.method, scheme, host, req.uri
|
|
100 |
);
|
|
101 |
|
|
102 |
- let ws_accept: Option<ArrayString<[u8; WS_ACCEPT_MAX]>> = if websocket {
|
|
103 |
+ let ws_accept: Option<ArrayString<WS_ACCEPT_MAX>> = if websocket {
|
|
104 |
if req.method != "GET" || req.body_size != http1::BodySize::NoBody || ws_key.is_none() {
|
|
105 |
return Err(ServerError::InvalidWebSocketRequest);
|
|
106 |
}
|
|
107 |
@@ -3017,7 +3017,7 @@ where
|
|
108 |
|
|
109 |
async fn server_stream_connection_inner<P: CidProvider, S: AsyncRead + AsyncWrite + Identify>(
|
|
110 |
token: CancellationToken,
|
|
111 |
- cid: &mut ArrayString<[u8; 32]>,
|
|
112 |
+ cid: &mut ArrayString<32>,
|
|
113 |
cid_provider: &mut P,
|
|
114 |
mut stream: S,
|
|
115 |
peer_addr: Option<SocketAddr>,
|
|
116 |
@@ -3030,7 +3030,7 @@ async fn server_stream_connection_inner<
|
|
117 |
stream_timeout: Duration,
|
|
118 |
instance_id: &str,
|
|
119 |
zsender: AsyncLocalSender<zmq::Message>,
|
|
120 |
- zsender_stream: AsyncLocalSender<(ArrayVec<[u8; 64]>, zmq::Message)>,
|
|
121 |
+ zsender_stream: AsyncLocalSender<(ArrayVec<u8, 64>, zmq::Message)>,
|
|
122 |
zreceiver: &AsyncLocalReceiver<(arena::Rc<zhttppacket::OwnedResponse>, usize)>,
|
|
123 |
shared: arena::Rc<ServerStreamSharedData>,
|
|
124 |
) -> Result<(), ServerError> {
|
|
125 |
@@ -3165,7 +3165,7 @@ async fn server_stream_connection_inner<
|
|
126 |
|
|
127 |
pub async fn server_stream_connection<P: CidProvider, S: AsyncRead + AsyncWrite + Identify>(
|
|
128 |
token: CancellationToken,
|
|
129 |
- mut cid: ArrayString<[u8; 32]>,
|
|
130 |
+ mut cid: ArrayString<32>,
|
|
131 |
cid_provider: &mut P,
|
|
132 |
stream: S,
|
|
133 |
peer_addr: Option<SocketAddr>,
|
|
134 |
@@ -3178,7 +3178,7 @@ pub async fn server_stream_connection<P:
|
|
135 |
timeout: Duration,
|
|
136 |
instance_id: &str,
|
|
137 |
zsender: AsyncLocalSender<zmq::Message>,
|
|
138 |
- zsender_stream: AsyncLocalSender<(ArrayVec<[u8; 64]>, zmq::Message)>,
|
|
139 |
+ zsender_stream: AsyncLocalSender<(ArrayVec<u8, 64>, zmq::Message)>,
|
|
140 |
zreceiver: AsyncLocalReceiver<(arena::Rc<zhttppacket::OwnedResponse>, usize)>,
|
|
141 |
shared: arena::Rc<ServerStreamSharedData>,
|
|
142 |
) {
|
|
143 |
@@ -3429,11 +3429,11 @@ mod tests {
|
|
144 |
}
|
|
145 |
|
|
146 |
struct SimpleCidProvider {
|
|
147 |
- cid: ArrayString<[u8; 32]>,
|
|
148 |
+ cid: ArrayString<32>,
|
|
149 |
}
|
|
150 |
|
|
151 |
impl CidProvider for SimpleCidProvider {
|
|
152 |
- fn get_new_assigned_cid(&mut self) -> ArrayString<[u8; 32]> {
|
|
153 |
+ fn get_new_assigned_cid(&mut self) -> ArrayString<32> {
|
|
154 |
self.cid
|
|
155 |
}
|
|
156 |
}
|
|
157 |
@@ -4130,7 +4130,7 @@ mod tests {
|
|
158 |
sock: Rc<RefCell<FakeSock>>,
|
|
159 |
secure: bool,
|
|
160 |
s_from_conn: channel::LocalSender<zmq::Message>,
|
|
161 |
- s_stream_from_conn: channel::LocalSender<(ArrayVec<[u8; 64]>, zmq::Message)>,
|
|
162 |
+ s_stream_from_conn: channel::LocalSender<(ArrayVec<u8, 64>, zmq::Message)>,
|
|
163 |
r_to_conn: channel::LocalReceiver<(arena::Rc<zhttppacket::OwnedResponse>, usize)>,
|
|
164 |
) -> Result<(), ServerError> {
|
|
165 |
let mut cid = ArrayString::from_str("1").unwrap();
|
47 | 166 |
Index: condure/src/server.rs
|
48 | 167 |
===================================================================
|
49 | 168 |
--- condure.orig/src/server.rs
|
50 | 169 |
+++ condure/src/server.rs
|
51 | |
@@ -245,7 +245,7 @@ impl ZhttpSender for zhttpsocket::Client
|
52 | |
|
53 | |
struct ClientStreamHandle {
|
54 | |
inner: zhttpsocket::ClientStreamHandle,
|
55 | |
- out: VecDeque<(ArrayVec<[u8; 64]>, zmq::Message)>,
|
56 | |
+ out: VecDeque<(ArrayVec<u8, 64>, zmq::Message)>,
|
57 | |
send_to_allowed: bool,
|
58 | |
}
|
59 | |
|
60 | |
@@ -346,7 +346,7 @@ impl Stream {
|
61 | |
}
|
62 | |
|
63 | |
struct Connection {
|
|
170 |
@@ -197,7 +197,7 @@ fn async_local_channel<T>(
|
|
171 |
(s, r)
|
|
172 |
}
|
|
173 |
|
|
174 |
-fn gen_id(id: usize, ckey: usize, next_cid: &mut u32) -> ArrayString<[u8; 32]> {
|
|
175 |
+fn gen_id(id: usize, ckey: usize, next_cid: &mut u32) -> ArrayString<32> {
|
|
176 |
let mut buf = [0; 32];
|
|
177 |
let mut c = io::Cursor::new(&mut buf[..]);
|
|
178 |
|
|
179 |
@@ -263,7 +263,7 @@ impl<'a> BatchGroup<'a, '_> {
|
|
180 |
|
|
181 |
struct Batch {
|
|
182 |
nodes: Slab<list::Node<usize>>,
|
|
183 |
- addrs: Vec<(ArrayVec<[u8; 64]>, list::List)>,
|
|
184 |
+ addrs: Vec<(ArrayVec<u8, 64>, list::List)>,
|
|
185 |
addr_index: usize,
|
|
186 |
group_ids: arena::ReusableVec,
|
|
187 |
last_group_ckeys: Vec<usize>,
|
|
188 |
@@ -413,7 +413,7 @@ struct ConnectionDone {
|
|
189 |
}
|
|
190 |
|
|
191 |
struct ConnectionItem {
|
64 | 192 |
- id: ArrayString<[u8; 32]>,
|
65 | 193 |
+ id: ArrayString<32>,
|
66 | |
stream: Stream,
|
67 | |
conn: ServerConnection,
|
68 | |
want: Want,
|
69 | |
@@ -527,7 +527,7 @@ impl Connection {
|
70 | |
}
|
71 | |
|
72 | |
fn process_with_stream<S: Read + Write + WriteVectored + Shutdown>(
|
73 | |
- id: &ArrayString<[u8; 32]>,
|
74 | |
+ id: &ArrayString<32>,
|
75 | |
conn: &mut ServerConnection,
|
76 | |
want: &mut Want,
|
77 | |
stream: &mut S,
|
78 | |
@@ -682,7 +682,7 @@ impl Worker {
|
79 | |
}
|
80 | |
}
|
81 | |
|
82 | |
- fn gen_id(id: usize, ckey: usize, next_cid: &mut u32) -> ArrayString<[u8; 32]> {
|
83 | |
+ fn gen_id(id: usize, ckey: usize, next_cid: &mut u32) -> ArrayString<32> {
|
84 | |
let mut buf = [0; 32];
|
85 | |
let mut c = io::Cursor::new(&mut buf[..]);
|
86 | |
|
87 | |
@@ -817,7 +817,7 @@ impl Worker {
|
88 | |
let ka_batch = (stream_maxconn + (KEEP_ALIVE_BATCHES - 1)) / KEEP_ALIVE_BATCHES;
|
89 | |
|
90 | |
let mut ka_nodes: Slab<list::Node<usize>> = Slab::with_capacity(ka_batch);
|
91 | |
- let mut ka_addrs: Vec<(ArrayVec<[u8; 64]>, list::List)> = Vec::with_capacity(ka_batch);
|
92 | |
+ let mut ka_addrs: Vec<(ArrayVec<u8, 64>, list::List)> = Vec::with_capacity(ka_batch);
|
93 | |
let mut ka_ids_mem: Vec<zhttppacket::Id> = Vec::with_capacity(ka_batch);
|
94 | |
|
95 | |
let mut zwrite_nodes: Slab<list::Node<ZWrite>> = Slab::with_capacity(maxconn + 1);
|
|
194 |
stop: Option<CancellationSender>,
|
|
195 |
zreceiver_sender: Option<AsyncLocalSender<(arena::Rc<zhttppacket::OwnedResponse>, usize)>>,
|
|
196 |
shared: Option<arena::Rc<ServerStreamSharedData>>,
|
|
197 |
@@ -473,7 +473,7 @@ impl Connections {
|
|
198 |
stop: CancellationSender,
|
|
199 |
zreceiver_sender: AsyncLocalSender<(arena::Rc<zhttppacket::OwnedResponse>, usize)>,
|
|
200 |
shared: Option<arena::Rc<ServerStreamSharedData>>,
|
|
201 |
- ) -> Result<(usize, ArrayString<[u8; 32]>), ()> {
|
|
202 |
+ ) -> Result<(usize, ArrayString<32>), ()> {
|
|
203 |
let items = &mut *self.items.borrow_mut();
|
|
204 |
let c = &mut *self.inner.borrow_mut();
|
|
205 |
|
|
206 |
@@ -521,7 +521,7 @@ impl Connections {
|
|
207 |
ci.zreceiver_sender.unwrap().into_inner()
|
|
208 |
}
|
|
209 |
|
|
210 |
- fn regen_id(&self, worker_id: usize, ckey: usize) -> ArrayString<[u8; 32]> {
|
|
211 |
+ fn regen_id(&self, worker_id: usize, ckey: usize) -> ArrayString<32> {
|
|
212 |
let nkey = ckey;
|
|
213 |
|
|
214 |
let items = &mut *self.items.borrow_mut();
|
|
215 |
@@ -659,7 +659,7 @@ impl Connections {
|
|
216 |
&self,
|
|
217 |
from: &str,
|
|
218 |
btype: BatchType,
|
|
219 |
- ) -> Option<(usize, ArrayVec<[u8; 64]>, zmq::Message)> {
|
|
220 |
+ ) -> Option<(usize, ArrayVec<u8, 64>, zmq::Message)> {
|
|
221 |
let items = &mut *self.items.borrow_mut();
|
|
222 |
let nodes = &mut items.nodes;
|
|
223 |
let batch = &mut items.batch;
|
|
224 |
@@ -704,7 +704,7 @@ impl Connections {
|
|
225 |
|
|
226 |
let data = &data[..size];
|
|
227 |
|
|
228 |
- let mut addr = ArrayVec::<[u8; 64]>::new();
|
|
229 |
+ let mut addr = ArrayVec::<u8, 64>::new();
|
|
230 |
if addr.try_extend_from_slice(group.addr()).is_err() {
|
|
231 |
error!("failed to prepare addr");
|
|
232 |
continue;
|
|
233 |
@@ -746,7 +746,7 @@ impl<'a> ConnectionCid<'a> {
|
|
234 |
}
|
|
235 |
|
|
236 |
impl CidProvider for ConnectionCid<'_> {
|
|
237 |
- fn get_new_assigned_cid(&mut self) -> ArrayString<[u8; 32]> {
|
|
238 |
+ fn get_new_assigned_cid(&mut self) -> ArrayString<32> {
|
|
239 |
self.conns.regen_id(self.worker_id, self.ckey)
|
|
240 |
}
|
|
241 |
}
|
|
242 |
@@ -769,7 +769,7 @@ struct ConnectionReqOpts {
|
|
243 |
struct ConnectionStreamOpts {
|
|
244 |
messages_max: usize,
|
|
245 |
sender: channel::LocalSender<zmq::Message>,
|
|
246 |
- sender_stream: channel::LocalSender<(ArrayVec<[u8; 64]>, zmq::Message)>,
|
|
247 |
+ sender_stream: channel::LocalSender<(ArrayVec<u8, 64>, zmq::Message)>,
|
|
248 |
stream_shared_mem: Rc<arena::RcMemory<ServerStreamSharedData>>,
|
|
249 |
}
|
|
250 |
|
|
251 |
@@ -1550,7 +1550,7 @@ impl Worker {
|
|
252 |
done: AsyncLocalSender<zhttpsocket::AsyncClientStreamHandle>,
|
|
253 |
instance_id: Rc<String>,
|
|
254 |
zstream_out_receiver: AsyncLocalReceiver<zmq::Message>,
|
|
255 |
- zstream_out_stream_receiver: AsyncLocalReceiver<(ArrayVec<[u8; 64]>, zmq::Message)>,
|
|
256 |
+ zstream_out_stream_receiver: AsyncLocalReceiver<(ArrayVec<u8, 64>, zmq::Message)>,
|
|
257 |
r_cdone: AsyncLocalReceiver<ConnectionDone>,
|
|
258 |
s_cdone: AsyncLocalSender<ConnectionDone>,
|
|
259 |
stream_handle: zhttpsocket::AsyncClientStreamHandle,
|
|
260 |
@@ -1742,7 +1742,7 @@ impl Worker {
|
|
261 |
done: channel::LocalSender<ConnectionDone>,
|
|
262 |
worker_id: usize,
|
|
263 |
ckey: usize,
|
|
264 |
- cid: ArrayString<[u8; 32]>,
|
|
265 |
+ cid: ArrayString<32>,
|
|
266 |
stream: Stream,
|
|
267 |
peer_addr: SocketAddr,
|
|
268 |
zreceiver: channel::LocalReceiver<(arena::Rc<zhttppacket::OwnedResponse>, usize)>,
|
|
269 |
@@ -1806,7 +1806,7 @@ impl Worker {
|
|
270 |
done: channel::LocalSender<ConnectionDone>,
|
|
271 |
worker_id: usize,
|
|
272 |
ckey: usize,
|
|
273 |
- cid: ArrayString<[u8; 32]>,
|
|
274 |
+ cid: ArrayString<32>,
|
|
275 |
stream: Stream,
|
|
276 |
peer_addr: SocketAddr,
|
|
277 |
zreceiver: channel::LocalReceiver<(arena::Rc<zhttppacket::OwnedResponse>, usize)>,
|
|
278 |
@@ -1879,7 +1879,7 @@ impl Worker {
|
|
279 |
stop: AsyncLocalReceiver<()>,
|
|
280 |
_done: AsyncLocalSender<()>,
|
|
281 |
instance_id: Rc<String>,
|
|
282 |
- sender: channel::LocalSender<(ArrayVec<[u8; 64]>, zmq::Message)>,
|
|
283 |
+ sender: channel::LocalSender<(ArrayVec<u8, 64>, zmq::Message)>,
|
|
284 |
conns: Rc<Connections>,
|
|
285 |
) {
|
|
286 |
debug!("worker {}: task started: keep_alives", id);
|
96 | 287 |
Index: condure/src/tls.rs
|
97 | 288 |
===================================================================
|
98 | 289 |
--- condure.orig/src/tls.rs
|
99 | 290 |
+++ condure/src/tls.rs
|
100 | |
@@ -321,7 +321,7 @@ impl TlsAcceptor {
|
101 | |
|
|
291 |
@@ -337,7 +337,7 @@ impl TlsAcceptor {
|
102 | 292 |
pub struct TlsStream {
|
103 | |
stream: Option<Stream>,
|
|
293 |
stream: Stream<'static>,
|
|
294 |
tcp_stream: Box<TcpStream>,
|
104 | 295 |
- id: ArrayString<[u8; 32]>,
|
105 | 296 |
+ id: ArrayString<32>,
|
106 | 297 |
}
|
|
110 | 301 |
===================================================================
|
111 | 302 |
--- condure.orig/src/zhttpsocket.rs
|
112 | 303 |
+++ condure/src/zhttpsocket.rs
|
113 | |
@@ -281,29 +281,29 @@ struct ReqPipeEnd {
|
|
304 |
@@ -295,7 +295,7 @@ struct ReqPipeEnd {
|
114 | 305 |
struct StreamPipeEnd {
|
115 | |
sender: channel::Sender<arena::Rc<zmq::Message>>,
|
|
306 |
sender: channel::Sender<arena::Arc<zmq::Message>>,
|
116 | 307 |
receiver_any: channel::Receiver<zmq::Message>,
|
117 | 308 |
- receiver_addr: channel::Receiver<(ArrayVec<[u8; 64]>, zmq::Message)>,
|
118 | 309 |
+ receiver_addr: channel::Receiver<(ArrayVec<u8, 64>, zmq::Message)>,
|
|
310 |
}
|
|
311 |
|
|
312 |
struct AsyncReqPipeEnd {
|
|
313 |
@@ -306,28 +306,28 @@ struct AsyncReqPipeEnd {
|
|
314 |
struct AsyncStreamPipeEnd {
|
|
315 |
sender: AsyncSender<arena::Arc<zmq::Message>>,
|
|
316 |
receiver_any: AsyncReceiver<zmq::Message>,
|
|
317 |
- receiver_addr: AsyncReceiver<(ArrayVec<[u8; 64]>, zmq::Message)>,
|
|
318 |
+ receiver_addr: AsyncReceiver<(ArrayVec<u8, 64>, zmq::Message)>,
|
119 | 319 |
}
|
120 | 320 |
|
121 | 321 |
enum ControlRequest {
|
|
131 | 331 |
type ControlResponse = Result<(), String>;
|
132 | 332 |
|
133 | 333 |
struct ReqPipe {
|
134 | |
pe: ReqPipeEnd,
|
|
334 |
pe: AsyncReqPipeEnd,
|
135 | 335 |
- filter: ArrayString<[u8; 8]>,
|
136 | 336 |
+ filter: ArrayString<8>,
|
137 | |
valid: bool,
|
138 | |
readable: bool,
|
|
337 |
valid: Cell<bool>,
|
139 | 338 |
}
|
140 | 339 |
|
141 | 340 |
struct StreamPipe {
|
142 | |
pe: StreamPipeEnd,
|
|
341 |
pe: AsyncStreamPipeEnd,
|
143 | 342 |
- filter: ArrayString<[u8; 8]>,
|
144 | 343 |
+ filter: ArrayString<8>,
|
145 | |
valid: bool,
|
146 | |
readable_any: bool,
|
147 | |
readable_addr: bool,
|
148 | |
@@ -328,7 +328,7 @@ impl ReqHandles {
|
|
344 |
valid: Cell<bool>,
|
|
345 |
}
|
|
346 |
|
|
347 |
@@ -398,7 +398,7 @@ impl ReqHandles {
|
149 | 348 |
self.nodes.len()
|
150 | 349 |
}
|
151 | 350 |
|
152 | |
- fn add<F>(&mut self, pe: ReqPipeEnd, filter: ArrayString<[u8; 8]>, f: F)
|
153 | |
+ fn add<F>(&mut self, pe: ReqPipeEnd, filter: ArrayString<8>, f: F)
|
154 | |
where
|
155 | |
F: Fn(&ReqPipe, usize),
|
156 | |
{
|
157 | |
@@ -494,7 +494,7 @@ impl StreamHandles {
|
|
351 |
- fn add(&mut self, pe: AsyncReqPipeEnd, filter: ArrayString<[u8; 8]>) {
|
|
352 |
+ fn add(&mut self, pe: AsyncReqPipeEnd, filter: ArrayString<8>) {
|
|
353 |
assert!(self.nodes.len() < self.nodes.capacity());
|
|
354 |
|
|
355 |
let key = self.nodes.insert(list::Node::new(ReqPipe {
|
|
356 |
@@ -513,7 +513,7 @@ struct StreamHandles {
|
|
357 |
nodes: Slab<list::Node<StreamPipe>>,
|
|
358 |
list: list::List,
|
|
359 |
recv_any_scratch: RefCell<RecvScratch<zmq::Message>>,
|
|
360 |
- recv_addr_scratch: RefCell<RecvScratch<(ArrayVec<[u8; 64]>, zmq::Message)>>,
|
|
361 |
+ recv_addr_scratch: RefCell<RecvScratch<(ArrayVec<u8, 64>, zmq::Message)>>,
|
|
362 |
need_cleanup: Cell<bool>,
|
|
363 |
}
|
|
364 |
|
|
365 |
@@ -532,7 +532,7 @@ impl StreamHandles {
|
158 | 366 |
self.nodes.len()
|
159 | 367 |
}
|
160 | 368 |
|
161 | |
- fn add<F>(&mut self, pe: StreamPipeEnd, filter: ArrayString<[u8; 8]>, f: F)
|
162 | |
+ fn add<F>(&mut self, pe: StreamPipeEnd, filter: ArrayString<8>, f: F)
|
163 | |
where
|
164 | |
F: Fn(&StreamPipe, usize),
|
165 | |
{
|
166 | |
@@ -612,7 +612,7 @@ impl StreamHandles {
|
167 | |
None
|
168 | |
}
|
169 | |
|
170 | |
- fn recv_addr(&mut self) -> Option<(ArrayVec<[u8; 64]>, zmq::Message)> {
|
171 | |
+ fn recv_addr(&mut self) -> Option<(ArrayVec<u8, 64>, zmq::Message)> {
|
172 | |
if self.cur.is_none() {
|
173 | |
return None;
|
|
369 |
- fn add(&mut self, pe: AsyncStreamPipeEnd, filter: ArrayString<[u8; 8]>) {
|
|
370 |
+ fn add(&mut self, pe: AsyncStreamPipeEnd, filter: ArrayString<8>) {
|
|
371 |
assert!(self.nodes.len() < self.nodes.capacity());
|
|
372 |
|
|
373 |
let key = self.nodes.insert(list::Node::new(StreamPipe {
|
|
374 |
@@ -582,7 +582,7 @@ impl StreamHandles {
|
174 | 375 |
}
|
175 | |
@@ -1420,7 +1420,7 @@ impl ClientReqHandle {
|
|
376 |
}
|
|
377 |
|
|
378 |
- async fn recv_addr(&self) -> (ArrayVec<[u8; 64]>, zmq::Message) {
|
|
379 |
+ async fn recv_addr(&self) -> (ArrayVec<u8, 64>, zmq::Message) {
|
|
380 |
let mut scratch = self.recv_addr_scratch.borrow_mut();
|
|
381 |
|
|
382 |
let (mut tasks, slice_scratch) = scratch.get();
|
|
383 |
@@ -1289,7 +1289,7 @@ impl AsyncClientReqHandle {
|
176 | 384 |
|
177 | 385 |
pub struct ClientStreamHandle {
|
178 | 386 |
sender_any: channel::Sender<zmq::Message>,
|
179 | 387 |
- sender_addr: channel::Sender<(ArrayVec<[u8; 64]>, zmq::Message)>,
|
180 | 388 |
+ sender_addr: channel::Sender<(ArrayVec<u8, 64>, zmq::Message)>,
|
181 | |
receiver: channel::Receiver<arena::Rc<zmq::Message>>,
|
182 | |
}
|
183 | |
|
|
389 |
receiver: channel::Receiver<arena::Arc<zmq::Message>>,
|
|
390 |
}
|
|
391 |
|
|
392 |
@@ -1344,7 +1344,7 @@ impl ClientStreamHandle {
|
|
393 |
|
|
394 |
pub struct AsyncClientStreamHandle {
|
|
395 |
sender_any: AsyncSender<zmq::Message>,
|
|
396 |
- sender_addr: AsyncSender<(ArrayVec<[u8; 64]>, zmq::Message)>,
|
|
397 |
+ sender_addr: AsyncSender<(ArrayVec<u8, 64>, zmq::Message)>,
|
|
398 |
receiver: AsyncReceiver<arena::Arc<zmq::Message>>,
|
|
399 |
}
|
|
400 |
|
|
401 |
@@ -1373,7 +1373,7 @@ impl AsyncClientStreamHandle {
|
|
402 |
|
|
403 |
pub async fn send_to_addr(
|
|
404 |
&self,
|
|
405 |
- addr: ArrayVec<[u8; 64]>,
|
|
406 |
+ addr: ArrayVec<u8, 64>,
|
|
407 |
msg: zmq::Message,
|
|
408 |
) -> Result<(), io::Error> {
|
|
409 |
match self.sender_addr.send((addr, msg)).await {
|