fix: Custom function to detect rabbitMQ servers

This commit is contained in:
cr0hn
2016-03-18 13:39:18 +01:00
parent 7013d8f51a
commit 91617ea840

View File

@@ -38,6 +38,29 @@ patch_transport()
log = logging.getLogger() log = logging.getLogger()
# ----------------------------------------------------------------------
def is_rabbit(host, port, user, password, config):
"""
Custom detection of RabbitMQ servers
"""
s = socket.socket()
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.connect((host, int(port)))
s.send(b"A\r\n\r\n\r\n\r\n\r\n\r\n")
data = (s.recv(1000000))
if b"AMQP" in data:
# Oks, its a RabbitMQ!
try:
brute_amqp(host, port, user, password)
return True
except socket.timeout:
raise AuthRequired()
else:
return False
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
def get_server_type(config): def get_server_type(config):
""" """
@@ -53,7 +76,7 @@ def get_server_type(config):
""" """
handlers = { handlers = {
'Redis': brute_redis, 'Redis': brute_redis,
'RabbitMQ': brute_amqp, 'RabbitMQ': is_rabbit,
'ZeroMQ': brute_zmq 'ZeroMQ': brute_zmq
} }