Re: [as-devel] read() on a socket in *BSD

Ethan (allanon@crystaltokyo.com)
Wed, 16 Jun 1999 21:29:45 -0700 (PDT)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---942840952-1186514199-929593785=:12669
Content-Type: TEXT/PLAIN; charset=US-ASCII


On Wed, 16 Jun 1999, Frederick Bruckman wrote:

> On Tue, 15 Jun 1999, Ethan wrote:
> 
> > Can anyone tell me why I seem to lose the first byte sent to AS via the 
> > socket if I set non-blocking in module_accept() and never change it back 
> > to blocking in FlushQueue() (with this patch installed)?  Animate and 
> > Gnome seem to load and work, but when I try Wharf or Pager, the first 
> > byte of the window in the SET_NAME command never arrives.  The rest of 
> > the packet makes the transfer fine.
> 
> +  /* need to be able to read in command */
> +  if (module_ibuf_len[channel] < sizeof (Window) + sizeof (int) + size + 1 + sizeof (int))
>                                                                           ^
> +    {
> +      module_ibuf_len[channel] = sizeof (Window) + sizeof (int) + size + 1 + sizeof (int);
>                                                                           ^
> +      module_ibuf[channel] = realloc(module_ibuf[channel], module_ibuf_len[channel]);
> 
> SendInfo() doesn't send the null string terminator. (You have to add
> it to the command nonetheless.) Wharf and Pager are probably sending
> multiple commands fast enough to use the same connection, so the first
> byte of the next command gets eaten.

True, it doesn't, but as you say, I do add the null terminator.  How 
could this affect the transfer?  I don't try to read the null terminator 
from the pipe.  Also, how could Wharf and Pager step on each other's 
toes?  They use different sockets and have separate input buffers...

One problem I have found with my patch is that it causes unaligned access 
errors on a Sun Sparc 1+ - I've rewritten the transfer routines to work 
around this, as well as modifying module.c to use a structure instead of 
six different arrays for each module.  The unaligned access is not a 
problem on x86 machines, which use byte addressing for everything.

I'm attaching the new patch.  It's intended to be applied over the old 
1.7.111-04-allanon-socket.patch.

----
Ethan Fischer
allanon@crystaltokyo.com
http://members.xoom.com/allanon1

---942840952-1186514199-929593785=:12669
Content-Type: APPLICATION/octet-stream; name="1.7.111-04a-allanon-socket.patch.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.990616212945.12669F@crystaltokyo.com>
Content-Description: 

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
ZMRAbkyLBT9Jophy8+Hx5PK82HLw6uB4Qgt2dIANgJ+DMBQBty2m7EK/1yPc
G6o0pegAG19q41IuEFx6NJZVJh1q/lw1E4FSKz14K0pM1yXkdXSvsomUXYuF
S6DWMXz1IoK95jR9LQXl1Kgw2S+bfaQdi7xfhVmAy+l4sXAjTIm0wcvn0c28
0Z3vKrJ1zoUWUnYqu0wGn3SND6kjgb89yOBBTr0H9Ym6v4qDLdyPudn70RUW
6+hqg91dYf9kRaieDtlcx2rXWELJP3KPYMOfET5LmmKtsUq4on3OlwlOzYpo
DzXZhQcP0yeK5HkSL+Ru8eOH6WMiPotjeB9cQfuhZ/0WPejC6Scq4rp5OZfb
qdhtEnMJZpEKJdU/cPoy45GxVYnDGjcagE5rSaeRj2V9hlT4wHa68JW5lxbh
uHK/qRoSn/joV+qkJlWTD//QwBPiq6n6719o1dP4p5VgTTrjUbyR9WYEoliW
xNXCdGvnr57TmLJh8C3pUHz+uVkxb1DJcI10tYRZK7e/8+VX5MvBXylfXvn8
QkUQ4bK5GE3v4Rv/1wKy6Cr41ewiX1Fqihsmf7vOfV1n+6/kOjN2vK+cB6uS
hfvBh3SV+HDrP8b/aYZygMwNPwTRFSyTeOkn4SetWLlfGWr2PYv002+uUYhI
AcaYqNHPjpUvKpk8yLSI9GJgqJe+3BerlzuDUIXdKgwdzNKLIHIzny2ODTla
FAlfJaOxRPCWWonAx7/1HjMaBdrm3MmG1saXHB/Ik7E0S8jT2jTQUgGDXaHc
G3YHWLbt7IzoKY8XlEnTueDMTf3ZYgnt+SrChX4cYX1+cXjJ9jwfWOSpvdwH
1UawJn4aN71xw2mfO2KZdLGPqoNpDtnj/iio8sPUX0/a5OD0sEAa4eMbmGJv
jmjVT9xyerU7QmxtUjiAK0S8DbNxR/oBHoOCwvlPEZJb94bYoOcJgFmBDVxt
XGsYJvswZsHzmQDAUBik6dKd+W062bewm56OIwxAxLUy3nFlFD5sW4cWmIgJ
QkQzfXeXQXUwJMmqoLVjZ4I320b5gJpDfoN5/Do5OXuR2y05wXCwx87Yhj12
1kZOwM7fChGJXfKUUYk+liGyarV45i3fM1JMPmOX1oi0GR1Am6GscV2gpMsM
7KqZhqEKYzj408Uszmmqu3mOeTtPPw+p3epjeZLQihsZ+RFP1ZNsBVVGZ74J
x1RZuZYiBuWFXIPv2ndxzdIeSK2jlw+qNAkWzmwanbwm+RfOfkQudxoX473x
HdJdtdQ1C6lhBX2npNmU31m0aRS2iby1mwZ3ELma3rrTSt98LDbcHdH9yeH2
QFyf/APuRypXNl0o1NMo9bb1k1F1k4AuO1Foo7AWFXfcgnciqlkqN7VLp4wN
aIqQChNslGuzoAsDXjR/kUIjee1v97v9Adj7vR16ksTKV9VaX31XTQuz4prN
Wz6OiuueBb//Du3v2upWjexEPikJve2/s/INMykTASNDmo6nBEEFShGVXoQ7
8tTjwPMuY3HHU3LF2CAWutCTYVq/F6TYeASnU8pMZ5OLw8nLcgTTKamAFi86
kczY7USmlOGAXcXe397NL0vNnGeem7loxR4z+4W/mC0/4WpDI1fSSn6eh3ZB
Br86ntepkrriTw+EkftkSaYYUEGLCGdlhzWh5nCFlZB+oVakGt95FhUiEJPH
3j6Xx25fyuOzdknecHnE1ZRmoNiccMxUF8Qg6UbUrlnGjllELueLCcpdpwN7
nSAVNhVMXW4dlt7EPyTJTJAjNKhtFORwn5757xFcBqr9SIQt1zUhVvz3qXS8
evGu9V2F4y4KKGnAXMVIEuqLGOMcNfmO/8onXzCyjKBrmv68Wl8roChNr+5i
cgTrXJLB8eWAumjlcZWr/vksysI2bdYc0Q8Sjk66haZX1ITihrPp5GzyI4Wi
fPuGZUiyyx4uAAgx36nCN7Ynl7fZaHxW63+u8QbVijgAAA==
---942840952-1186514199-929593785=:12669--