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@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@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@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@gmail.com:
inside your plugin, have this function ?
Every plugin must have a "init" function and it must call "plugin-name_init"
2010/11/16 Antonio Perez-Aranda aperezaranda@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@yaco.es:
Well, I didn't execute ./configure on $DOVECOT path
2010/11/16 Antonio Perez-Aranda aperezaranda@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@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 >> >> >