mirror of
https://github.com/xcat2/confluent.git
synced 2025-01-27 19:37:57 +00:00
Fix socket test case to work multiple times
This commit is contained in:
parent
7f572fd164
commit
9855f17d58
61
bin/confetty
Executable file
61
bin/confetty
Executable file
@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import optparse
|
||||
import socket
|
||||
import ssl
|
||||
import sys
|
||||
|
||||
def parseservervalue(serverstring):
|
||||
if serverstring.find(']:') != -1:
|
||||
server, port = serverstring[1:].split(']:')
|
||||
elif serverstring[0] == '[':
|
||||
server = serverstring[1:-1]
|
||||
port = 4001
|
||||
elif -1 != opts.server.find(':'):
|
||||
server, port = opts.server.split(":")
|
||||
else:
|
||||
server = serverstring
|
||||
port = 4001
|
||||
return (server, port)
|
||||
|
||||
|
||||
def connect_tls_server(serverstring):
|
||||
host, port = parseservervalue(serverstring)
|
||||
for res in socket.getaddrinfo(host, port, socket.AF_UNSPEC, socket.SOCK_STREAM):
|
||||
af, socktype, proto, cononname, sa = res
|
||||
try:
|
||||
server = socket.socket(af, socktype, proto)
|
||||
except:
|
||||
server = None
|
||||
continue
|
||||
try:
|
||||
server.settimeout(5)
|
||||
server.connect(sa)
|
||||
except:
|
||||
server.close()
|
||||
server = None
|
||||
continue
|
||||
break
|
||||
if server is None:
|
||||
sys.stderr.write("Failed to connect to %s\n" % serverstring)
|
||||
sys.exit(1)
|
||||
secserver = ssl.wrap_socket(server)
|
||||
return secserver
|
||||
|
||||
parser = optparse.OptionParser()
|
||||
parser.add_option("-s", "--server", dest="server",
|
||||
help="TLS server to connect to", metavar="SERVER:PORT")
|
||||
parser.add_option("-u", "--unixsocket", dest="unixsock",
|
||||
help="TLS server to connect to", metavar="UNIXDOMAINSOCKET")
|
||||
opts, args = parser.parse_args()
|
||||
server = None
|
||||
if opts.server: # going over a TLS network
|
||||
server = connect_tls_server(opts.server)
|
||||
|
||||
#Next stop, reading and writing from whichever of stdin and server goes first.
|
||||
#see pyghmi code for solconnect.py
|
||||
|
||||
print server.read()
|
||||
server.shutdown(socket.SHUT_RDWR)
|
||||
server.close()
|
||||
|
@ -113,7 +113,9 @@ class ConsoleSession(object):
|
||||
self.reghdl = _handled_consoles[node].register_rcpt(self.got_data)
|
||||
else:
|
||||
self.reghdl = _handled_consoles[node].register_rcpt(datacallback)
|
||||
datacallback(_handled_consoles[node].get_recent())
|
||||
recdata = _handled_consoles[node].get_recent()
|
||||
if recdata:
|
||||
datacallback(recdata)
|
||||
|
||||
def destroy(self):
|
||||
_handled_consoles[self.node].unregister_rcpt(self.reghdl)
|
||||
|
@ -18,11 +18,14 @@ def sessionhdl(connection):
|
||||
datacallback=connection.write)
|
||||
while (1):
|
||||
data = connection.read()
|
||||
if not data:
|
||||
return
|
||||
consession.write(data)
|
||||
|
||||
|
||||
def _handler():
|
||||
plainsocket = socket.socket()
|
||||
plainsocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
srv = ssl.wrap_socket(plainsocket, keyfile="/etc/confluent/privkey.pem",
|
||||
certfile="/etc/confluent/srvcert.pem",
|
||||
ssl_version=ssl.PROTOCOL_TLSv1,
|
||||
|
Loading…
x
Reference in New Issue
Block a user