[Dovecot] Trying to building a customized auth plugin

Alex Baule alexwbaule at gmail.com
Tue Nov 16 13:56:44 EET 2010


What the preauthcustom.c does ? something special or setting some rights
from users ?

If was only auth, PAM is much more easy....

2010/11/16 Antonio Perez-Aranda <aperezaranda at yaco.es>

> Maybe, but I haven't got any experience with PAM modules as with dovecot.
>
> I have a preauthcustom.c from courier which I have to migrate to dovecot.
>
> 2010/11/16 Alex Baule <alexwbaule at gmail.com>:
> > Dovecot plugins works with hooks. This hooks allow you customize some
> > actions.
> >
> > You need to find the authentication hook, and rewrite it's actions.
> >
> > Inside the userdb.c have it void userdbs_init(void), but you change the
> > shared name, so you need to change inside your plugin too.
> >
> > But, you're trying to do something with auth, you can use PAM, it's more
> > easy. (i think)
> >
> > 2010/11/16 Antonio Perez-Aranda <aperezaranda at yaco.es>
> >
> >> Well, all modules start with ifdef like this:
> >>
> >> #ifdef USERDB_CUSTOM
> >>
> >> And in this case, this isn't defined. I commet out this ifdef/else/if
> >> block and then I have got more errors, I can continure.
> >>
> >> 2010/11/16 Antonio Perez-Aranda <aperezaranda at yaco.es>:
> >> > Not, userdb-custom and passdb-custom are copies from
> >> > userdb-passwd-file and passdb-passwd-file.
> >> >
> >> > I try with this function now, thanks.
> >> >
> >> > 2010/11/16 Alex Baule <alexwbaule at gmail.com>:
> >> >> inside your plugin, have this function ? <authdb_custom_init>
> >> >>
> >> >> Every plugin must have a "init" function and it must call
> >> "plugin-name_init"
> >> >>
> >> >>
> >> >> 2010/11/16 Antonio Perez-Aranda <aperezaranda at yaco.es>
> >> >>
> >> >>> Is it needed to include custom db on usedb.c and passdb.c ?
> >> >>>
> >> >>> I can see at userdb.c:
> >> >>>
> >> >>> void userdbs_init(void)
> >> >>>
> >> >>> with all userdb registered, and similar at passdb.c
> >> >>>
> >> >>>
> >> >>> At now, I get the follow line loading the module and trying to
> access
> >> >>> vía imap login
> >> >>>
> >> >>> Nov 16 17:54:28 auth: Error: module
> >> >>> /usr/lib64/dovecot/auth/libauthdb_custom.so:
> dlsym(authdb_custom_init)
> >> >>> failed: /usr/lib64/dovecot/auth/libauthdb_custom.so: undefined
> symbol:
> >> >>> authdb_custom_init
> >> >>> Nov 16 17:54:28 auth: Error: Module doesn't have init function:
> >> >>> /usr/lib64/dovecot/auth/libauthdb_custom.so
> >> >>>
> >> >>>
> >> >>>
> >> >>> 2010/11/16 Antonio Perez-Aranda <aperezaranda at yaco.es>:
> >> >>> > Well, I didn't execute ./configure on $DOVECOT path
> >> >>> >
> >> >>> > 2010/11/16 Antonio Perez-Aranda <aperezaranda at yaco.es>:
> >> >>> >>  gcc -fPIC -shared -g -Wall \
> >> >>> >>      -I$DOVECOT \
> >> >>> >>      -I$DOVECOT/src/lib \
> >> >>> >>      -I$DOVECOT/src/lib-auth  \
> >> >>> >>      -I$DOVECOT/src/lib-sql \
> >> >>> >>      -I$DOVECOT/src/lib-settings \
> >> >>> >>      -I$DOVECOT/src/lib-ntlm \
> >> >>> >>      -I$DOVECOT/src/lib-master \
> >> >>> >>      -I$DOVECOT/src/auth \
> >> >>> >>      -DHAVE_CONFIG_H \
> >> >>> >>      -DAUTH_MODULE_DIR=\"passdb-custom\"\
> >> >>> >>      passdb-custom.c -o passdb-custom.o
> >> >>> >>
> >> >>> >> With this I get:
> >> >>> >>
> >> >>> >> error on auth-common.h
> >> >>> >> ...
> >> >>> >> config.h Not found.
> >> >>> >>
> >> >>> >>
> >> >>> >> But config.h are in $DOVECOT path
> >> >>> >>
> >> >>> >>
> >> >>> >> 2010/11/15 Timo Sirainen <tss at iki.fi>:
> >> >>> >>> On 15.11.2010, at 18.03, Antonio Perez-Aranda wrote:
> >> >>> >>>
> >> >>> >>>> gcc -fPIC -shared -g -Wall -I$DOVECOT \
> >> >>> >>>>     -I$DOVECOT/src/lib \
> >> >>> >>>>     -I$DOVECOT/src/lib-auth  \
> >> >>> >>>>     -I$DOVECOT/src/lib-sql \
> >> >>> >>>>     -I$DOVECOT/src/lib-settings \
> >> >>> >>>>     -I$DOVECOT/src/lib-ntlm \
> >> >>> >>>>     -I$DOVECOT/src/lib-master \
> >> >>> >>>>     -I$DOVECOT/src/auth \
> >> >>> >>>>     passdb-passwd-file.c -o passdb-passwd-file.o
> >> >>> >>>>
> >> >>> >>>> With this, I get errors relate with uoff_t
> >> >>> >>>
> >> >>> >>> You need to add -DHAVE_CONFIG_H
> >> >>> >>>
> >> >>> >>>
> >> >>> >>
> >> >>> >
> >> >>>
> >> >>
> >> >
> >>
> >
>


More information about the dovecot mailing list