#include "strescape.h"
#include "ostream.h"
#include "auth-client-private.h"
+#include "strfuncs.h"
static void auth_server_send_new_request(struct auth_client_connection *conn,
struct auth_client_request *request,
}
for (tmp = args; *tmp != NULL; tmp++) {
- (void)str_begins(*tmp, "resp=", &base64_data);
- args_parse_user(request, *tmp);
+ const char *key;
+ const char *value;
+ t_split_key_value_eq(*tmp, &key, &value);
+ if (str_begins(key, "event_", &key)) {
+ event_add_str(request->event, key, value);
+ } else if (strcmp(key, "resp") == 0) {
+ base64_data = value;
+ } else {
+ args_parse_user(request, *tmp);
+ }
}
switch (status) {
}
} else if (str_begins_with(key, "forward_")) {
/* these are passed to upstream */
+ } else if (str_begins(key, "event_", &key)) {
+ /* add key to event */
+ event_add_str(client->event_auth, key, value);
} else
e_debug(client->event_auth,
"Ignoring unknown passdb extra field: %s", key);
nologin = TRUE;
} else if (strcmp(key, "anonymous") == 0) {
client->auth_anonymous = TRUE;
+ } else if (str_begins(args[i], "event_", &key)) {
+ event_add_str(client->event_auth, key, value);
} else if (login_binary->sasl_support_final_reply &&
strcmp(key, "resp") == 0) {
client->sasl_final_resp =