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 <[email protected]> > 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 <[email protected]>: > > 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 <[email protected]>: > >> 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 <[email protected]> > >> > >>> 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 <[email protected]>: > >>> > Well, I didn't execute ./configure on $DOVECOT path > >>> > > >>> > 2010/11/16 Antonio Perez-Aranda <[email protected]>: > >>> >> 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 <[email protected]>: > >>> >>> 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 > >>> >>> > >>> >>> > >>> >> > >>> > > >>> > >> > > >
