The FreeRADIUS server $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
Loading...
Searching...
No Matches
subrequest.h
Go to the documentation of this file.
1#pragma once
2/*
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2, or (at your option)
6 * any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software Foundation,
15 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 */
17
18/**
19 * $Id: 01ca28284443e0ed2f09d4ce9301704a462e36ae $
20 *
21 * @file unlang/subrequest.h
22 *
23 * @copyright 2019 The FreeRADIUS server project
24 * @copyright 2021 Arran Cudbard-Bell (a.cudbardb@freeradius.org)
25 */
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30#include <freeradius-devel/server/request.h>
31#include <freeradius-devel/server/rcode.h>
32#include <stdbool.h>
33
34typedef struct {
35 bool enable; //!< Whether we should store/restore sessions.
36 void const *unique_ptr; //!< Session unique ptr identifier.
37 int unique_int; //!< Session unique int identifier.
39
41
43
45
47 unlang_subrequest_session_t const *session,
48 bool free_child, bool top_frame);
49
51
52#ifdef __cplusplus
53}
54#endif
rlm_rcode_t
Return codes indicating the result of the module call.
Definition rcode.h:40
int unlang_subrequest_child_push_and_detach(request_t *child)
int unlang_subrequest_lifetime_set(request_t *request)
Initialize a detached child.
int unique_int
Session unique int identifier.
Definition subrequest.h:37
void const * unique_ptr
Session unique ptr identifier.
Definition subrequest.h:36
request_t * unlang_subrequest_alloc(request_t *parent, fr_dict_t const *namespace)
Allocate a subrequest to run through a virtual server at some point in the future.
Definition subrequest.c:287
int unlang_subrequest_child_push(rlm_rcode_t *out, request_t *child, unlang_subrequest_session_t const *session, bool free_child, bool top_frame)
Push a pre-existing child back onto the stack as a subrequest.
void unlang_subrequest_detach_and_free(request_t **child)
Free a child request, detaching it from its parent and freeing allocated memory.
Definition subrequest.c:272
bool enable
Whether we should store/restore sessions.
Definition subrequest.h:35
static fr_slen_t parent
Definition pair.h:851
static size_t char ** out
Definition value.h:997