On Tue, Mar 17, 2009 at 6:59 PM, Tor Lillqvist <t...@iki.fi> wrote:
> (Yes, it might well be that it should be considerd a bug that one on
> Windows has to explicitly watch for G_IO_HUP in addition to G_IO_IN to
> be able to catch EOF. Please file a bug for that.

This change made the trick:

g_io_add_watch(ch, (GIOCondition) G_IO_IN|G_IO_HUP, cbk, NULL);


I filed a bug about this behaviour, 575806, I just replied here to
tell that with G_IO_HUP in the callback also the classic logic

if recv(fd) == 0 then IS DISCONNECT

works.

> The exact intended semantics of the GIOChannel API isn' clearly
> specified IMHO, and even if it was, one can say that it is more
> important that code that de facto does work on Unix should also work
> on Windows, even if strictly speaking the code would not need to work
> even on Unix according to specs... )

Why? The only real problem was the fact the cbk was void.

GIOChannel API give the user a g_io_channel_unix_get_fd() call, so I
suppose it should be supported handling the channel yourself. This is
a very important feature since there are a few network toolkit that
can be made interoperable with GTK through this feature.

-- 
Bye,
 Gabry
_______________________________________________
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