1
0
mirror of https://codeberg.org/cage/tinmop/ synced 2025-02-23 09:07:37 +01:00

- ensured the configuration directives 'server' and 'username' are never empty

This patch prevents the software to keeps showing the welcome screen
  when  the main.conf  file  does not  contains at  least  one of  the
  aforementioned directive.

  The dummy server has name "invalid" and supposed to be not used in a
  DNS, see:

  https://en.wikipedia.org/wiki/.invalid
This commit is contained in:
cage 2025-01-08 17:45:13 +01:00
parent 4328c51e51
commit e530365752
4 changed files with 22 additions and 7 deletions

View File

@ -125,9 +125,11 @@ General Public License for more details."
(define-constant +db-file-extension+ "sqlite3" :test #'string=
:documentation "the extension filename of the databases")
(define-constant +default-database-username+ "default" :test #'string=)
(define-constant +default-database-username+ "default" :test #'string=)
(define-constant +default-database-server-name+ "default" :test #'string=)
(define-constant +default-database-server-name+ "invalid" :test #'string=)
(define-constant +invalid-domain-name+ "invalid" :test #'string=)
(define-constant +json-true+ "true" :test #'string=)

View File

@ -201,7 +201,7 @@ etc.) happened"
;; same (this rule is enforced by
;; 'swconf:trivial-configuration-checks')
(when (not (or *gemini-full-screen-mode*
(null (swconf::config-username))))
(swconf:current-server-name-invalid-p)))
(client:init)
(if command-line:*fediverse-authorization-code*
(let ((code (ui:input-dialog-immediate (_ "Authorization code"))))

View File

@ -59,6 +59,7 @@
:+db-file-extension+
:+default-database-username+
:+default-database-server-name+
:+invalid-domain-name+
:+fps+
:+command-window-height+
:+starting-init-file+
@ -1510,6 +1511,8 @@
:config-notification-icon
:current-username
:current-server-name
:current-server-name-invalid-p
:current-server-name-valid-p
:all-fediverse-accounts
:set-current-username-and-server
:config-password-echo-character

View File

@ -1180,11 +1180,14 @@
+key-notification-icon+
+key-value+)
(gen-simple-access (server-name)
+key-server+)
(gen-simple-access (username)
+key-username+)
(defun config-server-name ()
(or (access:accesses *software-configuration* +key-server+)
(list +default-database-server-name+)))
(defun config-username ()
(or (access:accesses *software-configuration* +key-username+)
(list +default-database-username+)))
(defun all-fediverse-accounts ()
(loop for username in (config-username)
@ -1200,6 +1203,13 @@
(defun current-server-name ()
*current-server-name*)
(defun current-server-name-invalid-p ()
(string= (current-server-name)
constants:+invalid-domain-name+))
(defun current-server-name-valid-p ()
(not (current-server-name-invalid-p)))
(defun set-current-username-and-server (&optional username server-name)
(flet ((set-currents (username server-name)
(setf *current-username* username)