Blame


1 aac8053c 2021-08-12 xhr /*
2 aac8053c 2021-08-12 xhr * Copyright (c) 2021 Matthias Schmidt <xhr@giessen.ccc.de>
3 aac8053c 2021-08-12 xhr *
4 aac8053c 2021-08-12 xhr * Permission to use, copy, modify, and distribute this software for any
5 aac8053c 2021-08-12 xhr * purpose with or without fee is hereby granted, provided that the above
6 aac8053c 2021-08-12 xhr * copyright notice and this permission notice appear in all copies.
7 aac8053c 2021-08-12 xhr *
8 aac8053c 2021-08-12 xhr * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 aac8053c 2021-08-12 xhr * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 aac8053c 2021-08-12 xhr * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 aac8053c 2021-08-12 xhr * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 aac8053c 2021-08-12 xhr * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 aac8053c 2021-08-12 xhr * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 aac8053c 2021-08-12 xhr * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 aac8053c 2021-08-12 xhr */
16 aac8053c 2021-08-12 xhr
17 84033a53 2021-08-08 xhr #ifndef _TWIND_H
18 84033a53 2021-08-08 xhr #define _TWIND_H
19 84033a53 2021-08-08 xhr
20 84033a53 2021-08-08 xhr #include <openssl/ssl.h>
21 84033a53 2021-08-08 xhr
22 b67b4591 2021-08-12 xhr #define VERSION "2021.a"
23 ff6c1f52 2021-08-13 xhr #define MAXREQLEN 1025
24 b67b4591 2021-08-12 xhr
25 1e186154 2021-08-20 xhr /* gemini.c */
26 1e186154 2021-08-20 xhr int check_gemini_file(const char *);
27 1e186154 2021-08-20 xhr int send_response(SSL*, int, const char *, const char *);
28 1e186154 2021-08-20 xhr int send_non_success_response(SSL*, int);
29 1e186154 2021-08-20 xhr
30 1e186154 2021-08-20 xhr /* request.c */
31 1e186154 2021-08-20 xhr int get_path_from_request(char *, char *);
32 1e186154 2021-08-20 xhr
33 1e186154 2021-08-20 xhr /* mime.c */
34 1e186154 2021-08-20 xhr char* get_file_extension(const char*);
35 1e186154 2021-08-20 xhr char* get_mime_type(const char *);
36 1e186154 2021-08-20 xhr
37 1e186154 2021-08-20 xhr /* util.c */
38 1e186154 2021-08-20 xhr void* xmalloc(size_t);
39 1e186154 2021-08-20 xhr char* xstrdup(const char *);
40 1e186154 2021-08-20 xhr size_t strlcpy(char *, const char *, size_t);
41 1e186154 2021-08-20 xhr
42 0f9df5ff 2021-08-06 xhr enum status_codes {
43 0f9df5ff 2021-08-06 xhr STATUS_INPUT = 10,
44 0f9df5ff 2021-08-06 xhr STATUS_SENSITIVE_INPUT = 11,
45 0f9df5ff 2021-08-06 xhr STATUS_SUCCESS = 20,
46 0f9df5ff 2021-08-06 xhr STATUS_REDIRECT_TEMP = 30,
47 0f9df5ff 2021-08-06 xhr STATUS_REDIRECT_PERM = 31,
48 0f9df5ff 2021-08-06 xhr STATUS_TEMP_UNAVAILABLE = 40,
49 0f9df5ff 2021-08-06 xhr STATUS_SERVER_UNAVAILABLE = 41,
50 0f9df5ff 2021-08-06 xhr STATUS_CGI_ERROR = 42,
51 0f9df5ff 2021-08-06 xhr STATUS_PROXY_ERROR = 43,
52 0f9df5ff 2021-08-06 xhr STATUS_SLOW_DOWN = 44,
53 0f9df5ff 2021-08-06 xhr STATUS_PERM_FAILURE = 50,
54 0f9df5ff 2021-08-06 xhr STATUS_NOT_FOUND = 51,
55 0f9df5ff 2021-08-06 xhr STATUS_GONE = 52,
56 0f9df5ff 2021-08-06 xhr STATUS_PROXY_REQUEST_REFUSED = 53,
57 0f9df5ff 2021-08-06 xhr STATUS_BAD_REQUEST = 59,
58 0f9df5ff 2021-08-06 xhr STATUS_CLIENT_CERT_REQUIRED = 60,
59 0f9df5ff 2021-08-06 xhr STATUS_CERT_NOT_AUTHORIZED = 61,
60 0f9df5ff 2021-08-06 xhr STATUS_CERT_NOT_VALID = 62,
61 0f9df5ff 2021-08-06 xhr };
62 0f9df5ff 2021-08-06 xhr
63 84033a53 2021-08-08 xhr #endif