Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
strudel2_backend
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
hpc-team
strudel2_backend
Commits
1b09e75f
Commit
1b09e75f
authored
4 years ago
by
Chris Hines
Browse files
Options
Downloads
Patches
Plain Diff
cleanup some parts of twsproxy
parent
6a164d97
No related branches found
No related tags found
4 merge requests
!77
Revert "disable agressive kill and restart"
,
!37
Test
,
!36
Dev
,
!35
Dev
Pipeline
#11103
passed
4 years ago
Stage: build
Stage: deploy
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
runserver/__main__.py
+14
-8
14 additions, 8 deletions
runserver/__main__.py
twsproxy/__init__.py
+0
-49
0 additions, 49 deletions
twsproxy/__init__.py
twsproxy/server/__init__.py
+12
-8
12 additions, 8 deletions
twsproxy/server/__init__.py
with
26 additions
and
65 deletions
runserver/__main__.py
+
14
−
8
View file @
1b09e75f
...
...
@@ -3,11 +3,9 @@ def tesserver():
app
.
config
[
'
ENABLELAUNCH
'
]
=
True
from
flask_cors
import
CORS
,
cross_origin
CORS
(
app
,
supports_credentials
=
True
,
origin
=
"
*
"
)
print
(
"
try to run tesserver
"
)
app
.
run
(
host
=
'
localhost
'
,
debug
=
False
,
port
=
8080
)
print
(
'
app is running
'
)
def
tws
():
def
tws
(
stop
=
None
):
from
twsproxy
import
server
import
sys
import
os
...
...
@@ -19,21 +17,29 @@ def tws():
port
=
int
(
sys
.
argv
[
1
])
except
:
port
=
8090
server
=
server
.
TWSServer
(
port
,
5
)
logger
.
debug
(
"
initialised server object
"
)
server
=
server
.
TWSServer
(
port
,
5
,
stop
)
server
.
run
()
def
stopThreads
(
signum
,
frame
,
event
,
old_handler
):
import
logging
logger
=
logging
.
getLogger
()
event
.
set
()
if
callable
(
old_handler
):
old_handler
(
signum
,
frame
)
return
def
main
():
import
logging
import
signal
logging
.
basicConfig
(
filename
=
"
tes.log
"
,
format
=
"
%(asctime)s %(levelname)s:%(process)s: %(message)s
"
)
logger
=
logging
.
getLogger
()
logger
.
setLevel
(
logging
.
DEBUG
)
old_handler
=
signal
.
getsignal
(
signal
.
SIGINT
)
signal
.
signal
(
signal
.
SIGINT
,
lambda
x
,
y
:
stopThreads
(
x
,
y
,
stop
,
old_handler
))
import
threading
print
(
"
create thread
"
)
twsthread
=
threading
.
Thread
(
target
=
tws
)
stop
=
threading
.
Event
(
)
twsthread
=
threading
.
Thread
(
target
=
tws
,
args
=
[
stop
]
)
twsthread
.
start
()
print
(
"
thread started
"
)
tesserver
()
twsthread
.
join
()
...
...
This diff is collapsed.
Click to expand it.
twsproxy/__init__.py
+
0
−
49
View file @
1b09e75f
...
...
@@ -126,55 +126,6 @@ class TWSProxy(threading.Thread):
raise
RuntimeError
(
"
socket connection broken
"
)
totalsent
=
totalsent
+
sent
@staticmethod
def
twosocks
(
client
,
server
,
initshutdown
):
import
threading
logger
=
logging
.
getLogger
()
closed
=
False
clientopen
=
True
serveropen
=
True
shuttype
=
socket
.
SHUT_RD
while
serveropen
or
clientopen
:
r
,
w
,
e
=
select
.
select
([
client
,
server
],[],[],
TWSProxy
.
TIMEOUT
)
if
client
in
r
:
try
:
buff
=
client
.
recv
(
TWSProxy
.
MAXBUFF
)
msglength
=
len
(
buff
)
if
msglength
>
0
:
TWSProxy
.
reliablesend
(
server
,
buff
,
msglength
)
else
:
clientopen
=
False
server
.
shutdown
(
shuttype
)
except
:
clientopen
=
False
if
server
in
r
:
try
:
buff
=
server
.
recv
(
TWSProxy
.
MAXBUFF
)
msglength
=
len
(
buff
)
if
msglength
>
0
:
TWSProxy
.
reliablesend
(
client
,
buff
,
msglength
)
else
:
client
.
shutdown
(
shuttype
)
# print("server closed socket for reading")
serveropen
=
False
except
:
serveropen
=
False
# If the client has finished sending, and we've finished transmitting to the server
# The server may still have some data to transmit to the client
closed
=
False
while
not
closed
:
r
,
w
,
e
=
select
.
select
([
server
],[],[],
TWSProxy
.
TIMEOUT
)
buff
=
server
.
recv
(
TWSProxy
.
MAXBUFF
)
msglength
=
len
(
buff
)
if
msglength
>
0
:
try
:
TWSProxy
.
reliablesend
(
client
,
buff
,
msglength
)
except
BrokenPipeError
as
e
:
pass
else
:
closed
=
True
@staticmethod
def
sockcopy
(
src
,
dest
,
initshutdown
):
...
...
This diff is collapsed.
Click to expand it.
twsproxy/server/__init__.py
+
12
−
8
View file @
1b09e75f
...
...
@@ -4,24 +4,24 @@ import logging
class
TWSServer
:
import
socket
def
__init__
(
self
,
port
,
maxconn
):
def
__init__
(
self
,
port
,
maxconn
,
stop
=
None
):
self
.
port
=
port
print
(
'
init tws proxy
'
)
print
(
port
)
self
.
maxconn
=
maxconn
if
stop
is
None
:
self
.
stop
=
threading
.
Event
()
else
:
self
.
stop
=
stop
def
run
(
self
):
logger
=
logging
.
getLogger
()
serversocket
=
socket
.
socket
(
socket
.
AF_INET
,
socket
.
SOCK_STREAM
)
print
(
serversocket
)
serversocket
.
settimeout
(
5
)
#bind the socket to a public host,
# and a well-known port
for
port
in
range
(
self
.
port
,
self
.
port
+
1
):
try
:
print
(
'
try bind to {}
'
.
format
(
port
))
serversocket
.
bind
((
'
0.0.0.0
'
,
port
))
print
(
"
bind success
"
)
#become a server socket
serversocket
.
listen
(
self
.
maxconn
)
break
...
...
@@ -30,8 +30,11 @@ class TWSServer:
print
(
e
)
pass
openconnections
=
[]
while
1
:
(
clientsocket
,
address
)
=
serversocket
.
accept
()
while
not
self
.
stop
.
is_set
():
try
:
(
clientsocket
,
address
)
=
serversocket
.
accept
()
except
socket
.
timeout
:
continue
clientsocket
.
setblocking
(
True
)
tunnel
=
TWSProxy
(
clientsocket
)
tunnel
.
daemon
=
True
...
...
@@ -42,3 +45,4 @@ class TWSServer:
c
.
join
()
openconnections
.
remove
(
c
)
serversocket
.
close
()
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment