Skip to content
Snippets Groups Projects
Commit d4bdf4ff authored by Deucе's avatar Deucе :ok_hand_tone4:
Browse files

Properly parse web hostname from sbbs.ini

Get both the webroot and web hostname from sbbs.ini rather than use
system.inet_addr.  system.inet_addr is configured in the messages
section, so it's implied that it's for email addresses.

Also, allow configuring the sysop email address with the SysopEmail
global key in the ini file.

This is a cleanup and duplicate of !82
parent 82633dc8
No related branches found
No related tags found
1 merge request!463MRC mods by Codefenix (2024-10-20)
......@@ -6,7 +6,6 @@ require("acmev2.js", "ACMEv2");
var ks_fname = backslash(system.ctrl_dir)+"letsyncrypt.key";
var setting_fname = backslash(system.ctrl_dir)+"letsyncrypt.ini";
var sks_fname = backslash(system.ctrl_dir)+"ssl.cert";
var sbbsini_fname = backslash(system.ctrl_dir)+"sbbs.ini";
var maincnf_fname = backslash(system.ctrl_dir)+"main.cnf";
var recycle_sem = backslash(system.ctrl_dir)+"recycle.web";
......@@ -164,7 +163,6 @@ var revoke = false;
var rsa;
var sks;
var sks_group_readable = false;
var sbbsini = new File(sbbsini_fname);
var settings = new File(setting_fname);
var syspass;
var webroot;
......@@ -173,19 +171,13 @@ var usersa = true; // TODO: Make configurable
var keysize = 256; // TODO: Make configurable... ECC sizes are 32, 48, and 66 (66 is not supported by Let's Encrypt)
var waittime;
var TOSAgreed=false;
/*
* Get the Web Root
*/
if (!sbbsini.open("r"))
throw("Unable to open "+sbbsini.name);
webroot = backslash(sbbsini.iniGetValue("Web", "RootDirectory", "../web/root"));
sbbsini.close();
var sbbsini = load("sbbsini.js");
var sysop_email = "sysop@" + system.inet_addr;
/*
* Now read the settings and state.
*/
webroots[system.inet_addr] = webroot;
webroots[sbbsini.web.host_name] = sbbsini.web.root_dir;
if (settings.open("r")) {
domain_list = settings.iniGetObject("Domains");
for (i in domain_list) {
......@@ -202,6 +194,7 @@ if (settings.open("r")) {
dir_path = settings.iniGetValue(null, "Directory", dir_path);
TOSAgreed = settings.iniGetValue(null, "TOSAgreed", TOSAgreed);
sks_group_readable = settings.iniGetValue(null, "GroupReadableKeyFile", sks_group_readable);
sysop_email = settings.iniGetValue(null, "SysopEmail", sysop_email);
settings.close();
}
......@@ -287,10 +280,10 @@ if (renew || rekey || revoke || print_tos) {
if (renew || rekey || revoke) {
if (acme.key_id === undefined) {
if (TOSAgreed)
acme.create_new_account({termsOfServiceAgreed:TOSAgreed,contact:["mailto:sysop@"+system.inet_addr]});
acme.create_new_account({termsOfServiceAgreed:TOSAgreed,contact:["mailto:"+sysop_email]});
else {
try {
acme.create_new_account({contact:["mailto:sysop@"+system.inet_addr]});
acme.create_new_account({contact:["mailto:"+sysop_email]});
}
catch (e) {
log(LOG_ERR, "Creating account without agreeing to ToS failed.");
......@@ -344,7 +337,7 @@ if (revoke) {
if (renew) {
/*
* Create the order, using system.inet_addr
* Create the order, using sbbsini.web.host_name
*/
for (i in webroots)
identifiers.push({type:"dns",value:i});
......@@ -376,7 +369,7 @@ if (renew) {
csr.subjectpublickeyinfo=rsa;
csr.oganizationname=system.name;
csr.commonname=system.inet_addr;
csr.commonname=sbbsini.web.host_name;
for (i in webroots)
dnsnames.push(i);
csr.add_extension("2.5.29.17", false, create_dnsnames(dnsnames));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment