Actually quite simple (at least for Unix). I'm just fiddling around with it.  So far I added -IP parameter and parsing via
<br>
<tt>
zIP = find_option("IP", 0, 1);
</tt>
<br>
and changed call to
<br>
<tt>
cgi_http_server(zIP, iPort, mxPort, zBrowserCmd)
</tt>
<br>
Next step, change <tt>INADDR_ANY</tt> in cgi.c to
<br>
<tt>inaddr.sin_addr.s_addr = inet_addr(zIP);</tt>
<br>
So far so good. But now it's about dealing with defaults (ie no -IP parameter), dealing with "localhost" instead of having a default in the global fossil db. That's where I am having troubles now.

Anyway, specifying an listening IP address is actually piece of cake :-)