You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mt...@apache.org on 2011/11/08 20:11:09 UTC

svn commit: r1199389 - /tomcat/jk/trunk/native/iis/jk_isapi_plugin.c

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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org