diff --git a/setup.py b/setup.py index f7dd4ac..689083a 100644 --- a/setup.py +++ b/setup.py @@ -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', diff --git a/src/PyserSSH/server.py b/src/PyserSSH/server.py index 10fe5bf..46dd80d 100644 --- a/src/PyserSSH/server.py +++ b/src/PyserSSH/server.py @@ -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() diff --git a/src/PyserSSH/system/info.py b/src/PyserSSH/system/info.py index 5c7509f..1df12e2 100644 --- a/src/PyserSSH/system/info.py +++ b/src/PyserSSH/system/info.py @@ -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" diff --git a/src/PyserSSH/system/inputsystem.py b/src/PyserSSH/system/inputsystem.py index 868182b..5c3a56b 100644 --- a/src/PyserSSH/system/inputsystem.py +++ b/src/PyserSSH/system/inputsystem.py @@ -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]) \ No newline at end of file + return False \ No newline at end of file