X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=ctdlphp%2Fsessionproxy.php;h=22f4d4a0eddc1272e5e210b17088de6b85c2bc6e;hb=fa2dd842abb5feedea3e2253255722fcaecc3c6f;hp=59b84c0f8af081449858c6ac808f8b1a4f9d3754;hpb=b3ce7e70991dcb568968d653a927633641feffc3;p=citadel.git diff --git a/ctdlphp/sessionproxy.php b/ctdlphp/sessionproxy.php index 59b84c0f8..22f4d4a0e 100755 --- a/ctdlphp/sessionproxy.php +++ b/ctdlphp/sessionproxy.php @@ -14,14 +14,24 @@ include "config_ctdlclient.php"; // Copyright (c) 2003 by Art Cancro // This program is released under the terms of the GNU General Public License. +global $msgsock; // sock_gets() -- reads one line of text from a socket // -$logfd = +if (CITADEL_DEBUG_PROXY) +{ + define_syslog_variables(); + openlog("sessionproxylog", LOG_PID | LOG_PERROR, LOG_LOCAL0); +} function sock_gets($sock) { + global $msgsock; socket_clear_error($msgsock); $buf = socket_read($sock, 4096, PHP_NORMAL_READ); - if (socket_last_error($buf)) return false; + if (CITADEL_DEBUG_PROXY) + { + syslog(LOG_DEBUG, "gets Read: ".$buf); + } + if (socket_last_error($sock)) return false; if (preg_match("'\n$'s", $buf)) { $buf = substr($buf, 0, strpos($buf, "\n")); @@ -33,7 +43,6 @@ function sock_gets($sock) { - // *** Start of main program *** error_reporting(E_ALL); @@ -129,6 +138,8 @@ do { if ($msgsock >= 0) do { $buf = sock_gets($msgsock); if ($buf !== false) { +// fwrite($logfd, ">>"); +// fwride($logfd, $buf); if (!fwrite($ctdlsock, $buf . "\n")) { fclose($ctdlsock); socket_close($sock); @@ -136,7 +147,15 @@ do { exit(9); } $talkback = fgets($ctdlsock, 4096); + if (CITADEL_DEBUG_PROXY) + { + syslog(LOG_DEBUG, "talkback: ".$talkback); + } if (!$talkback) { + if (CITADEL_DEBUG_PROXY) + { + syslog(LOG_ERROR, "closing socket."); + } fclose($ctdlsock); socket_close($sock); system("/bin/rm -f " . $sockname); @@ -144,6 +163,21 @@ do { } socket_write($msgsock, $talkback, strlen($talkback)); + // BINARY_FOLLOWS mode + if (substr($talkback, 0, 1) == "6") { + $bytes = intval(substr($talkback, 4)); + if (CITADEL_DEBUG_PROXY) + { + syslog(LOG_DEBUG, "reading ".$bytes." bytes from server"); + } + $buf = fread($ctdlsock, $bytes); + if (CITADEL_DEBUG_PROXY) + { + syslog(LOG_DEBUG, "Read: ".$buf); + } + socket_write($msgsock, $buf, $bytes); + } + // LISTING_FOLLOWS mode if (substr($talkback, 0, 1) == "1") do { $buf = fgets($ctdlsock, 4096); @@ -156,13 +190,6 @@ do { } } while ($buf != "000\n"); - // BINARY_FOLLOWS mode - if (substr($talkback, 0, 1) == "6") { - $bytes = intval(substr($talkback, 4)); - $buf = fread($ctdlock, $bytes); - socket_write($msgsock, $buf, $bytes); - } - // SEND_LISTING mode if (substr($talkback, 0, 1) == "4") do { socket_clear_error($msgsock);