str_append(str, "\tanonymous");
}
/* generate auth_token when master service provided session_pid */
- if (request->session_pid != (pid_t)-1) {
+ if (request->request_auth_token &&
+ request->session_pid != (pid_t)-1) {
const char *auth_token =
auth_token_get(request->service,
dec2str(request->session_pid),
if (strcmp(key, "session_pid") == 0) {
if (str_to_pid(value, &pid) == 0)
request->session_pid = pid;
- } else
+ } else if (strcmp(key, "request_auth_token") == 0)
+ request->request_auth_token = TRUE;
+ else
return FALSE;
return TRUE;
}
{ '\0', NULL, "domain_first" },
{ '\0', NULL, "domain_last" },
{ '\0', NULL, "master_user" },
+ { '\0', NULL, "session_pid" },
/* be sure to update AUTH_REQUEST_VAR_TAB_COUNT */
{ '\0', NULL, NULL }
};
tab[24].value = escape_func(tab[24].value+1, auth_request);
tab[25].value = auth_request->master_user == NULL ? NULL :
escape_func(auth_request->master_user, auth_request);
+ tab[26].value = auth_request->session_pid == (pid_t)-1 ? NULL :
+ dec2str(auth_request->session_pid);
return ret_tab;
}
unsigned int no_penalty:1;
unsigned int valid_client_cert:1;
unsigned int cert_username:1;
+ unsigned int request_auth_token:1;
/* success/failure states: */
unsigned int successful:1;
#define AUTH_REQUEST_VAR_TAB_USER_IDX 0
#define AUTH_REQUEST_VAR_TAB_USERNAME_IDX 1
#define AUTH_REQUEST_VAR_TAB_DOMAIN_IDX 2
-#define AUTH_REQUEST_VAR_TAB_COUNT 26
+#define AUTH_REQUEST_VAR_TAB_COUNT 27
extern const struct var_expand_table
auth_request_var_expand_static_tab[AUTH_REQUEST_VAR_TAB_COUNT+1];
str_printfa(str, "REQUEST\t%u\t%u\t%u\t", req->id,
req->client_pid, req->auth_id);
binary_to_hex_append(str, req->cookie, sizeof(req->cookie));
+ str_printfa(str, "\tsession_pid=%s", my_pid);
if (auth->request_auth_token)
- str_printfa(str, "\tsession_pid=%s", my_pid);
+ str_append(str, "\trequest_auth_token");
str_append_c(str, '\n');
o_stream_nsend(auth->output, str_data(str), str_len(str));
}