X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=ctdlphp%2Fsessionproxy.php;h=ee4703eb63b8052054d3d3f694e9dc568674ff5c;hb=2642bdc0ac104857a0026d0c9b0b8f271ad4d9a2;hp=d9977a636a44bfe3cf7521607d2eea8829f93d37;hpb=82b5392b71d56d75b84e76599004391dd7f16d39;p=citadel.git diff --git a/ctdlphp/sessionproxy.php b/ctdlphp/sessionproxy.php index d9977a636..ee4703eb6 100755 --- a/ctdlphp/sessionproxy.php +++ b/ctdlphp/sessionproxy.php @@ -107,9 +107,26 @@ do { if ($msgsock >= 0) do { $buf = sock_gets($msgsock); if ($buf !== false) { - fwrite($ctdlsock, $buf . "\n", (strlen($buf)+1) ); + if (!fwrite($ctdlsock, $buf . "\n")) { + fclose($ctdlsock); + socket_close($sock); + system("/bin/rm -f " . $sockname); + exit(8); + } $talkback = fgets($ctdlsock, 4096); + if (!$talkback) { + fclose($ctdlsock); + socket_close($sock); + system("/bin/rm -f " . $sockname); + exit(9); + } socket_write($msgsock, $talkback, strlen($talkback)); + + if (substr($talkback, 0, 1) == "1") do { + $buf = fgets($ctdlsock, 4096); + socket_write($msgsock, $buf, strlen($buf)); + } while ($buf != "000\n"); + } } while($buf !== false); @@ -118,7 +135,7 @@ do { } while (true); socket_close($sock); -socket_close($ctdlsock); +fclose($ctdlsock); system("/bin/rm -f " . $sockname); exit(0);