request->debug = TRUE;
else if (strcmp(key, "client_id") == 0)
request->client_id = p_strdup(request->pool, value);
+ else if (strcmp(key, "forward_fields") == 0)
+ auth_fields_import_prefixed(request->extra_fields,
+ "forward_", value, 0);
else
return FALSE;
/* NOTE: keep in sync with auth_request_export() */
str_append(str, "\tclient_id=");
str_append_tabescaped(str, info->client_id);
}
+ if (info->forward_fields != NULL &&
+ *info->forward_fields != '\0') {
+ str_append(str, "\tforward_fields=");
+ str_append_tabescaped(str, info->forward_fields);
+ }
if (info->initial_resp_base64 != NULL) {
str_append(str, "\tresp=");
str_append_tabescaped(str, info->initial_resp_base64);
const char *cert_username;
const char *local_name;
const char *client_id;
+ const char *forward_fields;
enum auth_request_flags flags;
struct ip_addr local_ip, remote_ip, real_local_ip, real_remote_ip;
const char *session_id, *listener_name, *postlogin_socket_path;
const char *local_name;
string_t *client_id;
+ string_t *forward_fields;
int fd;
struct istream *input;
info.real_remote_port = client->real_remote_port;
if (client->client_id != NULL)
info.client_id = str_c(client->client_id);
+ if (client->forward_fields != NULL)
+ info.forward_fields = str_c(client->forward_fields);
info.initial_resp_base64 = initial_resp_base64;
client->auth_request =