fix loop disconnect

This commit is contained in:
dharm pimsen 2025-01-04 13:39:07 +07:00
parent a3f1b50303
commit 3a751972c1
4 changed files with 11 additions and 8 deletions

View File

@ -2,7 +2,7 @@ from setuptools import setup, find_packages
setup(
name='PyserSSH',
version='5.1.2',
version='5.1.3',
license='MIT',
author='DPSoftware Foundation',
author_email='contact@damp11113.xyz',

View File

@ -240,8 +240,12 @@ class Server:
if echo:
channel.send(replace_enter_with_crlf(self.client_handlers[channel.getpeername()]["prompt"] + " "))
while True:
expect(self, self.client_handlers[channel.getpeername()], echo)
isConnect = True
while isConnect:
isConnect = expect(self, self.client_handlers[channel.getpeername()], echo)
self._handle_event("disconnected", self.client_handlers[peername])
except KeyboardInterrupt:
self._handle_event("disconnected", self.client_handlers[peername])
channel.close()

View File

@ -25,7 +25,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
"""
version = "5.1.1"
version = "5.1.3"
system_banner = (
f"\033[36mPyserSSH V{version} \033[0m"

View File

@ -212,8 +212,7 @@ def expect(self, client, echo=True):
finally:
try:
if not byte:
logger.info(f"{peername} is disconnected")
self._handle_event("disconnected", self.client_handlers[peername])
return False
return True
except:
logger.info(f"{peername} is disconnected")
self._handle_event("disconnected", self.client_handlers[peername])
return False