}
}
+void auth_request_set_null_field(struct auth_request *request, const char *name)
+{
+ if (strncmp(name, "userdb_", 7) == 0) {
+ /* make sure userdb prefetch is used even if all the fields
+ were returned as NULL. */
+ if (request->userdb_reply == NULL)
+ auth_request_init_userdb_reply(request);
+ }
+}
+
void auth_request_set_field_keyvalue(struct auth_request *request,
const char *field,
const char *default_scheme)
void auth_request_set_field(struct auth_request *request,
const char *name, const char *value,
const char *default_scheme) ATTR_NULL(4);
+void auth_request_set_null_field(struct auth_request *request, const char *name);
void auth_request_set_field_keyvalue(struct auth_request *request,
const char *field,
const char *default_scheme) ATTR_NULL(3);
name = sql_result_get_field_name(result, i);
value = sql_result_get_field_value(result, i);
- if (*name != '\0' && value != NULL) {
+ if (*name == '\0')
+ ;
+ else if (value == NULL)
+ auth_request_set_null_field(auth_request, name);
+ else {
auth_request_set_field(auth_request, name, value,
module->conn->set.default_pass_scheme);
}