From ba05d0845eb9c6c53ecc65e49b249616925ea744 Mon Sep 17 00:00:00 2001 From: Ask Solem Date: Fri, 17 Apr 2015 14:45:46 +0100 Subject: [PATCH] pyamqp/librabbitmq now uses 5671 as default port if SSL is enabled. Closes #459 --- kombu/transport/librabbitmq.py | 16 +++++++++++++--- kombu/transport/pyamqp.py | 17 +++++++++++++---- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/kombu/transport/librabbitmq.py b/kombu/transport/librabbitmq.py index 076d2da4..dbf769bf 100644 --- a/kombu/transport/librabbitmq.py +++ b/kombu/transport/librabbitmq.py @@ -27,6 +27,7 @@ W_VERSION = """ so make sure you are using librabbitmq 1.5 when using rabbitmq > 3.3 """ DEFAULT_PORT = 5672 +DEFAULT_SSL_PORT = 5671 NO_SSL_ERROR = """\ ssl not supported by librabbitmq, please use pyamqp:// or stunnel\ @@ -71,6 +72,8 @@ class Transport(base.Transport): Connection = Connection default_port = DEFAULT_PORT + default_ssl_port = DEFAULT_SSL_PORT + connection_errors = ( base.Transport.connection_errors + ( ConnectionError, socket.error, IOError, OSError) @@ -89,6 +92,8 @@ class Transport(base.Transport): def __init__(self, client, **kwargs): self.client = client self.default_port = kwargs.get('default_port') or self.default_port + self.default_ssl_port = (kwargs.get('default_ssl_port') or + self.default_ssl_port) self.__reader = None def driver_version(self): @@ -164,6 +169,11 @@ class Transport(base.Transport): @property def default_connection_params(self): - return {'userid': 'guest', 'password': 'guest', - 'port': self.default_port, - 'hostname': 'localhost', 'login_method': 'AMQPLAIN'} + return { + 'userid': 'guest', + 'password': 'guest', + 'port': (self.default_ssl_port if self.client.ssl + else self.default_port), + 'hostname': 'localhost', + 'login_method': 'AMQPLAIN', + } diff --git a/kombu/transport/pyamqp.py b/kombu/transport/pyamqp.py index e32380e9..755b6b5e 100644 --- a/kombu/transport/pyamqp.py +++ b/kombu/transport/pyamqp.py @@ -16,6 +16,7 @@ from kombu.utils.text import version_string_as_tuple from . import base DEFAULT_PORT = 5672 +DEFAULT_SSL_PORT = 5671 class Message(base.Message): @@ -63,6 +64,7 @@ class Transport(base.Transport): Connection = Connection default_port = DEFAULT_PORT + default_ssl_port = DEFAULT_SSL_PORT # it's very annoying that pyamqp sometimes raises AttributeError # if the connection is lost, but nothing we can do about that here. @@ -80,9 +82,11 @@ class Transport(base.Transport): heartbeats=True, ) - def __init__(self, client, default_port=None, **kwargs): + def __init__(self, client, + default_port=None, default_ssl_port=None, **kwargs): self.client = client self.default_port = default_port or self.default_port + self.default_ssl_port = default_ssl_port or self.default_ssl_port def driver_version(self): return amqp.__version__ @@ -144,9 +148,14 @@ class Transport(base.Transport): @property def default_connection_params(self): - return {'userid': 'guest', 'password': 'guest', - 'port': self.default_port, - 'hostname': 'localhost', 'login_method': 'AMQPLAIN'} + return { + 'userid': 'guest', + 'password': 'guest', + 'port': (self.default_ssl_port if self.client.ssl + else self.default_port), + 'hostname': 'localhost', + 'login_method': 'AMQPLAIN', + } def get_manager(self, *args, **kwargs): return get_manager(self.client, *args, **kwargs)