Skip to content

Commit 8fa025c

Browse files
committed
fix(io,net): use optional address
1 parent a79b519 commit 8fa025c

3 files changed

Lines changed: 46 additions & 42 deletions

File tree

compio-io/src/socket.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ pub trait AsyncRecvMsg {
2020
buffer: T,
2121
control: C,
2222
flags: i32,
23-
) -> BufResult<(usize, usize, Self::AddrType), (T, C)>;
23+
) -> BufResult<(usize, usize, Option<Self::AddrType>), (T, C)>;
2424

2525
/// Receive data and source address with ancillary data into vectored
2626
/// buffer.
@@ -29,7 +29,7 @@ pub trait AsyncRecvMsg {
2929
buffer: T,
3030
control: C,
3131
flags: i32,
32-
) -> BufResult<(usize, usize, Self::AddrType), (T, C)>;
32+
) -> BufResult<(usize, usize, Option<Self::AddrType>), (T, C)>;
3333
}
3434

3535
/// # AsyncSendMsg
@@ -45,7 +45,7 @@ pub trait AsyncSendMsg {
4545
&mut self,
4646
buffer: T,
4747
control: C,
48-
addr: &Self::AddrType,
48+
addr: Option<&Self::AddrType>,
4949
flags: i32,
5050
) -> BufResult<usize, (T, C)>;
5151

@@ -55,7 +55,7 @@ pub trait AsyncSendMsg {
5555
&mut self,
5656
buffer: T,
5757
control: C,
58-
addr: &Self::AddrType,
58+
addr: Option<&Self::AddrType>,
5959
flags: i32,
6060
) -> BufResult<usize, (T, C)>;
6161
}

compio-net/src/tcp.rs

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -385,15 +385,15 @@ impl AsyncReadManaged for &TcpStream {
385385
}
386386

387387
impl AsyncRecvMsg for TcpStream {
388-
type AddrType = SocketAddr;
388+
type AddrType = ();
389389

390390
#[inline]
391391
async fn recv_msg<T: IoBufMut, C: IoBufMut>(
392392
&mut self,
393393
buffer: T,
394394
control: C,
395395
flags: i32,
396-
) -> BufResult<(usize, usize, SocketAddr), (T, C)> {
396+
) -> BufResult<(usize, usize, Option<()>), (T, C)> {
397397
(&*self).recv_msg(buffer, control, flags).await
398398
}
399399

@@ -403,25 +403,25 @@ impl AsyncRecvMsg for TcpStream {
403403
buffer: T,
404404
control: C,
405405
flags: i32,
406-
) -> BufResult<(usize, usize, SocketAddr), (T, C)> {
406+
) -> BufResult<(usize, usize, Option<()>), (T, C)> {
407407
(&*self).recv_msg_vectored(buffer, control, flags).await
408408
}
409409
}
410410

411411
impl AsyncRecvMsg for &TcpStream {
412-
type AddrType = SocketAddr;
412+
type AddrType = ();
413413

414414
#[inline]
415415
async fn recv_msg<T: IoBufMut, C: IoBufMut>(
416416
&mut self,
417417
buffer: T,
418418
control: C,
419419
flags: i32,
420-
) -> BufResult<(usize, usize, SocketAddr), (T, C)> {
420+
) -> BufResult<(usize, usize, Option<()>), (T, C)> {
421421
self.inner
422422
.recv_msg(buffer, control, flags)
423423
.await
424-
.map_res(|(res, len, addr)| (res, len, addr.as_socket().expect("IP socket address")))
424+
.map_res(|(res, len, _addr)| (res, len, None))
425425
}
426426

427427
#[inline]
@@ -430,11 +430,11 @@ impl AsyncRecvMsg for &TcpStream {
430430
buffer: T,
431431
control: C,
432432
flags: i32,
433-
) -> BufResult<(usize, usize, SocketAddr), (T, C)> {
433+
) -> BufResult<(usize, usize, Option<()>), (T, C)> {
434434
self.inner
435435
.recv_msg_vectored(buffer, control, flags)
436436
.await
437-
.map_res(|(res, len, addr)| (res, len, addr.as_socket().expect("IP socket address")))
437+
.map_res(|(res, len, _addr)| (res, len, None))
438438
}
439439
}
440440

