# HG changeset patch # User Goffi # Date 1457545132 -3600 # Node ID 6bdee34fa2f44747b90367932d05d73cb6574e9f # Parent ccbad50e142685c9aef3d6367817e2564479e1f4 server: added base_url_ext option to handle different external URLs (e.g.: if there is a proxy) diff -r ccbad50e1426 -r 6bdee34fa2f4 src/server/blog.py --- a/src/server/blog.py Wed Mar 09 17:56:19 2016 +0100 +++ b/src/server/blog.py Wed Mar 09 18:38:52 2016 +0100 @@ -399,8 +399,11 @@ feed_elt = domish.Element((NS_ATOM, u'feed')) title = _(u"{user}'s blog").format(user=profile) feed_elt.addElement(u'title', content=title) - url_path = request.URLPath() - base_blog_url = u"{0.scheme}://{0.netloc}/blog/{user}".format(url_path, user=profile) + if self.host.base_url_ext is not None: + base_blog_url = u"{}blog/{user}".format(self.host.base_url_ext, user=profile) + else: + url_path = request.URLPath() + base_blog_url = u"{0.scheme}://{0.netloc}/blog/{user}".format(url_path, user=profile) # atom link link_feed_elt = feed_elt.addElement('link') diff -r ccbad50e1426 -r 6bdee34fa2f4 src/server/server.py --- a/src/server/server.py Wed Mar 09 17:56:19 2016 +0100 +++ b/src/server/server.py Wed Mar 09 18:38:52 2016 +0100 @@ -1465,6 +1465,12 @@ self.options = options self.initialised = defer.Deferred() + if self.options['base_url_ext']: + self.base_url_ext = self.options.pop('base_url_ext') + if self.base_url_ext[-1] != '/': + self.base_url_ext += '/' + else: + self.base_url_ext = None if not self.options['port_https_ext']: self.options['port_https_ext'] = self.options['port_https'] if self.options['data_dir'] == DATA_DIR_DEFAULT: diff -r ccbad50e1426 -r 6bdee34fa2f4 src/twisted/plugins/libervia_server.py --- a/src/twisted/plugins/libervia_server.py Wed Mar 09 17:56:19 2016 +0100 +++ b/src/twisted/plugins/libervia_server.py Wed Mar 09 18:38:52 2016 +0100 @@ -109,6 +109,7 @@ ['passphrase', 'k', '', (_(u"Passphrase for the SàT profile named '%s'") % C.SERVICE_PROFILE).encode('utf-8'), str], ['data_dir', 'd', DATA_DIR_DEFAULT, _(u'Data directory for Libervia').encode('utf-8'), coerceDataDir], ['allow_registration', '', True, _(u'Allow user to register new account').encode('utf-8'), coerceBool], + ['base_url_ext', '', '', _(u'The external URL to use as base URL').encode('utf-8'), str], ] # options which are in sat.conf and on command line, see https://twistedmatrix.com/documents/current/api/twisted.python.usage.Options.html # Options which are in sat.conf only OPT_PARAMETERS_CFG = [