Author: mturk Date: Tue Nov 8 19:11:09 2011 New Revision: 1199389 URL: http://svn.apache.org/viewvc?rev=1199389&view=rev Log: Bail out early from the loop. No functional change
Modified: tomcat/jk/trunk/native/iis/jk_isapi_plugin.c Modified: tomcat/jk/trunk/native/iis/jk_isapi_plugin.c URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/native/iis/jk_isapi_plugin.c?rev=1199389&r1=1199388&r2=1199389&view=diff ============================================================================== --- tomcat/jk/trunk/native/iis/jk_isapi_plugin.c (original) +++ tomcat/jk/trunk/native/iis/jk_isapi_plugin.c Tue Nov 8 19:11:09 2011 @@ -2220,6 +2220,10 @@ BOOL WINAPI GetExtensionVersion(HSE_VERS DWORD WINAPI HttpExtensionProc(LPEXTENSION_CONTROL_BLOCK lpEcb) { DWORD rc = HSE_STATUS_ERROR; + isapi_private_data_t private_data; + jk_ws_service_t s; + jk_pool_atom_t buf[SMALL_POOL_SIZE]; + char *worker_name; lpEcb->dwHttpStatusCode = HTTP_STATUS_SERVER_ERROR; @@ -2268,94 +2272,89 @@ DWORD WINAPI HttpExtensionProc(LPEXTENSI is_inited = JK_FALSE; } - if (is_inited) { - isapi_private_data_t private_data; - jk_ws_service_t s; - jk_pool_atom_t buf[SMALL_POOL_SIZE]; - char *worker_name; + if (!is_inited) { + jk_log(logger, JK_LOG_ERROR, "not initialized"); + JK_TRACE_EXIT(logger); + return HSE_STATUS_ERROR; + } - if (!watchdog_interval) - wc_maintain(logger); - jk_init_ws_service(&s); - jk_open_pool(&private_data.p, buf, sizeof(buf)); - - private_data.bytes_read_so_far = 0; - private_data.lpEcb = lpEcb; - private_data.chunk_content = JK_FALSE; + if (!watchdog_interval) + wc_maintain(logger); + jk_init_ws_service(&s); + jk_open_pool(&private_data.p, buf, sizeof(buf)); - s.ws_private = &private_data; - s.pool = &private_data.p; + private_data.bytes_read_so_far = 0; + private_data.lpEcb = lpEcb; + private_data.chunk_content = JK_FALSE; - if (init_ws_service(&private_data, &s, &worker_name)) { - jk_worker_t *worker = wc_get_worker_for_name(worker_name, logger); + s.ws_private = &private_data; + s.pool = &private_data.p; - if (JK_IS_DEBUG_LEVEL(logger)) - jk_log(logger, JK_LOG_DEBUG, - "%s a worker for name %s", - worker ? "got" : "could not get", worker_name); - - if (worker) { - jk_endpoint_t *e = NULL; - if (worker->get_endpoint(worker, &e, logger)) { - int is_error = JK_HTTP_SERVER_ERROR; - int result; - if ((result = e->service(e, &s, logger, &is_error)) > 0) { - if (s.extension.use_server_error_pages && - s.http_response_status >= s.extension.use_server_error_pages) { - if (JK_IS_DEBUG_LEVEL(logger)) - jk_log(logger, JK_LOG_DEBUG, "Forwarding status=%d" - " for worker=%s", - s.http_response_status, worker_name); - lpEcb->dwHttpStatusCode = s.http_response_status; - write_error_message(lpEcb, s.http_response_status, - private_data.err_hdrs); - } - else { - rc = HSE_STATUS_SUCCESS; - lpEcb->dwHttpStatusCode = s.http_response_status; - if (JK_IS_DEBUG_LEVEL(logger)) - jk_log(logger, JK_LOG_DEBUG, - "service() returned OK"); - } + if (init_ws_service(&private_data, &s, &worker_name)) { + jk_worker_t *worker = wc_get_worker_for_name(worker_name, logger); + + if (JK_IS_DEBUG_LEVEL(logger)) + jk_log(logger, JK_LOG_DEBUG, + "%s a worker for name %s", + worker ? "got" : "could not get", worker_name); + + if (worker) { + jk_endpoint_t *e = NULL; + if (worker->get_endpoint(worker, &e, logger)) { + int is_error = JK_HTTP_SERVER_ERROR; + int result; + if ((result = e->service(e, &s, logger, &is_error)) > 0) { + if (s.extension.use_server_error_pages && + s.http_response_status >= s.extension.use_server_error_pages) { + if (JK_IS_DEBUG_LEVEL(logger)) + jk_log(logger, JK_LOG_DEBUG, "Forwarding status=%d" + " for worker=%s", + s.http_response_status, worker_name); + lpEcb->dwHttpStatusCode = s.http_response_status; + write_error_message(lpEcb, s.http_response_status, + private_data.err_hdrs); } else { - if ((result == JK_CLIENT_ERROR) && (is_error == JK_HTTP_OK)) { - jk_log(logger, JK_LOG_INFO, - "service() failed because client aborted connection"); - } - else { - jk_log(logger, JK_LOG_ERROR, - "service() failed with http error %d", is_error); - } - lpEcb->dwHttpStatusCode = is_error; - write_error_message(lpEcb, is_error, private_data.err_hdrs); + rc = HSE_STATUS_SUCCESS; + lpEcb->dwHttpStatusCode = s.http_response_status; + if (JK_IS_DEBUG_LEVEL(logger)) + jk_log(logger, JK_LOG_DEBUG, + "service() returned OK"); } - e->done(&e, logger); } else { - jk_log(logger, JK_LOG_ERROR, - "Failed to obtain an endpoint to service request - " - "your connection_pool_size is probably less than the threads in your web server!"); + if ((result == JK_CLIENT_ERROR) && (is_error == JK_HTTP_OK)) { + jk_log(logger, JK_LOG_INFO, + "service() failed because client aborted connection"); + } + else { + jk_log(logger, JK_LOG_ERROR, + "service() failed with http error %d", is_error); + } + lpEcb->dwHttpStatusCode = is_error; + write_error_message(lpEcb, is_error, private_data.err_hdrs); } + e->done(&e, logger); } else { jk_log(logger, JK_LOG_ERROR, - "could not get a worker for name %s", - worker_name); + "Failed to obtain an endpoint to service request - " + "your connection_pool_size is probably less than the threads in your web server!"); } } else { jk_log(logger, JK_LOG_ERROR, - "failed to init service for request."); - } - jk_close_pool(&private_data.p); + "could not get a worker for name %s", + worker_name); + } } else { jk_log(logger, JK_LOG_ERROR, - "not initialized"); - } - + "failed to init service for request."); + } + jk_close_pool(&private_data.p); JK_TRACE_EXIT(logger); + return rc; } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org