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: pgpL_is0PFwc4.pgp
Description: PGP signature

_______________________________________________
balsa-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/balsa-list

Reply via email to