Skip to content

Commit 73a3760

Browse files
committed
TCP specialization: Move bodies out of trait impl
1 parent 5058a48 commit 73a3760

File tree

1 file changed

+64
-20
lines changed

1 file changed

+64
-20
lines changed

src/fd/socket/tcp.rs

Lines changed: 64 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -261,26 +261,6 @@ impl<T> Socket<T> {
261261

262262
Ok(())
263263
}
264-
}
265-
266-
impl<T: core::marker::Sync + core::marker::Send + core::fmt::Debug + 'static> ObjectInterface
267-
for Socket<T>
268-
{
269-
default fn bind(&self, _name: *const sockaddr, _namelen: socklen_t) -> i32 {
270-
-EINVAL
271-
}
272-
273-
default fn getsockname(&self, _name: *mut sockaddr, _namelen: *mut socklen_t) -> i32 {
274-
-EINVAL
275-
}
276-
277-
default fn getpeername(&self, _name: *mut sockaddr, _namelen: *mut socklen_t) -> i32 {
278-
-EINVAL
279-
}
280-
281-
default fn connect(&self, _name: *const sockaddr, _namelen: socklen_t) -> i32 {
282-
-EINVAL
283-
}
284264

285265
fn accept(&self, addr: *mut sockaddr, addrlen: *mut socklen_t) -> i32 {
286266
block_on(self.async_accept(addr, addrlen), None)
@@ -426,6 +406,70 @@ impl<T: core::marker::Sync + core::marker::Send + core::fmt::Debug + 'static> Ob
426406
}
427407
}
428408

409+
impl<T: core::marker::Sync + core::marker::Send + core::fmt::Debug + 'static> ObjectInterface
410+
for Socket<T>
411+
{
412+
default fn bind(&self, _name: *const sockaddr, _namelen: socklen_t) -> i32 {
413+
-EINVAL
414+
}
415+
416+
default fn getsockname(&self, _name: *mut sockaddr, _namelen: *mut socklen_t) -> i32 {
417+
-EINVAL
418+
}
419+
420+
default fn getpeername(&self, _name: *mut sockaddr, _namelen: *mut socklen_t) -> i32 {
421+
-EINVAL
422+
}
423+
424+
default fn connect(&self, _name: *const sockaddr, _namelen: socklen_t) -> i32 {
425+
-EINVAL
426+
}
427+
428+
fn accept(&self, addr: *mut sockaddr, addrlen: *mut socklen_t) -> i32 {
429+
self.accept(addr, addrlen)
430+
}
431+
432+
fn read(&self, buf: *mut u8, len: usize) -> isize {
433+
self.read(buf, len)
434+
}
435+
436+
fn write(&self, buf: *const u8, len: usize) -> isize {
437+
self.write(buf, len)
438+
}
439+
440+
fn listen(&self, backlog: i32) -> i32 {
441+
self.listen(backlog)
442+
}
443+
444+
fn setsockopt(
445+
&self,
446+
level: i32,
447+
optname: i32,
448+
optval: *const c_void,
449+
optlen: socklen_t,
450+
) -> i32 {
451+
self.setsockopt(level, optname, optval, optlen)
452+
}
453+
454+
fn getsockopt(
455+
&self,
456+
level: i32,
457+
optname: i32,
458+
optval: *mut c_void,
459+
optlen: *mut socklen_t,
460+
) -> i32 {
461+
self.getsockopt(level, optname, optval, optlen)
462+
}
463+
464+
fn shutdown(&self, how: i32) -> i32 {
465+
self.shutdown(how)
466+
}
467+
468+
fn ioctl(&self, cmd: i32, argp: *mut c_void) -> i32 {
469+
self.ioctl(cmd, argp)
470+
}
471+
}
472+
429473
impl<T> Clone for Socket<T> {
430474
fn clone(&self) -> Self {
431475
let mut guard = NIC.lock();

0 commit comments

Comments
 (0)