diff options
-rw-r--r-- | interface-definitions/https.xml | 12 | ||||
-rwxr-xr-x | src/conf_mode/https.py | 6 |
2 files changed, 17 insertions, 1 deletions
diff --git a/interface-definitions/https.xml b/interface-definitions/https.xml index 2fb3bf082..f5d609f95 100644 --- a/interface-definitions/https.xml +++ b/interface-definitions/https.xml @@ -31,6 +31,18 @@ </constraint> </properties> <children> + <leafNode name='listen-port'> + <properties> + <help>Port to listen for HTTPS requests; default 443</help> + <valueHelp> + <format>1-65535</format> + <description>Numeric IP port</description> + </valueHelp> + <constraint> + <validator name="numeric" argument="--range 1-65535"/> + </constraint> + </properties> + </leafNode> <leafNode name="server-name"> <properties> <help>Server names: exact, wildcard, regex, or '_' (any)</help> diff --git a/src/conf_mode/https.py b/src/conf_mode/https.py index d7fcb74de..fbd351e45 100755 --- a/src/conf_mode/https.py +++ b/src/conf_mode/https.py @@ -49,7 +49,7 @@ server { listen 443 ssl; listen [::]:443 ssl; {% else %} - listen {{ server.address }}:443 ssl; + listen {{ server.address }}:{{ server.port }} ssl; {% endif %} {% for name in server.name %} @@ -107,7 +107,11 @@ def get_config(): if conf.exists('listen-address'): for addr in conf.list_nodes('listen-address'): server_block = {'address' : addr} + server_block['port'] = '443' server_block['name'] = ['_'] + if conf.exists('listen-address {0} listen-port'.format(addr)): + port = conf.return_value('listen-address {0} listen-port'.format(addr)) + server_block['port'] = port if conf.exists('listen-address {0} server-name'.format(addr)): names = conf.return_values('listen-address {0} server-name'.format(addr)) server_block['name'] = names[:] |