On 11/15/05, Tor Lillqvist <[EMAIL PROTECTED]> wrote:
> There are some problems both in your code, and in giowin32.c.
>
> For efficiency, your code should not read just one byte at a time in
> the callback. It should read in bigger chunks, and as much as possible
> in a loop, until it gets a WSAEWOULDBLOCK or an EOF. If it did this,
> it would probably also work with giowin32.c as it currently is
> written.
>

Eek.  I'm not sure how that avoided notice for so long.  I fixed that
(and what do you know... it works!). Thanks for noticing.

> Your code frees the GaimFetchUrlData twice. I don't recall the exact
> details, but the call to destroy_fetch_url_data() in gaim_url_fetch()
> is unnecessary, if gaim_proxy_connect() returns failure it has already
> been called.

That is a result of the hackery that I did to remove the asynchonous
DNS lookup code and etc.  The "real" code actually does this
correctly.

> You send a HTTP/1.1 request to the server, meaning it defaults to
> using keepalive. You should also send Connection: close, or the server
> won't necessarily close it. Or you could shutdown the socket from your
> end with shutdown(sock,SD_SEND), then the server will presumably also
> close its end after sending the data.
>

I fixed this as well; we certainly should have been specifying the
"Connection: close" header since we're not handling persistent
connections here.

> Anyway, what you originally asked about, the extraneous calls to
> WSAEnumNetworkEvents() indeed seem to be quite unnecessary, and are
> easy to get rid of. Will do that. Just those extra calls shouldn't
> affect how the code works, though. To make this work somewhat more
> like on Unix, changes as outlined above are needed to giowin32.c.

Your explanation sheds a lot of light on the situation.  What
surprises me is that this hasn't been causing problems for more
people.  I suppose it is probably because glib 2.8.x isn't in wide
circulation yet in the win32 world.

Should I make an attempt at the changes to giowin32.c, or is that
something you've already got sorted out?

Thanks,
-Daniel
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to