Opened 13 years ago
Closed 12 years ago
#763 closed defect (fixed)
posix unit implicitly depends on tcp unit
Reported by: | Moritz Heidkamp | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | core libraries | Version: | 4.7.x |
Keywords: | Cc: | ||
Estimated difficulty: |
Description
The procedure port->fileno
defined in the posix
unit calls ##sys#tcp-port->fileno
from the tcp
unit if (eq? 'socket (##sys#slot port 7))
. Now, the unix-sockets
extension also sets this slot to socket
on its ports (cf. the io-ports
procedure) which leads to an error when a user didn't load the tcp
unit and calls port->fileno
on such a port. I'm not sure about the cleanest fix for this. Any takers?
Change History (3)
comment:1 Changed 13 years ago by
comment:2 Changed 13 years ago by
Milestone: | 4.8.0 |
---|
comment:3 Changed 12 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
This has been fixed by bc09c55
Note: See
TracTickets for help on using
tickets.
I dunno, but this seems awfully hacky of unix-sockets. (just as hacky as spiffy using the immediate slots of the ssl egg. Guilty as charged! :P)
Unit posix rightfully assumes you shouldn't ever get an object of this type unless you went through some constructor or other procedure from the tcp unit. If posix-sockets creates faux tcp ports, it should fix this by loading the tcp unit, or use some other port type that causes less problems.