/[hydra]/hydra/src/response.c
ViewVC logotype

Diff of /hydra/src/response.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by nmav, Wed Sep 25 19:55:53 2002 UTC revision 1.6 by nmav, Wed Sep 25 20:39:04 2002 UTC
# Line 24  Line 24 
24    
25  #include "boa.h"  #include "boa.h"
26    
 #define HTML "text/html; charset=ISO-8859-1"  
 #define CRLF "\r\n"  
   
27  void print_content_type(request * req)  void print_content_type(request * req)
28  {  {
29      req_write(req, "Content-Type: ");      req_write(req, "Content-Type: ");
# Line 129  void send_r_request_ok(request * req) Line 126  void send_r_request_ok(request * req)
126      if (req->simple)      if (req->simple)
127          return;          return;
128    
129      req_write(req, "HTTP/1.0 200 OK\r\n");      req_write(req, HTTP_VERSION" 200 OK\r\n");
130      print_http_headers(req);      print_http_headers(req);
131    
132      if (!req->is_cgi) {      if (!req->is_cgi) {
# Line 147  void send_r_request_partial(request * re Line 144  void send_r_request_partial(request * re
144      if (req->simple)      if (req->simple)
145          return;          return;
146    
147      req_write(req, "HTTP/1.0 206 Partial content\r\n");      req_write(req, HTTP_VERSION" 206 Partial content\r\n");
148      print_http_headers(req);      print_http_headers(req);
149    
150      if (!req->is_cgi) {      if (!req->is_cgi) {
# Line 165  void send_r_moved_perm(request * req, ch Line 162  void send_r_moved_perm(request * req, ch
162      SQUASH_KA(req);      SQUASH_KA(req);
163      req->response_status = R_MOVED_PERM;      req->response_status = R_MOVED_PERM;
164      if (!req->simple) {      if (!req->simple) {
165          req_write(req, "HTTP/1.0 301 Moved Permanently\r\n");          req_write(req, HTTP_VERSION" 301 Moved Permanently\r\n");
166          print_http_headers(req);          print_http_headers(req);
167          req_write(req, "Content-Type: " HTML "\r\n");          req_write(req, "Content-Type: " TEXT_HTML "\r\n");
168    
169          req_write(req, "Location: ");          req_write(req, "Location: ");
170          req_write_escape_http(req, url);          req_write_escape_http(req, url);
# Line 190  void send_r_moved_temp(request * req, ch Line 187  void send_r_moved_temp(request * req, ch
187      SQUASH_KA(req);      SQUASH_KA(req);
188      req->response_status = R_MOVED_TEMP;      req->response_status = R_MOVED_TEMP;
189      if (!req->simple) {      if (!req->simple) {
190          req_write(req, "HTTP/1.0 302 Moved Temporarily\r\n");          req_write(req, HTTP_VERSION" 302 Moved Temporarily\r\n");
191          print_http_headers(req);          print_http_headers(req);
192          req_write(req, "Content-Type: " HTML "\r\n");          req_write(req, "Content-Type: " TEXT_HTML "\r\n");
193    
194          req_write(req, "Location: ");          req_write(req, "Location: ");
195          req_write_escape_http(req, url);          req_write_escape_http(req, url);
# Line 216  void send_r_not_modified(request * req) Line 213  void send_r_not_modified(request * req)
213  {  {
214      SQUASH_KA(req);      SQUASH_KA(req);
215      req->response_status = R_NOT_MODIFIED;      req->response_status = R_NOT_MODIFIED;
216      req_write(req, "HTTP/1.0 304 Not Modified\r\n");      req_write(req, HTTP_VERSION" 304 Not Modified\r\n");
217      print_http_headers(req);      print_http_headers(req);
218      print_content_type(req);      print_content_type(req);
219      req_write(req, "\r\n");      req_write(req, "\r\n");
# Line 229  void send_r_bad_request(request * req) Line 226  void send_r_bad_request(request * req)
226      SQUASH_KA(req);      SQUASH_KA(req);
227      req->response_status = R_BAD_REQUEST;      req->response_status = R_BAD_REQUEST;
228      if (!req->simple) {      if (!req->simple) {
229          req_write(req, "HTTP/1.0 400 Bad Request\r\n");          req_write(req, HTTP_VERSION" 400 Bad Request\r\n");
230          print_http_headers(req);          print_http_headers(req);
231          req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header */          req_write(req, "Content-Type: " TEXT_HTML "\r\n\r\n"); /* terminate header */
232      }      }
233      if (req->method != M_HEAD)      if (req->method != M_HEAD)
234          req_write(req,          req_write(req,
# Line 247  void send_r_unauthorized(request * req, Line 244  void send_r_unauthorized(request * req,
244      SQUASH_KA(req);      SQUASH_KA(req);
245      req->response_status = R_UNAUTHORIZED;      req->response_status = R_UNAUTHORIZED;
246      if (!req->simple) {      if (!req->simple) {
247          req_write(req, "HTTP/1.0 401 Unauthorized\r\n");          req_write(req, HTTP_VERSION" 401 Unauthorized\r\n");
248          print_http_headers(req);          print_http_headers(req);
249          req_write(req, "WWW-Authenticate: Basic realm=\"");          req_write(req, "WWW-Authenticate: Basic realm=\"");
250          req_write(req, realm_name);          req_write(req, realm_name);
251          req_write(req, "\"\r\n");          req_write(req, "\"\r\n");
252          req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header */          req_write(req, "Content-Type: " TEXT_HTML "\r\n\r\n"); /* terminate header */
253      }      }
254      if (req->method != M_HEAD) {      if (req->method != M_HEAD) {
255          req_write(req,          req_write(req,
# Line 271  void send_r_forbidden(request * req) Line 268  void send_r_forbidden(request * req)
268      SQUASH_KA(req);      SQUASH_KA(req);
269      req->response_status = R_FORBIDDEN;      req->response_status = R_FORBIDDEN;
270      if (!req->simple) {      if (!req->simple) {
271          req_write(req, "HTTP/1.0 403 Forbidden\r\n");          req_write(req, HTTP_VERSION" 403 Forbidden\r\n");
272          print_http_headers(req);          print_http_headers(req);
273          req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header */          req_write(req, "Content-Type: " TEXT_HTML "\r\n\r\n"); /* terminate header */
274      }      }
275      if (req->method != M_HEAD) {      if (req->method != M_HEAD) {
276          req_write(req, "<HTML><HEAD><TITLE>403 Forbidden</TITLE></HEAD>\n"          req_write(req, "<HTML><HEAD><TITLE>403 Forbidden</TITLE></HEAD>\n"
# Line 291  void send_r_not_found(request * req) Line 288  void send_r_not_found(request * req)
288      SQUASH_KA(req);      SQUASH_KA(req);
289      req->response_status = R_NOT_FOUND;      req->response_status = R_NOT_FOUND;
290      if (!req->simple) {      if (!req->simple) {
291          req_write(req, "HTTP/1.0 404 Not Found\r\n");          req_write(req, HTTP_VERSION" 404 Not Found\r\n");
292          print_http_headers(req);          print_http_headers(req);
293          req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header */          req_write(req, "Content-Type: " TEXT_HTML "\r\n\r\n"); /* terminate header */
294      }      }
295      if (req->method != M_HEAD) {      if (req->method != M_HEAD) {
296          req_write(req, "<HTML><HEAD><TITLE>404 Not Found</TITLE></HEAD>\n"          req_write(req, "<HTML><HEAD><TITLE>404 Not Found</TITLE></HEAD>\n"
# Line 312  void send_r_range_unsatisfiable(request Line 309  void send_r_range_unsatisfiable(request
309          return;          return;
310    
311      if (!req->simple) {      if (!req->simple) {
312          req_write(req, "HTTP/1.0 416 Range Not Satisfiable\r\n");          req_write(req, HTTP_VERSION" 416 Range Not Satisfiable\r\n");
313          print_http_headers(req);          print_http_headers(req);
314          req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header */          req_write(req, "Content-Type: " TEXT_HTML "\r\n\r\n"); /* terminate header */
315      }      }
316      if (req->method != M_HEAD) {      if (req->method != M_HEAD) {
317          char int1[22], int2[22];          char int1[22], int2[22];
# Line 341  void send_r_error(request * req) Line 338  void send_r_error(request * req)
338      SQUASH_KA(req);      SQUASH_KA(req);
339      req->response_status = R_ERROR;      req->response_status = R_ERROR;
340      if (!req->simple) {      if (!req->simple) {
341          req_write(req, "HTTP/1.0 500 Server Error\r\n");          req_write(req, HTTP_VERSION" 500 Server Error\r\n");
342          print_http_headers(req);          print_http_headers(req);
343          req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header */          req_write(req, "Content-Type: " TEXT_HTML "\r\n\r\n"); /* terminate header */
344      }      }
345      if (req->method != M_HEAD) {      if (req->method != M_HEAD) {
346          req_write(req,          req_write(req,
# Line 361  void send_r_not_implemented(request * re Line 358  void send_r_not_implemented(request * re
358      SQUASH_KA(req);      SQUASH_KA(req);
359      req->response_status = R_NOT_IMP;      req->response_status = R_NOT_IMP;
360      if (!req->simple) {      if (!req->simple) {
361          req_write(req, "HTTP/1.0 501 Not Implemented\r\n");          req_write(req, HTTP_VERSION" 501 Not Implemented\r\n");
362          print_http_headers(req);          print_http_headers(req);
363          req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header */          req_write(req, "Content-Type: " TEXT_HTML "\r\n\r\n"); /* terminate header */
364      }      }
365      if (req->method != M_HEAD) {      if (req->method != M_HEAD) {
366          req_write(req,          req_write(req,
# Line 380  void send_r_bad_gateway(request * req) Line 377  void send_r_bad_gateway(request * req)
377      SQUASH_KA(req);      SQUASH_KA(req);
378      req->response_status = R_BAD_GATEWAY;      req->response_status = R_BAD_GATEWAY;
379      if (!req->simple) {      if (!req->simple) {
380          req_write(req, "HTTP/1.0 502 Bad Gateway" CRLF);          req_write(req, HTTP_VERSION" 502 Bad Gateway" CRLF);
381          print_http_headers(req);          print_http_headers(req);
382          req_write(req, "Content-Type: " HTML CRLF CRLF); /* terminate header */          req_write(req, "Content-Type: " TEXT_HTML CRLF CRLF); /* terminate header */
383      }      }
384      if (req->method != M_HEAD) {      if (req->method != M_HEAD) {
385          req_write(req,          req_write(req,
# Line 412  void send_r_service_unavailable(request Line 409  void send_r_service_unavailable(request
409      SQUASH_KA(req);      SQUASH_KA(req);
410      req->response_status = R_SERVICE_UNAV;      req->response_status = R_SERVICE_UNAV;
411      if (!req->simple) {      if (!req->simple) {
412          req_write(req, "HTTP/1.0 503 Service Unavailable\r\n");          req_write(req, HTTP_VERSION" 503 Service Unavailable\r\n");
413          print_http_headers(req);          print_http_headers(req);
414          if (body_len) {          if (body_len) {
415              req_write(req, "Content-Length: ");              req_write(req, "Content-Length: ");
416              req_write(req, body_len);              req_write(req, body_len);
417              req_write(req, "\r\n");              req_write(req, "\r\n");
418          }          }
419          req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header          req_write(req, "Content-Type: " TEXT_HTML "\r\n\r\n"); /* terminate header
420                                                                 */                                                                 */
421      }      }
422      if (req->method != M_HEAD) {      if (req->method != M_HEAD) {
# Line 435  void send_r_bad_version(request * req) Line 432  void send_r_bad_version(request * req)
432      SQUASH_KA(req);      SQUASH_KA(req);
433      req->response_status = R_BAD_VERSION;      req->response_status = R_BAD_VERSION;
434      if (!req->simple) {      if (!req->simple) {
435          req_write(req, "HTTP/1.0 505 HTTP Version Not Supported\r\n");          req_write(req, HTTP_VERSION" 505 HTTP Version Not Supported\r\n");
436          print_http_headers(req);          print_http_headers(req);
437          req_write(req, "Content-Type: " HTML "\r\n\r\n"); /* terminate header */          req_write(req, "Content-Type: " TEXT_HTML "\r\n\r\n"); /* terminate header */
438      }      }
439      if (req->method != M_HEAD) {      if (req->method != M_HEAD) {
440          req_write(req,          req_write(req,

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26