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

Reply via email to