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
On 08/01/2010 08:37 AM John O'Brien wrote:> 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 >The name of the plungins is <plugin_name>_plugin.<ext>. To load a plugin use: mail_plugins = plugin_name Without the trailing _plugin. Which clients, except for telnet, supports the XCHANGEPASSWORD command? Regards, Pascal -- The trapper recommends today: c01dcofe.1021318 at localdomain.org
On 11:59 AM, John O'Brien wrote:> > 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.soTry changing mail_plugins = change_passwd_plugin in dovecot.conf to mail_plugins = change_passwd -- Mark Sapiro <mark at msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan