Hi,
I'm very confused - that's not too difficult for me.
I have written a small plugin change_passwd_plugin.c I would like this custom IMAP command to be available to all users.
The code contains the following.
void change_passwd_plugin_init(void) { command_register("XCHANGEPASSWORD", cmd_xchangepasswd, 0); str_append(capability_string, " XCHANGEPASSWORD"); }
void change_passwd_plugin_deinit(void) { command_unregister("XCHANGEPASSWORD"); }
% nm 0000000000000920 T change_passwd_plugin_deinit 00000000000008ec T change_passwd_plugin_init 0000000000201248 D change_passwd_plugin_version
dovecot.conf mail_plugins = change_passwd_plugin mail_plugin_dir = /usr/lib/dovecot/imap imap_capability = XCHANGEPASSWORD
%ls -la /usr/lib/dovecot/imap ls -la /usr/lib/dovecot/imap total 28 drwxr-xr-x 2 root root 4096 Aug 1 16:03 . drwxr-xr-x 3 root root 4096 Aug 1 10:51 .. -rwxr-xr-x 1 root root 16969 Aug 1 16:03 change_passwd_plugin.so
During login I see the following
/var/log/maillog Aug 1 16:13:00 development dovecot: IMAP(test): Loading modules from directory: /usr/lib/dovecot/imap Aug 1 16:13:00 development dovecot: IMAP(test): Plugin change_passwd_plugin not found from directory /usr/lib/dovecot/imap Aug 1 16:13:00 development dovecot: child 29715 (imap) returned error 89
I don't understand why I'm getting an "error 89" reported. The login session is terminated by dovecot when the error occurs.
Any assistance or ideas would be appreciated.
Regards,
John