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( setup(
name='PyserSSH', name='PyserSSH',
version='5.1.2', version='5.1.3',
license='MIT', license='MIT',
author='DPSoftware Foundation', author='DPSoftware Foundation',
author_email='contact@damp11113.xyz', author_email='contact@damp11113.xyz',

View File

@ -240,8 +240,12 @@ class Server:
if echo: if echo:
channel.send(replace_enter_with_crlf(self.client_handlers[channel.getpeername()]["prompt"] + " ")) channel.send(replace_enter_with_crlf(self.client_handlers[channel.getpeername()]["prompt"] + " "))
while True: isConnect = True
expect(self, self.client_handlers[channel.getpeername()], echo)
while isConnect:
isConnect = expect(self, self.client_handlers[channel.getpeername()], echo)
self._handle_event("disconnected", self.client_handlers[peername])
except KeyboardInterrupt: except KeyboardInterrupt:
self._handle_event("disconnected", self.client_handlers[peername]) self._handle_event("disconnected", self.client_handlers[peername])
channel.close() 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. SOFTWARE.
""" """
version = "5.1.1" version = "5.1.3"
system_banner = ( system_banner = (
f"\033[36mPyserSSH V{version} \033[0m" f"\033[36mPyserSSH V{version} \033[0m"

View File

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