phpfwconfsys-submits Mailing List for phpFWConfigSystem
Status: Planning
Brought to you by:
piotrbanasik
You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
(12) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2003 |
Jan
(9) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <pio...@us...> - 2003-01-09 00:12:48
|
Update of /cvsroot/phpfwconfsys/Daemon-Alpha/keys In directory sc8-pr-cvs1:/tmp/cvs-serv12862 Modified Files: genkeys.sh private.key public.key Log Message: updated the gen script to make 2048 keys .. probably an overkill but why not Index: genkeys.sh =================================================================== RCS file: /cvsroot/phpfwconfsys/Daemon-Alpha/keys/genkeys.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** genkeys.sh 8 Jan 2003 23:59:31 -0000 1.1 --- genkeys.sh 9 Jan 2003 00:12:44 -0000 1.2 *************** *** 5,9 **** echo You will be asked to enter a passprase twice echo ! openssl genrsa -out private.key -des3 echo echo --- 5,9 ---- echo You will be asked to enter a passprase twice echo ! openssl genrsa -out private.key -des3 2048 echo echo Index: private.key =================================================================== RCS file: /cvsroot/phpfwconfsys/Daemon-Alpha/keys/private.key,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** private.key 8 Jan 2003 23:59:31 -0000 1.1 --- private.key 9 Jan 2003 00:12:44 -0000 1.2 *************** *** 1,12 **** -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED ! DEK-Info: DES-EDE3-CBC,86D007BDC0C220CE ! QExvkKCbMs8CwCAQsYVU75bJi5Zie6D+9qiRPoQx2EWbE7BPlfzcqHrW26zw/A71 ! 3+XmtC52NQ9JNE8IKkdDLcWMXqjuolrxvZZKA/D6RJhVlWxpnKdUFQ/IA+/wR1a6 ! XlGrxnNxw0lPP1Ozr6wWK+2V1vObpohfo5o25LmLIHt+N6lNIo/4VnFxFCVfxrtz ! uVl4fsSvcqoPpPHF8Q70P7YoIcdpJITzpPyXr+z2XHKzS8Go7CH+ik7eaa6Oynfc ! ETJSkCuRqpbOXpeVlI+Tl04xIycqqiiMZ/5NhwwnpgV82OLB45hHCDf5fVc8LCcC ! 1hw0bAwwOLzZQgefBG22mZIjbeg/WB0ZvxGmcQ2sX0hqRoYl8RtkUVFmL4oNrsBW ! Ysse6a14GL9ojKlQY8e8v0xscJwXw8xNeRXNQKvp19U= -----END RSA PRIVATE KEY----- --- 1,30 ---- -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED ! DEK-Info: DES-EDE3-CBC,A80E2DC36B7CD48B ! Sc+74BWerLSjhXGE9FxKmfCQNn/D6RTrH7klecMOmw1aSVq26hVkvqqilQ9AXHCv ! Di0JTB4jrhJK4YuM9fSKAHNhkHLRECRcHbAwqeA8VbV0fbDwTlIEt1eJj4i5M8rj ! 0gH6HsLOYsEmom8cZVKlDNpkTLNnIoQkj5xlje4MBcp5Gfe2JyaxC7oMI/3L5jZM ! l1q9tPWjovV+kKH7C1CXSiXa9ec/hJLQJEewqYYVqjmxQXK2EBONZAWitljhAeuU ! /VAcSEG3sWbr1gB2jHYEyn2VQtpwZbHGTUQcyGy/dxvtSK+aObJiTf56mGC71zVt ! NO2N/2lNj7FV5XX47TOSgtkZHvvK6TAWt7Y1R4XDPuJH0f0c1q8uFszylqgIOPoR ! dqBox3k1Ruh7Jp4sdmHw7KtczFmMQg8fBaCKYK6ZlpiBZ0abz/k/E3HoCZ2d5p5+ ! gUCgNvcbH6hAVcjhjBfDbV8pd62X9aHNVMXiXCo7yqVy942dsX+7ly+jzVVN5z8c ! C7eEk7fXd2wE4NRhRjOkJqu2dls3eCPOq84NrtiX2vWw8LquR78qxFlUfINI9Cuh ! wMprUJAHOzy/KGp41FekKQY+ID4iY3VyBK+MuoEo1y6WEbAgPfBa4esCvtK0t9Jq ! HbJ2EPrBOAkFMIBAyCD0jNCwyjUAhJ17JlSWUI7kwR/Q9fT++Jg0TXg3w0zumpPs ! OZsv1HEysVdpmuXfh0wKTEZO8TwN52kXZnO2O19nU/zCJ76pBmYAfLyJ3sgCjefS ! ptRJkfifi0kuvM8ur4xgXZQQyBd2q8YkksqEKGLzI2wgdkHzQQG/HdQt2dQd0Ond ! iPEp9MPo58p7HbPAd77mBnssQXK7c7q1H4W/sfsPqg25SuoJX9TzLQWIUN7Sr9sp ! 0EpSvHDX+KlNdCTb7B9siwZ+1ipt3vJ4N9IKvx5Dmw4pAxuFBiAJpi75SEZVzSuH ! yzLL23/zX4x0hiaxjU0qyJAkSTJBIhgkbsLBrMKpmtriPBG3XgI2eQ3DsE+Iu2EC ! lqcpcqtdpynbDsTTjpXgKteJ2vqbjS9kIU1M/kRvLv3AyBOapsfRXYOYpXMDBwPU ! QMa5+BSb4lr++bQxa2/foUgG5qu7nX6bhhE81ErWqyxLOnxF13It0MClyo9hqVET ! 1mDwc5CSWZJx70Y7y0KGCsCEiKMvHPV9XnXq5lEXN95Stc1iwBJdZowDBttZ//Ul ! 5YMiQYx5Qk2ZI9prJosD51HPO8McORjHZFtDK/7Hfm+Dib/tRfNCP6+966LUewDY ! dWyR1+hlhCu1r7t6IIKKZ6D6N82RDFB93c8RKP7929PDC0jjX5U2g79nPCiOKrRa ! +rp538em2foW8BjPQxPw9lmPwzmQp1xDRpsh4QJ7Z8JmNqcz9KELWaRlEQ+kyWg0 ! JY8VZdIdBgJ7QC/sB8PhQu7/Ti8OJfkh6VUxXh6jO5ghkZYk1ZQmQOht7vLWdIyY ! 8Zn1BUMDW9JEtv2mul5eBEXZ+Bc1t/BIhgoX0RYV2Nl/+m0h/hvpc825enA717Gj ! BaMyenLFZlXTP2rCvS7j0zfBVXGjlZoEPo/NzkP55kL5sUqdNSe/fA== -----END RSA PRIVATE KEY----- Index: public.key =================================================================== RCS file: /cvsroot/phpfwconfsys/Daemon-Alpha/keys/public.key,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** public.key 8 Jan 2003 23:59:31 -0000 1.1 --- public.key 9 Jan 2003 00:12:44 -0000 1.2 *************** *** 1,4 **** -----BEGIN PUBLIC KEY----- ! MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALUcaitOLbuvkIM7EQsK1fyJHpKd/MOG ! oPM2/F2tR6/L/FaWjvPpaez8am1rrreFmn+N8Iwh+ERTCPhyxc5GJHUCAwEAAQ== -----END PUBLIC KEY----- --- 1,9 ---- -----BEGIN PUBLIC KEY----- ! MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmajZWjGex/iDo8cd6k3j ! MyVSYOf+W2RPA3UVxhVU7YQstB1wUDeLAl25CDR1IkD2ZHm3vThmedju0/deZjlg ! ZT8N561ag+5laqBxk2lNc03yTXbdWk5Vw+5RojxgtqIQdIPph1mD8GPnSvasiqXJ ! qC1uWLseJFxb1wYUB9W8whxLKgx4M8J8KZXeWCtRM1+xmvtVWTHkuBHK0ACK8J5N ! m6nipryknpGTxl349a2edMXj7raY+q8QWW7/fiaT4Z7Jwig5VN3lGz8D4pTI2Qit ! pE7dGnI6r6H3JMbee2UyQ4WDQ608Iv1hT1pueziEIu+1uEkujewvCN53Y8CQq7mO ! nwIDAQAB -----END PUBLIC KEY----- |
|
From: <pio...@us...> - 2003-01-08 23:59:34
|
Update of /cvsroot/phpfwconfsys/Daemon-Alpha/keys In directory sc8-pr-cvs1:/tmp/cvs-serv9197/keys Added Files: genkeys.sh private.key public.key Log Message: added a key generation script and two sample keys for use in secure transations later --- NEW FILE: genkeys.sh --- #!/bin/bash echo echo echo Generating private key... echo You will be asked to enter a passprase twice echo openssl genrsa -out private.key -des3 echo echo echo Generating public key... echo Please enter the same passprase as you entered above echo openssl rsa -in private.key -pubout -out public.key --- NEW FILE: private.key --- -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,86D007BDC0C220CE QExvkKCbMs8CwCAQsYVU75bJi5Zie6D+9qiRPoQx2EWbE7BPlfzcqHrW26zw/A71 3+XmtC52NQ9JNE8IKkdDLcWMXqjuolrxvZZKA/D6RJhVlWxpnKdUFQ/IA+/wR1a6 XlGrxnNxw0lPP1Ozr6wWK+2V1vObpohfo5o25LmLIHt+N6lNIo/4VnFxFCVfxrtz uVl4fsSvcqoPpPHF8Q70P7YoIcdpJITzpPyXr+z2XHKzS8Go7CH+ik7eaa6Oynfc ETJSkCuRqpbOXpeVlI+Tl04xIycqqiiMZ/5NhwwnpgV82OLB45hHCDf5fVc8LCcC 1hw0bAwwOLzZQgefBG22mZIjbeg/WB0ZvxGmcQ2sX0hqRoYl8RtkUVFmL4oNrsBW Ysse6a14GL9ojKlQY8e8v0xscJwXw8xNeRXNQKvp19U= -----END RSA PRIVATE KEY----- --- NEW FILE: public.key --- -----BEGIN PUBLIC KEY----- MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALUcaitOLbuvkIM7EQsK1fyJHpKd/MOG oPM2/F2tR6/L/FaWjvPpaez8am1rrreFmn+N8Iwh+ERTCPhyxc5GJHUCAwEAAQ== -----END PUBLIC KEY----- |
|
From: <pio...@us...> - 2003-01-08 23:58:19
|
Update of /cvsroot/phpfwconfsys/Daemon-Alpha/keys In directory sc8-pr-cvs1:/tmp/cvs-serv8924/keys Log Message: Directory /cvsroot/phpfwconfsys/Daemon-Alpha/keys added to the repository |
|
From: <pio...@us...> - 2003-01-08 04:39:55
|
Update of /cvsroot/phpfwconfsys/Daemon-Alpha
In directory sc8-pr-cvs1:/tmp/cvs-serv10131
Modified Files:
Daemon.Class.php DaemonSession.Class.php Server.Class.php
Socket.Class.php Utility.php
Log Message:
added vim fold markers to the code
Index: Daemon.Class.php
===================================================================
RCS file: /cvsroot/phpfwconfsys/Daemon-Alpha/Daemon.Class.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Daemon.Class.php 8 Jan 2003 02:50:54 -0000 1.2
--- Daemon.Class.php 8 Jan 2003 04:39:51 -0000 1.3
***************
*** 17,21 ****
var $Session;
! function Daemon($settings)
{
$this->DaemonSettings = $settings;
--- 17,21 ----
var $Session;
! function Daemon($settings) // {{{
{
$this->DaemonSettings = $settings;
***************
*** 45,51 ****
return;
}
! }
! function Start()
{
dprint("Daemon::Start()");
--- 45,51 ----
return;
}
! } //}}}
! function Start() // {{{
{
dprint("Daemon::Start()");
***************
*** 54,66 ****
$this->Server = new Server($this->Socket, &$a, $PreforkCount);
$this->Server->Start();
! }
! function Hook_SIGUSR1()
{
dprint("Daemon::Hook_SIGUSR1()");
$this->Active = false;
! }
! function HandleConnection($Sock)
{
dprint("Daemon::HandleConnection(&$Sock)");
--- 54,66 ----
$this->Server = new Server($this->Socket, &$a, $PreforkCount);
$this->Server->Start();
! } // }}}
! function Hook_SIGUSR1() // {{{
{
dprint("Daemon::Hook_SIGUSR1()");
$this->Active = false;
! } // }}}
! function HandleConnection($Sock) // {{{
{
dprint("Daemon::HandleConnection(&$Sock)");
***************
*** 107,116 ****
$this->Session->Close();
return true;
! }
! function Shutdown()
{
$this->Socket->Close();
! }
}
--- 107,116 ----
$this->Session->Close();
return true;
! } // }}}
! function Shutdown() // {{{
{
$this->Socket->Close();
! } // }}}
}
Index: DaemonSession.Class.php
===================================================================
RCS file: /cvsroot/phpfwconfsys/Daemon-Alpha/DaemonSession.Class.php,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** DaemonSession.Class.php 8 Jan 2003 02:50:54 -0000 1.1
--- DaemonSession.Class.php 8 Jan 2003 04:39:51 -0000 1.2
***************
*** 23,27 ****
var $CharData = "";
! function DaemonSession(&$daemon, &$sock)
{
$this->Socket =& $sock;
--- 23,27 ----
var $CharData = "";
! function DaemonSession(&$daemon, &$sock) //{{{
{
$this->Socket =& $sock;
***************
*** 35,47 ****
$this->State = "none";
! }
! function SocketWrite($msg)
{
$r = $this->Socket->Write($msg);
if ($r === false) $this->Error = true;
! }
! function SocketError($msg)
{
dprint("DaemonSession::SocketError($msg)");
--- 35,47 ----
$this->State = "none";
! } // }}}
! function SocketWrite($msg) // {{{
{
$r = $this->Socket->Write($msg);
if ($r === false) $this->Error = true;
! } // }}}
! function SocketError($msg) // {{{
{
dprint("DaemonSession::SocketError($msg)");
***************
*** 49,62 ****
$this->Socket->Close();
$this->Daemon->Active = false;
! }
! function CloseClientStack()
{
foreach($this->ClientElementStack as $e) {
$this->SocketWrite("</$e>\n");
}
! }
! function XMLError()
{
dprint("DaemonSession::XMLError()");
--- 49,62 ----
$this->Socket->Close();
$this->Daemon->Active = false;
! } // }}}
! function CloseClientStack() // {{{
{
foreach($this->ClientElementStack as $e) {
$this->SocketWrite("</$e>\n");
}
! } // }}}
! function XMLError() // {{{
{
dprint("DaemonSession::XMLError()");
***************
*** 66,72 ****
$this->SendToClient("Error",$s,array( id=>200 ));
dprint($s);
! }
! function RcvData($data)
{
$r = xml_parse($this->XMLParser,$data);
--- 66,72 ----
$this->SendToClient("Error",$s,array( id=>200 ));
dprint($s);
! } // }}}
! function RcvData($data) // {{{
{
$r = xml_parse($this->XMLParser,$data);
***************
*** 74,91 ****
if ($this->Error) { return false; }
return true;
! }
! function EndOfData()
{
$r = xml_parse($this->XMLParser,"",true);
if (!$r) $this->XMLError();
! }
! function Handle_CharData($parser, $data)
{
$this->CharData .= $data;
! }
! function SendToClient($element, $data="", $args=array())
{
dprint("DaemonSession::SendToClient($element, $data, $args)");
--- 74,91 ----
if ($this->Error) { return false; }
return true;
! } // }}}
! function EndOfData() // {{{
{
$r = xml_parse($this->XMLParser,"",true);
if (!$r) $this->XMLError();
! } // }}}
! function Handle_CharData($parser, $data) // {{{
{
$this->CharData .= $data;
! } // }}}
! function SendToClient($element, $data="", $args=array()) // {{{
{
dprint("DaemonSession::SendToClient($element, $data, $args)");
***************
*** 106,112 ****
$this->SocketWrite($out);
dprint("Sent:\n$out");
! }
! function Handle_StartElement($parser, $name, $attrs)
{
dprint("Daemon::StartElement($parser, $name, $attrs)");
--- 106,112 ----
$this->SocketWrite($out);
dprint("Sent:\n$out");
! } // }}}
! function Handle_StartElement($parser, $name, $attrs) // {{{
{
dprint("Daemon::StartElement($parser, $name, $attrs)");
***************
*** 115,118 ****
--- 115,119 ----
while($once = true) {
$once = false;
+ // First Element in the document (aka document element) {{{
if (count($this->ElementStack) == 0) {
// first element
***************
*** 132,136 ****
--- 133,139 ----
break;
}
+ // }}}
+ // Inside the SESSION element {{{
if ($this->ElementStack[0] == "SESSION") {
if ($name == "ECHO") {
***************
*** 148,158 ****
break;
}
}
array_push($this->ElementStack,$name);
dprint("ElementStack: ".implode(", ",$this->ElementStack));
! }
! function Handle_EndElement($parser, $name)
{
dprint("Daemon::EndElement($parser, $name)");
--- 151,162 ----
break;
}
+ // }}}
}
array_push($this->ElementStack,$name);
dprint("ElementStack: ".implode(", ",$this->ElementStack));
! } // }}}
! function Handle_EndElement($parser, $name) // {{{
{
dprint("Daemon::EndElement($parser, $name)");
***************
*** 186,196 ****
}
}
! }
! function Close()
{
$this->CloseClientStack();
xml_parser_free($this->XMLParser);
! }
}
--- 190,200 ----
}
}
! } // }}}
! function Close() // {{{
{
$this->CloseClientStack();
xml_parser_free($this->XMLParser);
! } // }}}
}
Index: Server.Class.php
===================================================================
RCS file: /cvsroot/phpfwconfsys/Daemon-Alpha/Server.Class.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Server.Class.php 8 Jan 2003 02:50:54 -0000 1.3
--- Server.Class.php 8 Jan 2003 04:39:51 -0000 1.4
***************
*** 15,19 ****
var $SIGNALHooks = array();
! function Server($socket, &$handler, $prefork=10)
{
// assume the socket is already bound to and set to listen
--- 15,19 ----
var $SIGNALHooks = array();
! function Server($socket, &$handler, $prefork=10) // {{{
{
// assume the socket is already bound to and set to listen
***************
*** 21,27 ****
$this->Socket = &$socket;
$this->Handler = &$handler;
! }
! function Start()
{
dprint("Server::Start()");
--- 21,27 ----
$this->Socket = &$socket;
$this->Handler = &$handler;
! } // }}}
! function Start() // {{{
{
dprint("Server::Start()");
***************
*** 40,58 ****
$this->Sentinel();
! }
! function AddHook($sig, $handler)
{
@$this->SIGNALHooks[$sig] = $handler;
! }
! function RemoveHook($sig)
{
if (isset($this->SIGNALHooks[$sig])) {
$this->SIGNALHooks[$sig] = null;
}
! }
! function Sentinel()
{
dprint("Server::Sentinel()");
--- 40,58 ----
$this->Sentinel();
! } // }}}
! function AddHook($sig, $handler) // {{{
{
@$this->SIGNALHooks[$sig] = $handler;
! } // }}}
! function RemoveHook($sig) // {{{
{
if (isset($this->SIGNALHooks[$sig])) {
$this->SIGNALHooks[$sig] = null;
}
! } // }}}
! function Sentinel() // {{{
{
dprint("Server::Sentinel()");
***************
*** 74,82 ****
}
dprint("Server::Sentinel(): Reached End");
! }
!
! function Parent_Handler($sig)
! {
dprint("Server::Parent_Handler($sig)");
switch ($sig)
--- 74,81 ----
}
dprint("Server::Sentinel(): Reached End");
! } // }}}
! function Parent_Handler($sig) // {{{
! {
dprint("Server::Parent_Handler($sig)");
switch ($sig)
***************
*** 87,93 ****
break;
}
! }
! function Child_Handler($sig)
{
dprint("Server::Child_Handler($sig)");
--- 86,92 ----
break;
}
! } // }}}
! function Child_Handler($sig) // {{{
{
dprint("Server::Child_Handler($sig)");
***************
*** 119,125 ****
}
! }
! function ForkWorker()
{
dprint("Server::ForkWorker()");
--- 118,124 ----
}
! } // }}}
! function ForkWorker() // {{{
{
dprint("Server::ForkWorker()");
***************
*** 142,155 ****
$this->StartListen();
}
! }
! function AddChild($pid)
{
array_push($this->Children,$pid);
dprint("Child: $pid Added to Children List");
dprint("Children: ".implode(", ",$this->Children));
! }
! function RemoveChild($pid)
{
dprint("RemoveChild($pid)");
--- 141,154 ----
$this->StartListen();
}
! } // }}}
! function AddChild($pid) // {{{
{
array_push($this->Children,$pid);
dprint("Child: $pid Added to Children List");
dprint("Children: ".implode(", ",$this->Children));
! } // }}}
! function RemoveChild($pid) // {{{
{
dprint("RemoveChild($pid)");
***************
*** 163,169 ****
dprint("Removed PID: $pid from Children List");
dprint("Children: ".implode(", ",$this->Children));
! }
! function Handle(&$Sock)
{
if (is_array($this->Handler)) {
--- 162,168 ----
dprint("Removed PID: $pid from Children List");
dprint("Children: ".implode(", ",$this->Children));
! } // }}}
! function Handle(&$Sock) // {{{
{
if (is_array($this->Handler)) {
***************
*** 176,182 ****
$func(&$Sock);
}
! }
! function StartListen()
{
$ChildSock =& $this->Socket->Accept();
--- 175,181 ----
$func(&$Sock);
}
! } // }}}
! function StartListen() // {{{
{
$ChildSock =& $this->Socket->Accept();
***************
*** 194,200 ****
dprint("Ending Child Process.");
exit;
! }
! function KillChildren($sig=SIGTERM, $wait=false)
{
dprint("Server::KillChildren($sig, $wait)");
--- 193,199 ----
dprint("Ending Child Process.");
exit;
! } // }}}
! function KillChildren($sig=SIGTERM, $wait=false) // {{{
{
dprint("Server::KillChildren($sig, $wait)");
***************
*** 208,219 ****
}
}
! }
! function Shutdown()
{
dprint("Server::Shutdown()");
$this->Running = false;
$this->KillChildren(SIGUSR1,true);
! }
}
--- 207,218 ----
}
}
! } // }}}
! function Shutdown() // {{{
{
dprint("Server::Shutdown()");
$this->Running = false;
$this->KillChildren(SIGUSR1,true);
! } // }}}
}
Index: Socket.Class.php
===================================================================
RCS file: /cvsroot/phpfwconfsys/Daemon-Alpha/Socket.Class.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Socket.Class.php 8 Jan 2003 02:50:54 -0000 1.3
--- Socket.Class.php 8 Jan 2003 04:39:51 -0000 1.4
***************
*** 9,13 ****
var $Valid = true;
! function Socket($domain)
{
echo "Debug: Socket::Socket($domain)\n";
--- 9,13 ----
var $Valid = true;
! function Socket($domain) // {{{
{
echo "Debug: Socket::Socket($domain)\n";
***************
*** 30,35 ****
}
}
! function GetLastSocketError()
{
$errno = socket_last_error($this->Socket);
--- 30,36 ----
}
}
+ // }}}
! function GetLastSocketError() // {{{
{
$errno = socket_last_error($this->Socket);
***************
*** 38,49 ****
return "Error $errno: ($errstr)";
}
! function GetLastErrorNumber()
{
$errno = socket_last_error($this->Socket);
return $errno;
}
!
! function Bind($address, $port = -1)
{
echo "Debug: Socket::Bind($address,$port)\n";
--- 39,52 ----
return "Error $errno: ($errstr)";
}
+ // }}}
! function GetLastErrorNumber() // {{{
{
$errno = socket_last_error($this->Socket);
return $errno;
}
! // }}}
!
! function Bind($address, $port = -1) // {{{
{
echo "Debug: Socket::Bind($address,$port)\n";
***************
*** 65,70 ****
return true;
}
! function Listen($backlog = 1)
{
echo "Debug: Socket::Listen($backlog)\n";
--- 68,74 ----
return true;
}
+ // }}}
! function Listen($backlog = 1) // {{{
{
echo "Debug: Socket::Listen($backlog)\n";
***************
*** 79,84 ****
return true;
}
! function &Accept()
{
echo "Debug: Socket::Accept()\n";
--- 83,89 ----
return true;
}
+ // }}}
! function &Accept() // {{{
{
echo "Debug: Socket::Accept()\n";
***************
*** 103,108 ****
return new SocketClone($result);
}
! function Write($msg)
{
echo "Debug: Socket::Write($msg)\n";
--- 108,114 ----
return new SocketClone($result);
}
+ // }}}
! function Write($msg) // {{{
{
echo "Debug: Socket::Write($msg)\n";
***************
*** 118,123 ****
return $result;
}
! function Read($num, &$buf, $type=PHP_BINARY_READ)
{
echo "Debug: Socket::Read($num, $type)\n";
--- 124,130 ----
return $result;
}
+ // }}}
! function Read($num, &$buf, $type=PHP_BINARY_READ) // {{{
{
echo "Debug: Socket::Read($num, $type)\n";
***************
*** 139,144 ****
return strlen($buf);
}
! function Close()
{
echo "Debug: Socket::Close()\n";
--- 146,152 ----
return strlen($buf);
}
+ // }}}
! function Close() // {{{
{
echo "Debug: Socket::Close()\n";
***************
*** 151,154 ****
--- 159,163 ----
return true;
}
+ // }}}
}
Index: Utility.php
===================================================================
RCS file: /cvsroot/phpfwconfsys/Daemon-Alpha/Utility.php,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Utility.php 5 Jan 2003 07:12:00 -0000 1.1
--- Utility.php 8 Jan 2003 04:39:51 -0000 1.2
***************
*** 1,16 ****
<?php
! function array_swap(&$array, $ind1, $ind2)
{
$tmp = &$array[$ind1];
$array[$ind1] = &$array[$ind2];
$array[$ind2] = &$tmp;
! }
! function dprint($str)
{
$pid = posix_getpid();
echo "DBG: ($pid): $str\n";
! }
--- 1,16 ----
<?php
! function array_swap(&$array, $ind1, $ind2) // {{{
{
$tmp = &$array[$ind1];
$array[$ind1] = &$array[$ind2];
$array[$ind2] = &$tmp;
! } // }}}
! function dprint($str) // {{{
{
$pid = posix_getpid();
echo "DBG: ($pid): $str\n";
! } // }}}
|
|
From: <pio...@us...> - 2003-01-08 02:50:57
|
Update of /cvsroot/phpfwconfsys/Daemon-Alpha
In directory sc8-pr-cvs1:/tmp/cvs-serv379
Modified Files:
Config.php Daemon.Class.php Server.Class.php Socket.Class.php
Added Files:
DaemonSession.Class.php
Log Message:
- split the Session handling to a new class
- added ability to register signal handers in the Server class
- SIGUSR1 now gracefuly kills a child
- children should not bail on a sys call interrupted error (since its
necesary to interrupt the sys calls in order to get signal handlers to work)
- basic structure in place to handle xml sessions
--- NEW FILE: DaemonSession.Class.php ---
<?php
/*
Error Codes:
100 - Invalid Session Start Tag
101 - Start/End Tag Mismatch
102 - Invalid Element
200 - XML Parse Error
*/
// the class responsible for the actual management of the transactions between the
// server and the client
class DaemonSession
{
var $Socket;
var $Daemon;
var $XMLParser;
var $State;
var $Error = false;
var $ElementStack = array();
var $ClientElementStack = array();
var $CharData = "";
function DaemonSession(&$daemon, &$sock)
{
$this->Socket =& $sock;
$this->Daemon =& $daemon;
$this->XMLParser = xml_parser_create();
xml_set_object($this->XMLParser, $this);
xml_set_element_handler($this->XMLParser,"Handle_StartElement","Handle_EndElement");
xml_set_character_data_handler($this->XMLParser,"Handle_CharData");
$this->State = "none";
}
function SocketWrite($msg)
{
$r = $this->Socket->Write($msg);
if ($r === false) $this->Error = true;
}
function SocketError($msg)
{
dprint("DaemonSession::SocketError($msg)");
dprint("Msg: $msg");
$this->Socket->Close();
$this->Daemon->Active = false;
}
function CloseClientStack()
{
foreach($this->ClientElementStack as $e) {
$this->SocketWrite("</$e>\n");
}
}
function XMLError()
{
dprint("DaemonSession::XMLError()");
$s = sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($this->XMLParser)),
xml_get_current_line_number($this->XMLParser));
$this->SendToClient("Error",$s,array( id=>200 ));
dprint($s);
}
function RcvData($data)
{
$r = xml_parse($this->XMLParser,$data);
if (!$r) { $this->XMLError(); return false; }
if ($this->Error) { return false; }
return true;
}
function EndOfData()
{
$r = xml_parse($this->XMLParser,"",true);
if (!$r) $this->XMLError();
}
function Handle_CharData($parser, $data)
{
$this->CharData .= $data;
}
function SendToClient($element, $data="", $args=array())
{
dprint("DaemonSession::SendToClient($element, $data, $args)");
print_r($args);
$shorttag = ($data=="")?true:false;
$out = "<".strtoupper($element)." ";
foreach ($args as $k=>$v) {
$out .= "$k=\"$v\" ";
}
if ($shorttag) {
$out .= "/>\n";
} else {
$out .= ">";
$out .= $data;
$out .= "</".strtoupper($element).">\n";
}
$this->SocketWrite($out);
dprint("Sent:\n$out");
}
function Handle_StartElement($parser, $name, $attrs)
{
dprint("Daemon::StartElement($parser, $name, $attrs)");
print_r($attrs);
while($once = true) {
$once = false;
if (count($this->ElementStack) == 0) {
// first element
// open a client session tag on the client side
$this->SocketWrite("<CLIENTSESSION>\n");
array_push($this->ClientElementStack,"CLIENTSESSION");
// make sure its SESSION
if ($name == "SESSION") {
$this->SendToClient("Message","\nAvailible Commands: shutdown, quit, echo\n");
}
else {
$this->SendToClient("Error","Invalid Session Start Tag", array( id=>100 ));
$this->Error = true;
}
break;
}
if ($this->ElementStack[0] == "SESSION") {
if ($name == "ECHO") {
$this->ChatData = "";
}
else if ($name == "SHUTDOWN") {
}
else if ($name == "QUIT") {
}
else {
$this->SendToClient("Error","Invalid Element", array( id=>102 ));
$this->Error = true;
return;
}
break;
}
}
array_push($this->ElementStack,$name);
dprint("ElementStack: ".implode(", ",$this->ElementStack));
}
function Handle_EndElement($parser, $name)
{
dprint("Daemon::EndElement($parser, $name)");
dprint("ElementStack: ".implode(", ",$this->ElementStack));
$last = array_pop($this->ElementStack);
if ($last != $name) {
// mismatched start/end tags
$this->SendToClient("Error","Mismatched Start/End Element Tags", array( id=>101 ));
$this->Error = true;
return;
}
$LastIndex = count($this->ElementStack)-1;
dprint("LastIndex: $LastIndex");
if ($LastIndex == -1) {
// document element closed .. tell the parser its the end too
xml_parse($this->XMLParser,"",true);
}
if (($LastIndex == 0) && ($this->ElementStack[0] == "SESSION")) {
// valid place for elements rooting from session to end
if ($name == "ECHO") {
$this->SendToClient("Reply",$this->CharData);
}
if ($name == "QUIT") {
$this->Daemon->Active = false;
}
if ($name == "SHUTDOWN") {
posix_kill(posix_getppid(),SIGTERM);
}
}
}
function Close()
{
$this->CloseClientStack();
xml_parser_free($this->XMLParser);
}
}
?>
Index: Config.php
===================================================================
RCS file: /cvsroot/phpfwconfsys/Daemon-Alpha/Config.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Config.php 7 Jan 2003 13:31:19 -0000 1.3
--- Config.php 8 Jan 2003 02:50:54 -0000 1.4
***************
*** 17,21 ****
"Port" => -1, // TCP Port to bind to (ignored when domain is AF_UNIX)
"Address" => "/tmp/._phpFWConfigDaemon_", // the IP or path (in case of AF_UNIX) to bind to
! "PreforkCount" => 10 // number of processes to fork and maintain
);
--- 17,21 ----
"Port" => -1, // TCP Port to bind to (ignored when domain is AF_UNIX)
"Address" => "/tmp/._phpFWConfigDaemon_", // the IP or path (in case of AF_UNIX) to bind to
! "PreforkCount" => 1 // number of processes to fork and maintain
);
Index: Daemon.Class.php
===================================================================
RCS file: /cvsroot/phpfwconfsys/Daemon-Alpha/Daemon.Class.php,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Daemon.Class.php 7 Jan 2003 13:31:19 -0000 1.1
--- Daemon.Class.php 8 Jan 2003 02:50:54 -0000 1.2
***************
*** 7,10 ****
--- 7,11 ----
include_once("SocketClone.Class.php");
include_once("Server.Class.php");
+ include_once("DaemonSession.Class.php");
class Daemon
***************
*** 13,18 ****
var $Server;
var $DaemonSettings;
- var $CharData = "";
var $ChildSock;
function Daemon($settings)
--- 14,19 ----
var $Server;
var $DaemonSettings;
var $ChildSock;
+ var $Session;
function Daemon($settings)
***************
*** 55,128 ****
}
! function Handle_CharData($parser, $data)
! {
! $this->CharData .= $data;
! }
!
! function Handle_StartElement($parser, $name, $attrs)
! {
! dprint("Daemon::StartElement($parser, $name, $attrs)");
! print_r($attrs);
!
! if ($name == "ECHO") {
! xml_set_character_data_handler($parser,"Handle_CharData");
! $this->CharData = "";
! }
!
! }
!
! function Handle_EndElement($parser, $name)
{
! dprint("Daemon::EndElement($parser, $name)");
! if ($name == "SHUTDOWN") {
! posix_kill(posix_getppid(),SIGTERM);
! }
! if ($name == "QUIT") {
! $this->Active = false;
! }
! if ($name == "ECHO") {
! xml_set_character_data_handler($parser,"");
! $this->ChildSock->Write("<Result>".$this->CharData."</Result>");
! }
}
function HandleConnection($Sock)
{
$this->ChildSock =& $Sock;
- $XML = xml_parser_create();
- xml_set_object($XML,$this);
- xml_set_element_handler($XML,"Handle_StartElement","Handle_EndElement");
-
- $msg = "<Greeting>\nAvailible Commands: shutdown, quit, echo\n</Greeting>\n";
- $r = $Sock->Write($msg);
- if ($r === false) { $Sock->Close(); return false; }
$this->Active = true;
while ($this->Active) {
$len = $Sock->Read(2048, $buf);
// Error Occured
! if ($len === false) { xml_parser_free($XML); return false; }
// End of Communication
if ($len == 0) {
! xml_parse($XML,"",true);
break;
}
echo "Client: $buf";
! $r = xml_parse($XML,$buf);
if (!$r) {
! $s = sprintf("XML error: %s at line %d",
! xml_error_string(xml_get_error_code($XML)),
! xml_get_current_line_number($XML));
! $e = "<Error>$s</Error>";
! $Sock->Write($e);
! dprint($s);
break;
}
}
! xml_parser_free($XML);
return true;
}
--- 56,109 ----
}
! function Hook_SIGUSR1()
{
! dprint("Daemon::Hook_SIGUSR1()");
! $this->Active = false;
}
function HandleConnection($Sock)
{
+ dprint("Daemon::HandleConnection(&$Sock)");
$this->ChildSock =& $Sock;
$this->Active = true;
+ $this->Session = new DaemonSession(&$this, &$Sock);
+
+ $this->Server->AddHook(SIGUSR1,array(&$this,"Hook_SIGUSR1"));
while ($this->Active) {
$len = $Sock->Read(2048, $buf);
+ $errno = $Sock->GetLastErrorNumber();
+
// Error Occured
! if ( $len == false ) {
! $errno = $Sock->GetLastErrorNumber();
! if ($errno != 4) {
! // ignoring error 4 (interrupted system call)
! $this->Session->Close();
! return false;
! } else {
! $len = -1;
! $buf = "";
! }
! }
// End of Communication
if ($len == 0) {
! // end of communication
! $this->Session->EndOfData();
break;
}
echo "Client: $buf";
!
! $r = $this->Session->RcvData($buf);
if (!$r) {
! dprint("Session->RcvData() failed!");
break;
}
}
! $this->Session->Close();
return true;
}
Index: Server.Class.php
===================================================================
RCS file: /cvsroot/phpfwconfsys/Daemon-Alpha/Server.Class.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Server.Class.php 7 Jan 2003 13:31:19 -0000 1.2
--- Server.Class.php 8 Jan 2003 02:50:54 -0000 1.3
***************
*** 13,16 ****
--- 13,17 ----
var $Running = true;
var $ChildSock = null;
+ var $SIGNALHooks = array();
function Server($socket, &$handler, $prefork=10)
***************
*** 41,44 ****
--- 42,57 ----
}
+ function AddHook($sig, $handler)
+ {
+ @$this->SIGNALHooks[$sig] = $handler;
+ }
+
+ function RemoveHook($sig)
+ {
+ if (isset($this->SIGNALHooks[$sig])) {
+ $this->SIGNALHooks[$sig] = null;
+ }
+ }
+
function Sentinel()
{
***************
*** 88,91 ****
--- 101,121 ----
}
break;
+ case SIGUSR1:
+ // graceful shutdown
+ break;
+ }
+ if (isset($this->SIGNALHooks[$sig])) {
+ $handler =& $this->SIGNALHooks[$sig];
+ // call the hook
+ if (is_array($handler)) {
+ // object ref
+ $obj = &$handler[0];
+ $func = $handler[1];
+ $obj->$func();
+ } else {
+ $func = $handler;
+ $func();
+ }
+
}
}
***************
*** 107,110 ****
--- 137,142 ----
dprint("Installing Child SIGTERM Handler...");
pcntl_signal(SIGTERM,array(&$this,"Child_Handler"),false);
+ dprint("Installing Child SIGUSR1 Handler...");
+ pcntl_signal(SIGUSR1,array(&$this,"Child_Handler"),false);
$this->StartListen();
***************
*** 182,186 ****
dprint("Server::Shutdown()");
$this->Running = false;
! $this->KillChildren(SIGTERM,true);
}
--- 214,218 ----
dprint("Server::Shutdown()");
$this->Running = false;
! $this->KillChildren(SIGUSR1,true);
}
Index: Socket.Class.php
===================================================================
RCS file: /cvsroot/phpfwconfsys/Daemon-Alpha/Socket.Class.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Socket.Class.php 7 Jan 2003 13:31:19 -0000 1.2
--- Socket.Class.php 8 Jan 2003 02:50:54 -0000 1.3
***************
*** 39,42 ****
--- 39,48 ----
}
+ function GetLastErrorNumber()
+ {
+ $errno = socket_last_error($this->Socket);
+ return $errno;
+ }
+
function Bind($address, $port = -1)
{
|
|
From: <pio...@us...> - 2003-01-07 14:10:39
|
Update of /cvsroot/phpfwconfsys/Experimental In directory sc8-pr-cvs1:/tmp/cvs-serv17250 Modified Files: tables.sql Log Message: syncmail works like a charm Index: tables.sql =================================================================== RCS file: /cvsroot/phpfwconfsys/Experimental/tables.sql,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** tables.sql 7 Jan 2003 13:58:54 -0000 1.2 --- tables.sql 7 Jan 2003 14:10:35 -0000 1.3 *************** *** 12,14 **** ); ! #test --- 12,14 ---- ); ! |
|
From: <pio...@us...> - 2003-01-07 13:58:58
|
Update of /cvsroot/phpfwconfsys/Experimental In directory sc8-pr-cvs1:/tmp/cvs-serv12880 Modified Files: tables.sql Log Message: testing syncmail Index: tables.sql =================================================================== RCS file: /cvsroot/phpfwconfsys/Experimental/tables.sql,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** tables.sql 10 Dec 2001 07:53:49 -0000 1.1 --- tables.sql 7 Jan 2003 13:58:54 -0000 1.2 *************** *** 12,13 **** --- 12,14 ---- ); + #test |
|
From: SourceForge.net <no...@so...> - 2003-01-07 13:32:22
|
Task #52193 has been updated. Project: phpFWConfigSystem Subproject: Firewall Control Daemon Summary: Sample TCP/IP Listner program Complete: 100% Status: Closed Authority : piotrbanasik Assigned to: piotrbanasik Description: Make a sample program that accepts a TCP/IP connection Follow-Ups: ------------------------------------------------------- Date: 2002-04-13 22:54 By: piotrbanasik Comment: started looking into making the daemon in PHP ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=52193&group_id=31936&group_project_id=18923 |
|
From: SourceForge.net <no...@so...> - 2003-01-07 13:31:51
|
Task #52193 has been updated. Project: phpFWConfigSystem Subproject: Firewall Control Daemon Summary: Sample TCP/IP Listner program Complete: 100% Status: Open Authority : piotrbanasik Assigned to: piotrbanasik Description: Make a sample program that accepts a TCP/IP connection Follow-Ups: ------------------------------------------------------- Date: 2002-04-13 22:54 By: piotrbanasik Comment: started looking into making the daemon in PHP ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=52193&group_id=31936&group_project_id=18923 |
|
From: <no...@so...> - 2002-04-14 05:54:35
|
Task #52193 has been updated. Project: phpFWConfigSystem Subproject: Firewall Control Daemon Summary: Sample TCP/IP Listner program Complete: 25% Status: Open Authority : piotrbanasik Assigned to: piotrbanasik Description: Make a sample program that accepts a TCP/IP connection Follow-Ups: ------------------------------------------------------- Date: 2002-04-13 22:54 By: piotrbanasik Comment: started looking into making the daemon in PHP ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=52193&group_id=31936&group_project_id=18923 |
|
From: <no...@so...> - 2002-04-14 04:37:34
|
Task #52192 has been updated. Project: phpFWConfigSystem Subproject: Firewall Control Daemon Summary: Research Linux TCP/IP Sockets Complete: 100% Status: Closed Authority : piotrbanasik Assigned to: piotrbanasik Description: Figure out how to make a listening socket, how to reply to it, etc ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=52192&group_id=31936&group_project_id=18923 |
|
From: <no...@so...> - 2002-04-14 04:36:59
|
Task #52192 has been updated. Project: phpFWConfigSystem Subproject: Firewall Control Daemon Summary: Research Linux TCP/IP Sockets Complete: 100% Status: Open Authority : piotrbanasik Assigned to: piotrbanasik Description: Figure out how to make a listening socket, how to reply to it, etc ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=52192&group_id=31936&group_project_id=18923 |
|
From: <no...@so...> - 2002-04-14 04:00:24
|
Task #35895 has been updated. Project: phpFWConfigSystem Subproject: Preliminary Planning Summary: Get this thing rolling.. Complete: 50% Status: Open Authority : piotrbanasik Assigned to: piotrbanasik Description: plan this out, get some proper docs out and start working on it on a local tree to get the core of it drafted. Follow-Ups: ------------------------------------------------------- Date: 2002-04-13 21:00 By: piotrbanasik Comment: I started working on the ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=35895&group_id=31936&group_project_id=12362 |
|
From: <no...@so...> - 2002-04-14 03:59:33
|
Task #52194 has been updated. Project: phpFWConfigSystem Subproject: Firewall Control Daemon Summary: Research what should be used as the format for the sessions Complete: 0% Status: Open Authority : piotrbanasik Assigned to: nobody Description: Options right now are between token or endline seperated text and XML ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=52194&group_id=31936&group_project_id=18923 |
|
From: <no...@so...> - 2002-04-14 03:59:24
|
Task #52193 has been updated. Project: phpFWConfigSystem Subproject: Firewall Control Daemon Summary: Sample TCP/IP Listner program Complete: 25% Status: Open Authority : piotrbanasik Assigned to: piotrbanasik Description: Make a sample program that accepts a TCP/IP connection ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=52193&group_id=31936&group_project_id=18923 |
|
From: <no...@so...> - 2002-04-14 03:59:11
|
Task #52194 has been updated. Project: phpFWConfigSystem Subproject: Firewall Control Daemon Summary: Research what should be used as the format for the sessions Complete: 0% Status: Open Authority : piotrbanasik Assigned to: nobody Description: Options right now are between token or endline seperated text and XML ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=52194&group_id=31936&group_project_id=18923 |
|
From: <no...@so...> - 2002-04-14 03:58:51
|
Task #52195 has been updated. Project: phpFWConfigSystem Subproject: Firewall Control Daemon Summary: Implement a sample communcation layer Complete: 0% Status: Open Authority : piotrbanasik Assigned to: nobody Description: whatever was decided on in task 52194 .. make it work for the deamon ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=52195&group_id=31936&group_project_id=18923 |
|
From: <no...@so...> - 2002-04-14 03:57:30
|
Task #52194 has been updated. Project: phpFWConfigSystem Subproject: Firewall Control Daemon Summary: Research what should be used as the format for the sessions Complete: 0% Status: Open Authority : piotrbanasik Assigned to: piotrbanasik Description: Options right now are between token or endline seperated text and XML ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=52194&group_id=31936&group_project_id=18923 |
|
From: <no...@so...> - 2002-04-14 03:55:02
|
Task #52192 has been updated. Project: phpFWConfigSystem Subproject: Firewall Control Daemon Summary: Research Linux TCP/IP Sockets Complete: 75% Status: Open Authority : piotrbanasik Assigned to: piotrbanasik Description: Figure out how to make a listening socket, how to reply to it, etc ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=52192&group_id=31936&group_project_id=18923 |
|
From: <no...@so...> - 2002-04-14 03:54:36
|
Task #52193 has been updated. Project: phpFWConfigSystem Subproject: Firewall Control Daemon Summary: Sample TCP/IP Listner program Complete: 0% Status: Open Authority : piotrbanasik Assigned to: piotrbanasik Description: Make a sample program that accepts a TCP/IP connection ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=52193&group_id=31936&group_project_id=18923 |
|
From: <no...@so...> - 2002-04-14 03:53:58
|
Task #52192 has been updated. Project: phpFWConfigSystem Subproject: Firewall Control Daemon Summary: Research Linux TCP/IP Sockets Complete: 0% Status: Open Authority : piotrbanasik Assigned to: piotrbanasik Description: Figure out how to make a listening socket, how to reply to it, etc ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=52192&group_id=31936&group_project_id=18923 |
|
From: <no...@so...> - 2001-12-10 19:02:42
|
Task #35895 has been updated. Project: phpFWConfigSystem Subproject: Preliminary Planning Summary: Get this thing rolling.. Complete: 15% Status: Open Authority : piotrbanasik Assigned to: piotrbanasik Description: plan this out, get some proper docs out and start working on it on a local tree to get the core of it drafted. ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=35895&group_id=31936&group_project_id=12362 |
|
From: Piotr B. <pi...@t-...> - 2001-08-08 20:58:04
|
boo! |