Opened 14 years ago
Closed 13 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 14 years ago by
comment:2 Changed 14 years ago by
| Milestone: | 4.8.0 |
|---|
comment:3 Changed 13 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.