[Patch] unified server configuration GUI



Hi all,

as I promised a few days ago, I now created a quite large patch for consolidating the server configuration and GUI 
for SMTP, POP3 and IMAP.  As the patch is rather large (too large for the mailing list limit), please load it from 
my web site <https://www.mynetcologne.de/~nc-dreszal/server-config.diff.bz2>.

Basically, I created a new module libbalsa/server-config.[ch] which takes care of creating a GUI for all the 
common options.  By using the new class, a lot of duplicated and partly inconsistent code (e.g. there is no 
option for storing the IMAP server password in the key ring) can be removed.

I tested in valgrind for smtp and all types of local and remote mailboxes: new + cancel, new + ok, modify + 
cancel, modify + ok and delete, so I /think/ it is usable.  However, due to the amount and complexity of 
changes, a review would be highly appreciated…

Please note that there are still some open points:
- User certificate passphrases: the code for asking the user if the passphrase shall not be stored is still 
missing.  As this is a rarely used option, it's no blocker IMHO.
- The IMAP connection should use (derive, inherit) LibBalsaServer which will also simplify the code.  Now, 
user certificates are not working although there is a config gui (again, no blocker, though).
- Dovecot offers “EXTERNAL” IMAP authentication in combination with user certificates, which is also not yet 
supported.
- If we build using gcr, the password gcr dialogue should be used if possible.
- In general, we might want to re-think our approach of keeping user credentials in memory, at least if we 
have libsecret: keeping them in unsafe (pageable) memory should be avoided.

As always, any comment will be highly welcome!

Best,
Albrecht

---
Patch details:
- libbalsa/Makefile.am, libbalsa/meson.build: add new server-config module
- libbalsa/imap-server.c: use common config class; ensure server hash key required by changed folder conf 
approach
- libbalsa/libbalsa-conf.[ch]: add option for obfustaced private string, so libbalsa_rot() is used only 
locally
- libbalsa/libbalsa.[ch]: libbalsa_rot() moved to libbalsa/libbalsa-conf.c
- libbalsa/mailbox_pop3.c: properly initialise procmail command
- libbalsa/send.c: fix broken signal connections if a user certificate is used
- libbalsa/server-config.[ch]: implement new server config gui class
- libbalsa/server.[ch]: use new config gui; refactor libsecret stuff; store user cert passphrase using 
libsecret if requested; clean up exported types
- libbalsa/smtp-server.c: use new config gui
- src/folder-conf.c: use new config gui; Note: slightly changed approach for adding an IMAP folder
- src/mailbox-conf.[ch]: use new config gui, removes loads of obsolete exported code
- src/mailbox-node.c: use g_debug() for debug messages
- src/save-restore.c: use changed libbalsa-conf api

Attachment: pgpIjOIxaFWej.pgp
Description: PGP signature



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]