Lines Matching refs:fd
83 bool ParseRequest(int fd, HttpRequest* request) { in ParseRequest() argument
87 ssize_t r = read(fd, buf, sizeof(buf)); in ParseRequest()
160 ssize_t WriteString(int fd, const string& str) { in WriteString() argument
166 ssize_t written = write(fd, data, remaining_size); in WriteString()
180 ssize_t WriteHeaders(int fd, const off_t start_offset, const off_t end_offset, in WriteHeaders() argument
184 ret = WriteString(fd, in WriteHeaders()
199 ret = WriteString(fd, in WriteHeaders()
210 ret = WriteString(fd, string("Content-Length: ") + Itoa(content_length) + in WriteHeaders()
222 size_t WritePayload(int fd, const off_t start_offset, const off_t end_offset, in WritePayload() argument
248 ssize_t ret = WriteString(fd, partial); in WritePayload()
255 ssize_t ret = WriteString(fd, line); in WritePayload()
263 ssize_t ret = WriteString(fd, partial); in WritePayload()
272 inline size_t WritePayload(int fd, const off_t start_offset, in WritePayload() argument
274 return WritePayload(fd, start_offset, end_offset, 'a', 10); in WritePayload()
278 void HandleQuit(int fd) { in HandleQuit() argument
279 WriteHeaders(fd, 0, 0, kHttpResponseOk); in HandleQuit()
289 ssize_t HandleGet(int fd, const HttpRequest& request, const size_t total_length, in HandleGet() argument
302 return WriteHeaders(fd, total_length, total_length, in HandleGet()
313 return WriteHeaders(fd, 0, 0, kHttpResponseBadRequest); in HandleGet()
325 if ((ret = WriteHeaders(fd, start_offset, end_offset, in HandleGet()
348 if ((ret = WritePayload(fd, start_offset, midway_offset)) < 0) in HandleGet()
356 if ((ret = WritePayload(fd, midway_offset, end_offset)) < 0) in HandleGet()
361 if ((ret = WritePayload(fd, start_offset, end_offset)) < 0) in HandleGet()
372 ssize_t HandleGet(int fd, const HttpRequest& request, in HandleGet() argument
374 return HandleGet(fd, request, total_length, 0, 0, 0); in HandleGet()
379 void HandleRedirect(int fd, const HttpRequest& request) { in HandleRedirect() argument
396 if ((ret = WriteString(fd, "HTTP/1.1 " + Itoa(code) + " " + in HandleRedirect()
399 WriteString(fd, "Location: " + url + EOL); in HandleRedirect()
404 ssize_t HandleError(int fd, const HttpRequest& request) { in HandleError() argument
412 if ((ret = WriteHeaders(fd, 0, data.size(), kHttpResponseNotFound)) < 0) in HandleError()
416 if ((ret = WriteString(fd, data)) < 0) in HandleError()
426 ssize_t HandleErrorIfOffset(int fd, const HttpRequest& request, in HandleErrorIfOffset() argument
438 if ((ret = WriteHeaders(fd, 0, data.size(), in HandleErrorIfOffset()
443 if ((ret = WriteString(fd, data)) < 0) in HandleErrorIfOffset()
451 return HandleGet(fd, request, end_offset); in HandleErrorIfOffset()
457 void HandleEchoHeaders(int fd, const HttpRequest& request) { in HandleEchoHeaders() argument
458 WriteHeaders(fd, 0, request.raw_headers.size(), kHttpResponseOk); in HandleEchoHeaders()
459 WriteString(fd, request.raw_headers); in HandleEchoHeaders()
462 void HandleHang(int fd) { in HandleHang() argument
465 while (HANDLE_EINTR(read(fd, &c, 1)) > 0) {} in HandleHang()
468 void HandleDefault(int fd, const HttpRequest& request) { in HandleDefault() argument
474 if ((ret = WriteHeaders(fd, start_offset, size, request.return_code)) < 0) in HandleDefault()
476 WriteString(fd, (start_offset < static_cast<off_t>(size) ? in HandleDefault()
514 void HandleConnection(int fd) { in HandleConnection() argument
516 ParseRequest(fd, &request); in HandleConnection()
521 HandleQuit(fd); in HandleConnection()
525 HandleGet(fd, request, terms.GetSizeT(1)); in HandleConnection()
528 HandleGet(fd, request, terms.GetSizeT(1), terms.GetSizeT(2), in HandleConnection()
531 HandleRedirect(fd, request); in HandleConnection()
533 HandleError(fd, request); in HandleConnection()
537 HandleErrorIfOffset(fd, request, terms.GetSizeT(1), terms.GetInt(2)); in HandleConnection()
539 HandleEchoHeaders(fd, request); in HandleConnection()
541 HandleHang(fd); in HandleConnection()
543 HandleDefault(fd, request); in HandleConnection()
546 close(fd); in HandleConnection()