Just after I released DeleGate/8.2.2, I noticed that SockMux in 8.2.2 does not see FCL filter. The enclosed patch will fix it. I noticed it when I was writing about SockMux+FCL in the following page ... ;-) ------------------------------------------------------------------------------- <URL:http://www.delegate.org/sockmux/> ------------------------------------------------------------------------------- SockMux -- Socket Multiplexer Protocol [last-modified 2002-12-20] [created 2002-12-20] SockMux is a newly developed tunneling protocol for inter-DeleGate communication with the following merits: Symmetricity ports are connected and relayed for both direction over the tunnel, independently of the direction of tunnel establishment between DeleGate servers, This feature is not supported by SOCKS protocol. Affinity the entrance and the exit of SockMux tunnel are controllable by usual parameters of DeleGate, PORT and (extended) SERVER parameter. Also DeleGate can be attached at the exit of a tunnel as a proxy server for relayed protocol, enabling arbitrary protocol proxies be tunneled via SockMux. Applicability not only devices with socket type interface but also FIFO type devices can be used as a tunnel. Efficiency establishing a long distance TCP connection can take long time. Tunneling multiple connections on a persistent connection (as a tunnel) reduces the delay. Privacy Enhancement the communication on the tunnel can be encrypted by SSL with SSLway as a FCL/FSV filter. After many years of not so successful experimental tunneling protocols for DeleGate, including Vehicle/Teleport, VSAP, ThruWay, SockMux is designed and implemented to be a protocol as simple as possible. The author expects that SockMux will supersede those unsuccessful protocols. clients -->* SockMux tunnel *--> servers +- DeleGate <========================> DeleGate -+ servers <--* a persistent connection *<-- clients on tcp/ip or fifo ------------------------------------------------------------------------------- See <URL:http://www.delegate.org/delegate/Manual.htm#serv_SockMux> for usage. Cheers, Yutaka -- @ @ Yutaka Sato <y.sato@delegate.org> http://www.delegate.org/y.sato/ ( - ) National Institute of Advanced Industrial Science and Technology (AIST) _< >_ 1-1-4 Umezono, Tsukuba, Ibaraki, 305-8568 Japan Do the more with the less -- B. Fuller *** ../delegate8.2.2/src/sox.c Fri Dec 20 01:48:13 2002 --- sox.c Fri Dec 20 06:28:02 2002 *************** *** 546,551 **** --- 546,552 ---- int pid; char fifo[256],infifo[256],outfifo[256]; char myname[256]; + int ocommin = -1; sockc = getReservedPorts(portv,sockv); isvport = CTX_get_iserver(ctx,&isvproto,&isvhost); *************** *** 575,580 **** --- 576,590 ---- Trace("commout=%s [%s]",outfifo,fifo); } START: + if( 0 <= ocommin ){ + Trace("Close old comm: %d",ocommin); + close(ocommin); + ocommin = -1; + } + while( 0 < (pid = NoHangWait()) ){ + Trace("Exit pid=%d",pid); + } + commin = commout = -1; if( commin < 0 && infifo[0] ){ commin = open(infifo,2); *************** *** 607,621 **** } sox_init(ctx,ac,av,&commin,&commout,serverurl,sizeof(serverurl)); - Out.b_fd = commout; - Out.b_rem = 0; Trace("SOX reception[%d/%d] reserved(%d) channel[%d,%d]", svport,svsock,sockc,commin,commout); if( commin < 0 ){ goto EXIT; } comminfp = fdopen(commin,"r"); /* must do exclusive lock here ... */ wcc = send_HELLO(&Out,&pack,0); --- 617,640 ---- } sox_init(ctx,ac,av,&commin,&commout,serverurl,sizeof(serverurl)); Trace("SOX reception[%d/%d] reserved(%d) channel[%d,%d]", svport,svsock,sockc,commin,commout); if( commin < 0 ){ goto EXIT; } + if( file_issock(commin) ){ + int fcl; + fcl = insertFCL(ctx,commin); + if( 0 <= fcl ){ + Trace("Filter inserted: %d -> %d\n",fcl,commin); + ocommin = commin; + commin = commout = fcl; + } + } comminfp = fdopen(commin,"r"); + Out.b_fd = commout; + Out.b_rem = 0; /* must do exclusive lock here ... */ wcc = send_HELLO(&Out,&pack,0);