Mercurial > dovecot > original-hg > dovecot-1.2
changeset 1063:af288710044a HEAD
updates
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 31 Jan 2003 08:57:40 +0200 |
parents | 0522a0315d2f |
children | 1577e4cfd569 |
files | src/lib-settings/settings.c src/lib-settings/settings.h src/master/master-settings.c |
diffstat | 3 files changed, 13 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-settings/settings.c Fri Jan 31 08:56:57 2003 +0200 +++ b/src/lib-settings/settings.c Fri Jan 31 08:57:40 2003 +0200 @@ -59,8 +59,8 @@ #define IS_WHITE(c) ((c) == ' ' || (c) == '\t') -void settings_read(const char *path, - const char *(*callback)(const char *key, const char *value)) +void settings_read(const char *path, settings_callback_t *callback, + void *context) { struct istream *input; const char *errormsg; @@ -114,7 +114,7 @@ p--; *p = '\0'; - errormsg = callback(key, line); + errormsg = callback(key, line, context); } if (errormsg != NULL) {
--- a/src/lib-settings/settings.h Fri Jan 31 08:56:57 2003 +0200 +++ b/src/lib-settings/settings.h Fri Jan 31 08:57:40 2003 +0200 @@ -13,11 +13,14 @@ size_t offset; }; +typedef const char *settings_callback_t(const char *key, const char *value, + void *context); + const char * parse_setting_from_defs(pool_t pool, struct setting_def *defs, void *base, const char *key, const char *value); -void settings_read(const char *path, - const char *(*callback)(const char *key, const char *value)); +void settings_read(const char *path, settings_callback_t *callback, + void *context); #endif
--- a/src/master/master-settings.c Fri Jan 31 08:56:57 2003 +0200 +++ b/src/master/master-settings.c Fri Jan 31 08:57:40 2003 +0200 @@ -451,8 +451,11 @@ return NULL; } -static const char *parse_setting(const char *key, const char *value) +static const char *parse_setting(const char *key, const char *value, + void *context) { + struct settings *set = context; + if (strcmp(key, "auth") == 0) return parse_new_auth(set, value); if (strncmp(key, "auth_", 5) == 0) { @@ -484,7 +487,7 @@ set = p_new(settings_pool, struct settings, 1); *set = default_settings; - settings_read(path, parse_setting); + settings_read(path, parse_setting, set); settings_verify(set); }