2 ////////////////////////////////////////////////////////////////////////////////
4 // File: ecrc.php: ECR Daemon Client Library
5 // Description: Php Module interface to ecrd (ECR Daemon).
6 // Author: Andrew@DeFaria.com
7 // Created: Tue Feb 15 09:40:57 PST 2005
11 // (c) Copyright 2005, LynuxWorks, all rights reserved.
13 ////////////////////////////////////////////////////////////////////////////////
14 require_once "Net/Socket.php";
16 define ("SERVER", "lynx12");
17 define ("PORT", 1500);
20 $verbose = $_REQUEST [verbose];
21 $debug = $_REQUEST [debug];
23 function verbose ($msg) {
27 print "$msg<br>";
31 function debug ($msg) {
35 print "DEBUG: $msg<br>";
39 function Connect ($host, $port = 1500) {
42 debug ("Connect ($host, $port)");
44 $ecrserver = ConnectToServer ($host, $port);
46 if (is_object ($ecrserver)) {
47 verbose ("Connected to $host");
48 SendServerAck ($ecrserver);
54 function Disconnect () {
61 if ($command == "shutdown") {
62 $msg = "Disconnected from server - shutdown server";
65 $msg = "Disconnected from server";
67 SendServerCmd ($ecrserver, $command);
68 GetServerAck ($ecrserver);
70 $ecrserver->disconnect ();
74 function GetECRRecord ($ecr) {
79 debug ("ENTER GetECRRecord ($ecr)");
81 verbose ("Not connected to server yet!");
82 verbose ("Attempting connection to $default_server...");
83 if (!Connect (SERVER)) {
84 print "Unable to connect to server ". SERVER . "<br>";
89 SendServerCmd ($ecrserver, $ecr);
90 GetServerAck ($ecrserver);
93 verbose ("Getting all ECRs");
94 $fields = GetServerList ($ecrserver);
96 verbose ("Getting specific ECR $ecr");
97 $fields = GetServerResponse ($ecrserver);
100 SendServerAck ($ecrserver);
105 function Shutdown () {
108 verbose ("Sending disconnect command to server");
113 function ConnectToServer ($host, $port = 1500) {
114 $socket = new Net_Socket ();
116 debug ("Socket created... Attempting to connect to $host:$port");
117 // create a tcp connection to the specified host and port
118 if (@$socket->connect ($host, $port) == 1) {
119 verbose ("Socket $socket connected");
121 print "Unable to connect to server $host:$port!<br>";
128 function SendServerAck ($server) {
129 $server->write ("ACK" . "\n");
132 function GetServerAck ($server) {
133 while ($srvresp = $server->readLine ()) {
134 if ($srvresp == "ACK") {
137 verbose ("Received $srvresp from server - expected ACK");
141 function GetServerList ($server) {
144 while ($srvresp = $server->readLine ()) {
145 if ($srvresp == "ACK") {
149 if (preg_match ("/ECR.*was not found/", $srvresp)) {
152 array_push ($ecrs, $srvresp);
159 function GetServerResponse ($server) {
162 while ($srvresp = $server->readLine ()) {
163 if ($srvresp == "ACK") {
167 if (preg_match ("/ECR.*was not found/", $srvresp)) {
170 preg_match ("/(^\w+):\s+(.*)/s", $srvresp, $matches);
171 $value = str_replace ("\\n", "\n", $matches [2]);
172 $fields {$matches [1]} = $value;
177 } // GetServerResponse
179 function SendServerCmd ($server, $command) {
180 $server->write ($command . "\n");