Esempio n. 1
0
ssize_t
http_write_request (int fd, Http_request *request)
{
  char str[1024]; /* FIXME: buffer overflow */
  ssize_t n = 0;
  size_t m;
  
  m = sprintf (str, "%s %s HTTP/%d.%d\r\n",
	       http_method_to_string (request->method),
	       request->uri,
	       request->major_version,
	       request->minor_version);
  m = write_all (fd, str, m);
  log_verbose ("http_write_request: %s", str);
  if (m == -1)
    {
      log_error ("http_write_request: write error: %s", strerror (errno));
      return -1;
    }
  n += m;

  m = http_write_header (fd, request->header);
  if (m == -1)
    {
      return -1;
    }
  n += m;

  return n;
}
Esempio n. 2
0
void http_request_print(HttpRequest* request) {
  printf("HTTP Request\n");
  printf("- Version: %s\n", http_version_to_string(request->version));
  printf("- Method:  %s\n", http_method_to_string(request->method));
  printf("- URI:     %s\n", (request->uri ? request->uri : "<none>"));
  printf("- Headers (%zu):\n", request->num_headers);
  for(size_t i=0; i<request->num_headers; ++i) {
    printf("  %s: %s\n", request->headers[i].key, request->headers[i].value);
  }
  printf("- Body:     %s\n", (request->body ? request->body : "<none>"));
}