Article delegate-en/3409 of [1-5169] on the server localhost:119
  upper oldest olders older1 this newer1 newers latest
search
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
[Reference:<_A3407@delegate-en.ML_>]
Newsgroups: mail-lists.delegate-en

[DeleGate-En] multi-port DeleGate on Windows (Re: delegate crashing)
22 Jul 2006 06:27:12 GMT feedback@delegate.org (Yutaka Sato)
The DeleGate Project


Hi,

In message <_A3407@delegate-en.ML_> on 07/22/06(04:34:26) I wrote:
 | |-P192.168.101.4:8119/admin,192.168.101.4:20119,15110,15115,192.168.101.4:23
 |...
 | |REMITTABLE="http,https,nntp,telnet,pop"
 | |SERVER="nntp://news.provider_nntp.com:-:{*:20119}"
 | |SERVER="telnet:-:{*:23}"
 | |SERVER="pop://pop3.externaladdr_a.com:-:{*:15115}"
 | |SERVER="pop://pop3.externaladdr_b.com:-:{*:15110}"

I found *multiple* problems when DeleGate is used with multiple -P ports,
for protocols including HTTP (or SOCKS, FTP, Tcprelay or VSAP), on Windows.
The problem which can occur after DeleGate/9.0.6 is a "lock-out" of ports
other than the port for HTTP.

When a (child) DeleGate process is "standby" (which is logged as "Stikcy"
in the LOGFILE) to accept the next connection from clients after finished
the previous connection (this occurs for HTTP, SOCKS, FTP, Tcprelay and
VSAP in which multiple connections are processed in a single process),
it will lock out acception of connection on ports for other protocols
by the main (parent) process of DeleGate.  This is caused because a child
process locks the shared lock between children to lock out the parent.
It causes problem on Windows because a child process inherits (and
listen and accept) only the port (socket) on which the parent process
accepted the connection, to spawn() the child process. On Unix, all of
port in -P is automatically inherited to children by fork(), thus this
does not cause the problem.

This problem can be escaped by disabling the shared lock implemented in
DeleGate/9.0.6 on Windows, with the option of DeleGate as:

  "-ls"

I remember that inheriting all of sockets in the parent process to the
children on Windows can be easy (or automatic ?) for WindowsNT, not on
Windows95.  Since I stopped the support for Windows95 years ago, it
might have to be implemented now.

Cheers,
Yutaka
--
  9 9   Yutaka Sato <y.sato@delegate.org> http://delegate.org/y.sato/
 ( ~ )  National Institute of Advanced Industrial Science and Technology
_<   >_ 1-1-4 Umezono, Tsukuba, Ibaraki, 305-8568 Japan
Do the more with the less -- B. Fuller

  admin search upper oldest olders older1 this newer1 newers latest
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
@_@V