value = dec2str(gid);
} else if (strcmp(name, "tempfail") == 0) {
request->userdb_lookup_failed = TRUE;
+ return;
} else if (strcmp(name, "user") == 0) {
auth_request_change_userdb_user(request, value);
return;
struct auth_worker_client *client = auth_request->context;
struct auth_stream_reply *reply = auth_request->userdb_reply;
string_t *str;
- const char *value;
-
- if (auth_request->userdb_lookup_failed)
- result = USERDB_RESULT_INTERNAL_FAILURE;
str = t_str_new(128);
str_printfa(str, "%u\t", auth_request->id);
switch (result) {
case USERDB_RESULT_INTERNAL_FAILURE:
str_append(str, "FAIL\t");
- if (auth_request->userdb_lookup_failed) {
- value = auth_stream_reply_find(reply, "reason");
- if (value != NULL)
- str_printfa(str, "reason=%s", value);
- }
break;
case USERDB_RESULT_USER_UNKNOWN:
str_append(str, "NOTFOUND\t");
case USERDB_RESULT_OK:
str_append(str, "OK\t");
str_append(str, auth_stream_reply_export(reply));
+ if (auth_request->userdb_lookup_failed)
+ str_append(str, "\ttempfail");
break;
}
str_append_c(str, '\n');
if (*args != '\0') {
request->userdb_reply = auth_stream_reply_init(request->pool);
auth_stream_reply_import(request->userdb_reply, args);
+ if (auth_stream_reply_find(request->userdb_reply,
+ "tempfail") != NULL)
+ request->userdb_lookup_failed = TRUE;
}
auth_request_userdb_callback(result, request);