3
* Copyright (c) 2017 Kristaps Dzonsons <kristaps@bsd.lv>
5
* Permission to use, copy, modify, and distribute this software for any
6
* purpose with or without fee is hereby granted, provided that the above
7
* copyright notice and this permission notice appear in all copies.
9
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
34
curl_easy_setopt(curl, CURLOPT_URL,
35
"http://localhost:17123/index.html?foo=bar&baz&foo2=bar2&xyzzy");
36
return(CURLE_OK == curl_easy_perform(curl));
43
struct kvalid key[5] = {
44
{ kvalid_string, "foo" },
45
{ kvalid_string, "baz" },
46
{ kvalid_string, "foo2" },
47
{ kvalid_string, "xyzzy" },
48
{ kvalid_string, "bar" }};
49
const char *page[] = { "index" };
51
if (KCGI_OK != khttp_parse(&r, key, 5, page, 1, 0))
54
if (NULL == r.fieldmap[0] ||
55
NULL == r.fieldmap[1] ||
56
NULL == r.fieldmap[2] ||
57
NULL == r.fieldmap[3] ||
58
NULL != r.fieldmap[4])
61
if (strcmp(r.fieldmap[0]->parsed.s, "bar") ||
62
strcmp(r.fieldmap[1]->parsed.s, "") ||
63
strcmp(r.fieldmap[2]->parsed.s, "bar2") ||
64
strcmp(r.fieldmap[3]->parsed.s, ""))
67
khttp_head(&r, kresps[KRESP_STATUS],
68
"%s", khttps[KHTTP_200]);
69
khttp_head(&r, kresps[KRESP_CONTENT_TYPE],
70
"%s", kmimetypes[KMIME_TEXT_HTML]);
77
main(int argc, char *argv[])
80
return(regress_cgi(parent, child) ? EXIT_SUCCESS : EXIT_FAILURE);