5 #include "base_decls.h"
11 int http_response_parse(server
*srv
, connection
*con
);
12 int http_response_write_header(server
*srv
, connection
*con
);
14 typedef struct http_cgi_opts_t
{
16 int break_scriptfilename_for_php
;
18 buffer
*strip_request_uri
;
29 typedef struct http_response_opts_t
{
33 unsigned short local_redir
;
34 unsigned short xsendfile_allow
;
35 array
*xsendfile_docroot
;
37 handler_t(*parse
)(server
*, connection
*, struct http_response_opts_t
*, buffer
*, size_t);
38 handler_t(*headers
)(server
*, connection
*, struct http_response_opts_t
*);
41 typedef int (*http_cgi_header_append_cb
)(void *vdata
, const char *k
, size_t klen
, const char *v
, size_t vlen
);
42 int http_cgi_headers(server
*srv
, connection
*con
, http_cgi_opts
*opts
, http_cgi_header_append_cb cb
, void *vdata
);
44 handler_t
http_response_parse_headers(server
*srv
, connection
*con
, http_response_opts
*opts
, buffer
*hdrs
);
45 handler_t
http_response_read(server
*srv
, connection
*con
, http_response_opts
*opts
, buffer
*b
, fdnode
*fdn
);
46 handler_t
http_response_prepare(server
*srv
, connection
*con
);
47 int http_response_buffer_append_authority(server
*srv
, connection
*con
, buffer
*b
);
48 int http_response_redirect_to_directory(server
*srv
, connection
*con
, int status
);
49 int http_response_handle_cachable(server
*srv
, connection
*con
, buffer
* mtime
);
50 void http_response_body_clear(connection
*con
, int preserve_length
);
51 void http_response_send_file (server
*srv
, connection
*con
, buffer
*path
);
52 void http_response_backend_done (server
*srv
, connection
*con
);
53 void http_response_backend_error (server
*srv
, connection
*con
);
54 void http_response_upgrade_read_body_unknown(server
*srv
, connection
*con
);
56 buffer
* strftime_cache_get(server
*srv
, time_t last_mod
);