@@ -483,59 +483,57 @@ impl AsyncWrite for &TcpStream {
483483
}
484484

485485
impl AsyncSendMsg for TcpStream {
486-
type AddrType = SocketAddr;
486+
type AddrType = ();
487487

488488
#[inline]
489489
async fn send_msg<T: IoBuf, C: IoBuf>(
490490
&mut self,
491491
buffer: T,
492492
control: C,
493-
addr: &SocketAddr,
493+
_addr: Option<&()>,
494494
flags: i32,
495495
) -> BufResult<usize, (T, C)> {
496-
(&*self).send_msg(buffer, control, addr, flags).await
496+
(&*self).send_msg(buffer, control, None, flags).await
497497
}
498498

499499
#[inline]
500500
async fn send_msg_vectored<T: IoVectoredBuf, C: IoBuf>(
501501
&mut self,
502502
buffer: T,
503503
control: C,
504-
addr: &SocketAddr,
504+
_addr: Option<&()>,
505505
flags: i32,
506506
) -> BufResult<usize, (T, C)> {
507507
(&*self)
508-
.send_msg_vectored(buffer, control, addr, flags)
508+
.send_msg_vectored(buffer, control, None, flags)
509509
.await
510510
}
511511
}
512512

513513
impl AsyncSendMsg for &TcpStream {
514-
type AddrType = SocketAddr;
514+
type AddrType = ();
515515

516516
#[inline]
517517
async fn send_msg<T: IoBuf, C: IoBuf>(
518518
&mut self,
519519
buffer: T,
520520
control: C,
521-
addr: &SocketAddr,
521+
_addr: Option<&()>,
522522
flags: i32,
523523
) -> BufResult<usize, (T, C)> {
524-
self.inner
525-
.send_msg(buffer, control, &(*addr).into(), flags)
526-
.await
524+
self.inner.send_msg(buffer, control, None, flags).await
527525
}
528526

529527
#[inline]
530528
async fn send_msg_vectored<T: IoVectoredBuf, C: IoBuf>(
531529
&mut self,
532530
buffer: T,
533531
control: C,
534-
addr: &SocketAddr,
532+
_addr: Option<&()>,
535533
flags: i32,
536534
) -> BufResult<usize, (T, C)> {
537535
self.inner
538-
.send_msg_vectored(buffer, control, &(*addr).into(), flags)
536+
.send_msg_vectored(buffer, control, None, flags)
539537
.await
540538
}
541539
}

compio-net/src/unix.rs

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -303,15 +303,15 @@ impl AsyncReadManaged for &UnixStream {
303303
}
304304

305305
impl AsyncRecvMsg for UnixStream {
306-
type AddrType = SockAddr;
306+
type AddrType = ();
307307

308308
#[inline]
309309
async fn recv_msg<T: IoBufMut, C: IoBufMut>(
310310
&mut self,
311311
buffer: T,
312312
control: C,
313313
flags: i32,
314-
) -> BufResult<(usize, usize, SockAddr), (T, C)> {
314+
) -> BufResult<(usize, usize, Option<()>), (T, C)> {
315315
(&*self).recv_msg(buffer, control, flags).await
316316
}
317317

@@ -321,22 +321,25 @@ impl AsyncRecvMsg for UnixStream {
321321
buffer: T,
322322
control: C,
323323
flags: i32,
324-
) -> BufResult<(usize, usize, SockAddr), (T, C)> {
324+
) -> BufResult<(usize, usize, Option<()>), (T, C)> {
325325
(&*self).recv_msg_vectored(buffer, control, flags).await
326326
}
327327
}
328328

