Fixes for Zmodem missed in bf3fce
This commit is contained in:
parent
4ba0551107
commit
5a1130d083
@ -288,6 +288,8 @@ abstract class Protocol
|
|||||||
else {
|
else {
|
||||||
Log::withContext(['pid'=>getmypid()]);
|
Log::withContext(['pid'=>getmypid()]);
|
||||||
|
|
||||||
|
Log::debug(sprintf('%s:* Client session starting',self::LOGKEY));
|
||||||
|
|
||||||
$this->session($client,(new Address));
|
$this->session($client,(new Address));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -921,8 +921,16 @@ final class EMSI extends BaseProtocol implements CRCInterface,ZmodemInterface
|
|||||||
$t1 = $this->client->timer_set(self::EMSI_HSTIMEOUT);
|
$t1 = $this->client->timer_set(self::EMSI_HSTIMEOUT);
|
||||||
$t2 = $this->client->timer_set(self::EMSI_RESEND_TO);
|
$t2 = $this->client->timer_set(self::EMSI_RESEND_TO);
|
||||||
|
|
||||||
|
$c = 0;
|
||||||
while (! $this->client->timer_expired($t1)) {
|
while (! $this->client->timer_expired($t1)) {
|
||||||
$ch = $this->client->read_ch(max( 1,min($this->client->timer_rest($t1),$this->client->timer_rest($t2))));
|
try {
|
||||||
|
$ch = $this->client->read_ch(max( 1,min($this->client->timer_rest($t1),$this->client->timer_rest($t2))));
|
||||||
|
|
||||||
|
} catch (SocketException $e) {
|
||||||
|
if ($c++ > 2)
|
||||||
|
return self::TIMEOUT;
|
||||||
|
}
|
||||||
|
|
||||||
if (static::DEBUG)
|
if (static::DEBUG)
|
||||||
Log::debug(sprintf('%s:- Got [%x] (%c)',self::LOGKEY,$ch,$ch));
|
Log::debug(sprintf('%s:- Got [%x] (%c)',self::LOGKEY,$ch,$ch));
|
||||||
|
|
||||||
@ -1193,7 +1201,7 @@ final class EMSI extends BaseProtocol implements CRCInterface,ZmodemInterface
|
|||||||
Log::debug(sprintf('%s:+ Start WAZOO Receive',self::LOGKEY));
|
Log::debug(sprintf('%s:+ Start WAZOO Receive',self::LOGKEY));
|
||||||
|
|
||||||
// @todo If the node is not defined in the DB node->address is NULL. Need to figure out how to handle those nodes.
|
// @todo If the node is not defined in the DB node->address is NULL. Need to figure out how to handle those nodes.
|
||||||
$rc = (new Zmodem)->zmodem_receive($this->client,$zap,$this->recv,$this->node->address,$this->force_queue);
|
$rc = (new Zmodem($this->setup))->zmodem_receive($this->client,$zap,$this->recv,$this->node->address,$this->force_queue);
|
||||||
|
|
||||||
return ($rc === self::RCDO || $rc === self::ERROR);
|
return ($rc === self::RCDO || $rc === self::ERROR);
|
||||||
}
|
}
|
||||||
@ -1217,7 +1225,7 @@ final class EMSI extends BaseProtocol implements CRCInterface,ZmodemInterface
|
|||||||
foreach ($this->node->aka_remote_authed as $ao) {
|
foreach ($this->node->aka_remote_authed as $ao) {
|
||||||
// Send mail
|
// Send mail
|
||||||
while ($this->send->mail($ao)) {
|
while ($this->send->mail($ao)) {
|
||||||
$z = new Zmodem;
|
$z = new Zmodem($this->setup);
|
||||||
|
|
||||||
if (! $z->zmodem_sendinit($this->client,$zap) && $this->send->togo_count)
|
if (! $z->zmodem_sendinit($this->client,$zap) && $this->send->togo_count)
|
||||||
$z->zmodem_sendfile($this->send,$this->node);
|
$z->zmodem_sendfile($this->send,$this->node);
|
||||||
@ -1225,7 +1233,7 @@ final class EMSI extends BaseProtocol implements CRCInterface,ZmodemInterface
|
|||||||
|
|
||||||
// Send files
|
// Send files
|
||||||
while ($this->send->files($ao)) {
|
while ($this->send->files($ao)) {
|
||||||
$z = new Zmodem;
|
$z = new Zmodem($this->setup);
|
||||||
|
|
||||||
if (! $z->zmodem_sendinit($this->client,$zap) && $this->send->togo_count)
|
if (! $z->zmodem_sendinit($this->client,$zap) && $this->send->togo_count)
|
||||||
$z->zmodem_sendfile($this->send,$this->node);
|
$z->zmodem_sendfile($this->send,$this->node);
|
||||||
|
@ -516,7 +516,9 @@ final class Zmodem extends Protocol implements CRCInterface,ZmodemInterface
|
|||||||
return $rc;
|
return $rc;
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
Log::error(sprintf('%s:! Error [%s]',self::LOGKEY,$e->getMessage()));
|
Log::error(sprintf('%s:! Error [%s]',self::LOGKEY,$e->getMessage()),['rc'=>$rc]);
|
||||||
|
|
||||||
|
return $rc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,6 +127,8 @@ final class SocketServer {
|
|||||||
if (($accept = socket_accept($this->server)) === FALSE)
|
if (($accept = socket_accept($this->server)) === FALSE)
|
||||||
throw new SocketException(SocketException::CANT_ACCEPT,socket_strerror(socket_last_error($this->server)));
|
throw new SocketException(SocketException::CANT_ACCEPT,socket_strerror(socket_last_error($this->server)));
|
||||||
|
|
||||||
|
Log::debug(sprintf('%s:* TCP Loop Start',self::LOGKEY));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$r = new SocketClient($accept);
|
$r = new SocketClient($accept);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user