xref: /openbsd-src/usr.sbin/bgplgd/slowcgi.h (revision e76e7180ef44bd7168efdb5e33737f0b23c51e48)
1 /*	$OpenBSD: slowcgi.h,v 1.1 2022/06/28 16:11:30 claudio Exp $ */
2 /*
3  * Copyright (c) 2013 David Gwynne <dlg@openbsd.org>
4  * Copyright (c) 2013 Florian Obser <florian@openbsd.org>
5  *
6  * Permission to use, copy, modify, and distribute this software for any
7  * purpose with or without fee is hereby granted, provided that the above
8  * copyright notice and this permission notice appear in all copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 #define FCGI_BEGIN_REQUEST	 1
20 #define FCGI_ABORT_REQUEST	 2
21 #define FCGI_END_REQUEST	 3
22 #define FCGI_PARAMS		 4
23 #define FCGI_STDIN		 5
24 #define FCGI_STDOUT		 6
25 #define FCGI_STDERR		 7
26 #define FCGI_DATA		 8
27 #define FCGI_GET_VALUES		 9
28 #define FCGI_GET_VALUES_RESULT	10
29 #define FCGI_UNKNOWN_TYPE	11
30 #define FCGI_MAXTYPE		(FCGI_UNKNOWN_TYPE)
31 
32 struct loggers {
33 	__dead void (*err)(int, const char *, ...)
34 	    __attribute__((__format__ (printf, 2, 3)));
35 	__dead void (*errx)(int, const char *, ...)
36 	    __attribute__((__format__ (printf, 2, 3)));
37 	void (*warn)(const char *, ...)
38 	    __attribute__((__format__ (printf, 1, 2)));
39 	void (*warnx)(const char *, ...)
40 	    __attribute__((__format__ (printf, 1, 2)));
41 	void (*info)(const char *, ...)
42 	    __attribute__((__format__ (printf, 1, 2)));
43 	void (*debug)(const char *, ...)
44 	    __attribute__((__format__ (printf, 1, 2)));
45 };
46 
47 extern const struct loggers *logger;
48 
49 #define lerr(_e, _f...) logger->err((_e), _f)
50 #define lerrx(_e, _f...) logger->errx((_e), _f)
51 #define lwarn(_f...) logger->warn(_f)
52 #define lwarnx(_f...) logger->warnx(_f)
53 #define linfo(_f...) logger->info(_f)
54 #define ldebug(_f...) logger->debug(_f)
55 
56