329329
impl AsyncRecvMsg for &UnixStream {
330-
type AddrType = SockAddr;
330+
type AddrType = ();
331331

332332
#[inline]
333333
async fn recv_msg<T: IoBufMut, C: IoBufMut>(
334334
&mut self,
335335
buffer: T,
336336
control: C,
337337
flags: i32,
338-
) -> BufResult<(usize, usize, SockAddr), (T, C)> {
339-
self.inner.recv_msg(buffer, control, flags).await
338+
) -> BufResult<(usize, usize, Option<()>), (T, C)> {
339+
self.inner
340+
.recv_msg(buffer, control, flags)
341+
.await
342+
.map_res(|(res, len, _addr)| (res, len, None))
340343
}
341344

342345
#[inline]
@@ -345,8 +348,11 @@ impl AsyncRecvMsg for &UnixStream {
345348
buffer: T,
346349
control: C,
347350
flags: i32,
348-
) -> BufResult<(usize, usize, SockAddr), (T, C)> {
349-
self.inner.recv_msg_vectored(buffer, control, flags).await
351+
) -> BufResult<(usize, usize, Option<()>), (T, C)> {
352+
self.inner
353+
.recv_msg_vectored(buffer, control, flags)
354+
.await
355+
.map_res(|(res, len, _addr)| (res, len, None))
350356
}
351357
}
352358

@@ -395,57 +401,57 @@ impl AsyncWrite for &UnixStream {
395401
}
396402

397403
impl AsyncSendMsg for UnixStream {
398-
type AddrType = SockAddr;
404+
type AddrType = ();
399405

400406
#[inline]
401407
async fn send_msg<T: IoBuf, C: IoBuf>(
402408
&mut self,
403409
buffer: T,
404410
control: C,
405-
addr: &SockAddr,
411+
_addr: Option<&()>,
406412
flags: i32,
407413
) -> BufResult<usize, (T, C)> {
408-
(&*self).send_msg(buffer, control, addr, flags).await
414+
(&*self).send_msg(buffer, control, None, flags).await
409415
}
410416

411417
#[inline]
412418
async fn send_msg_vectored<T: IoVectoredBuf, C: IoBuf>(
413419
&mut self,
414420
buffer: T,
415421
control: C,
416-
addr: &SockAddr,
422+
_addr: Option<&()>,
417423
flags: i32,
418424
) -> BufResult<usize, (T, C)> {
419425
(&*self)
420-
.send_msg_vectored(buffer, control, addr, flags)
426+
.send_msg_vectored(buffer, control, None, flags)
421427
.await
422428
}
423429
}
424430

425431
impl AsyncSendMsg for &UnixStream {
426-
type AddrType = SockAddr;
432+
type AddrType = ();
427433

428434
#[inline]
429435
async fn send_msg<T: IoBuf, C: IoBuf>(
430436
&mut self,
431437
buffer: T,
432438
control: C,
433-
addr: &SockAddr,
439+
_addr: Option<&()>,
434440
flags: i32,
435441
) -> BufResult<usize, (T, C)> {
436-
self.inner.send_msg(buffer, control, addr, flags).await
442+
self.inner.send_msg(buffer, control, None, flags).await
437443
}
438444

439445
#[inline]
440446
async fn send_msg_vectored<T: IoVectoredBuf, C: IoBuf>(
441447
&mut self,
442448
buffer: T,
443449
control: C,
444-
addr: &SockAddr,
450+
_addr: Option<&()>,
445451
flags: i32,
446452
) -> BufResult<usize, (T, C)> {
447453
self.inner
448-
.send_msg_vectored(buffer, control, addr, flags)
454+
.send_msg_vectored(buffer, control, None, flags)
449455
.await
450456
}
451457
}

0 commit comments

Comments
 (0)