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