req 2554 ext/ldap/ldap.c int _ldap_rebind_proc(LDAP *ldap, const char *url, ber_tag_t req, ber_int_t msgid, void *params) req 625 ext/openssl/openssl.c static EVP_PKEY * php_openssl_generate_private_key(struct php_x509_request * req TSRMLS_DC); req 810 ext/openssl/openssl.c static int add_oid_section(struct php_x509_request * req TSRMLS_DC) /* {{{ */ req 817 ext/openssl/openssl.c str = CONF_get_string(req->req_config, NULL, "oid_section"); req 821 ext/openssl/openssl.c sktmp = CONF_get_section(req->req_config, str); req 837 ext/openssl/openssl.c #define PHP_SSL_REQ_INIT(req) memset(req, 0, sizeof(*req)) req 838 ext/openssl/openssl.c #define PHP_SSL_REQ_DISPOSE(req) php_openssl_dispose_config(req TSRMLS_CC) req 839 ext/openssl/openssl.c #define PHP_SSL_REQ_PARSE(req, zval) php_openssl_parse_config(req, zval TSRMLS_CC) req 841 ext/openssl/openssl.c #define PHP_SSL_CONFIG_SYNTAX_CHECK(var) if (req->var && php_openssl_config_check_syntax(#var, \ req 842 ext/openssl/openssl.c req->config_filename, req->var, req->req_config TSRMLS_CC) == FAILURE) return FAILURE req 860 ext/openssl/openssl.c static int php_openssl_parse_config(struct php_x509_request * req, zval * optional_args TSRMLS_DC) /* {{{ */ req 865 ext/openssl/openssl.c SET_OPTIONAL_STRING_ARG("config", req->config_filename, default_ssl_conf_filename); req 866 ext/openssl/openssl.c SET_OPTIONAL_STRING_ARG("config_section_name", req->section_name, "req"); req 867 ext/openssl/openssl.c req->global_config = CONF_load(NULL, default_ssl_conf_filename, NULL); req 868 ext/openssl/openssl.c req->req_config = CONF_load(NULL, req->config_filename, NULL); req 870 ext/openssl/openssl.c if (req->req_config == NULL) { req 875 ext/openssl/openssl.c str = CONF_get_string(req->req_config, NULL, "oid_file"); req 883 ext/openssl/openssl.c if (add_oid_section(req TSRMLS_CC) == FAILURE) { req 886 ext/openssl/openssl.c SET_OPTIONAL_STRING_ARG("digest_alg", req->digest_name, req 887 ext/openssl/openssl.c CONF_get_string(req->req_config, req->section_name, "default_md")); req 888 ext/openssl/openssl.c SET_OPTIONAL_STRING_ARG("x509_extensions", req->extensions_section, req 889 ext/openssl/openssl.c CONF_get_string(req->req_config, req->section_name, "x509_extensions")); req 890 ext/openssl/openssl.c SET_OPTIONAL_STRING_ARG("req_extensions", req->request_extensions_section, req 891 ext/openssl/openssl.c CONF_get_string(req->req_config, req->section_name, "req_extensions")); req 892 ext/openssl/openssl.c SET_OPTIONAL_LONG_ARG("private_key_bits", req->priv_key_bits, req 893 ext/openssl/openssl.c CONF_get_number(req->req_config, req->section_name, "default_bits")); req 895 ext/openssl/openssl.c SET_OPTIONAL_LONG_ARG("private_key_type", req->priv_key_type, OPENSSL_KEYTYPE_DEFAULT); req 898 ext/openssl/openssl.c req->priv_key_encrypt = Z_BVAL_PP(item); req 900 ext/openssl/openssl.c str = CONF_get_string(req->req_config, req->section_name, "encrypt_rsa_key"); req 902 ext/openssl/openssl.c str = CONF_get_string(req->req_config, req->section_name, "encrypt_key"); req 905 ext/openssl/openssl.c req->priv_key_encrypt = 0; req 907 ext/openssl/openssl.c req->priv_key_encrypt = 1; req 911 ext/openssl/openssl.c if (req->priv_key_encrypt && optional_args && zend_hash_find(Z_ARRVAL_P(optional_args), "encrypt_key_cipher", sizeof("encrypt_key_cipher"), (void**)&item) == SUCCESS req 919 ext/openssl/openssl.c req->priv_key_encrypt_cipher = cipher; req 922 ext/openssl/openssl.c req->priv_key_encrypt_cipher = NULL; req 928 ext/openssl/openssl.c if (req->digest_name == NULL) { req 929 ext/openssl/openssl.c req->digest_name = CONF_get_string(req->req_config, req->section_name, "default_md"); req 931 ext/openssl/openssl.c if (req->digest_name) { req 932 ext/openssl/openssl.c req->digest = req->md_alg = EVP_get_digestbyname(req->digest_name); req 934 ext/openssl/openssl.c if (req->md_alg == NULL) { req 935 ext/openssl/openssl.c req->md_alg = req->digest = EVP_sha1(); req 941 ext/openssl/openssl.c str = CONF_get_string(req->req_config, req->section_name, "string_mask"); req 953 ext/openssl/openssl.c static void php_openssl_dispose_config(struct php_x509_request * req TSRMLS_DC) /* {{{ */ req 955 ext/openssl/openssl.c if (req->priv_key) { req 956 ext/openssl/openssl.c EVP_PKEY_free(req->priv_key); req 957 ext/openssl/openssl.c req->priv_key = NULL; req 959 ext/openssl/openssl.c if (req->global_config) { req 960 ext/openssl/openssl.c CONF_free(req->global_config); req 961 ext/openssl/openssl.c req->global_config = NULL; req 963 ext/openssl/openssl.c if (req->req_config) { req 964 ext/openssl/openssl.c CONF_free(req->req_config); req 965 ext/openssl/openssl.c req->req_config = NULL; req 2640 ext/openssl/openssl.c static int php_openssl_make_REQ(struct php_x509_request * req, X509_REQ * csr, zval * dn, zval * attribs TSRMLS_DC) req 2645 ext/openssl/openssl.c dn_sect = CONF_get_string(req->req_config, req->section_name, "distinguished_name"); req 2649 ext/openssl/openssl.c dn_sk = CONF_get_section(req->req_config, dn_sect); req 2653 ext/openssl/openssl.c attr_sect = CONF_get_string(req->req_config, req->section_name, "attributes"); req 2657 ext/openssl/openssl.c attr_sk = CONF_get_section(req->req_config, attr_sect); req 2797 ext/openssl/openssl.c X509_REQ_set_pubkey(csr, req->priv_key); req 2948 ext/openssl/openssl.c struct php_x509_request req; req 2954 ext/openssl/openssl.c PHP_SSL_REQ_INIT(&req); req 2978 ext/openssl/openssl.c if (PHP_SSL_REQ_PARSE(&req, args) == FAILURE) { req 3025 ext/openssl/openssl.c if (req.extensions_section) { req 3029 ext/openssl/openssl.c X509V3_set_conf_lhash(&ctx, req.req_config); req 3030 ext/openssl/openssl.c if (!X509V3_EXT_add_conf(req.req_config, &ctx, req.extensions_section, new_cert)) { req 3036 ext/openssl/openssl.c if (!X509_sign(new_cert, priv_key, req.digest)) { req 3050 ext/openssl/openssl.c PHP_SSL_REQ_DISPOSE(&req); req 3074 ext/openssl/openssl.c struct php_x509_request req; req 3086 ext/openssl/openssl.c PHP_SSL_REQ_INIT(&req); req 3088 ext/openssl/openssl.c if (PHP_SSL_REQ_PARSE(&req, args) == SUCCESS) { req 3091 ext/openssl/openssl.c req.priv_key = php_openssl_evp_from_zval(&out_pkey, 0, NULL, 0, &key_resource TSRMLS_CC); req 3092 ext/openssl/openssl.c if (req.priv_key != NULL) { req 3096 ext/openssl/openssl.c if (req.priv_key == NULL) { req 3097 ext/openssl/openssl.c php_openssl_generate_private_key(&req TSRMLS_CC); req 3099 ext/openssl/openssl.c if (req.priv_key == NULL) { req 3104 ext/openssl/openssl.c if (php_openssl_make_REQ(&req, csr, dn, attribs TSRMLS_CC) == SUCCESS) { req 3108 ext/openssl/openssl.c X509V3_set_conf_lhash(&ext_ctx, req.req_config); req 3111 ext/openssl/openssl.c if (req.request_extensions_section && !X509V3_EXT_REQ_add_conf(req.req_config, req 3112 ext/openssl/openssl.c &ext_ctx, req.request_extensions_section, csr)) req 3114 ext/openssl/openssl.c php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error loading extension section %s", req.request_extensions_section); req 3118 ext/openssl/openssl.c if (X509_REQ_sign(csr, req.priv_key, req.digest)) { req 3128 ext/openssl/openssl.c ZVAL_RESOURCE(out_pkey, zend_list_insert(req.priv_key, le_key TSRMLS_CC)); req 3129 ext/openssl/openssl.c req.priv_key = NULL; /* make sure the cleanup code doesn't zap it! */ req 3131 ext/openssl/openssl.c req.priv_key = NULL; /* make sure the cleanup code doesn't zap it! */ req 3138 ext/openssl/openssl.c req.priv_key = NULL; req 3147 ext/openssl/openssl.c PHP_SSL_REQ_DISPOSE(&req); req 3381 ext/openssl/openssl.c static EVP_PKEY * php_openssl_generate_private_key(struct php_x509_request * req TSRMLS_DC) req 3387 ext/openssl/openssl.c if (req->priv_key_bits < MIN_KEY_LENGTH) { req 3389 ext/openssl/openssl.c MIN_KEY_LENGTH, req->priv_key_bits); req 3393 ext/openssl/openssl.c randfile = CONF_get_string(req->req_config, req->section_name, "RANDFILE"); req 3396 ext/openssl/openssl.c if ((req->priv_key = EVP_PKEY_new()) != NULL) { req 3397 ext/openssl/openssl.c switch(req->priv_key_type) { req 3399 ext/openssl/openssl.c if (EVP_PKEY_assign_RSA(req->priv_key, RSA_generate_key(req->priv_key_bits, 0x10001, NULL, NULL))) { req 3400 ext/openssl/openssl.c return_val = req->priv_key; req 3406 ext/openssl/openssl.c DSA *dsapar = DSA_generate_parameters(req->priv_key_bits, NULL, 0, NULL, NULL, NULL, NULL); req 3410 ext/openssl/openssl.c if (EVP_PKEY_assign_DSA(req->priv_key, dsapar)) { req 3411 ext/openssl/openssl.c return_val = req->priv_key; req 3423 ext/openssl/openssl.c DH *dhpar = DH_generate_parameters(req->priv_key_bits, 2, NULL, NULL); req 3429 ext/openssl/openssl.c if (EVP_PKEY_assign_DH(req->priv_key, dhpar)) { req 3430 ext/openssl/openssl.c return_val = req->priv_key; req 3447 ext/openssl/openssl.c EVP_PKEY_free(req->priv_key); req 3448 ext/openssl/openssl.c req->priv_key = NULL; req 3536 ext/openssl/openssl.c struct php_x509_request req; req 3619 ext/openssl/openssl.c PHP_SSL_REQ_INIT(&req); req 3621 ext/openssl/openssl.c if (PHP_SSL_REQ_PARSE(&req, args) == SUCCESS) req 3623 ext/openssl/openssl.c if (php_openssl_generate_private_key(&req TSRMLS_CC)) { req 3625 ext/openssl/openssl.c RETVAL_RESOURCE(zend_list_insert(req.priv_key, le_key TSRMLS_CC)); req 3627 ext/openssl/openssl.c req.priv_key = NULL; req 3630 ext/openssl/openssl.c PHP_SSL_REQ_DISPOSE(&req); req 3638 ext/openssl/openssl.c struct php_x509_request req; req 3666 ext/openssl/openssl.c PHP_SSL_REQ_INIT(&req); req 3668 ext/openssl/openssl.c if (PHP_SSL_REQ_PARSE(&req, args) == SUCCESS) { req 3671 ext/openssl/openssl.c if (passphrase && req.priv_key_encrypt) { req 3672 ext/openssl/openssl.c if (req.priv_key_encrypt_cipher) { req 3673 ext/openssl/openssl.c cipher = req.priv_key_encrypt_cipher; req 3698 ext/openssl/openssl.c PHP_SSL_REQ_DISPOSE(&req); req 3713 ext/openssl/openssl.c struct php_x509_request req; req 3735 ext/openssl/openssl.c PHP_SSL_REQ_INIT(&req); req 3737 ext/openssl/openssl.c if (PHP_SSL_REQ_PARSE(&req, args) == SUCCESS) { req 3740 ext/openssl/openssl.c if (passphrase && req.priv_key_encrypt) { req 3741 ext/openssl/openssl.c if (req.priv_key_encrypt_cipher) { req 3742 ext/openssl/openssl.c cipher = req.priv_key_encrypt_cipher; req 3774 ext/openssl/openssl.c PHP_SSL_REQ_DISPOSE(&req); req 150 ext/recode/recode.c char *req, *str; req 152 ext/recode/recode.c if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &req, &req_len, &str, &str_len) == FAILURE) { req 163 ext/recode/recode.c if (!recode_scan_request(request, req)) { req 164 ext/recode/recode.c php_error_docref(NULL TSRMLS_CC, E_WARNING, "Illegal recode request '%s'", req); req 189 ext/recode/recode.c char *req; req 195 ext/recode/recode.c if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "srr", &req, &req_len, &input, &output) == FAILURE) { req 216 ext/recode/recode.c if (!recode_scan_request(request, req)) { req 217 ext/recode/recode.c php_error_docref(NULL TSRMLS_CC, E_WARNING, "Illegal recode request '%s'", req); req 747 ext/xmlrpc/libxmlrpc/xmlrpc.c XMLRPC_REQUEST req = XMLRPC_REQUEST_FromXML(in_buf, len, in_options); req 749 ext/xmlrpc/libxmlrpc/xmlrpc.c if(req) { req 750 ext/xmlrpc/libxmlrpc/xmlrpc.c xResponse = req->io; req 751 ext/xmlrpc/libxmlrpc/xmlrpc.c XMLRPC_RequestFree(req, 0); req 163 sapi/apache_hooks/php_apache.c zval *req; req 172 sapi/apache_hooks/php_apache.c MAKE_STD_ZVAL(req); req 173 sapi/apache_hooks/php_apache.c object_init_ex(req, apacherequest_class_entry); req 174 sapi/apache_hooks/php_apache.c zend_hash_index_update(Z_OBJPROP_P(req), 0, &addr, sizeof(zval *), NULL); req 176 sapi/apache_hooks/php_apache.c return req; req 66 sapi/apache_hooks/sapi_apache.c zval *req; req 81 sapi/apache_hooks/sapi_apache.c req = php_apache_request_new(r); req 82 sapi/apache_hooks/sapi_apache.c php_register_variable_ex("request", req, PG(http_globals)[TRACK_VARS_SERVER] TSRMLS_CC); req 116 sapi/apache_hooks/sapi_apache.c zval_dtor(req); req 744 sapi/cgi/fastcgi.c fcgi_request *req = (fcgi_request*)calloc(1, sizeof(fcgi_request)); req 745 sapi/cgi/fastcgi.c req->listen_socket = listen_socket; req 746 sapi/cgi/fastcgi.c req->fd = -1; req 747 sapi/cgi/fastcgi.c req->id = -1; req 749 sapi/cgi/fastcgi.c req->in_len = 0; req 750 sapi/cgi/fastcgi.c req->in_pad = 0; req 752 sapi/cgi/fastcgi.c req->out_hdr = NULL; req 753 sapi/cgi/fastcgi.c req->out_pos = req->out_buf; req 756 sapi/cgi/fastcgi.c req->tcp = !GetNamedPipeInfo((HANDLE)_get_osfhandle(req->listen_socket), NULL, NULL, NULL, NULL); req 760 sapi/cgi/fastcgi.c req->nodelay = 0; req 763 sapi/cgi/fastcgi.c fcgi_hash_init(&req->env); req 765 sapi/cgi/fastcgi.c return req; req 768 sapi/cgi/fastcgi.c void fcgi_destroy_request(fcgi_request *req) req 770 sapi/cgi/fastcgi.c fcgi_hash_destroy(&req->env); req 771 sapi/cgi/fastcgi.c free(req); req 774 sapi/cgi/fastcgi.c static inline ssize_t safe_write(fcgi_request *req, const void *buf, size_t count) req 782 sapi/cgi/fastcgi.c if (!req->tcp) { req 783 sapi/cgi/fastcgi.c ret = write(req->fd, ((char*)buf)+n, count-n); req 785 sapi/cgi/fastcgi.c ret = send(req->fd, ((char*)buf)+n, count-n, 0); req 791 sapi/cgi/fastcgi.c ret = write(req->fd, ((char*)buf)+n, count-n); req 802 sapi/cgi/fastcgi.c static inline ssize_t safe_read(fcgi_request *req, const void *buf, size_t count) req 810 sapi/cgi/fastcgi.c if (!req->tcp) { req 811 sapi/cgi/fastcgi.c ret = read(req->fd, ((char*)buf)+n, count-n); req 813 sapi/cgi/fastcgi.c ret = recv(req->fd, ((char*)buf)+n, count-n, 0); req 819 sapi/cgi/fastcgi.c ret = read(req->fd, ((char*)buf)+n, count-n); req 850 sapi/cgi/fastcgi.c static int fcgi_get_params(fcgi_request *req, unsigned char *p, unsigned char *end) req 876 sapi/cgi/fastcgi.c fcgi_hash_set(&req->env, FCGI_HASH_FUNC(p, name_len), (char*)p, name_len, (char*)p + name_len, val_len); req 882 sapi/cgi/fastcgi.c static int fcgi_read_request(fcgi_request *req) req 888 sapi/cgi/fastcgi.c req->keep = 0; req 889 sapi/cgi/fastcgi.c req->closed = 0; req 890 sapi/cgi/fastcgi.c req->in_len = 0; req 891 sapi/cgi/fastcgi.c req->out_hdr = NULL; req 892 sapi/cgi/fastcgi.c req->out_pos = req->out_buf; req 893 sapi/cgi/fastcgi.c req->has_env = 1; req 895 sapi/cgi/fastcgi.c if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) || req 904 sapi/cgi/fastcgi.c if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) || req 917 sapi/cgi/fastcgi.c req->id = (hdr.requestIdB1 << 8) + hdr.requestIdB0; req 920 sapi/cgi/fastcgi.c if (safe_read(req, buf, len+padding) != len+padding) { req 924 sapi/cgi/fastcgi.c req->keep = (((fcgi_begin_request*)buf)->flags & FCGI_KEEP_CONN); req 926 sapi/cgi/fastcgi.c if (req->keep && req->tcp && !req->nodelay) { req 933 sapi/cgi/fastcgi.c setsockopt(req->fd, IPPROTO_TCP, TCP_NODELAY, (char*)&on, sizeof(on)); req 934 sapi/cgi/fastcgi.c req->nodelay = 1; req 939 sapi/cgi/fastcgi.c fcgi_hash_set(&req->env, FCGI_HASH_FUNC("FCGI_ROLE", sizeof("FCGI_ROLE")-1), "FCGI_ROLE", sizeof("FCGI_ROLE")-1, "RESPONDER", sizeof("RESPONDER")-1); req 942 sapi/cgi/fastcgi.c fcgi_hash_set(&req->env, FCGI_HASH_FUNC("FCGI_ROLE", sizeof("FCGI_ROLE")-1), "FCGI_ROLE", sizeof("FCGI_ROLE")-1, "AUTHORIZER", sizeof("AUTHORIZER")-1); req 945 sapi/cgi/fastcgi.c fcgi_hash_set(&req->env, FCGI_HASH_FUNC("FCGI_ROLE", sizeof("FCGI_ROLE")-1), "FCGI_ROLE", sizeof("FCGI_ROLE")-1, "FILTER", sizeof("FILTER")-1); req 951 sapi/cgi/fastcgi.c if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) || req 964 sapi/cgi/fastcgi.c if (safe_read(req, buf, len+padding) != len+padding) { req 965 sapi/cgi/fastcgi.c req->keep = 0; req 969 sapi/cgi/fastcgi.c if (!fcgi_get_params(req, buf, buf+len)) { req 970 sapi/cgi/fastcgi.c req->keep = 0; req 974 sapi/cgi/fastcgi.c if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) || req 976 sapi/cgi/fastcgi.c req->keep = 0; req 988 sapi/cgi/fastcgi.c if (safe_read(req, buf, len+padding) != len+padding) { req 989 sapi/cgi/fastcgi.c req->keep = 0; req 993 sapi/cgi/fastcgi.c if (!fcgi_get_params(req, buf, buf+len)) { req 994 sapi/cgi/fastcgi.c req->keep = 0; req 998 sapi/cgi/fastcgi.c q = req->env.list; req 1032 sapi/cgi/fastcgi.c if (safe_write(req, buf, sizeof(fcgi_header)+len) != (int)sizeof(fcgi_header)+len) { req 1033 sapi/cgi/fastcgi.c req->keep = 0; req 1044 sapi/cgi/fastcgi.c int fcgi_read(fcgi_request *req, char *str, int len) req 1053 sapi/cgi/fastcgi.c if (req->in_len == 0) { req 1054 sapi/cgi/fastcgi.c if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) || req 1057 sapi/cgi/fastcgi.c req->keep = 0; req 1060 sapi/cgi/fastcgi.c req->in_len = (hdr.contentLengthB1 << 8) | hdr.contentLengthB0; req 1061 sapi/cgi/fastcgi.c req->in_pad = hdr.paddingLength; req 1062 sapi/cgi/fastcgi.c if (req->in_len == 0) { req 1067 sapi/cgi/fastcgi.c if (req->in_len >= rest) { req 1068 sapi/cgi/fastcgi.c ret = safe_read(req, str, rest); req 1070 sapi/cgi/fastcgi.c ret = safe_read(req, str, req->in_len); req 1073 sapi/cgi/fastcgi.c req->keep = 0; req 1076 sapi/cgi/fastcgi.c req->in_len -= ret; req 1080 sapi/cgi/fastcgi.c if (req->in_len == 0) { req 1081 sapi/cgi/fastcgi.c if (req->in_pad) { req 1082 sapi/cgi/fastcgi.c if (safe_read(req, buf, req->in_pad) != req->in_pad) { req 1083 sapi/cgi/fastcgi.c req->keep = 0; req 1097 sapi/cgi/fastcgi.c static inline void fcgi_close(fcgi_request *req, int force, int destroy) req 1099 sapi/cgi/fastcgi.c if (destroy && req->has_env) { req 1100 sapi/cgi/fastcgi.c fcgi_hash_clean(&req->env); req 1101 sapi/cgi/fastcgi.c req->has_env = 0; req 1105 sapi/cgi/fastcgi.c if (is_impersonate && !req->tcp) { req 1110 sapi/cgi/fastcgi.c if ((force || !req->keep) && req->fd >= 0) { req 1112 sapi/cgi/fastcgi.c if (!req->tcp) { req 1113 sapi/cgi/fastcgi.c HANDLE pipe = (HANDLE)_get_osfhandle(req->fd); req 1123 sapi/cgi/fastcgi.c shutdown(req->fd, 1); req 1125 sapi/cgi/fastcgi.c recv(req->fd, (char *)(&buf), sizeof(buf), 0); req 1127 sapi/cgi/fastcgi.c closesocket(req->fd); req 1133 sapi/cgi/fastcgi.c shutdown(req->fd, 1); req 1135 sapi/cgi/fastcgi.c recv(req->fd, (char *)(&buf), sizeof(buf), 0); req 1137 sapi/cgi/fastcgi.c close(req->fd); req 1140 sapi/cgi/fastcgi.c req->nodelay = 0; req 1142 sapi/cgi/fastcgi.c req->fd = -1; req 1146 sapi/cgi/fastcgi.c int fcgi_accept_request(fcgi_request *req) req 1154 sapi/cgi/fastcgi.c if (req->fd < 0) { req 1160 sapi/cgi/fastcgi.c if (!req->tcp) { req 1161 sapi/cgi/fastcgi.c pipe = (HANDLE)_get_osfhandle(req->listen_socket); req 1162 sapi/cgi/fastcgi.c FCGI_LOCK(req->listen_socket); req 1170 sapi/cgi/fastcgi.c FCGI_UNLOCK(req->listen_socket); req 1178 sapi/cgi/fastcgi.c req->fd = req->listen_socket; req 1179 sapi/cgi/fastcgi.c FCGI_UNLOCK(req->listen_socket); req 1181 sapi/cgi/fastcgi.c SOCKET listen_socket = (SOCKET)_get_osfhandle(req->listen_socket); req 1184 sapi/cgi/fastcgi.c int listen_socket = req->listen_socket; req 1189 sapi/cgi/fastcgi.c FCGI_LOCK(req->listen_socket); req 1190 sapi/cgi/fastcgi.c req->fd = accept(listen_socket, (struct sockaddr *)&sa, &len); req 1191 sapi/cgi/fastcgi.c FCGI_UNLOCK(req->listen_socket); req 1192 sapi/cgi/fastcgi.c if (req->fd >= 0) { req 1195 sapi/cgi/fastcgi.c req->tcp = 1; req 1210 sapi/cgi/fastcgi.c closesocket(req->fd); req 1211 sapi/cgi/fastcgi.c req->fd = -1; req 1217 sapi/cgi/fastcgi.c req->tcp = 0; req 1224 sapi/cgi/fastcgi.c if (req->fd < 0 && (in_shutdown || errno != EINTR)) { req 1226 sapi/cgi/fastcgi.c if (req->fd < 0 && (in_shutdown || (errno != EINTR && errno != ECONNABORTED))) { req 1234 sapi/cgi/fastcgi.c if (req->fd >= 0) { req 1239 sapi/cgi/fastcgi.c fds.fd = req->fd; req 1249 sapi/cgi/fastcgi.c fcgi_close(req, 1, 0); req 1251 sapi/cgi/fastcgi.c if (req->fd < FD_SETSIZE) { req 1257 sapi/cgi/fastcgi.c FD_SET(req->fd, &set); req 1260 sapi/cgi/fastcgi.c ret = select(req->fd + 1, &set, NULL, NULL, &tv) >= 0; req 1262 sapi/cgi/fastcgi.c if (ret > 0 && FD_ISSET(req->fd, &set)) { req 1265 sapi/cgi/fastcgi.c fcgi_close(req, 1, 0); req 1268 sapi/cgi/fastcgi.c fcgi_close(req, 1, 0); req 1277 sapi/cgi/fastcgi.c if (fcgi_read_request(req)) { req 1279 sapi/cgi/fastcgi.c if (is_impersonate && !req->tcp) { req 1280 sapi/cgi/fastcgi.c pipe = (HANDLE)_get_osfhandle(req->fd); req 1282 sapi/cgi/fastcgi.c fcgi_close(req, 1, 1); req 1287 sapi/cgi/fastcgi.c return req->fd; req 1289 sapi/cgi/fastcgi.c fcgi_close(req, 1, 1); req 1294 sapi/cgi/fastcgi.c static inline fcgi_header* open_packet(fcgi_request *req, fcgi_request_type type) req 1296 sapi/cgi/fastcgi.c req->out_hdr = (fcgi_header*) req->out_pos; req 1297 sapi/cgi/fastcgi.c req->out_hdr->type = type; req 1298 sapi/cgi/fastcgi.c req->out_pos += sizeof(fcgi_header); req 1299 sapi/cgi/fastcgi.c return req->out_hdr; req 1302 sapi/cgi/fastcgi.c static inline void close_packet(fcgi_request *req) req 1304 sapi/cgi/fastcgi.c if (req->out_hdr) { req 1305 sapi/cgi/fastcgi.c int len = req->out_pos - ((unsigned char*)req->out_hdr + sizeof(fcgi_header)); req 1307 sapi/cgi/fastcgi.c req->out_pos += fcgi_make_header(req->out_hdr, (fcgi_request_type)req->out_hdr->type, req->id, len); req 1308 sapi/cgi/fastcgi.c req->out_hdr = NULL; req 1312 sapi/cgi/fastcgi.c int fcgi_flush(fcgi_request *req, int close) req 1316 sapi/cgi/fastcgi.c close_packet(req); req 1318 sapi/cgi/fastcgi.c len = req->out_pos - req->out_buf; req 1321 sapi/cgi/fastcgi.c fcgi_end_request_rec *rec = (fcgi_end_request_rec*)(req->out_pos); req 1323 sapi/cgi/fastcgi.c fcgi_make_header(&rec->hdr, FCGI_END_REQUEST, req->id, sizeof(fcgi_end_request)); req 1332 sapi/cgi/fastcgi.c if (safe_write(req, req->out_buf, len) != len) { req 1333 sapi/cgi/fastcgi.c req->keep = 0; req 1334 sapi/cgi/fastcgi.c req->out_pos = req->out_buf; req 1338 sapi/cgi/fastcgi.c req->out_pos = req->out_buf; req 1342 sapi/cgi/fastcgi.c int fcgi_write(fcgi_request *req, fcgi_request_type type, const char *str, int len) req 1350 sapi/cgi/fastcgi.c if (req->out_hdr && req->out_hdr->type != type) { req 1351 sapi/cgi/fastcgi.c close_packet(req); req 1357 sapi/cgi/fastcgi.c limit = sizeof(req->out_buf) - (req->out_pos - req->out_buf); req 1359 sapi/cgi/fastcgi.c if (!req->out_hdr) { req 1361 sapi/cgi/fastcgi.c if (!fcgi_flush(req, 0)) { req 1365 sapi/cgi/fastcgi.c open_packet(req, type); req 1367 sapi/cgi/fastcgi.c limit = sizeof(req->out_buf) - (req->out_pos - req->out_buf); req 1369 sapi/cgi/fastcgi.c memcpy(req->out_pos, str, rest); req 1370 sapi/cgi/fastcgi.c req->out_pos += rest; req 1373 sapi/cgi/fastcgi.c memcpy(req->out_pos, str, limit); req 1374 sapi/cgi/fastcgi.c req->out_pos += limit; req 1377 sapi/cgi/fastcgi.c if (!fcgi_flush(req, 0)) { req 1384 sapi/cgi/fastcgi.c limit = sizeof(req->out_buf) - (req->out_pos - req->out_buf); req 1385 sapi/cgi/fastcgi.c if (!req->out_hdr) { req 1391 sapi/cgi/fastcgi.c if (!req->out_hdr) { req 1392 sapi/cgi/fastcgi.c open_packet(req, type); req 1394 sapi/cgi/fastcgi.c memcpy(req->out_pos, str, len); req 1395 sapi/cgi/fastcgi.c req->out_pos += len; req 1396 sapi/cgi/fastcgi.c } else if (len - limit < sizeof(req->out_buf) - sizeof(fcgi_header)) { req 1397 sapi/cgi/fastcgi.c if (!req->out_hdr) { req 1398 sapi/cgi/fastcgi.c open_packet(req, type); req 1401 sapi/cgi/fastcgi.c memcpy(req->out_pos, str, limit); req 1402 sapi/cgi/fastcgi.c req->out_pos += limit; req 1404 sapi/cgi/fastcgi.c if (!fcgi_flush(req, 0)) { req 1408 sapi/cgi/fastcgi.c open_packet(req, type); req 1409 sapi/cgi/fastcgi.c memcpy(req->out_pos, str + limit, len - limit); req 1410 sapi/cgi/fastcgi.c req->out_pos += len - limit; req 1416 sapi/cgi/fastcgi.c close_packet(req); req 1418 sapi/cgi/fastcgi.c open_packet(req, type); req 1419 sapi/cgi/fastcgi.c fcgi_make_header(req->out_hdr, type, req->id, 0xfff8); req 1420 sapi/cgi/fastcgi.c req->out_hdr = NULL; req 1421 sapi/cgi/fastcgi.c if (!fcgi_flush(req, 0)) { req 1424 sapi/cgi/fastcgi.c if (safe_write(req, str + pos, 0xfff8) != 0xfff8) { req 1425 sapi/cgi/fastcgi.c req->keep = 0; req 1434 sapi/cgi/fastcgi.c open_packet(req, type); req 1435 sapi/cgi/fastcgi.c fcgi_make_header(req->out_hdr, type, req->id, (len - pos) - rest); req 1436 sapi/cgi/fastcgi.c req->out_hdr = NULL; req 1437 sapi/cgi/fastcgi.c if (!fcgi_flush(req, 0)) { req 1440 sapi/cgi/fastcgi.c if (safe_write(req, str + pos, (len - pos) - rest) != (len - pos) - rest) { req 1441 sapi/cgi/fastcgi.c req->keep = 0; req 1445 sapi/cgi/fastcgi.c open_packet(req, type); req 1446 sapi/cgi/fastcgi.c memcpy(req->out_pos, str + len - rest, rest); req 1447 sapi/cgi/fastcgi.c req->out_pos += rest; req 1454 sapi/cgi/fastcgi.c int fcgi_finish_request(fcgi_request *req, int force_close) req 1458 sapi/cgi/fastcgi.c if (req->fd >= 0) { req 1459 sapi/cgi/fastcgi.c if (!req->closed) { req 1460 sapi/cgi/fastcgi.c ret = fcgi_flush(req, 1); req 1461 sapi/cgi/fastcgi.c req->closed = 1; req 1463 sapi/cgi/fastcgi.c fcgi_close(req, force_close, 1); req 1468 sapi/cgi/fastcgi.c char* fcgi_getenv(fcgi_request *req, const char* var, int var_len) req 1472 sapi/cgi/fastcgi.c if (!req) return NULL; req 1474 sapi/cgi/fastcgi.c return fcgi_hash_get(&req->env, FCGI_HASH_FUNC(var, var_len), (char*)var, var_len, &val_len); req 1477 sapi/cgi/fastcgi.c char* fcgi_quick_getenv(fcgi_request *req, const char* var, int var_len, unsigned int hash_value) req 1481 sapi/cgi/fastcgi.c return fcgi_hash_get(&req->env, hash_value, (char*)var, var_len, &val_len); req 1484 sapi/cgi/fastcgi.c char* fcgi_putenv(fcgi_request *req, char* var, int var_len, char* val) req 1486 sapi/cgi/fastcgi.c if (!req) return NULL; req 1488 sapi/cgi/fastcgi.c fcgi_hash_del(&req->env, FCGI_HASH_FUNC(var, var_len), var, var_len); req 1491 sapi/cgi/fastcgi.c return fcgi_hash_set(&req->env, FCGI_HASH_FUNC(var, var_len), var, var_len, val, strlen(val)); req 1495 sapi/cgi/fastcgi.c char* fcgi_quick_putenv(fcgi_request *req, char* var, int var_len, unsigned int hash_value, char* val) req 1498 sapi/cgi/fastcgi.c fcgi_hash_del(&req->env, hash_value, var, var_len); req 1501 sapi/cgi/fastcgi.c return fcgi_hash_set(&req->env, hash_value, var, var_len, val, strlen(val)); req 1505 sapi/cgi/fastcgi.c void fcgi_loadenv(fcgi_request *req, fcgi_apply_func func, zval *array TSRMLS_DC) req 1507 sapi/cgi/fastcgi.c fcgi_hash_apply(&req->env, func, array TSRMLS_CC); req 122 sapi/cgi/fastcgi.h void fcgi_destroy_request(fcgi_request *req); req 123 sapi/cgi/fastcgi.h int fcgi_accept_request(fcgi_request *req); req 124 sapi/cgi/fastcgi.h int fcgi_finish_request(fcgi_request *req, int force_close); req 126 sapi/cgi/fastcgi.h char* fcgi_getenv(fcgi_request *req, const char* var, int var_len); req 127 sapi/cgi/fastcgi.h char* fcgi_putenv(fcgi_request *req, char* var, int var_len, char* val); req 128 sapi/cgi/fastcgi.h char* fcgi_quick_getenv(fcgi_request *req, const char* var, int var_len, unsigned int hash_value); req 129 sapi/cgi/fastcgi.h char* fcgi_quick_putenv(fcgi_request *req, char* var, int var_len, unsigned int hash_value, char* val); req 130 sapi/cgi/fastcgi.h void fcgi_loadenv(fcgi_request *req, fcgi_apply_func load_func, zval *array TSRMLS_DC); req 132 sapi/cgi/fastcgi.h int fcgi_read(fcgi_request *req, char *str, int len); req 134 sapi/cgi/fastcgi.h int fcgi_write(fcgi_request *req, fcgi_request_type type, const char *str, int len); req 135 sapi/cgi/fastcgi.h int fcgi_flush(fcgi_request *req, int close); req 1414 sapi/cli/php_cli_server.c static int php_cli_server_request_ctor(php_cli_server_request *req) /* {{{ */ req 1416 sapi/cli/php_cli_server.c req->protocol_version = 0; req 1417 sapi/cli/php_cli_server.c req->request_uri = NULL; req 1418 sapi/cli/php_cli_server.c req->request_uri_len = 0; req 1419 sapi/cli/php_cli_server.c req->vpath = NULL; req 1420 sapi/cli/php_cli_server.c req->vpath_len = 0; req 1421 sapi/cli/php_cli_server.c req->path_translated = NULL; req 1422 sapi/cli/php_cli_server.c req->path_translated_len = 0; req 1423 sapi/cli/php_cli_server.c req->path_info = NULL; req 1424 sapi/cli/php_cli_server.c req->path_info_len = 0; req 1425 sapi/cli/php_cli_server.c req->query_string = NULL; req 1426 sapi/cli/php_cli_server.c req->query_string_len = 0; req 1427 sapi/cli/php_cli_server.c zend_hash_init(&req->headers, 0, NULL, (void(*)(void*))char_ptr_dtor_p, 1); req 1428 sapi/cli/php_cli_server.c zend_hash_init(&req->headers_original_case, 0, NULL, NULL, 1); req 1429 sapi/cli/php_cli_server.c req->content = NULL; req 1430 sapi/cli/php_cli_server.c req->content_len = 0; req 1431 sapi/cli/php_cli_server.c req->ext = NULL; req 1432 sapi/cli/php_cli_server.c req->ext_len = 0; req 1436 sapi/cli/php_cli_server.c static void php_cli_server_request_dtor(php_cli_server_request *req) /* {{{ */ req 1438 sapi/cli/php_cli_server.c if (req->request_uri) { req 1439 sapi/cli/php_cli_server.c pefree(req->request_uri, 1); req 1441 sapi/cli/php_cli_server.c if (req->vpath) { req 1442 sapi/cli/php_cli_server.c pefree(req->vpath, 1); req 1444 sapi/cli/php_cli_server.c if (req->path_translated) { req 1445 sapi/cli/php_cli_server.c pefree(req->path_translated, 1); req 1447 sapi/cli/php_cli_server.c if (req->path_info) { req 1448 sapi/cli/php_cli_server.c pefree(req->path_info, 1); req 1450 sapi/cli/php_cli_server.c if (req->query_string) { req 1451 sapi/cli/php_cli_server.c pefree(req->query_string, 1); req 1453 sapi/cli/php_cli_server.c zend_hash_destroy(&req->headers); req 1454 sapi/cli/php_cli_server.c zend_hash_destroy(&req->headers_original_case); req 1455 sapi/cli/php_cli_server.c if (req->content) { req 1456 sapi/cli/php_cli_server.c pefree(req->content, 1); req 288 sapi/fpm/fpm/fastcgi.c void fcgi_init_request(fcgi_request *req, int listen_socket) req 290 sapi/fpm/fpm/fastcgi.c memset(req, 0, sizeof(fcgi_request)); req 291 sapi/fpm/fpm/fastcgi.c req->listen_socket = listen_socket; req 292 sapi/fpm/fpm/fastcgi.c req->fd = -1; req 293 sapi/fpm/fpm/fastcgi.c req->id = -1; req 295 sapi/fpm/fpm/fastcgi.c req->in_len = 0; req 296 sapi/fpm/fpm/fastcgi.c req->in_pad = 0; req 298 sapi/fpm/fpm/fastcgi.c req->out_hdr = NULL; req 299 sapi/fpm/fpm/fastcgi.c req->out_pos = req->out_buf; req 302 sapi/fpm/fpm/fastcgi.c req->tcp = !GetNamedPipeInfo((HANDLE)_get_osfhandle(req->listen_socket), NULL, NULL, NULL, NULL); req 306 sapi/fpm/fpm/fastcgi.c static inline ssize_t safe_write(fcgi_request *req, const void *buf, size_t count) req 314 sapi/fpm/fpm/fastcgi.c if (!req->tcp) { req 315 sapi/fpm/fpm/fastcgi.c ret = write(req->fd, ((char*)buf)+n, count-n); req 317 sapi/fpm/fpm/fastcgi.c ret = send(req->fd, ((char*)buf)+n, count-n, 0); req 323 sapi/fpm/fpm/fastcgi.c ret = write(req->fd, ((char*)buf)+n, count-n); req 334 sapi/fpm/fpm/fastcgi.c static inline ssize_t safe_read(fcgi_request *req, const void *buf, size_t count) req 342 sapi/fpm/fpm/fastcgi.c if (!req->tcp) { req 343 sapi/fpm/fpm/fastcgi.c ret = read(req->fd, ((char*)buf)+n, count-n); req 345 sapi/fpm/fpm/fastcgi.c ret = recv(req->fd, ((char*)buf)+n, count-n, 0); req 351 sapi/fpm/fpm/fastcgi.c ret = read(req->fd, ((char*)buf)+n, count-n); req 431 sapi/fpm/fpm/fastcgi.c static int fcgi_get_params(fcgi_request *req, unsigned char *p, unsigned char *end) req 493 sapi/fpm/fpm/fastcgi.c zend_hash_update(req->env, tmp, eff_name_len+1, &s, sizeof(char*), NULL); req 507 sapi/fpm/fpm/fastcgi.c static int fcgi_read_request(fcgi_request *req) req 513 sapi/fpm/fpm/fastcgi.c req->keep = 0; req 514 sapi/fpm/fpm/fastcgi.c req->closed = 0; req 515 sapi/fpm/fpm/fastcgi.c req->in_len = 0; req 516 sapi/fpm/fpm/fastcgi.c req->out_hdr = NULL; req 517 sapi/fpm/fpm/fastcgi.c req->out_pos = req->out_buf; req 518 sapi/fpm/fpm/fastcgi.c ALLOC_HASHTABLE(req->env); req 519 sapi/fpm/fpm/fastcgi.c zend_hash_init(req->env, 0, NULL, (void (*)(void *)) fcgi_free_var, 0); req 521 sapi/fpm/fpm/fastcgi.c if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) || req 530 sapi/fpm/fpm/fastcgi.c if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) || req 543 sapi/fpm/fpm/fastcgi.c req->id = (hdr.requestIdB1 << 8) + hdr.requestIdB0; req 548 sapi/fpm/fpm/fastcgi.c if (safe_read(req, buf, len+padding) != len+padding) { req 552 sapi/fpm/fpm/fastcgi.c req->keep = (((fcgi_begin_request*)buf)->flags & FCGI_KEEP_CONN); req 556 sapi/fpm/fpm/fastcgi.c zend_hash_update(req->env, "FCGI_ROLE", sizeof("FCGI_ROLE"), &val, sizeof(char*), NULL); req 560 sapi/fpm/fpm/fastcgi.c zend_hash_update(req->env, "FCGI_ROLE", sizeof("FCGI_ROLE"), &val, sizeof(char*), NULL); req 564 sapi/fpm/fpm/fastcgi.c zend_hash_update(req->env, "FCGI_ROLE", sizeof("FCGI_ROLE"), &val, sizeof(char*), NULL); req 570 sapi/fpm/fpm/fastcgi.c if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) || req 583 sapi/fpm/fpm/fastcgi.c if (safe_read(req, buf, len+padding) != len+padding) { req 584 sapi/fpm/fpm/fastcgi.c req->keep = 0; req 588 sapi/fpm/fpm/fastcgi.c if (!fcgi_get_params(req, buf, buf+len)) { req 589 sapi/fpm/fpm/fastcgi.c req->keep = 0; req 593 sapi/fpm/fpm/fastcgi.c if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) || req 595 sapi/fpm/fpm/fastcgi.c req->keep = 0; req 610 sapi/fpm/fpm/fastcgi.c if (safe_read(req, buf, len+padding) != len+padding) { req 611 sapi/fpm/fpm/fastcgi.c req->keep = 0; req 615 sapi/fpm/fpm/fastcgi.c if (!fcgi_get_params(req, buf, buf+len)) { req 616 sapi/fpm/fpm/fastcgi.c req->keep = 0; req 620 sapi/fpm/fpm/fastcgi.c zend_hash_internal_pointer_reset_ex(req->env, &pos); req 621 sapi/fpm/fpm/fastcgi.c while ((key_type = zend_hash_get_current_key_ex(req->env, &str_index, &str_length, &num_index, 0, &pos)) != HASH_KEY_NON_EXISTENT) { req 623 sapi/fpm/fpm/fastcgi.c zend_hash_move_forward_ex(req->env, &pos); req 658 sapi/fpm/fpm/fastcgi.c if (safe_write(req, buf, sizeof(fcgi_header)+len) != (int)sizeof(fcgi_header)+len) { req 659 sapi/fpm/fpm/fastcgi.c req->keep = 0; req 670 sapi/fpm/fpm/fastcgi.c int fcgi_read(fcgi_request *req, char *str, int len) req 679 sapi/fpm/fpm/fastcgi.c if (req->in_len == 0) { req 680 sapi/fpm/fpm/fastcgi.c if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) || req 683 sapi/fpm/fpm/fastcgi.c req->keep = 0; req 686 sapi/fpm/fpm/fastcgi.c req->in_len = (hdr.contentLengthB1 << 8) | hdr.contentLengthB0; req 687 sapi/fpm/fpm/fastcgi.c req->in_pad = hdr.paddingLength; req 688 sapi/fpm/fpm/fastcgi.c if (req->in_len == 0) { req 693 sapi/fpm/fpm/fastcgi.c if (req->in_len >= rest) { req 694 sapi/fpm/fpm/fastcgi.c ret = safe_read(req, str, rest); req 696 sapi/fpm/fpm/fastcgi.c ret = safe_read(req, str, req->in_len); req 699 sapi/fpm/fpm/fastcgi.c req->keep = 0; req 702 sapi/fpm/fpm/fastcgi.c req->in_len -= ret; req 706 sapi/fpm/fpm/fastcgi.c if (req->in_len == 0) { req 707 sapi/fpm/fpm/fastcgi.c if (req->in_pad) { req 708 sapi/fpm/fpm/fastcgi.c if (safe_read(req, buf, req->in_pad) != req->in_pad) { req 709 sapi/fpm/fpm/fastcgi.c req->keep = 0; req 723 sapi/fpm/fpm/fastcgi.c void fcgi_close(fcgi_request *req, int force, int destroy) req 725 sapi/fpm/fpm/fastcgi.c if (destroy && req->env) { req 726 sapi/fpm/fpm/fastcgi.c zend_hash_destroy(req->env); req 727 sapi/fpm/fpm/fastcgi.c FREE_HASHTABLE(req->env); req 728 sapi/fpm/fpm/fastcgi.c req->env = NULL; req 732 sapi/fpm/fpm/fastcgi.c if (is_impersonate && !req->tcp) { req 737 sapi/fpm/fpm/fastcgi.c if ((force || !req->keep) && req->fd >= 0) { req 739 sapi/fpm/fpm/fastcgi.c if (!req->tcp) { req 740 sapi/fpm/fpm/fastcgi.c HANDLE pipe = (HANDLE)_get_osfhandle(req->fd); req 750 sapi/fpm/fpm/fastcgi.c shutdown(req->fd, 1); req 751 sapi/fpm/fpm/fastcgi.c while (recv(req->fd, buf, sizeof(buf), 0) > 0) {} req 753 sapi/fpm/fpm/fastcgi.c closesocket(req->fd); req 759 sapi/fpm/fpm/fastcgi.c shutdown(req->fd, 1); req 760 sapi/fpm/fpm/fastcgi.c while (recv(req->fd, buf, sizeof(buf), 0) > 0) {} req 762 sapi/fpm/fpm/fastcgi.c close(req->fd); req 764 sapi/fpm/fpm/fastcgi.c req->fd = -1; req 806 sapi/fpm/fpm/fastcgi.c int fcgi_accept_request(fcgi_request *req) req 814 sapi/fpm/fpm/fastcgi.c if (req->fd < 0) { req 820 sapi/fpm/fpm/fastcgi.c if (!req->tcp) { req 821 sapi/fpm/fpm/fastcgi.c pipe = (HANDLE)_get_osfhandle(req->listen_socket); req 822 sapi/fpm/fpm/fastcgi.c FCGI_LOCK(req->listen_socket); req 830 sapi/fpm/fpm/fastcgi.c FCGI_UNLOCK(req->listen_socket); req 838 sapi/fpm/fpm/fastcgi.c req->fd = req->listen_socket; req 839 sapi/fpm/fpm/fastcgi.c FCGI_UNLOCK(req->listen_socket); req 841 sapi/fpm/fpm/fastcgi.c SOCKET listen_socket = (SOCKET)_get_osfhandle(req->listen_socket); req 844 sapi/fpm/fpm/fastcgi.c int listen_socket = req->listen_socket; req 851 sapi/fpm/fpm/fastcgi.c FCGI_LOCK(req->listen_socket); req 852 sapi/fpm/fpm/fastcgi.c req->fd = accept(listen_socket, (struct sockaddr *)&sa, &len); req 853 sapi/fpm/fpm/fastcgi.c FCGI_UNLOCK(req->listen_socket); req 856 sapi/fpm/fpm/fastcgi.c if (req->fd >= 0 && !fcgi_is_allowed()) { req 857 sapi/fpm/fpm/fastcgi.c closesocket(req->fd); req 858 sapi/fpm/fpm/fastcgi.c req->fd = -1; req 864 sapi/fpm/fpm/fastcgi.c if (req->fd < 0 && (in_shutdown || errno != EINTR)) { req 866 sapi/fpm/fpm/fastcgi.c if (req->fd < 0 && (in_shutdown || (errno != EINTR && errno != ECONNABORTED))) { req 874 sapi/fpm/fpm/fastcgi.c if (req->fd >= 0) { req 881 sapi/fpm/fpm/fastcgi.c fds.fd = req->fd; req 891 sapi/fpm/fpm/fastcgi.c fcgi_close(req, 1, 0); req 895 sapi/fpm/fpm/fastcgi.c if (req->fd < FD_SETSIZE) { req 901 sapi/fpm/fpm/fastcgi.c FD_SET(req->fd, &set); req 904 sapi/fpm/fpm/fastcgi.c ret = select(req->fd + 1, &set, NULL, NULL, &tv) >= 0; req 906 sapi/fpm/fpm/fastcgi.c if (ret > 0 && FD_ISSET(req->fd, &set)) { req 909 sapi/fpm/fpm/fastcgi.c fcgi_close(req, 1, 0); req 912 sapi/fpm/fpm/fastcgi.c fcgi_close(req, 1, 0); req 921 sapi/fpm/fpm/fastcgi.c if (fcgi_read_request(req)) { req 923 sapi/fpm/fpm/fastcgi.c if (is_impersonate && !req->tcp) { req 924 sapi/fpm/fpm/fastcgi.c pipe = (HANDLE)_get_osfhandle(req->fd); req 926 sapi/fpm/fpm/fastcgi.c fcgi_close(req, 1, 1); req 931 sapi/fpm/fpm/fastcgi.c return req->fd; req 933 sapi/fpm/fpm/fastcgi.c fcgi_close(req, 1, 1); req 938 sapi/fpm/fpm/fastcgi.c static inline fcgi_header* open_packet(fcgi_request *req, fcgi_request_type type) req 940 sapi/fpm/fpm/fastcgi.c req->out_hdr = (fcgi_header*) req->out_pos; req 941 sapi/fpm/fpm/fastcgi.c req->out_hdr->type = type; req 942 sapi/fpm/fpm/fastcgi.c req->out_pos += sizeof(fcgi_header); req 943 sapi/fpm/fpm/fastcgi.c return req->out_hdr; req 946 sapi/fpm/fpm/fastcgi.c static inline void close_packet(fcgi_request *req) req 948 sapi/fpm/fpm/fastcgi.c if (req->out_hdr) { req 949 sapi/fpm/fpm/fastcgi.c int len = req->out_pos - ((unsigned char*)req->out_hdr + sizeof(fcgi_header)); req 951 sapi/fpm/fpm/fastcgi.c req->out_pos += fcgi_make_header(req->out_hdr, (fcgi_request_type)req->out_hdr->type, req->id, len); req 952 sapi/fpm/fpm/fastcgi.c req->out_hdr = NULL; req 956 sapi/fpm/fpm/fastcgi.c int fcgi_flush(fcgi_request *req, int close) req 960 sapi/fpm/fpm/fastcgi.c close_packet(req); req 962 sapi/fpm/fpm/fastcgi.c len = req->out_pos - req->out_buf; req 965 sapi/fpm/fpm/fastcgi.c fcgi_end_request_rec *rec = (fcgi_end_request_rec*)(req->out_pos); req 967 sapi/fpm/fpm/fastcgi.c fcgi_make_header(&rec->hdr, FCGI_END_REQUEST, req->id, sizeof(fcgi_end_request)); req 976 sapi/fpm/fpm/fastcgi.c if (safe_write(req, req->out_buf, len) != len) { req 977 sapi/fpm/fpm/fastcgi.c req->keep = 0; req 978 sapi/fpm/fpm/fastcgi.c req->out_pos = req->out_buf; req 982 sapi/fpm/fpm/fastcgi.c req->out_pos = req->out_buf; req 986 sapi/fpm/fpm/fastcgi.c ssize_t fcgi_write(fcgi_request *req, fcgi_request_type type, const char *str, int len) req 994 sapi/fpm/fpm/fastcgi.c if (req->out_hdr && req->out_hdr->type != type) { req 995 sapi/fpm/fpm/fastcgi.c close_packet(req); req 999 sapi/fpm/fpm/fastcgi.c limit = sizeof(req->out_buf) - (req->out_pos - req->out_buf); req 1000 sapi/fpm/fpm/fastcgi.c if (!req->out_hdr) { req 1006 sapi/fpm/fpm/fastcgi.c if (!req->out_hdr) { req 1007 sapi/fpm/fpm/fastcgi.c open_packet(req, type); req 1009 sapi/fpm/fpm/fastcgi.c memcpy(req->out_pos, str, len); req 1010 sapi/fpm/fpm/fastcgi.c req->out_pos += len; req 1011 sapi/fpm/fpm/fastcgi.c } else if (len - limit < sizeof(req->out_buf) - sizeof(fcgi_header)) { req 1012 sapi/fpm/fpm/fastcgi.c if (!req->out_hdr) { req 1013 sapi/fpm/fpm/fastcgi.c open_packet(req, type); req 1016 sapi/fpm/fpm/fastcgi.c memcpy(req->out_pos, str, limit); req 1017 sapi/fpm/fpm/fastcgi.c req->out_pos += limit; req 1019 sapi/fpm/fpm/fastcgi.c if (!fcgi_flush(req, 0)) { req 1023 sapi/fpm/fpm/fastcgi.c open_packet(req, type); req 1024 sapi/fpm/fpm/fastcgi.c memcpy(req->out_pos, str + limit, len - limit); req 1025 sapi/fpm/fpm/fastcgi.c req->out_pos += len - limit; req 1031 sapi/fpm/fpm/fastcgi.c close_packet(req); req 1033 sapi/fpm/fpm/fastcgi.c open_packet(req, type); req 1034 sapi/fpm/fpm/fastcgi.c fcgi_make_header(req->out_hdr, type, req->id, 0xfff8); req 1035 sapi/fpm/fpm/fastcgi.c req->out_hdr = NULL; req 1036 sapi/fpm/fpm/fastcgi.c if (!fcgi_flush(req, 0)) { req 1039 sapi/fpm/fpm/fastcgi.c if (safe_write(req, str + pos, 0xfff8) != 0xfff8) { req 1040 sapi/fpm/fpm/fastcgi.c req->keep = 0; req 1049 sapi/fpm/fpm/fastcgi.c open_packet(req, type); req 1050 sapi/fpm/fpm/fastcgi.c fcgi_make_header(req->out_hdr, type, req->id, (len - pos) - rest); req 1051 sapi/fpm/fpm/fastcgi.c req->out_hdr = NULL; req 1052 sapi/fpm/fpm/fastcgi.c if (!fcgi_flush(req, 0)) { req 1055 sapi/fpm/fpm/fastcgi.c if (safe_write(req, str + pos, (len - pos) - rest) != (len - pos) - rest) { req 1056 sapi/fpm/fpm/fastcgi.c req->keep = 0; req 1060 sapi/fpm/fpm/fastcgi.c open_packet(req, type); req 1061 sapi/fpm/fpm/fastcgi.c memcpy(req->out_pos, str + len - rest, rest); req 1062 sapi/fpm/fpm/fastcgi.c req->out_pos += rest; req 1069 sapi/fpm/fpm/fastcgi.c int fcgi_finish_request(fcgi_request *req, int force_close) req 1073 sapi/fpm/fpm/fastcgi.c if (req->fd >= 0) { req 1074 sapi/fpm/fpm/fastcgi.c if (!req->closed) { req 1075 sapi/fpm/fpm/fastcgi.c ret = fcgi_flush(req, 1); req 1076 sapi/fpm/fpm/fastcgi.c req->closed = 1; req 1078 sapi/fpm/fpm/fastcgi.c fcgi_close(req, force_close, 1); req 1083 sapi/fpm/fpm/fastcgi.c char* fcgi_getenv(fcgi_request *req, const char* var, int var_len) req 1087 sapi/fpm/fpm/fastcgi.c if (!req) return NULL; req 1089 sapi/fpm/fpm/fastcgi.c if (zend_hash_find(req->env, (char*)var, var_len+1, (void**)&val) == SUCCESS) { req 1095 sapi/fpm/fpm/fastcgi.c char* fcgi_putenv(fcgi_request *req, char* var, int var_len, char* val) req 1097 sapi/fpm/fpm/fastcgi.c if (var && req) { req 1099 sapi/fpm/fpm/fastcgi.c zend_hash_del(req->env, var, var_len+1); req 1104 sapi/fpm/fpm/fastcgi.c if (zend_hash_update(req->env, var, var_len+1, &val, sizeof(char*), (void**)&ret) == SUCCESS) { req 117 sapi/fpm/fpm/fastcgi.h void fcgi_init_request(fcgi_request *req, int listen_socket); req 118 sapi/fpm/fpm/fastcgi.h int fcgi_accept_request(fcgi_request *req); req 119 sapi/fpm/fpm/fastcgi.h int fcgi_finish_request(fcgi_request *req, int force_close); req 123 sapi/fpm/fpm/fastcgi.h void fcgi_close(fcgi_request *req, int force, int destroy); req 125 sapi/fpm/fpm/fastcgi.h char* fcgi_getenv(fcgi_request *req, const char* var, int var_len); req 126 sapi/fpm/fpm/fastcgi.h char* fcgi_putenv(fcgi_request *req, char* var, int var_len, char* val); req 128 sapi/fpm/fpm/fastcgi.h int fcgi_read(fcgi_request *req, char *str, int len); req 130 sapi/fpm/fpm/fastcgi.h ssize_t fcgi_write(fcgi_request *req, fcgi_request_type type, const char *str, int len); req 131 sapi/fpm/fpm/fastcgi.h int fcgi_flush(fcgi_request *req, int close); req 41 sapi/tux/php_tux.c user_req_t *req; req 67 sapi/tux/php_tux.c if ((m = writev(TG(req)->sock, vec, n)) == -1 && errno == EPIPE) req 71 sapi/tux/php_tux.c TG(req)->bytes_sent += str_length; req 80 sapi/tux/php_tux.c n = send(TG(req)->sock, str, estr - str, 0); req 94 sapi/tux/php_tux.c TG(req)->bytes_sent += n; req 124 sapi/tux/php_tux.c TG(req)->http_status = SG(sapi_headers).http_response_code; req 126 sapi/tux/php_tux.c if (TG(tux_action) == TUX_ACTION_FINISH_CLOSE_REQ && TG(req)->http_version == HTTP_1_1) req 167 sapi/tux/php_tux.c TG(req)->objectlen = count_bytes; req 168 sapi/tux/php_tux.c TG(req)->object_addr = buffer; req 169 sapi/tux/php_tux.c if (tux(TUX_ACTION_READ_POST_DATA, TG(req))) req 174 sapi/tux/php_tux.c return TG(req)->objectlen; req 184 sapi/tux/php_tux.c return TG(req)->cookies; req 210 sapi/tux/php_tux.c p = inet_ntoa(TG(req)->client_host); req 218 sapi/tux/php_tux.c snprintf(buf, sizeof(buf), "%d", CGI_SERVER_PORT(TG(req))); req 230 sapi/tux/php_tux.c if (TG(req)->field[0]) { \ req 231 sapi/tux/php_tux.c php_register_variable(#name, TG(req)->field, track_vars_array TSRMLS_CC); \ req 324 sapi/tux/php_tux.c SG(request_info).query_string = strdup(TG(req)->query); req 327 sapi/tux/php_tux.c smart_str_appends_ex(&s, TG(req)->query, 1); req 336 sapi/tux/php_tux.c smart_str_appends_ex(&s, TG(req)->objectname, 1); req 339 sapi/tux/php_tux.c SG(request_info).request_method = CGI_REQUEST_METHOD(TG(req)); req 340 sapi/tux/php_tux.c if(TG(req)->http_version == HTTP_1_1) SG(request_info).proto_num = 1001; req 343 sapi/tux/php_tux.c SG(request_info).content_type = TG(req)->content_type; req 386 sapi/tux/php_tux.c int TUXAPI_handle_events(user_req_t *req) req 390 sapi/tux/php_tux.c if (req->event == PHP_TUX_BACKGROUND_CONN) { req 391 sapi/tux/php_tux.c tux_closed_conn(req->sock); req 392 sapi/tux/php_tux.c return tux(TUX_ACTION_FINISH_CLOSE_REQ, req); req 395 sapi/tux/php_tux.c TG(req) = req; req 404 sapi/tux/php_tux.c return tux(TG(tux_action), req); req 423 sapi/tux/php_tux.c return TG(req)->sock; req 430 sapi/tux/php_tux.c TG(req)->event = PHP_TUX_BACKGROUND_CONN; req 431 sapi/tux/php_tux.c tux(TUX_ACTION_POSTPONE_REQ, TG(req));