Compare commits

...

2 Commits
5.1.2 ... main

Author SHA1 Message Date
b9e4bb5887 fix "can't disconnection" 2025-01-04 13:47:02 +07:00
3a751972c1 fix loop disconnect 2025-01-04 13:39:07 +07:00
4 changed files with 14 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.4',
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,14 @@ 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])
channel.close()
bh_session.close()
except KeyboardInterrupt: except KeyboardInterrupt:
self._handle_event("disconnected", self.client_handlers[peername]) self._handle_event("disconnected", self.client_handlers[peername])
channel.close() channel.close()
@ -252,6 +258,7 @@ class Server:
finally: finally:
self._handle_event("disconnected", self.client_handlers[peername]) self._handle_event("disconnected", self.client_handlers[peername])
channel.close() channel.close()
bh_session.close()
else: else:
if self.sftpena: if self.sftpena:
logger.info("user is sftp") logger.info("user is sftp")

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.4"
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])