Re: AfterStep and *BSD [ was Re: more wharf problems. ]

Frederick Bruckman (
Sat, 12 Jun 1999 11:53:50 -0500 (CDT)

On Fri, 11 Jun 1999, David Mihm wrote:

> 	The 6th patch to 1.7.49 series contains the switch to
> UNIX-domain socket code, so if AfterStep breaks for you (or any
> *BSD'r) at 1.7.49 patched to 1.7.55; this is the actual problem; otherwise
> we'll just have to see what the actual person/developer who looks into the
> problem comes up with. :)

That confirms my suspicion.

> 	If someone wants to actually track this down and provide a
> possible fix, I can make 1.7.49 and the patches available ... I'd put them
> back up on the ftp site, but apparently the admins [ subsequent comments
> have been censored ] and yadda yadda, we have no space left until they get
> [ more censorship ], hopefully the problems will soon be solved. 

I don't think that would help. It's pretty clear that the commands
sent over the socket aren't being received reliably. Any particular
module will start if you bang on the module menu repeatedly, so the
message parsing has to be generally correct.

It looks like the problem is that, according to the man page, read()
on a socket isn't guaranteed to return the requested number of bytes.
When this happens in response to the read() calls in events.c and
module.c, afterstep drops the ball and kills the module.

recv() with getsockopt() can block awaiting the whole message, but
neither claims to be POSIX. Does linux have something like that?