Mercurial > dovecot > core-2.2
diff src/auth/auth-request.c @ 7388:08d31d752893 HEAD
Use auth-stream API to build all TAB-delimited strings to make sure strings
are escaped properly where necessary.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 09 Mar 2008 12:37:26 +0200 |
parents | be991f857c70 |
children | 1125d2d59e82 |
line wrap: on
line diff
--- a/src/auth/auth-request.c Sun Mar 09 10:32:59 2008 +0200 +++ b/src/auth/auth-request.c Sun Mar 09 12:37:26 2008 +0200 @@ -115,38 +115,37 @@ pool_unref(&request->pool); } -void auth_request_export(struct auth_request *request, string_t *str) +void auth_request_export(struct auth_request *request, + struct auth_stream_reply *reply) { - str_append(str, "user="); - str_append(str, request->user); - str_append(str, "\tservice="); - str_append(str, request->service); + auth_stream_reply_add(reply, "user", request->user); + auth_stream_reply_add(reply, "service", request->service); if (request->master_user != NULL) { - str_append(str, "\tmaster_user="); - str_append(str, request->master_user); + auth_stream_reply_add(reply, "master_user", + request->master_user); } if (request->local_ip.family != 0) { - str_append(str, "\tlip="); - str_append(str, net_ip2addr(&request->local_ip)); + auth_stream_reply_add(reply, "lip", + net_ip2addr(&request->local_ip)); } if (request->remote_ip.family != 0) { - str_append(str, "\trip="); - str_append(str, net_ip2addr(&request->remote_ip)); + auth_stream_reply_add(reply, "rip", + net_ip2addr(&request->remote_ip)); } if (request->local_port != 0) { - str_append(str, "\tlport="); - str_printfa(str, "%u", request->local_port); + auth_stream_reply_add(reply, "lport", + dec2str(request->local_port)); } if (request->remote_port != 0) { - str_append(str, "\trport="); - str_printfa(str, "%u", request->remote_port); + auth_stream_reply_add(reply, "rport", + dec2str(request->remote_port)); } if (request->secured) - str_append(str, "\tsecured=1"); + auth_stream_reply_add(reply, "secured", "1"); if (request->skip_password_check) - str_append(str, "\tskip_password_check=1"); + auth_stream_reply_add(reply, "skip_password_check", "1"); } bool auth_request_import(struct auth_request *request, @@ -352,8 +351,10 @@ } } } else if (*result == PASSDB_RESULT_PASS_EXPIRED) { - if (request->extra_fields == NULL) - request->extra_fields = auth_stream_reply_init(request); + if (request->extra_fields == NULL) { + request->extra_fields = + auth_stream_reply_init(request->pool); + } auth_stream_reply_add(request->extra_fields, "reason", "Password expired"); } else if (request->passdb->next != NULL && @@ -632,12 +633,12 @@ if (*value == '\0') { /* negative cache entry */ *result_r = USERDB_RESULT_USER_UNKNOWN; - *reply_r = auth_stream_reply_init(request); + *reply_r = auth_stream_reply_init(request->pool); return TRUE; } *result_r = USERDB_RESULT_OK; - *reply_r = auth_stream_reply_init(request); + *reply_r = auth_stream_reply_init(request->pool); auth_stream_reply_import(*reply_r, value); return TRUE; } @@ -994,7 +995,7 @@ } if (request->extra_fields == NULL) - request->extra_fields = auth_stream_reply_init(request); + request->extra_fields = auth_stream_reply_init(request->pool); auth_stream_reply_add(request->extra_fields, name, value); } @@ -1087,7 +1088,7 @@ /* we'll need to get this field stored into cache */ if (request->extra_cache_fields == NULL) { request->extra_cache_fields = - auth_stream_reply_init(request); + auth_stream_reply_init(request->pool); } auth_stream_reply_add(request->extra_cache_fields, name, value); } @@ -1117,7 +1118,7 @@ void auth_request_init_userdb_reply(struct auth_request *request) { - request->userdb_reply = auth_stream_reply_init(request); + request->userdb_reply = auth_stream_reply_init(request->pool); auth_stream_reply_add(request->userdb_reply, NULL, request->user); }