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

View File

@ -240,8 +240,14 @@ 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])
channel.close()
bh_session.close()
except KeyboardInterrupt:
self._handle_event("disconnected", self.client_handlers[peername])
channel.close()
@ -252,6 +258,7 @@ class Server:
finally:
self._handle_event("disconnected", self.client_handlers[peername])
channel.close()
bh_session.close()
else:
if self.sftpena:
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.
"""
version = "5.1.1"
version = "5.1.4"
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