Mercurial > dovecot > core-2.2
diff src/auth/auth-request.c @ 3338:e5ce49c8524a HEAD
USER auth command requires now service parameter and supports also others
parameters. Fixes a crash in dovecot-auth with deliver+mysql.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 26 Apr 2005 14:43:30 +0300 |
parents | 04867ddac911 |
children | e4b84d82c685 |
line wrap: on
line diff
--- a/src/auth/auth-request.c Tue Apr 26 14:08:16 2005 +0300 +++ b/src/auth/auth-request.c Tue Apr 26 14:43:30 2005 +0300 @@ -101,10 +101,32 @@ str_append(str, request->user); str_append(str, "\tservice="); str_append(str, request->service); - str_append(str, "\tlip="); - str_append(str, net_ip2addr(&request->local_ip)); - str_append(str, "\trip="); - str_append(str, net_ip2addr(&request->remote_ip)); + + if (request->local_ip.family != 0) { + str_append(str, "\tlip="); + str_append(str, net_ip2addr(&request->local_ip)); + } + if (request->remote_ip.family != 0) { + str_append(str, "\trip="); + str_append(str, net_ip2addr(&request->remote_ip)); + } +} + +int auth_request_import(struct auth_request *request, + const char *key, const char *value) +{ + if (strcmp(key, "user") == 0) + request->user = p_strdup(request->pool, value); + if (strcmp(key, "service") == 0) + request->service = p_strdup(request->pool, value); + else if (strcmp(key, "lip") == 0) + net_addr2ip(value, &request->local_ip); + else if (strcmp(key, "rip") == 0) + net_addr2ip(value, &request->remote_ip); + else + return FALSE; + + return TRUE; } void auth_request_initial(struct auth_request *request,