Lines Matching refs:client

325 static size_t php_cli_server_client_send_through(php_cli_server_client *client, const char *str, si…
329 static void php_cli_server_log_response(php_cli_server_client *client, int status, const char *mess…
454 static void append_essential_headers(smart_str* buffer, php_cli_server_client *client, int persiste… in append_essential_headers() argument
458 if (SUCCESS == zend_hash_find(&client->request.headers, "host", sizeof("host"), (void**)&val)) { in append_essential_headers()
482 php_cli_server_client *client; in PHP_FUNCTION() local
493 client = SG(server_context); in PHP_FUNCTION()
494 headers = &client->request.headers_original_case; in PHP_FUNCTION()
615 php_cli_server_client *client = SG(server_context); in sapi_cli_server_ub_write() local
616 if (!client) { in sapi_cli_server_ub_write()
619 return php_cli_server_client_send_through(client, str, str_length); in sapi_cli_server_ub_write()
624 php_cli_server_client *client = server_context; in sapi_cli_server_flush() local
627 if (!client) { in sapi_cli_server_flush()
631 if (client->sock < 0) { in sapi_cli_server_flush()
649 php_cli_server_client *client = SG(server_context); in sapi_cli_server_send_headers() local
654 if (client == NULL || SG(request_info).no_headers) { in sapi_cli_server_send_headers()
662 …append_http_status_line(&buffer, client->request.protocol_version, SG(sapi_headers).http_response_… in sapi_cli_server_send_headers()
665 append_essential_headers(&buffer, client, 0); in sapi_cli_server_send_headers()
677 php_cli_server_client_send_through(client, buffer.c, buffer.len); in sapi_cli_server_send_headers()
686 php_cli_server_client *client = SG(server_context); in sapi_cli_server_read_cookies() local
688 …if (FAILURE == zend_hash_find(&client->request.headers, "cookie", sizeof("cookie"), (void**)&val))… in sapi_cli_server_read_cookies()
696 php_cli_server_client *client = SG(server_context); in sapi_cli_server_read_post() local
697 if (client->request.content) { in sapi_cli_server_read_post()
698 size_t content_len = client->request.content_len; in sapi_cli_server_read_post()
699 …size_t nbytes_copied = MIN(client->post_read_offset + count_bytes, content_len) - client->post_rea… in sapi_cli_server_read_post()
700 memmove(buf, client->request.content + client->post_read_offset, nbytes_copied); in sapi_cli_server_read_post()
701 client->post_read_offset += nbytes_copied; in sapi_cli_server_read_post()
746 php_cli_server_client *client = SG(server_context); in sapi_cli_server_register_variables() local
747 …sapi_cli_server_register_variable(track_vars_array, "DOCUMENT_ROOT", client->server->document_root… in sapi_cli_server_register_variables()
750 if ((tmp = strrchr(client->addr_str, ':'))) { in sapi_cli_server_register_variables()
754 strncpy(addr, client->addr_str, tmp - client->addr_str); in sapi_cli_server_register_variables()
755 addr[tmp - client->addr_str] = '\0'; in sapi_cli_server_register_variables()
759 sapi_cli_server_register_variable(track_vars_array, "REMOTE_ADDR", client->addr_str TSRMLS_CC); in sapi_cli_server_register_variables()
770 …spprintf(&tmp, 0, "HTTP/%d.%d", client->request.protocol_version / 100, client->request.protocol_v… in sapi_cli_server_register_variables()
774 sapi_cli_server_register_variable(track_vars_array, "SERVER_NAME", client->server->host TSRMLS_CC); in sapi_cli_server_register_variables()
777 spprintf(&tmp, 0, "%i", client->server->port); in sapi_cli_server_register_variables()
782 …sapi_cli_server_register_variable(track_vars_array, "REQUEST_URI", client->request.request_uri TSR… in sapi_cli_server_register_variables()
784 …sapi_cli_server_register_variable(track_vars_array, "SCRIPT_NAME", client->request.vpath TSRMLS_CC… in sapi_cli_server_register_variables()
787 } else if (client->server->router) { in sapi_cli_server_register_variables()
789 spprintf(&temp, 0, "%s/%s", client->server->document_root, client->server->router); in sapi_cli_server_register_variables()
793 if (client->request.path_info) { in sapi_cli_server_register_variables()
794 …sapi_cli_server_register_variable(track_vars_array, "PATH_INFO", client->request.path_info TSRMLS_… in sapi_cli_server_register_variables()
796 if (client->request.path_info_len) { in sapi_cli_server_register_variables()
798 spprintf(&tmp, 0, "%s%s", client->request.vpath, client->request.path_info); in sapi_cli_server_register_variables()
802 sapi_cli_server_register_variable(track_vars_array, "PHP_SELF", client->request.vpath TSRMLS_CC); in sapi_cli_server_register_variables()
804 if (client->request.query_string) { in sapi_cli_server_register_variables()
805 …sapi_cli_server_register_variable(track_vars_array, "QUERY_STRING", client->request.query_string T… in sapi_cli_server_register_variables()
807 …zend_hash_apply_with_arguments(&client->request.headers TSRMLS_CC, (apply_func_args_t)sapi_cli_ser… in sapi_cli_server_register_variables()
1185 static void php_cli_server_log_response(php_cli_server_client *client, int status, const char *mess… in php_cli_server_log_response() argument
1224 spprintf(&basic_buf, 0, "%s [%d]: %s", client->addr_str, status, client->request.request_uri); in php_cli_server_log_response()
1640 php_cli_server_client *client = parser->data; in php_cli_server_client_read_request_on_path() local
1645 client->request.vpath = vpath; in php_cli_server_client_read_request_on_path()
1646 client->request.vpath_len = vpath_len; in php_cli_server_client_read_request_on_path()
1653 php_cli_server_client *client = parser->data; in php_cli_server_client_read_request_on_query_string() local
1654 client->request.query_string = pestrndup(at, length, 1); in php_cli_server_client_read_request_on_query_string()
1655 client->request.query_string_len = length; in php_cli_server_client_read_request_on_query_string()
1661 php_cli_server_client *client = parser->data; in php_cli_server_client_read_request_on_url() local
1662 client->request.request_method = parser->method; in php_cli_server_client_read_request_on_url()
1663 client->request.request_uri = pestrndup(at, length, 1); in php_cli_server_client_read_request_on_url()
1664 client->request.request_uri_len = length; in php_cli_server_client_read_request_on_url()
1675 php_cli_server_client *client = parser->data; in php_cli_server_client_read_request_on_header_field() local
1676 if (client->current_header_name_allocated) { in php_cli_server_client_read_request_on_header_field()
1677 pefree(client->current_header_name, 1); in php_cli_server_client_read_request_on_header_field()
1678 client->current_header_name_allocated = 0; in php_cli_server_client_read_request_on_header_field()
1680 client->current_header_name = (char *)at; in php_cli_server_client_read_request_on_header_field()
1681 client->current_header_name_len = length; in php_cli_server_client_read_request_on_header_field()
1687 php_cli_server_client *client = parser->data; in php_cli_server_client_read_request_on_header_value() local
1694 char *orig_header_name = estrndup(client->current_header_name, client->current_header_name_len); in php_cli_server_client_read_request_on_header_value()
1695 …char *lc_header_name = zend_str_tolower_dup(client->current_header_name, client->current_header_na… in php_cli_server_client_read_request_on_header_value()
1697 …zend_hash_add(&client->request.headers, lc_header_name, client->current_header_name_len + 1, &valu… in php_cli_server_client_read_request_on_header_value()
1698 …zend_hash_add(&client->request.headers_original_case, orig_header_name, client->current_header_nam… in php_cli_server_client_read_request_on_header_value()
1703 if (client->current_header_name_allocated) { in php_cli_server_client_read_request_on_header_value()
1704 pefree(client->current_header_name, 1); in php_cli_server_client_read_request_on_header_value()
1705 client->current_header_name_allocated = 0; in php_cli_server_client_read_request_on_header_value()
1712 php_cli_server_client *client = parser->data; in php_cli_server_client_read_request_on_headers_complete() local
1713 if (client->current_header_name_allocated) { in php_cli_server_client_read_request_on_headers_complete()
1714 pefree(client->current_header_name, 1); in php_cli_server_client_read_request_on_headers_complete()
1715 client->current_header_name_allocated = 0; in php_cli_server_client_read_request_on_headers_complete()
1717 client->current_header_name = NULL; in php_cli_server_client_read_request_on_headers_complete()
1723 php_cli_server_client *client = parser->data; in php_cli_server_client_read_request_on_body() local
1724 if (!client->request.content) { in php_cli_server_client_read_request_on_body()
1725 client->request.content = pemalloc(parser->content_length, 1); in php_cli_server_client_read_request_on_body()
1726 if (!client->request.content) { in php_cli_server_client_read_request_on_body()
1729 client->request.content_len = 0; in php_cli_server_client_read_request_on_body()
1731client->request.content = perealloc(client->request.content, client->request.content_len + length,… in php_cli_server_client_read_request_on_body()
1732 memmove(client->request.content + client->request.content_len, at, length); in php_cli_server_client_read_request_on_body()
1733 client->request.content_len += length; in php_cli_server_client_read_request_on_body()
1739 php_cli_server_client *client = parser->data; in php_cli_server_client_read_request_on_message_complete() local
1740 client->request.protocol_version = parser->http_major * 100 + parser->http_minor; in php_cli_server_client_read_request_on_message_complete()
1741 …php_cli_server_request_translate_vpath(&client->request, client->server->document_root, client->se… in php_cli_server_client_read_request_on_message_complete()
1743 const char *vpath = client->request.vpath, *end = vpath + client->request.vpath_len, *p = end; in php_cli_server_client_read_request_on_message_complete()
1744 client->request.ext = end; in php_cli_server_client_read_request_on_message_complete()
1745 client->request.ext_len = 0; in php_cli_server_client_read_request_on_message_complete()
1750 client->request.ext = p; in php_cli_server_client_read_request_on_message_complete()
1751 client->request.ext_len = end - p; in php_cli_server_client_read_request_on_message_complete()
1756 client->request_read = 1; in php_cli_server_client_read_request_on_message_complete()
1760 static int php_cli_server_client_read_request(php_cli_server_client *client, char **errstr TSRMLS_D… in php_cli_server_client_read_request() argument
1777 if (client->request_read) { in php_cli_server_client_read_request()
1780 nbytes_read = recv(client->sock, buf, sizeof(buf) - 1, 0); in php_cli_server_client_read_request()
1792 client->parser.data = client; in php_cli_server_client_read_request()
1793 nbytes_consumed = php_http_parser_execute(&client->parser, &settings, buf, nbytes_read); in php_cli_server_client_read_request()
1802 if (client->current_header_name) { in php_cli_server_client_read_request()
1803 char *header_name = safe_pemalloc(client->current_header_name_len, 1, 1, 1); in php_cli_server_client_read_request()
1807 memmove(header_name, client->current_header_name, client->current_header_name_len); in php_cli_server_client_read_request()
1808 client->current_header_name = header_name; in php_cli_server_client_read_request()
1809 client->current_header_name_allocated = 1; in php_cli_server_client_read_request()
1811 return client->request_read ? 1: 0; in php_cli_server_client_read_request()
1815 static size_t php_cli_server_client_send_through(php_cli_server_client *client, const char *str, si… in php_cli_server_client_send_through() argument
1820 ssize_t nbytes_sent = send(client->sock, str + str_len - nbytes_left, nbytes_left, 0); in php_cli_server_client_send_through()
1824 int nfds = php_pollfd_for(client->sock, POLLOUT, &tv); in php_cli_server_client_send_through()
1847 static void php_cli_server_client_populate_request_info(const php_cli_server_client *client, sapi_r… in php_cli_server_client_populate_request_info() argument
1851 request_info->request_method = php_http_method_str(client->request.request_method); in php_cli_server_client_populate_request_info()
1852 request_info->proto_num = client->request.protocol_version; in php_cli_server_client_populate_request_info()
1853 request_info->request_uri = client->request.request_uri; in php_cli_server_client_populate_request_info()
1854 request_info->path_translated = client->request.path_translated; in php_cli_server_client_populate_request_info()
1855 request_info->query_string = client->request.query_string; in php_cli_server_client_populate_request_info()
1856 request_info->post_data = client->request.content; in php_cli_server_client_populate_request_info()
1857 request_info->content_length = request_info->post_data_length = client->request.content_len; in php_cli_server_client_populate_request_info()
1859 …if (SUCCESS == zend_hash_find(&client->request.headers, "content-type", sizeof("content-type"), (v… in php_cli_server_client_populate_request_info()
1868 static int php_cli_server_client_ctor(php_cli_server_client *client, php_cli_server *server, int cl… in php_cli_server_client_ctor() argument
1870 client->server = server; in php_cli_server_client_ctor()
1871 client->sock = client_sock; in php_cli_server_client_ctor()
1872 client->addr = addr; in php_cli_server_client_ctor()
1873 client->addr_len = addr_len; in php_cli_server_client_ctor()
1878 client->addr_str = pestrndup(addr_str, addr_str_len, 1); in php_cli_server_client_ctor()
1879 client->addr_str_len = addr_str_len; in php_cli_server_client_ctor()
1882 php_http_parser_init(&client->parser, PHP_HTTP_REQUEST); in php_cli_server_client_ctor()
1883 client->request_read = 0; in php_cli_server_client_ctor()
1884 client->current_header_name = NULL; in php_cli_server_client_ctor()
1885 client->current_header_name_len = 0; in php_cli_server_client_ctor()
1886 client->current_header_name_allocated = 0; in php_cli_server_client_ctor()
1887 client->post_read_offset = 0; in php_cli_server_client_ctor()
1888 if (FAILURE == php_cli_server_request_ctor(&client->request)) { in php_cli_server_client_ctor()
1891 client->content_sender_initialized = 0; in php_cli_server_client_ctor()
1892 client->file_fd = -1; in php_cli_server_client_ctor()
1896 static void php_cli_server_client_dtor(php_cli_server_client *client) /* {{{ */ in php_cli_server_client_dtor() argument
1898 php_cli_server_request_dtor(&client->request); in php_cli_server_client_dtor()
1899 if (client->file_fd >= 0) { in php_cli_server_client_dtor()
1900 close(client->file_fd); in php_cli_server_client_dtor()
1901 client->file_fd = -1; in php_cli_server_client_dtor()
1903 pefree(client->addr, 1); in php_cli_server_client_dtor()
1904 pefree(client->addr_str, 1); in php_cli_server_client_dtor()
1905 if (client->content_sender_initialized) { in php_cli_server_client_dtor()
1906 php_cli_server_content_sender_dtor(&client->content_sender); in php_cli_server_client_dtor()
1910 static void php_cli_server_close_connection(php_cli_server *server, php_cli_server_client *client T… in php_cli_server_close_connection()
1913 php_cli_server_logf("%s Closing" TSRMLS_CC, client->addr_str); in php_cli_server_close_connection()
1915 zend_hash_index_del(&server->clients, client->sock); in php_cli_server_close_connection()
1918 static int php_cli_server_send_error_page(php_cli_server *server, php_cli_server_client *client, in… in php_cli_server_send_error_page() argument
1927 php_cli_server_content_sender_ctor(&client->content_sender); in php_cli_server_send_error_page()
1928 client->content_sender_initialized = 1; in php_cli_server_send_error_page()
1930 …request_uri = php_escape_html_entities_ex((unsigned char *)client->request.request_uri, client->re… in php_cli_server_send_error_page()
1940 php_cli_server_buffer_append(&client->content_sender.buffer, chunk); in php_cli_server_send_error_page()
1947 php_cli_server_buffer_append(&client->content_sender.buffer, chunk); in php_cli_server_send_error_page()
1955 php_cli_server_buffer_append(&client->content_sender.buffer, chunk); in php_cli_server_send_error_page()
1964 php_cli_server_buffer_append(&client->content_sender.buffer, chunk); in php_cli_server_send_error_page()
1972 php_cli_server_buffer_append(&client->content_sender.buffer, chunk); in php_cli_server_send_error_page()
1978 append_http_status_line(&buffer, client->request.protocol_version, status, 1); in php_cli_server_send_error_page()
1983 append_essential_headers(&buffer, client, 1); in php_cli_server_send_error_page()
1986 …smart_str_append_generic_ex(&buffer, php_cli_server_buffer_size(&client->content_sender.buffer), 1… in php_cli_server_send_error_page()
1995 php_cli_server_buffer_prepend(&client->content_sender.buffer, chunk); in php_cli_server_send_error_page()
1998 php_cli_server_log_response(client, status, errstr ? errstr : "?" TSRMLS_CC); in php_cli_server_send_error_page()
1999 php_cli_server_poller_add(&server->poller, POLLOUT, client->sock); in php_cli_server_send_error_page()
2014 static int php_cli_server_dispatch_script(php_cli_server *server, php_cli_server_client *client TSR… in php_cli_server_dispatch_script()
2016 if (strlen(client->request.path_translated) != client->request.path_translated_len) { in php_cli_server_dispatch_script()
2018 return php_cli_server_send_error_page(server, client, 400 TSRMLS_CC); in php_cli_server_dispatch_script()
2032 php_cli_server_log_response(client, SG(sapi_headers).http_response_code, NULL TSRMLS_CC); in php_cli_server_dispatch_script()
2036 static int php_cli_server_begin_send_static(php_cli_server *server, php_cli_server_client *client T… in php_cli_server_begin_send_static()
2041 …if (client->request.path_translated && strlen(client->request.path_translated) != client->request.… in php_cli_server_begin_send_static()
2043 return php_cli_server_send_error_page(server, client, 400 TSRMLS_CC); in php_cli_server_begin_send_static()
2046 fd = client->request.path_translated ? open(client->request.path_translated, O_RDONLY): -1; in php_cli_server_begin_send_static()
2048 return php_cli_server_send_error_page(server, client, 404 TSRMLS_CC); in php_cli_server_begin_send_static()
2051 php_cli_server_content_sender_ctor(&client->content_sender); in php_cli_server_begin_send_static()
2052 client->content_sender_initialized = 1; in php_cli_server_begin_send_static()
2053 client->file_fd = fd; in php_cli_server_begin_send_static()
2058 const char *mime_type = get_mime_type(client->request.ext, client->request.ext_len); in php_cli_server_begin_send_static()
2063 append_http_status_line(&buffer, client->request.protocol_version, status, 1); in php_cli_server_begin_send_static()
2066 php_cli_server_log_response(client, 500, NULL TSRMLS_CC); in php_cli_server_begin_send_static()
2069 append_essential_headers(&buffer, client, 1); in php_cli_server_begin_send_static()
2077 smart_str_append_generic_ex(&buffer, client->request.sb.st_size, 1, size_t, _unsigned); in php_cli_server_begin_send_static()
2083 php_cli_server_log_response(client, 500, NULL TSRMLS_CC); in php_cli_server_begin_send_static()
2086 php_cli_server_buffer_append(&client->content_sender.buffer, chunk); in php_cli_server_begin_send_static()
2088 php_cli_server_log_response(client, 200, NULL TSRMLS_CC); in php_cli_server_begin_send_static()
2089 php_cli_server_poller_add(&server->poller, POLLOUT, client->sock); in php_cli_server_begin_send_static()
2094 static int php_cli_server_request_startup(php_cli_server *server, php_cli_server_client *client TSR… in php_cli_server_request_startup()
2096 php_cli_server_client_populate_request_info(client, &SG(request_info)); in php_cli_server_request_startup()
2097 …if (SUCCESS == zend_hash_find(&client->request.headers, "authorization", sizeof("authorization"), … in php_cli_server_request_startup()
2112 static int php_cli_server_request_shutdown(php_cli_server *server, php_cli_server_client *client TS… in php_cli_server_request_shutdown()
2114 php_cli_server_close_connection(server, client TSRMLS_CC); in php_cli_server_request_shutdown()
2122 static int php_cli_server_dispatch_router(php_cli_server *server, php_cli_server_client *client TSR… in php_cli_server_dispatch_router()
2161 static int php_cli_server_dispatch(php_cli_server *server, php_cli_server_client *client TSRMLS_DC)… in php_cli_server_dispatch()
2165 SG(server_context) = client; in php_cli_server_dispatch()
2166 …if (client->request.ext_len != 3 || memcmp(client->request.ext, "php", 3) || !client->request.path… in php_cli_server_dispatch()
2171 if (FAILURE == php_cli_server_request_startup(server, client TSRMLS_CC)) { in php_cli_server_dispatch()
2173 php_cli_server_close_connection(server, client TSRMLS_CC); in php_cli_server_dispatch()
2180 if (!php_cli_server_dispatch_router(server, client TSRMLS_CC)) { in php_cli_server_dispatch()
2181 php_cli_server_request_shutdown(server, client TSRMLS_CC); in php_cli_server_dispatch()
2187 if (SUCCESS == php_cli_server_dispatch_script(server, client TSRMLS_CC) in php_cli_server_dispatch()
2188 || SUCCESS != php_cli_server_send_error_page(server, client, 500 TSRMLS_CC)) { in php_cli_server_dispatch()
2189 php_cli_server_request_shutdown(server, client TSRMLS_CC); in php_cli_server_dispatch()
2205 if (SUCCESS != php_cli_server_begin_send_static(server, client TSRMLS_CC)) { in php_cli_server_dispatch()
2206 php_cli_server_close_connection(server, client TSRMLS_CC); in php_cli_server_dispatch()
2357 …r_recv_event_read_request(php_cli_server *server, php_cli_server_client *client TSRMLS_DC) /* {{{ … in php_cli_server_recv_event_read_request()
2360 int status = php_cli_server_client_read_request(client, &errstr TSRMLS_CC); in php_cli_server_recv_event_read_request()
2362 php_cli_server_logf("%s Invalid request (%s)" TSRMLS_CC, client->addr_str, errstr); in php_cli_server_recv_event_read_request()
2364 php_cli_server_close_connection(server, client TSRMLS_CC); in php_cli_server_recv_event_read_request()
2366 } else if (status == 1 && client->request.request_method == PHP_HTTP_NOT_IMPLEMENTED) { in php_cli_server_recv_event_read_request()
2367 return php_cli_server_send_error_page(server, client, 501 TSRMLS_CC); in php_cli_server_recv_event_read_request()
2369 php_cli_server_poller_remove(&server->poller, POLLIN, client->sock); in php_cli_server_recv_event_read_request()
2370 php_cli_server_dispatch(server, client TSRMLS_CC); in php_cli_server_recv_event_read_request()
2372 php_cli_server_poller_add(&server->poller, POLLIN, client->sock); in php_cli_server_recv_event_read_request()
2378 static int php_cli_server_send_event(php_cli_server *server, php_cli_server_client *client TSRMLS_D… in php_cli_server_send_event()
2380 if (client->content_sender_initialized) { in php_cli_server_send_event()
2381 if (client->file_fd >= 0 && !client->content_sender.buffer.first) { in php_cli_server_send_event()
2383 if (php_cli_server_content_sender_pull(&client->content_sender, client->file_fd, &nbytes_read)) { in php_cli_server_send_event()
2384 php_cli_server_close_connection(server, client TSRMLS_CC); in php_cli_server_send_event()
2388 close(client->file_fd); in php_cli_server_send_event()
2389 client->file_fd = -1; in php_cli_server_send_event()
2394 … int err = php_cli_server_content_sender_send(&client->content_sender, client->sock, &nbytes_sent); in php_cli_server_send_event()
2396 php_cli_server_close_connection(server, client TSRMLS_CC); in php_cli_server_send_event()
2400 if (!client->content_sender.buffer.first && client->file_fd < 0) { in php_cli_server_send_event()
2401 php_cli_server_close_connection(server, client TSRMLS_CC); in php_cli_server_send_event()
2425 php_cli_server_client *client = NULL; in php_cli_server_do_event_for_each_fd_callback() local
2446 …if (!(client = pemalloc(sizeof(php_cli_server_client), 1)) || FAILURE == php_cli_server_client_cto… in php_cli_server_do_event_for_each_fd_callback()
2453 php_cli_server_logf("%s Accepted" TSRMLS_CC, client->addr_str); in php_cli_server_do_event_for_each_fd_callback()
2455 zend_hash_index_update(&server->clients, client_sock, &client, sizeof(client), NULL); in php_cli_server_do_event_for_each_fd_callback()
2456 php_cli_server_recv_event_read_request(server, client TSRMLS_CC); in php_cli_server_do_event_for_each_fd_callback()
2458 php_cli_server_client **client; in php_cli_server_do_event_for_each_fd_callback() local
2459 if (SUCCESS == zend_hash_index_find(&server->clients, fd, (void **)&client)) { in php_cli_server_do_event_for_each_fd_callback()
2461 params->rhandler(server, *client TSRMLS_CC); in php_cli_server_do_event_for_each_fd_callback()
2464 params->whandler(server, *client TSRMLS_CC); in php_cli_server_do_event_for_each_fd_callback()