diff --git a/ctrl/sbbs.ini b/ctrl/sbbs.ini
index 7fc344c8eab8f91a49de1d07c4bbcd9730394e8a..7d6b3f3be16e9d5784c2a067a9fd0dfd0a9aea14 100644
--- a/ctrl/sbbs.ini
+++ b/ctrl/sbbs.ini
@@ -9,28 +9,28 @@
 
 [Global]
 ; Override system address for this instance (optional):
-	Hostname=
+	Hostname =
 ; IP address of network interface to bind to (defaults to ANY/ALL interfaces):
-	Interface=
+	Interface =
 ; Override the SBBSCTRL environment variable (optional):
-	CtrlDirectory=
+	CtrlDirectory =
 ; Override the default system "temp" directory (optional):
 ; If you do override this, do NOT use the system-wide temp dir (ie: /tmp or
 ; windows\temp... use a subdirectory.  Synchronet assumes it is the only user
 ; of this temp dir.
-	TempDirectory=
+	TempDirectory =
 ; Increase this value to decrease semaphore file checking frequency (actually an interval):
-	SemFileCheckFrequency=2	; seconds
+	SemFileCheckFrequency = 2	; seconds
 ; Set the number of times a bind will be attempted for each port.
 ; increase this if you get errors binding to ports on reloads
-	BindRetryCount=2
+	BindRetryCount = 2
 ; Delay between bind retries
-	BindRetryDelay=15
-; Highest log level to actually log/print (ignore all higher/less-severe log entries):
+	BindRetryDelay = 15             ; seconds
+; Highest log level to actually log/print (ignore all higher/less-severe log msgs):
 ; This log level may be overridden for each server/service
 ; Supported log levels in decreasing severity (ala syslog):
 ; Emergency, Alert, Critical, Error, Warning, Notice, Informational, Debugging
-	LogLevel=Informational
+	LogLevel = Informational
 ; JavaScript values can be specified here *and* in server-specific sections
 ; JavaScript values specified in server-specific sections will over-ride the global values
 ; Maximum allocation of memory per JS run-time:
@@ -38,7 +38,7 @@
 ; Maximum stack size per JS context:
 	JavaScriptContextStack = 16K
 ; Maximum number of ticks (100ms) before auto-termination of script:
-	JavaScriptTimeLimit	= 864000
+	JavaScriptTimeLimit = 864000
 ; Garbage Collection interval (in ticks):
 	JavaScriptGcInterval = 100
 ; Time-slice yield interval (in ticks):
@@ -56,48 +56,48 @@
 
 [BBS]	Terminal Server
 ; Set to 'false' to disable Telnet/Rlogin/Event server:
-	AutoStart=true
+	AutoStart = true
 ; Set to IP address of network interface (or blank for default):
-	TelnetInterface=
-	RLoginInterface=
-	SSHInterface=
+	TelnetInterface =
+	RLoginInterface =
+	SSHInterface =
 ; TCP port for Telnet server:
-	TelnetPort=23
+	TelnetPort = 23
 ; TCP port for RLogin server:
-	RLoginPort=513
+	RLoginPort = 513
 ; TCP port for Secure Shell (SSH) server:
-	SSHPort=22
+	SSHPort = 22
 ; TCP port for 40-column PETSCII connections (any terminal protocol):
-    Pet40Port=64
+    Pet40Port = 64
 ; TCP port for 80-column PETSCII connections (any terminal protocol):
-    Pet80Port=128
+    Pet80Port = 128
 ; Note on PETSCII support: you must add the same port(s) to one of your
 ; *Interface= values above to open/listen/accept connections on that port.
 ; Example:
-;   TelnetInterface=71.95.196.34,71.95.196.34:64,71.95.196.34:128
+;   TelnetInterface = 71.95.196.34,71.95.196.34:64,71.95.196.34:128
 
 ; This server handles this range of BBS nodes:
 ; LastNode should not be higher than the number of nodes configured in SCFG->Nodes
-	FirstNode=1
-	LastNode=4
+	FirstNode = 1
+	LastNode = 4
 
 ; Set to a non-zero number to limit the number of concurrent connections from the same client/host
-	MaxConcurrentConnections=0
+	MaxConcurrentConnections = 0
 
 ; Windows only:
 ; Increase this value to decrease the frequency of forced CPU time-slice yields in DOS externals:
 ; NOTE: this configuration knob has been *moved* to YieldInterval in exec/sbbsexec.ini
 ;	ExternalYield=10
 ; Sound (*.wav) files to play on specific events:
-	AnswerSound=
-	HangupSound=
+	AnswerSound =
+	HangupSound =
 
 ; Unix only:
 ; Must install install/termcap or terminfo to use the following TERM setting:
-; ExternalTermANSI=ansi-bbs
-	ExternalTermDumb=dumb
+; ExternalTermANSI = ansi-bbs
+	ExternalTermDumb = dumb
 ; To change the default dosemu/doscmd path, uncomment and set:
-; DOSemuPath=
+;       DOSemuPath =
 
 ; At what size to send the current output buffer regardless of timeout
 ; ie: Send output whenever there are at least this many bytes waiting.
@@ -107,7 +107,7 @@
 ; This can (and probably should) be set to zero to automagically set the
 ; highwater mark to the MSS and ensure no single call to send() is larger
 ; than this.
-        OutbufHighwaterMark=1024
+        OutbufHighwaterMark = 1024
 ; Timout to wait for output buffer to fill (Milliseconds)
 ; If there is ANY data in the output buffer after waiting this long, send
 ; immediately.
@@ -118,57 +118,57 @@
 ; and echoing will seem slow (ie: When entering a message, your text
 ; will appear on your screen in chunks)
 ; Frobbing this value can provide hours of pointless entertainment.
-        OutbufDrainTimeout=10
+        OutbufDrainTimeout = 10
 ; Supported options (separated with |):
-;   XTRN_MINIMIZED
-;   AUTO_LOGON
-;   DEBUG_TELNET
-;   ALLOW_SSH
-;   ALLOW_RLOGIN
-;   NO_QWK_EVENTS
-;   NO_NEWDAY_EVENTS
-;   NO_TELNET_GA
-;   NO_EVENTS
-;   NO_HOST_LOOKUP
-;   NO_SPY_SOCKETS
-;	NO_DOS
-;	NO_RECYCLE
-;   GET_IDENT
-;   MUTE
+;       XTRN_MINIMIZED
+;       AUTO_LOGON
+;       DEBUG_TELNET
+;       ALLOW_SSH
+;       ALLOW_RLOGIN
+;       NO_QWK_EVENTS
+;       NO_NEWDAY_EVENTS
+;       NO_TELNET_GA
+;       NO_EVENTS
+;       NO_HOST_LOOKUP
+;       NO_SPY_SOCKETS
+;       NO_DOS
+;       NO_RECYCLE
+;       GET_IDENT
+;       MUTE
 Options = XTRN_MINIMIZED | ALLOW_RLOGIN | ALLOW_SSH
 
 [Mail]	SMTP/POP3 Mail Server
-	AutoStart=true
-	MaxClients=10
-	MaxInactivity=120
-	Interface=
-	LinesPerYield=10
-	MaxDeliveryAttempts=50
-	MaxRecipients=100
-	MaxMsgSize=20MB
-	MaxMsgsWaiting=100
-	RescanFrequency=3600
-	SMTPPort=25
-	SubmissionPort=587
-	TLSSubmissionPort=465
-	POP3Interface=
-	POP3Port=110
-	TLSPOP3Port=995
-	DefaultCharset=IBM437
-	DefaultUser=
-	DNSBlacklistHeader=X-DNSBL
-	DNSBlacklistSubject=SPAM
-	RelayServer=
-	RelayPort=25
+	AutoStart = true
+	MaxClients = 10
+	MaxInactivity = 120
+	Interface = 
+	LinesPerYield = 10
+	MaxDeliveryAttempts = 50
+	MaxRecipients = 100
+	MaxMsgSize = 20MB
+	MaxMsgsWaiting = 100
+	RescanFrequency = 3600
+	SMTPPort = 25
+	SubmissionPort = 587
+	TLSSubmissionPort = 465
+	POP3Interface = 
+	POP3Port = 110
+	TLSPOP3Port = 995
+	DefaultCharset = IBM437
+	DefaultUser = 
+	DNSBlacklistHeader = X-DNSBL
+	DNSBlacklistSubject = SPAM
+	RelayServer = 
+	RelayPort = 25
 	; The following 2 keys are used if the RelayServer requires authentication (SMTP AUTH)
 	; Must also set one of the RELAY_AUTH options
-	RelayUsername=
-	RelayPassword=
-	DNSServer=
-	POP3Sound=
-	InboundSound=
-	OutboundSound=
-	ConnectTimeout=30
+	RelayUsername = 
+	RelayPassword = 
+	DNSServer = 
+	POP3Sound = 
+	InboundSound = 
+	OutboundSound = 
+	ConnectTimeout = 30
 ; Supported options (separated with |):
 ;	DEBUG_RX_HEADER		- Log header fields of received mail messages
 ;	DEBUG_RX_BODY		- Leave body text of received mail messages in temp directory forever
@@ -201,34 +201,34 @@ Options = XTRN_MINIMIZED | ALLOW_RLOGIN | ALLOW_SSH
 ;	TLS_SUBMISSION	- Listen on the TLS "MSA" service port for mail submissions
 ;	TLS_POP3		- Listen on the TLS POP3 service port
 ; 	MUTE			- Don't play sound files
-Options=ALLOW_POP3 | USE_SUBMISSION_PORT | TLS_SUBMISSION | TLS_POP3
+Options = ALLOW_POP3 | USE_SUBMISSION_PORT | TLS_SUBMISSION | TLS_POP3
 
 [FTP]	FTP Server
-	AutoStart=true
-	Port=21
-	MaxClients=10
-	MaxInactivity=300
-	QwkTimeout=600
-	MinFileSize=0
-	MaxFileSize=0
-	Interface=
+	AutoStart = true
+	Port = 21
+	MaxClients = 10
+	MaxInactivity = 300
+	QwkTimeout = 600
+	MinFileSize = 0
+	MaxFileSize = 0
+	Interface = 
 
-    ; Passive transfer settings to work-around broken/stupid firewall/NAT devices
-    ; see docs/tcpip_faq.html for details
-    ; the LOOKUP_PASV_IP option can be useful for dynamic IPs
-	PasvIpAddress=0.0.0.0
-	PasvPortLow=1024
-	PasvPortHigh=65535
+        ; Passive transfer settings to work-around broken/stupid firewall/NAT devices
+        ; see docs/tcpip_faq.html for details
+        ; the LOOKUP_PASV_IP option can be useful for dynamic IPs
+	PasvIpAddress = 0.0.0.0
+	PasvPortLow = 1024
+	PasvPortHigh = 65535
 
-    ; Sound/wave files to play on specific events (Windows only):
-	AnswerSound=
-	HangupSound=
-	HackAttemptSound=
+        ; Sound/wave files to play on specific events (Windows only):
+	AnswerSound = 
+	HangupSound = 
+	HackAttemptSound = 
 
-    ; Dynamically generated index files
-	IndexFileName=00index
-	HtmlIndexFile=00index.html
-	HtmlIndexScript=ftp-html.js
+        ; Dynamically generated index files
+	IndexFileName = 00index
+	HtmlIndexFile = 00index.html
+	HtmlIndexScript = ftp-html.js
 ; Supported options (separated with |):
 ;	DEBUG_RX
 ;	DEBUG_DATA
@@ -244,31 +244,33 @@ Options=ALLOW_POP3 | USE_SUBMISSION_PORT | TLS_SUBMISSION | TLS_POP3
 ;	NO_RECYCLE
 ; 	NO_JAVASCRIPT
 ; 	MUTE
-Options=INDEX_FILE | HTML_INDEX_FILE | ALLOW_QWK
+Options = INDEX_FILE | HTML_INDEX_FILE | ALLOW_QWK
 
 [Web]	Web (HTTP) Server
-	AutoStart=true
-	Interface=
-	Port=80
-	TLSInterface=
-	TLSPort=443
-    MaxClients=150
-	RootDirectory=../web/root
-	ErrorDirectory=error
-	IndexFileNames=index.html,index.ssjs,index.xjs
-	CGIDirectory=cgi-bin
-	CGIExtensions=.cgi
-	DefaultCGIContent=text/plain
-	Authentication=Basic,Digest,TLS-PSK
-	JavaScriptExtension=.ssjs
-	MaxInactivity=120
-	MaxCgiInactivity=120
-        OutbufDrainTimeout=10
+	AutoStart = true
+        ; HTTP interface(s)
+	Interface = 
+	Port = 80
+        ; HTTPS interface(s)
+	TLSInterface = 
+	TLSPort = 443
+        MaxClients = 150
+	RootDirectory = ../web/root
+	ErrorDirectory = error
+	IndexFileNames = index.html,index.ssjs,index.xjs
+	CGIDirectory = cgi-bin
+	CGIExtensions = .cgi
+	DefaultCGIContent = text/plain
+	Authentication = Basic,Digest,TLS-PSK
+	JavaScriptExtension = .ssjs
+	MaxInactivity = 120
+	MaxCgiInactivity = 120
+        OutbufDrainTimeout = 10
 	; Sets the base name of the HTTP access log files,
 	; the current date and ".log" are appended.
 	; Set to empty string to use default value ("../data/logs/http-")
 	; Only created/appended if the HTTP_LOGGING option flag is enabled
-	HttpLogFile=
+	HttpLogFile = 
 ; Supported options (separated with |):
 ;	DEBUG_RX
 ;	DEBUG_TX
@@ -280,27 +282,27 @@ Options=INDEX_FILE | HTML_INDEX_FILE | ALLOW_QWK
 ;	NO_RECYCLE
 ; 	NO_JAVASCRIPT
 ; 	MUTE
-Options=NO_HOST_LOOKUP | ALLOW_TLS | HTTP_LOGGING
+Options = NO_HOST_LOOKUP | ALLOW_TLS | NO_CGI
 
 [Services]
-	AutoStart=true
+	AutoStart = true
 ; Override the global/default values here:
-	Interface=
-	AnswerSound=
-	HangupSound=
+	Interface = 
+	AnswerSound = 
+	HangupSound = 
 ; Supported options (separated with |):
 ; 	NO_HOST_LOOKUP
 ; 	MUTE
-Options=NO_HOST_LOOKUP
+Options = NO_HOST_LOOKUP
 
 [UNIX]
 ; User/group name to run as
-	;User=admin
-	;Group=wheel
+	;User = admin
+	;Group = wheel
 ; Run in background:
-	Daemonize=False
+	Daemonize = False
 ; File to create/write-to with process identifier (when daemonized)
-	PidFile=/var/run/sbbs.pid
+	PidFile = /var/run/sbbs.pid
 ; System log (syslog) facility to use (when daemonized)
 ; 1 = LOCAL1
 ; 2 = LOCAL2
@@ -311,9 +313,9 @@ Options=NO_HOST_LOOKUP
 ;     consequences of enabling this!
 ;     man syslog.conf(5) for more information.
 ; Defaults to using the USER facility.
-	LogFacility=User
+	LogFacility = User
 ; syslog identity to use (when daemonized)
-	LogIdent=synchronet
+	LogIdent = synchronet
 ; Default file creation mask:
-	umask=077
+	umask = 077