libwebsockets
Lightweight C library for HTML5 websockets
lws-cgi.h
Go to the documentation of this file.
1
/*
2
* libwebsockets - small server side websockets and web server implementation
3
*
4
* Copyright (C) 2010 - 2019 Andy Green <andy@warmcat.com>
5
*
6
* Permission is hereby granted, free of charge, to any person obtaining a copy
7
* of this software and associated documentation files (the "Software"), to
8
* deal in the Software without restriction, including without limitation the
9
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10
* sell copies of the Software, and to permit persons to whom the Software is
11
* furnished to do so, subject to the following conditions:
12
*
13
* The above copyright notice and this permission notice shall be included in
14
* all copies or substantial portions of the Software.
15
*
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22
* IN THE SOFTWARE.
23
*/
24
35
enum
lws_enum_stdinouterr
{
36
LWS_STDIN
= 0,
37
LWS_STDOUT
= 1,
38
LWS_STDERR
= 2,
39
};
40
41
enum
lws_cgi_hdr_state
{
42
LCHS_HEADER
,
43
LCHS_CR1
,
44
LCHS_LF1
,
45
LCHS_CR2
,
46
LCHS_LF2
,
47
LHCS_RESPONSE
,
48
LHCS_DUMP_HEADERS
,
49
LHCS_PAYLOAD
,
50
LCHS_SINGLE_0A
,
51
};
52
53
struct
lws_cgi_args
{
54
struct
lws **
stdwsi
;
55
enum
lws_enum_stdinouterr
ch
;
56
unsigned
char
*
data
;
57
enum
lws_cgi_hdr_state
hdr_state
;
58
int
len
;
59
};
60
63
struct
lws_cgi_info
{
64
struct
lws *
wsi
;
66
const
char
*
const
*
exec_array
;
68
int
script_uri_path_len
;
71
int
timeout_secs
;
73
const
struct
lws_protocol_vhost_options
*
mp_cgienv
;
75
const
char
*
chroot_path
;
77
const
char
*
wd
;
79
};
80
81
#ifdef LWS_WITH_CGI
86
LWS_VISIBLE
LWS_EXTERN
int
lws_cgi_via_info(
struct
lws_cgi_info
* cgiinfo);
87
98
LWS_VISIBLE
LWS_EXTERN
int
99
lws_cgi(
struct
lws *wsi,
const
char
*
const
*exec_array,
100
int
script_uri_path_len,
int
timeout_secs,
101
const
struct
lws_protocol_vhost_options
*mp_cgienv);
102
108
LWS_VISIBLE
LWS_EXTERN
int
109
lws_cgi_write_split_stdout_headers(
struct
lws *wsi);
110
116
LWS_VISIBLE
LWS_EXTERN
int
117
lws_cgi_kill(
struct
lws *wsi);
118
125
LWS_VISIBLE
LWS_EXTERN
struct
lws *
126
lws_cgi_get_stdwsi(
struct
lws *wsi,
enum
lws_enum_stdinouterr
ch);
127
128
#endif
130
lws_protocol_vhost_options
Definition:
lws-context-vhost.h:1308
LWS_EXTERN
#define LWS_EXTERN
Definition:
libwebsockets.h:231
LWS_VISIBLE
#define LWS_VISIBLE
Definition:
libwebsockets.h:226
lws_cgi_info::chroot_path
const char * chroot_path
Definition:
lws-cgi.h:75
lws_enum_stdinouterr
lws_enum_stdinouterr
Definition:
lws-cgi.h:35
LWS_STDOUT
@ LWS_STDOUT
Definition:
lws-cgi.h:37
LWS_STDERR
@ LWS_STDERR
Definition:
lws-cgi.h:38
LWS_STDIN
@ LWS_STDIN
Definition:
lws-cgi.h:36
lws_cgi_args::len
int len
Definition:
lws-cgi.h:58
lws_cgi_hdr_state
lws_cgi_hdr_state
Definition:
lws-cgi.h:41
LCHS_LF2
@ LCHS_LF2
Definition:
lws-cgi.h:46
LHCS_RESPONSE
@ LHCS_RESPONSE
Definition:
lws-cgi.h:47
LCHS_CR1
@ LCHS_CR1
Definition:
lws-cgi.h:43
LCHS_HEADER
@ LCHS_HEADER
Definition:
lws-cgi.h:42
LHCS_DUMP_HEADERS
@ LHCS_DUMP_HEADERS
Definition:
lws-cgi.h:48
LCHS_LF1
@ LCHS_LF1
Definition:
lws-cgi.h:44
LCHS_SINGLE_0A
@ LCHS_SINGLE_0A
Definition:
lws-cgi.h:50
LCHS_CR2
@ LCHS_CR2
Definition:
lws-cgi.h:45
LHCS_PAYLOAD
@ LHCS_PAYLOAD
Definition:
lws-cgi.h:49
lws_cgi_args::stdwsi
struct lws ** stdwsi
Definition:
lws-cgi.h:54
lws_cgi_info::wsi
struct lws * wsi
Definition:
lws-cgi.h:64
lws_cgi_info::script_uri_path_len
int script_uri_path_len
Definition:
lws-cgi.h:68
lws_cgi_args::hdr_state
enum lws_cgi_hdr_state hdr_state
Definition:
lws-cgi.h:57
lws_cgi_args::data
unsigned char * data
Definition:
lws-cgi.h:56
lws_cgi_info::mp_cgienv
const struct lws_protocol_vhost_options * mp_cgienv
Definition:
lws-cgi.h:73
lws_cgi_info::wd
const char * wd
Definition:
lws-cgi.h:77
lws_cgi_info::timeout_secs
int timeout_secs
Definition:
lws-cgi.h:71
lws_cgi_info::exec_array
const char *const * exec_array
Definition:
lws-cgi.h:66
lws_cgi_args::ch
enum lws_enum_stdinouterr ch
Definition:
lws-cgi.h:55
lws_cgi_args
Definition:
lws-cgi.h:53
lws_cgi_info
Definition:
lws-cgi.h:63
include
libwebsockets
lws-cgi.h
Generated on Thu Apr 10 2025 05:43:22 for libwebsockets by
1.9.1