[Dovecot] Trying to building a customized auth plugin

Alex Baule alexwbaule at gmail.com
Tue Nov 16 13:32:09 EET 2010


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