1
0
mirror of https://github.com/certbot/certbot.git synced 2026-01-26 07:41:33 +03:00

Allow 'default' along with 'default_server' in Nginx (#5788)

* test default detection

* Allow 'default' along with 'default_server' in Nginx

* Test that default gets written out as default_server in canonical string

* remove superfulous parens
This commit is contained in:
ohemorange
2018-03-26 14:56:31 -07:00
committed by Brad Warren
parent 8d0d42a739
commit e9707ebc26
3 changed files with 13 additions and 4 deletions

View File

@@ -88,6 +88,8 @@ class Addr(common.Addr):
ssl = True
elif nextpart == 'default_server':
default = True
elif nextpart == 'default':
default = True
elif nextpart == "ipv6only=on":
ipv6only = True

View File

@@ -391,9 +391,11 @@ class NginxParser(object):
for addr in new_vhost.addrs:
addr.default = False
for directive in enclosing_block[new_vhost.path[-1]][1]:
if (len(directive) > 0 and directive[0] == 'listen'
and 'default_server' in directive):
del directive[directive.index('default_server')]
if len(directive) > 0 and directive[0] == 'listen':
if 'default_server' in directive:
del directive[directive.index('default_server')]
if 'default' in directive:
del directive[directive.index('default')]
return new_vhost

View File

@@ -14,6 +14,7 @@ class AddrTest(unittest.TestCase):
self.addr5 = Addr.fromstring("myhost")
self.addr6 = Addr.fromstring("80 default_server spdy")
self.addr7 = Addr.fromstring("unix:/var/run/nginx.sock")
self.addr8 = Addr.fromstring("*:80 default ssl")
def test_fromstring(self):
self.assertEqual(self.addr1.get_addr(), "192.168.1.1")
@@ -46,6 +47,8 @@ class AddrTest(unittest.TestCase):
self.assertFalse(self.addr6.ssl)
self.assertTrue(self.addr6.default)
self.assertTrue(self.addr8.default)
self.assertEqual(None, self.addr7)
def test_str(self):
@@ -55,6 +58,7 @@ class AddrTest(unittest.TestCase):
self.assertEqual(str(self.addr4), "*:80 default_server ssl")
self.assertEqual(str(self.addr5), "myhost")
self.assertEqual(str(self.addr6), "80 default_server")
self.assertEqual(str(self.addr8), "*:80 default_server ssl")
def test_to_string(self):
self.assertEqual(self.addr1.to_string(), "192.168.1.1")
@@ -77,7 +81,8 @@ class AddrTest(unittest.TestCase):
from certbot_nginx.obj import Addr
any_addresses = ("0.0.0.0:80 default_server ssl",
"80 default_server ssl",
"*:80 default_server ssl")
"*:80 default_server ssl",
"80 default ssl")
for first, second in itertools.combinations(any_addresses, 2):
self.assertEqual(Addr.fromstring(first), Addr.fromstring(second))