xref: /lighttpd1.4/src/response.h (revision 3392e8fb)
1 #ifndef _RESPONSE_H_
2 #define _RESPONSE_H_
3 #include "first.h"
4 
5 #include "base_decls.h"
6 #include "buffer.h"
7 #include "array.h"
8 
9 #include <time.h>
10 
11 int http_response_parse(server *srv, request_st *r);
12 
13 enum {
14   BACKEND_PROXY = 0
15  ,BACKEND_CGI
16  ,BACKEND_FASTCGI
17  ,BACKEND_SCGI
18  ,BACKEND_AJP13
19 };
20 
21 typedef struct http_response_opts_t {
22   int fdfmt;
23   int backend;
24   int authorizer;
25   unsigned short local_redir;
26   unsigned short xsendfile_allow;
27   const array *xsendfile_docroot;
28   void *pdata;
29   handler_t(*parse)(request_st *, struct http_response_opts_t *, buffer *, size_t);
30   handler_t(*headers)(request_st *, struct http_response_opts_t *);
31 } http_response_opts;
32 
33 typedef int (*http_response_send_1xx_cb)(request_st *r, connection *con);
34 __attribute_cold__
35 void http_response_send_1xx_cb_set (http_response_send_1xx_cb fn, int vers);
36 int http_response_send_1xx (request_st *r);
37 
38 handler_t http_response_parse_headers(request_st *r, http_response_opts *opts, buffer *hdrs);
39 handler_t http_response_read(request_st *r, http_response_opts *opts, buffer *b, fdnode *fdn);
40 
41 __attribute_cold__
42 handler_t http_response_reqbody_read_error(request_st *r, int http_status);
43 
44 int http_response_buffer_append_authority(request_st *r, buffer *o);
45 int http_response_redirect_to_directory(request_st *r, int status);
46 const buffer * http_response_set_last_modified(request_st *r, time_t lmtime);
47 int http_response_handle_cachable(request_st *r, const buffer *lmod, time_t lmtime);
48 void http_response_body_clear(request_st *r, int preserve_length);
49 void http_response_reset(request_st *r);
50 void http_response_send_file (request_st *r, buffer *path);
51 void http_response_backend_done (request_st *r);
52 void http_response_backend_error (request_st *r);
53 void http_response_upgrade_read_body_unknown(request_st *r);
54 
55 __attribute_cold__
56 int http_response_omit_header(request_st *r, const data_string *ds);
57 
58 void http_response_write_header(request_st *r);
59 handler_t http_response_handler(request_st *r);
60 
61 __attribute_cold__
62 void strftime_cache_reset(void);
63 
64 #endif
65