function api_output_rabx($arr) { $out = ''; rabx_wire_wr($arr, $out); if (get_http_var('verbose')) { $out = str_replace(',', ",\n", $out); } return $out; }
function auth_token_store($scope, $data) { $token = auth_random_token(); $ser = ''; rabx_wire_wr($data, $ser); db_query(' insert into token (scope, token, data, created) values (?, ?, ?, ms_current_timestamp())', array($scope, $token, $ser)); return $token; }
function stash_redirect($key, $email = NULL, $function = NULL) { list($method, $url, $post_data, $old_email) = db_getRow_list('select method, url, post_data, email from requeststash where key = ?', $key); if ($email && $old_email) { // For if they changed email address on login screen $post_data = pg_unescape_bytea($post_data); $pos = 0; $params = rabx_wire_rd(&$post_data, &$pos); if (rabx_is_error($params)) { err("Bad serialised POST data in stash_redirect('{$key}')"); } $params = call_user_func($function, $params, $old_email, $email); $new_post_data = ''; rabx_wire_wr($params, $new_post_data); if ($post_data != $new_post_data) { $post_data = $new_post_data; db_query('update requeststash set post_data = ? where key = ?', $post_data, $key); db_commit(); } } if (is_null($method)) { err(_("If you got the email more than a year ago, then your request has probably expired. Please try doing what you were doing from the beginning."), E_USER_NOTICE); } if (headers_sent()) { err("Headers have already been sent in stash_redirect('{$key}')"); } if ($method == 'GET') { /* should we ob_clean here? */ header("Location: {$url}"); exit; } else { // POST /* add token on end so can pull out POST params after redirect */ $url .= strstr($url, "?") ? '&' : '?'; $url .= "stashpost={$key}"; header("Location: {$url}"); #print "Going to $url"; exit; } }
function rabx_serialise(&$x) { $ser = ''; rabx_wire_wr($x, $ser); return $ser; }