|
|
| version 1.88, 2020/10/12 16:58:55 | version 1.89, 2020/10/12 21:15:07 |
|---|---|
| Line 18 volatile const char * IDENT_PA_HTTP_C="$ | Line 18 volatile const char * IDENT_PA_HTTP_C="$ |
| #ifdef _MSC_VER | #ifdef _MSC_VER |
| #include <windows.h> | #include <windows.h> |
| #define socklen_t int | |
| #else | #else |
| #define closesocket close | #define closesocket close |
| #endif | #endif |
| Line 130 public: | Line 131 public: |
| } | } |
| size_t first_line(){ | size_t first_line(){ |
| char *headers=strchr(buf, '\n'); | char *header=strchr(buf, '\n'); |
| if(!headers) | if(!header) |
| return false; | return false; |
| return headers-buf; | return header-buf; |
| } | } |
| const char *status_code(char *status_line, int &result){ | const char *status_code(char *status_line, int &result){ |
| Line 897 File_read_http_result pa_internal_file_r | Line 898 File_read_http_result pa_internal_file_r |
| } | } |
| // filling $.cookies | // filling $.cookies |
| if(Value *vcookies=vtables->hash().get("SET-COOKIE")) | if(vcookies=vtables->hash().get("SET-COOKIE")) |
| result.headers->put(HTTP_COOKIES_NAME, new VTable(parse_cookies(r, vcookies->get_table()))); | result.headers->put(HTTP_COOKIES_NAME, new VTable(parse_cookies(r, vcookies->get_table()))); |
| // output response | // output response |
| Line 1071 int HTTPD_Server::bind(const char *host_ | Line 1072 int HTTPD_Server::bind(const char *host_ |
| setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (char *)&sock_on, sizeof(sock_on)) || | setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (char *)&sock_on, sizeof(sock_on)) || |
| ::bind(sock, (struct sockaddr*)&me, sizeof(me)) || | ::bind(sock, (struct sockaddr*)&me, sizeof(me)) || |
| listen(sock, 16)) { | listen(sock, 16)) { |
| close(sock); | closesocket(sock); |
| int no = pa_socks_errno(); | int no = pa_socks_errno(); |
| throw Exception("httpd.bind", 0, "can not bind socket: %s (%d)", pa_socks_strerr(no), no); | throw Exception("httpd.bind", 0, "can not bind socket: %s (%d)", pa_socks_strerr(no), no); |
| } | } |
| Line 1104 HTTPD_Connection *HTTPD_Server::accept(i | Line 1105 HTTPD_Connection *HTTPD_Server::accept(i |
| } | } |
| struct sockaddr_in addr; | struct sockaddr_in addr; |
| unsigned int sock_addr_len = sizeof(struct sockaddr_in); | socklen_t sock_addr_len = sizeof(struct sockaddr_in); |
| memset(&addr, 0, sock_addr_len); | memset(&addr, 0, sock_addr_len); |
| int csock = ::accept(sock, (struct sockaddr *)&addr, &sock_addr_len); | int csock = ::accept(sock, (struct sockaddr *)&addr, &sock_addr_len); |