dns-lg/sample-wsgi-dnslg-with-conf...

72 lines
2.8 KiB
Python

#!/usr/bin/env python3
from __future__ import print_function
from future import standard_library
standard_library.install_aliases()
import configparser
import sys
import string
import DNSLG
config_file_name = "/etc/dnslg.ini"
default_values = {'email_administrator': None,
'url_documentation': None,
'url_css': None,
'url_opensearch': None,
'favicon': None,
'url_base_service': DNSLG.default_base_url,
'encoding': DNSLG.default_encoding,
'size_edns': '2048',
'bucket_size': '5',
'handle_wellknown_files': 'True',
'code_google_webmasters': None,
'description': None,
'description_html': None,
'port': '8080' # Ignored for Apache
}
SECTION = "DNS-LG"
config = configparser.SafeConfigParser(default_values, allow_no_value=True)
try:
config_file = open(config_file_name)
except IOError:
print("Cannot open configuration file %s" % config_file_name, file=sys.stderr)
sys.exit(1)
config.readfp(config_file)
config.set('DEFAULT', 'forbidden_suffixes', '')
if not config.has_section(SECTION):
config.add_section(SECTION)
email_admin = config.get(SECTION, 'email_administrator')
url_doc = config.get(SECTION, 'url_documentation')
url_css = config.get(SECTION, 'url_css')
url_opensearch = config.get(SECTION, 'url_opensearch')
file_favicon = config.get(SECTION, 'favicon')
base_url = config.get(SECTION, 'url_base_service')
port = config.getint(SECTION, 'port')
rl_bucket_size = config.getint(SECTION, 'bucket_size')
handle_wellknown_files = config.getboolean(SECTION, 'handle_wellknown_files')
description = config.get(SECTION, 'description')
description_html = config.get(SECTION, 'description_html')
google_code = config.get(SECTION, 'code_google_webmasters')
edns_size = config.get(SECTION, 'size_edns')
forbidden_str = config.get(SECTION, 'forbidden_suffixes')
forbidden = forbidden_str.split(':')
if edns_size is None or edns_size == "":
edns_size = None
else:
edns_size = int(edns_size) # TODO: handle conversion errors
encoding = config.get(SECTION, 'encoding')
querier = DNSLG.Querier(email_admin=email_admin, url_doc=url_doc, url_css=url_css,
url_opensearch=url_opensearch, file_favicon=file_favicon,
base_url=base_url, encoding=encoding,
edns_size=edns_size, bucket_size=rl_bucket_size,
google_code=google_code,
handle_wk_files=handle_wellknown_files,
description=description, description_html=description_html,
forbidden_suffixes=forbidden)
application = querier.application