00001 /** @file 00002 00003 A brief file description 00004 00005 @section license License 00006 00007 Licensed to the Apache Software Foundation (ASF) under one 00008 or more contributor license agreements. See the NOTICE file 00009 distributed with this work for additional information 00010 regarding copyright ownership. The ASF licenses this file 00011 to you under the Apache License, Version 2.0 (the 00012 "License"); you may not use this file except in compliance 00013 with the License. You may obtain a copy of the License at 00014 00015 http://www.apache.org/licenses/LICENSE-2.0 00016 00017 Unless required by applicable law or agreed to in writing, software 00018 distributed under the License is distributed on an "AS IS" BASIS, 00019 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00020 See the License for the specific language governing permissions and 00021 limitations under the License. 00022 */ 00023 00024 #include "HttpDebugNames.h" 00025 #include "P_EventSystem.h" 00026 #include "StatPages.h" 00027 #include "HttpTunnel.h" 00028 #include "Transform.h" 00029 #include "ICPevents.h" 00030 #include "HttpSM.h" 00031 #include "HttpUpdateSM.h" 00032 00033 //---------------------------------------------------------------------------- 00034 const char * 00035 HttpDebugNames::get_server_state_name(HttpTransact::ServerState_t state) 00036 { 00037 switch (state) { 00038 case HttpTransact::STATE_UNDEFINED: 00039 return "STATE_UNDEFINED"; 00040 case HttpTransact::ACTIVE_TIMEOUT: 00041 return "ACTIVE_TIMEOUT"; 00042 case HttpTransact::BAD_INCOMING_RESPONSE: 00043 return "BAD_INCOMING_RESPONSE"; 00044 case HttpTransact::CONNECTION_ALIVE: 00045 return "CONNECTION_ALIVE"; 00046 case HttpTransact::CONNECTION_CLOSED: 00047 return "CONNECTION_CLOSED"; 00048 case HttpTransact::CONNECTION_ERROR: 00049 return "CONNECTION_ERROR"; 00050 case HttpTransact::INACTIVE_TIMEOUT: 00051 return "INACTIVE_TIMEOUT"; 00052 case HttpTransact::OPEN_RAW_ERROR: 00053 return "OPEN_RAW_ERROR"; 00054 case HttpTransact::PARSE_ERROR: 00055 return "PARSE_ERROR"; 00056 case HttpTransact::TRANSACTION_COMPLETE: 00057 return "TRANSACTION_COMPLETE"; 00058 case HttpTransact::CONGEST_CONTROL_CONGESTED_ON_F: 00059 return "CONGEST_CONTROL_CONGESTED_ON_F"; 00060 case HttpTransact::CONGEST_CONTROL_CONGESTED_ON_M: 00061 return "CONGEST_CONTROL_CONGESTED_ON_M"; 00062 } 00063 00064 return ("unknown state name"); 00065 } 00066 00067 ////////////////////////////////////////////////////////////////// 00068 // 00069 // HttpDebugNames::get_method_name() 00070 // 00071 ////////////////////////////////////////////////////////////////// 00072 const char * 00073 HttpDebugNames::get_method_name(const char *method) 00074 { 00075 if (method == HTTP_METHOD_CONNECT) { 00076 return ("HTTP_METHOD_CONNECT"); 00077 } else if (method == HTTP_METHOD_DELETE) { 00078 return ("HTTP_METHOD_DELETE"); 00079 } else if (method == HTTP_METHOD_GET) { 00080 return ("HTTP_METHOD_GET"); 00081 } else if (method == HTTP_METHOD_HEAD) { 00082 return ("HTTP_METHOD_HEAD"); 00083 } else if (method == HTTP_METHOD_OPTIONS) { 00084 return ("HTTP_METHOD_OPTIONS"); 00085 } else if (method == HTTP_METHOD_POST) { 00086 return ("HTTP_METHOD_POST"); 00087 } else if (method == HTTP_METHOD_PURGE) { 00088 return ("HTTP_METHOD_PURGE"); 00089 } else if (method == HTTP_METHOD_PUT) { 00090 return ("HTTP_METHOD_PUT"); 00091 } else if (method == HTTP_METHOD_TRACE) { 00092 return ("HTTP_METHOD_TRACE"); 00093 } else { 00094 return ("HTTP_METHOD_UNKNOWN"); 00095 } 00096 } 00097 00098 ////////////////////////////////////////////////////////////////// 00099 // 00100 // HttpDebugNames::get_event_name() 00101 // 00102 ////////////////////////////////////////////////////////////////// 00103 const char * 00104 HttpDebugNames::get_event_name(int event) 00105 { 00106 switch (event) { 00107 ///////////////////////// 00108 // VCONNECTION EVENTS // 00109 ///////////////////////// 00110 case VC_EVENT_NONE: 00111 return ("VC_EVENT_NONE"); 00112 case VC_EVENT_IMMEDIATE: 00113 return ("VC_EVENT_IMMEDIATE"); 00114 case VC_EVENT_READ_READY: 00115 return ("VC_EVENT_READ_READY"); 00116 case VC_EVENT_WRITE_READY: 00117 return ("VC_EVENT_WRITE_READY"); 00118 case VC_EVENT_READ_COMPLETE: 00119 return ("VC_EVENT_READ_COMPLETE"); 00120 case VC_EVENT_WRITE_COMPLETE: 00121 return ("VC_EVENT_WRITE_COMPLETE"); 00122 case VC_EVENT_EOS: 00123 return ("VC_EVENT_EOS"); 00124 case VC_EVENT_ERROR: 00125 return ("VC_EVENT_ERROR"); 00126 case VC_EVENT_INACTIVITY_TIMEOUT: 00127 return ("VC_EVENT_INACTIVITY_TIMEOUT"); 00128 case VC_EVENT_ACTIVE_TIMEOUT: 00129 return ("VC_EVENT_ACTIVE_TIMEOUT"); 00130 case EVENT_INTERVAL: 00131 return ("VC_EVENT_INTERVAL"); 00132 00133 00134 ///////////////// 00135 // NET EVENTS // 00136 ///////////////// 00137 case NET_EVENT_OPEN: 00138 return ("NET_EVENT_OPEN"); 00139 case NET_EVENT_ACCEPT: 00140 return ("NET_EVENT_ACCEPT"); 00141 case NET_EVENT_OPEN_FAILED: 00142 return ("NET_EVENT_OPEN_FAILED"); 00143 00144 //////////////////// 00145 // HOSTDB EVENTS // 00146 //////////////////// 00147 case EVENT_HOST_DB_LOOKUP: 00148 return ("EVENT_HOST_DB_LOOKUP"); 00149 00150 case EVENT_HOST_DB_GET_RESPONSE: 00151 return ("EVENT_HOST_DB_GET_RESPONSE"); 00152 00153 //////////////////// 00154 // HOSTDB EVENTS // 00155 //////////////////// 00156 case EVENT_SRV_LOOKUP: 00157 return ("EVENT_SRV_LOOKUP"); 00158 00159 case EVENT_SRV_IP_REMOVED: 00160 return ("EVENT_SRV_IP_REMOVED"); 00161 00162 case EVENT_SRV_GET_RESPONSE: 00163 return ("EVENT_SRV_GET_RESPONSE"); 00164 00165 00166 //////////////////// 00167 // DNS EVENTS // 00168 //////////////////// 00169 case DNS_EVENT_LOOKUP: 00170 return ("DNS_EVENT_LOOKUP"); 00171 00172 //////////////////// 00173 // CACHE EVENTS // 00174 //////////////////// 00175 00176 case CACHE_EVENT_LOOKUP: 00177 return ("CACHE_EVENT_LOOKUP"); 00178 case CACHE_EVENT_LOOKUP_FAILED: 00179 return ("CACHE_EVENT_LOOKUP_FAILED"); 00180 case CACHE_EVENT_OPEN_READ: 00181 return ("CACHE_EVENT_OPEN_READ"); 00182 case CACHE_EVENT_OPEN_READ_FAILED: 00183 return ("CACHE_EVENT_OPEN_READ_FAILED"); 00184 case CACHE_EVENT_OPEN_WRITE: 00185 return ("CACHE_EVENT_OPEN_WRITE"); 00186 case CACHE_EVENT_OPEN_WRITE_FAILED: 00187 return ("CACHE_EVENT_OPEN_WRITE_FAILED"); 00188 case CACHE_EVENT_REMOVE: 00189 return ("CACHE_EVENT_REMOVE"); 00190 case CACHE_EVENT_REMOVE_FAILED: 00191 return ("CACHE_EVENT_REMOVE_FAILED"); 00192 case CACHE_EVENT_UPDATE: 00193 return ("CACHE_EVENT_UPDATE"); 00194 case CACHE_EVENT_UPDATE_FAILED: 00195 return ("CACHE_EVENT_UPDATE_FAILED"); 00196 00197 case STAT_PAGE_SUCCESS: 00198 return ("STAT_PAGE_SUCCESS"); 00199 case STAT_PAGE_FAILURE: 00200 return ("STAT_PAGE_FAILURE"); 00201 00202 case TRANSFORM_READ_READY: 00203 return ("TRANSFORM_READ_READY"); 00204 00205 ///////////////////////// 00206 // HttpTunnel Events // 00207 ///////////////////////// 00208 case HTTP_TUNNEL_EVENT_DONE: 00209 return ("HTTP_TUNNEL_EVENT_DONE"); 00210 case HTTP_TUNNEL_EVENT_PRECOMPLETE: 00211 return ("HTTP_TUNNEL_EVENT_PRECOMPLETE"); 00212 case HTTP_TUNNEL_EVENT_CONSUMER_DETACH: 00213 return ("HTTP_TUNNEL_EVENT_CONSUMER_DETACH"); 00214 00215 ////////////////////////// 00216 // ICP Events 00217 ////////////////////////// 00218 case ICP_LOOKUP_FOUND: 00219 return ("ICP_LOOKUP_FOUND"); 00220 case ICP_LOOKUP_FAILED: 00221 return ("ICP_LOOKUP_FAILED"); 00222 00223 ////////////////////////////// 00224 // CongestionControl Events 00225 ////////////////////////////// 00226 case CONGESTION_EVENT_CONGESTED_ON_F: 00227 return ("CONGESTION_EVENT_CONGESTED_ON_F"); 00228 case CONGESTION_EVENT_CONGESTED_ON_M: 00229 return ("CONGESTION_EVENT_CONGESTED_ON_M"); 00230 00231 ////////////////////////////// 00232 // Plugin Events 00233 ////////////////////////////// 00234 case HTTP_API_CONTINUE: 00235 return ("HTTP_API_CONTINUE"); 00236 case HTTP_API_ERROR: 00237 return ("HTTP_API_ERROR"); 00238 00239 /////////////////////////////// 00240 // Scheduled Update Events 00241 /////////////////////////////// 00242 case HTTP_SCH_UPDATE_EVENT_WRITTEN: 00243 return "HTTP_SCH_UPDATE_EVENT_WRITTEN"; 00244 case HTTP_SCH_UPDATE_EVENT_UPDATED: 00245 return "HTTP_SCH_UPDATE_EVENT_UPDATED"; 00246 case HTTP_SCH_UPDATE_EVENT_DELETED: 00247 return "HTTP_SCH_UPDATE_EVENT_DELETED"; 00248 case HTTP_SCH_UPDATE_EVENT_NOT_CACHED: 00249 return "HTTP_SCH_UPDATE_EVENT_NOT_CACHED"; 00250 case HTTP_SCH_UPDATE_EVENT_ERROR: 00251 return "HTTP_SCH_UPDATE_EVENT_ERROR"; 00252 case HTTP_SCH_UPDATE_EVENT_NO_ACTION: 00253 return "HTTP_SCH_UPDATE_EVENT_NO_ACTION"; 00254 00255 } 00256 00257 return ("unknown event"); 00258 } 00259 00260 ////////////////////////////////////////////////////////////////// 00261 // 00262 // HttpDebugNames::get_action_name() 00263 // 00264 ////////////////////////////////////////////////////////////////// 00265 const char * 00266 HttpDebugNames::get_action_name(HttpTransact::StateMachineAction_t e) 00267 { 00268 switch (e) { 00269 case HttpTransact::SM_ACTION_UNDEFINED: 00270 return ("SM_ACTION_UNDEFINED"); 00271 00272 case HttpTransact::SM_ACTION_CACHE_ISSUE_WRITE: 00273 return ("SM_ACTION_CACHE_ISSUE_WRITE"); 00274 00275 case HttpTransact::SM_ACTION_CACHE_ISSUE_WRITE_TRANSFORM: 00276 return ("SM_ACTION_CACHE_ISSUE_WRITE_TRANSFORM"); 00277 00278 case HttpTransact::SM_ACTION_CACHE_LOOKUP: 00279 return ("SM_ACTION_CACHE_LOOKUP"); 00280 00281 case HttpTransact::SM_ACTION_DNS_LOOKUP: 00282 return ("SM_ACTION_DNS_LOOKUP"); 00283 00284 case HttpTransact::SM_ACTION_DNS_REVERSE_LOOKUP: 00285 return ("SM_ACTION_DNS_REVERSE_LOOKUP"); 00286 00287 case HttpTransact::SM_ACTION_ICP_QUERY: 00288 return ("SM_ACTION_ICP_QUERY"); 00289 00290 case HttpTransact::SM_ACTION_CACHE_PREPARE_UPDATE: 00291 return ("SM_ACTION_CACHE_PREPARE_UPDATE"); 00292 00293 case HttpTransact::SM_ACTION_CACHE_ISSUE_UPDATE: 00294 return ("SM_ACTION_CACHE_ISSUE_UPDATE"); 00295 00296 case HttpTransact::SM_ACTION_ORIGIN_SERVER_OPEN: 00297 return ("SM_ACTION_ORIGIN_SERVER_OPEN"); 00298 00299 case HttpTransact::SM_ACTION_ORIGIN_SERVER_RAW_OPEN: 00300 return ("SM_ACTION_ORIGIN_SERVER_RAW_OPEN"); 00301 00302 case HttpTransact::SM_ACTION_ORIGIN_SERVER_RR_MARK_DOWN: 00303 return ("SM_ACTION_ORIGIN_SERVER_RR_MARK_DOWN"); 00304 00305 case HttpTransact::SM_ACTION_READ_PUSH_HDR: 00306 return ("SM_ACTION_READ_PUSH_HDR"); 00307 00308 case HttpTransact::SM_ACTION_STORE_PUSH_BODY: 00309 return ("SM_ACTION_STORE_PUSH_BODY"); 00310 00311 case HttpTransact::SM_ACTION_INTERNAL_CACHE_WRITE: 00312 return ("SM_ACTION_INTERNAL_CACHE_WRITE"); 00313 00314 case HttpTransact::SM_ACTION_INTERNAL_CACHE_DELETE: 00315 return ("SM_ACTION_INTERNAL_CACHE_DELETE"); 00316 00317 case HttpTransact::SM_ACTION_INTERNAL_CACHE_NOOP: 00318 return ("SM_ACTION_INTERNAL_CACHE_NOOP"); 00319 00320 case HttpTransact::SM_ACTION_INTERNAL_CACHE_UPDATE_HEADERS: 00321 return ("SM_ACTION_INTERNAL_CACHE_UPDATE_HEADERS"); 00322 00323 case HttpTransact::SM_ACTION_INTERNAL_REQUEST: 00324 return ("SM_ACTION_INTERNAL_REQUEST"); 00325 00326 case HttpTransact::SM_ACTION_SEND_ERROR_CACHE_NOOP: 00327 return ("SM_ACTION_SEND_ERROR_CACHE_NOOP"); 00328 00329 case HttpTransact::SM_ACTION_SERVE_FROM_CACHE: 00330 return ("SM_ACTION_SERVE_FROM_CACHE"); 00331 00332 case HttpTransact::SM_ACTION_SERVER_READ: 00333 return ("SM_ACTION_SERVER_READ"); 00334 00335 case HttpTransact::SM_ACTION_SSL_TUNNEL: 00336 return ("SM_ACTION_SSL_TUNNEL"); 00337 00338 case HttpTransact::SM_ACTION_CONTINUE: 00339 return ("SM_ACTION_CONTINUE"); 00340 00341 case HttpTransact::SM_ACTION_API_READ_REQUEST_HDR: 00342 return ("SM_ACTION_API_READ_REQUEST_HDR"); 00343 00344 case HttpTransact::SM_ACTION_API_OS_DNS: 00345 return ("SM_ACTION_API_OS_DNS"); 00346 00347 case HttpTransact::SM_ACTION_API_SEND_REQUEST_HDR: 00348 return ("SM_ACTION_API_SEND_REQUEST_HDR"); 00349 00350 case HttpTransact::SM_ACTION_API_READ_CACHE_HDR: 00351 return ("SM_ACTION_API_READ_CACHE_HDR"); 00352 00353 case HttpTransact::SM_ACTION_API_CACHE_LOOKUP_COMPLETE: 00354 return ("SM_ACTION_API_CACHE_LOOKUP_COMPLETE"); 00355 00356 case HttpTransact::SM_ACTION_API_READ_RESPONSE_HDR: 00357 return ("SM_ACTION_API_READ_RESPONSE_HDR"); 00358 00359 case HttpTransact::SM_ACTION_API_SEND_RESPONSE_HDR: 00360 return ("SM_ACTION_API_SEND_RESPONSE_HDR"); 00361 00362 case HttpTransact::SM_ACTION_INTERNAL_100_RESPONSE: 00363 return ("SM_ACTION_INTERNAL_100_RESPONSE"); 00364 00365 case HttpTransact::SM_ACTION_SERVER_PARSE_NEXT_HDR: 00366 return ("SM_ACTION_SERVER_PARSE_NEXT_HDR"); 00367 00368 case HttpTransact::SM_ACTION_TRANSFORM_READ: 00369 return ("SM_ACTION_TRANSFORM_READ"); 00370 00371 #ifdef PROXY_DRAIN 00372 case HttpTransact::SM_ACTION_DRAIN_REQUEST_BODY: 00373 return ("SM_ACTION_DRAIN_REQUEST_BODY"); 00374 #endif /* PROXY_DRAIN */ 00375 00376 case HttpTransact::SM_ACTION_API_SM_START: 00377 return ("SM_ACTION_API_SM_START"); 00378 case HttpTransact::SM_ACTION_REDIRECT_READ: 00379 return ("SM_ACTION_REDIRECT_READ"); 00380 case HttpTransact::SM_ACTION_API_SM_SHUTDOWN: 00381 return ("SM_ACTION_API_SM_SHUTDOWN"); 00382 case HttpTransact::SM_ACTION_REMAP_REQUEST: 00383 return ("SM_ACTION_REMAP_REQUEST"); 00384 case HttpTransact::SM_ACTION_API_PRE_REMAP: 00385 return ("SM_ACTION_API_PRE_REMAP"); 00386 case HttpTransact::SM_ACTION_API_POST_REMAP: 00387 return ("SM_ACTION_API_POST_REMAP"); 00388 case HttpTransact::SM_ACTION_POST_REMAP_SKIP: 00389 return ("SM_ACTION_POST_REMAP_SKIP"); 00390 } 00391 00392 return ("unknown state name"); 00393 } 00394 00395 ////////////////////////////////////////////////////////////////// 00396 // 00397 // HttpDebugNames::get_cache_action_name() 00398 // 00399 ////////////////////////////////////////////////////////////////// 00400 const char * 00401 HttpDebugNames::get_cache_action_name(HttpTransact::CacheAction_t t) 00402 { 00403 switch (t) { 00404 case HttpTransact::CACHE_DO_UNDEFINED: 00405 return ("CACHE_DO_UNDEFINED"); 00406 case HttpTransact::CACHE_DO_NO_ACTION: 00407 return ("CACHE_DO_NO_ACTION"); 00408 case HttpTransact::CACHE_DO_DELETE: 00409 return ("CACHE_DO_DELETE"); 00410 case HttpTransact::CACHE_DO_LOOKUP: 00411 return ("CACHE_DO_LOOKUP"); 00412 case HttpTransact::CACHE_DO_REPLACE: 00413 return ("CACHE_DO_REPLACE"); 00414 case HttpTransact::CACHE_DO_SERVE: 00415 return ("CACHE_DO_SERVE"); 00416 case HttpTransact::CACHE_DO_SERVE_AND_DELETE: 00417 return ("CACHE_DO_SERVE_AND_DELETE"); 00418 case HttpTransact::CACHE_DO_SERVE_AND_UPDATE: 00419 return ("CACHE_DO_SERVE_AND_UPDATE"); 00420 case HttpTransact::CACHE_DO_UPDATE: 00421 return ("CACHE_DO_UPDATE"); 00422 case HttpTransact::CACHE_DO_WRITE: 00423 return ("CACHE_DO_WRITE"); 00424 case HttpTransact::CACHE_PREPARE_TO_DELETE: 00425 return ("CACHE_PREPARE_TO_DELETE"); 00426 case HttpTransact::CACHE_PREPARE_TO_UPDATE: 00427 return ("CACHE_PREPARE_TO_UPDATE"); 00428 case HttpTransact::CACHE_PREPARE_TO_WRITE: 00429 return ("CACHE_PREPARE_TO_WRITE"); 00430 case HttpTransact::TOTAL_CACHE_ACTION_TYPES: 00431 return ("TOTAL_CACHE_ACTION_TYPES"); 00432 } 00433 00434 return ("unknown cache action"); 00435 } 00436 00437 00438 ////////////////////////////////////////////////////////////////// 00439 // 00440 // HttpDebugNames::get_api_hook_name() 00441 // 00442 ////////////////////////////////////////////////////////////////// 00443 const char * 00444 HttpDebugNames::get_api_hook_name(TSHttpHookID t) 00445 { 00446 switch (t) { 00447 case TS_HTTP_READ_REQUEST_HDR_HOOK: 00448 return "TS_HTTP_READ_REQUEST_HDR_HOOK"; 00449 case TS_HTTP_OS_DNS_HOOK: 00450 return "TS_HTTP_OS_DNS_HOOK"; 00451 case TS_HTTP_SEND_REQUEST_HDR_HOOK: 00452 return "TS_HTTP_SEND_REQUEST_HDR_HOOK"; 00453 case TS_HTTP_READ_CACHE_HDR_HOOK: 00454 return "TS_HTTP_READ_CACHE_HDR_HOOK"; 00455 case TS_HTTP_CACHE_LOOKUP_COMPLETE_HOOK: 00456 return "TS_HTTP_CACHE_LOOKUP_COMPLETE_HOOK"; 00457 case TS_HTTP_READ_RESPONSE_HDR_HOOK: 00458 return "TS_HTTP_READ_RESPONSE_HDR_HOOK"; 00459 case TS_HTTP_SEND_RESPONSE_HDR_HOOK: 00460 return "TS_HTTP_SEND_RESPONSE_HDR_HOOK"; 00461 case TS_HTTP_REQUEST_TRANSFORM_HOOK: 00462 return "TS_HTTP_REQUEST_TRANSFORM_HOOK"; 00463 case TS_HTTP_RESPONSE_TRANSFORM_HOOK: 00464 return "TS_HTTP_RESPONSE_TRANSFORM_HOOK"; 00465 case TS_HTTP_SELECT_ALT_HOOK: 00466 return "TS_HTTP_SELECT_ALT_HOOK"; 00467 case TS_HTTP_TXN_START_HOOK: 00468 return "TS_HTTP_TXN_START_HOOK"; 00469 case TS_HTTP_TXN_CLOSE_HOOK: 00470 return "TS_HTTP_TXN_CLOSE_HOOK"; 00471 case TS_HTTP_SSN_START_HOOK: 00472 return "TS_HTTP_SSN_START_HOOK"; 00473 case TS_HTTP_SSN_CLOSE_HOOK: 00474 return "TS_HTTP_SSN_CLOSE_HOOK"; 00475 case TS_HTTP_PRE_REMAP_HOOK: 00476 return "TS_HTTP_PRE_REMAP_HOOK"; 00477 case TS_HTTP_POST_REMAP_HOOK: 00478 return "TS_HTTP_POST_REMAP_HOOK"; 00479 case TS_HTTP_RESPONSE_CLIENT_HOOK: 00480 return "TS_HTTP_RESPONSE_CLIENT_HOOK"; 00481 case TS_HTTP_LAST_HOOK: 00482 return "TS_HTTP_LAST_HOOK"; 00483 } 00484 00485 return "unknown hook"; 00486 }