Re: [Dovecot] critical feature from version 1 not migrated to version 2 = authentication configuration database per IP
Timo Sirainen wrote:
think for realization can take idea from that patch : --------------------------------- --- src/auth/auth-request.c.orig 2010-12-30 11:42:54.000000000 +0200 --- src/auth/auth-request.c.orig 2010-12-30 11:42:54.000000000 +0200 @@ -1547,6 +1547,7 @@ auth_request_get_var_expand_table(const { '\0', NULL, "login_user" }, { '\0', NULL, "login_username" }, { '\0', NULL, "login_domain" }, + { 'x', NULL, NULL }, { '\0', NULL, NULL } }; struct var_expand_table *tab; @@ -1600,6 +1601,15 @@ auth_request_get_var_expand_table(const auth_request); } } + const char *lip2user[][2] = {{"127.0.0.3","dc=domain1,dc=tld1"},{"127.0.0.1","localhost"},{"127.0.0.2","dc=domain2,dc=tld2"}}; + int arrsize=sizeof( lip2user ) / sizeof( lip2user[0]); + tab[18].value = ""; // default expanded to - emty string + int i; + for(i=0;i<arrsize;i++) { + if (strcmp(net_ip2addr(&auth_request->local_ip),(lip2user[i][0]))==0) { + tab[18].value = lip2user[i][1]; + } + } return tab; } --------------------------------- and there need only possibility to define pairs in config file for lip2user array initialization - then macro/variable %x will be available for substitution in all modules - as for ldap , as for filename-based parameters. in exaple patch created static table to match lip to suffix 127.0.0.3 = "dc=domain1,dc=tld1" 127.0.0.1 = "localhost" 127.0.0.2 = "dc=domain2,dc=tld2" how to initialize arrays from config - i'm was not explored for currently used coding structures may create this array more complex = not as simple pair - but as for selective conversion: %x1 lip to text1, %x2 lip to text2, %x3 lip to text3 ... - then diffirent advanced configurations will be possible ...
participants (1)
-
DaLiV@apollo.lv