Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
C
coco
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
coco
Commits
1ee793fa
Commit
1ee793fa
authored
Mar 14, 2018
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Debug] GC debug
parent
127fa8b1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
20 additions
and
6 deletions
+20
-6
interactive.py
coco/interactive.py
+4
-0
models.py
coco/models.py
+2
-2
recorder.py
coco/recorder.py
+1
-1
session.py
coco/session.py
+5
-2
sshd.py
coco/sshd.py
+8
-1
No files found.
coco/interactive.py
View file @
1ee793fa
...
...
@@ -313,6 +313,7 @@ class InteractiveServer:
break
except
socket
.
error
:
break
print
(
"Interact function end"
)
self
.
close
()
def
interact_async
(
self
):
...
...
@@ -323,3 +324,6 @@ class InteractiveServer:
def
close
(
self
):
self
.
app
.
remove_client
(
self
.
client
)
logger
.
info
(
"Exit interactive server"
)
def
__del__
(
self
):
print
(
"Interactive class been gc"
)
coco/models.py
View file @
1ee793fa
...
...
@@ -75,7 +75,7 @@ class Client:
return
"<
%
s from
%
s:
%
s>"
%
(
self
.
user
,
self
.
addr
[
0
],
self
.
addr
[
1
])
def
__del__
(
self
):
logger
.
info
(
"GC client object: {}"
.
format
(
self
))
print
(
"GC client object: {}"
.
format
(
self
))
class
Server
:
...
...
@@ -187,7 +187,7 @@ class Server:
return
"<To: {}>"
.
format
(
str
(
self
.
asset
))
def
__del__
(
self
):
logger
.
info
(
"GC server object: {}
"
.
format
(
self
))
print
(
"Server object has been gc
"
.
format
(
self
))
class
WSProxy
:
...
...
coco/recorder.py
View file @
1ee793fa
...
...
@@ -179,7 +179,7 @@ class ServerReplayRecorder(ReplayRecorder):
return
False
def
__del__
(
self
):
print
(
"
{} has been gc"
.
format
(
self
)
)
print
(
"
Server recorder has been gc"
)
del
self
.
file
...
...
coco/session.py
View file @
1ee793fa
...
...
@@ -107,7 +107,10 @@ class Session:
def
terminate
(
self
):
msg
=
b
"Terminate by administrator
\r\n
"
self
.
client
.
send
(
msg
)
try
:
self
.
client
.
send
(
msg
)
except
OSError
:
pass
self
.
close
()
def
bridge
(
self
):
...
...
@@ -186,4 +189,4 @@ class Session:
return
self
.
id
def
__del__
(
self
):
logger
.
info
(
"Session {} object has been GC"
.
format
(
self
.
id
)
)
print
(
"Session object been gc"
)
coco/sshd.py
View file @
1ee793fa
...
...
@@ -51,6 +51,7 @@ class SSHServer:
thread
.
start
()
except
Exception
as
e
:
logger
.
error
(
"Start SSH server error: {}"
.
format
(
e
))
print
(
"SSH Server stop"
)
def
handle_connection
(
self
,
sock
,
addr
):
transport
=
paramiko
.
Transport
(
sock
,
gss_kex
=
False
)
...
...
@@ -72,10 +73,15 @@ class SSHServer:
return
while
True
:
if
not
transport
.
is_active
():
logger
.
debug
(
"Transport closed"
)
break
chan
=
transport
.
accept
()
server
.
event
.
wait
(
5
)
if
chan
is
None
:
continue
server
.
event
.
wait
(
5
)
if
not
server
.
event
.
is_set
():
logger
.
warning
(
"Client not request a valid request, exiting"
)
return
...
...
@@ -94,6 +100,7 @@ class SSHServer:
if
request_type
==
'pty'
or
request_type
==
'x11'
:
logger
.
info
(
"Request type `pty`, dispatch to interactive mode"
)
InteractiveServer
(
self
.
app
,
client
)
.
interact
()
print
(
"Dispatch function end"
)
elif
request_type
==
'exec'
:
pass
elif
request_type
==
'subsystem'
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment