Hi Stephan, Sorry for the delayed answer. I've been quite busy these days... On Fri, Oct 14, 2011 at 12:54:56PM +0200, Stephan G?tter wrote:
Hello,
I just gave Dillo another try on Cygwin/X11 and got it working at least partially with cygwin 1.7.9.
Ack. Disclaimer: I haven't used cygwin, nor developed in a Win* platform, but have read about the socket portability problems between Win* and POSIX before.
You need to compile FLTK using Cygwin libraries and X11: ./configure --enable-cygwin --enable-x11 && make install
Because the dpis are installed with ".exe" extension (eg hello.dpi.exe) they aren't found by dpid. The extension is added by automake: http://www.gnu.org/s/hello/manual/automake/EXEEXT.html The Makefiles look like this: bookmarks_PROGRAMS = bookmarks.dpi$(EXEEXT)
I don't know how to break automake of doing this for the dpis only, so I modified dpid to use .exe-extension on cygwin (see attached patch). After starting the XServer (/usr/bin/XWin -multiwindow) you can run Dillo. Plain browsing with http using proxy and the bookmark & cookie dpis does work. The other dpi currently fail.
- hello-dpi shows the dialog and without pressing any button the resultpage (Answer received: Window was closed). After pressing Yes dpid logs "ERROR: [a_Capi_dpi_send_data] No open connection found" - vsource just crashes - file, ftp and https can't connect: Dpi_get_server_port: can't read server port from dpid. ** ERROR **: dpi.c: can't start dpi daemon
At first sight it looks like dpi "servers" work and dpi "filters" not. Except for the file dpi which is a dpi "server". Does the download dpi work for you?
Looks like the socket implementation of cygwin still has some quirks which can maybe tracked down.
Could be. This is a very complex area (e.g. fork [1]). On POSIX I've implemented dpis at least like: * filter * servers * select based * threaded * forked and it's very tricky to get them to work reliably across different platforms/OSes. If we were to find a way to make it work (for instance with dpi servers) it may be worth to switch dpi filters to servers.
Is there any interest to support this target on a source code basis?
I'd like to have a way to run dillo on Win*, but not sacrificing current portability [2], nor having to write a completely different code path for Win*. An API that works in both would be a good solution. For instance, we know that some dpi servers already work in Win* (with cygwin). There may even be a way to achieve it natively, and I seem to recall the FLTK3 team had this in mind. It would be more than worth to ask them about their plans on the subject. Again, as I'm not a Win* developer, I don't qualify to lead this effort on the Win* side. HTH. [1] http://cygwin.com/faq/faq-nochunks.html#faq.api.fork [2] http://www.dillo.org/Compatibility.html -- Cheers Jorge.-