write_ports delfd case
Subsystems (2)
Does anyone know what __write_ports_delfd() is meant to do?
The block comment above write_ports claims it handles writes of the form "-<file descriptor>", which makes no sense (the file table of the writer has nothing to do with anything). It's called only when the character after the "-" is a digit, but the names it matches against (generated by svc_one_sock_name()) start with "ipv4" or "ipv6".
I guess we should just rip out that case entirely? Or maybe I'm missing something.
--b.
Quoted 7 lines · J. Bruce Fields
Does anyone know what
__write_ports_delfd()is meant to do?The block comment above
write_portsclaims it handles writes of the form "-<file descriptor>", which makes no sense (the file table of the writer has nothing to do with anything). It's called only when the character after the "-" is a digit, but the names it matches against (generated bysvc_one_sock_name()) start with "ipv4" or "ipv6".
I suspect the comment above write_ports() is not correct. I assumed that delfd was symmetrical with addfd, but it isn't. More likely, addfd returns a string name that can be passed to write_ports (with a preceding '-') to terminate the socket.
Quoted 9 lines · On Mon, 19 Jul 2010 15:32:57 -0400 Chuck Lever <[email protected]> wrote:
Quoted 7 lines · J. Bruce Fields
Does anyone know what
__write_ports_delfd()is meant to do?The block comment above
write_portsclaims it handles writes of the form "-<file descriptor>", which makes no sense (the file table of the writer has nothing to do with anything). It's called only when the character after the "-" is a digit, but the names it matches against (generated bysvc_one_sock_name()) start with "ipv4" or "ipv6".
Quoted 4 lines
I suspect the comment above
write_ports()is not correct. I assumed that delfd was symmetrical with addfd, but it isn't. More likely, addfd returns a string name that can be passed towrite_ports(with a preceding '-') to terminate the socket.
Yeah -- seems broken to me. Given that it clearly doesn't work and I'm not aware of anyone having complained, perhaps it would be best to remove it?
Signature · 1 line
Jeff Layton <[email protected]>
Quoted 12 lines · On Mon, 19 Jul 2010 16:07:03 -0400 Jeff Layton <[email protected]> wrote:
Quoted 9 lines · On Mon, 19 Jul 2010 15:32:57 -0400 Chuck Lever <[email protected]> wrote:
Quoted 7 lines · J. Bruce Fields
Does anyone know what
__write_ports_delfd()is meant to do?The block comment above
write_portsclaims it handles writes of the form "-<file descriptor>", which makes no sense (the file table of the writer has nothing to do with anything). It's called only when the character after the "-" is a digit, but the names it matches against (generated bysvc_one_sock_name()) start with "ipv4" or "ipv6".
Quoted 9 lines
Quoted 4 lines
I suspect the comment above
write_ports()is not correct. I assumed that delfd was symmetrical with addfd, but it isn't. More likely, addfd returns a string name that can be passed towrite_ports(with a preceding '-') to terminate the socket.Yeah -- seems broken to me. Given that it clearly doesn't work and I'm not aware of anyone having complained, perhaps it would be best to remove it?
Looks like
a217813f9067b785241cb7f31956e51d2071703a
was the offending commit. Adding the "isdigit" test is just wrong.
It is just *wrong* in other ways too. You really should have a host address as well as a port number to identify a socket endpoint, even if it is the wildcard address.
Oh well.....
NeilBrown