X7ROOT File Manager
Current Path:
/opt/cpanel/ea-ruby27/src/passenger-release-6.1.2/src/agent/Core/Controller
opt
/
cpanel
/
ea-ruby27
/
src
/
passenger-release-6.1.2
/
src
/
agent
/
Core
/
Controller
/
??
..
??
AppResponse.h
(6.51 KB)
??
BufferBody.cpp
(5.23 KB)
??
CheckoutSession.cpp
(16.17 KB)
??
Client.h
(1.97 KB)
??
Config.cpp
(2.14 KB)
??
Config.h
(20.95 KB)
??
ForwardResponse.cpp
(37.59 KB)
??
Hooks.cpp
(9.89 KB)
??
Implementation.cpp
(1.79 KB)
??
InitRequest.cpp
(17.53 KB)
??
InitializationAndShutdown.cpp
(4.38 KB)
??
InternalUtils.cpp
(10.96 KB)
??
Miscellaneous.cpp
(3.3 KB)
??
Request.h
(4.14 KB)
??
SendRequest.cpp
(35 KB)
??
StateInspection.cpp
(4.92 KB)
??
TurboCaching.h
(9.04 KB)
Editing: Request.h
/* * Phusion Passenger - https://www.phusionpassenger.com/ * Copyright (c) 2011-2025 Asynchronous B.V. * * "Passenger", "Phusion Passenger" and "Union Station" are registered * trademarks of Asynchronous B.V. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ #ifndef _PASSENGER_REQUEST_HANDLER_REQUEST_H_ #define _PASSENGER_REQUEST_HANDLER_REQUEST_H_ #include <ev++.h> #include <ServerKit/HttpRequest.h> #include <ServerKit/FdSinkChannel.h> #include <ServerKit/FdSourceChannel.h> #include <LoggingKit/LoggingKit.h> #include <Core/ApplicationPool/Pool.h> #include <Core/Controller/Config.h> #include <Core/Controller/AppResponse.h> namespace Passenger { namespace Core { using namespace std; using namespace boost; using namespace ApplicationPool2; class Request: public ServerKit::BaseHttpRequest { public: enum State { ANALYZING_REQUEST, BUFFERING_REQUEST_BODY, CHECKING_OUT_SESSION, SENDING_HEADER_TO_APP, FORWARDING_BODY_TO_APP, WAITING_FOR_APP_OUTPUT }; enum HalfClosePolicy { HALF_CLOSE_POLICY_UNINITIALIZED, HALF_CLOSE_UPON_REACHING_REQUEST_BODY_END, HALF_CLOSE_UPON_NEXT_REQUEST_EARLY_READ_ERROR, HALF_CLOSE_PERFORMED }; ev_tstamp startedAt; State state: 3; bool dechunkResponse: 1; bool requestBodyBuffering: 1; bool https: 1; bool stickySession: 1; // Range: 0..MAX_SESSION_CHECKOUT_TRY boost::uint8_t sessionCheckoutTry: 4; HalfClosePolicy halfClosePolicy: 2; bool appResponseInitialized: 1; bool strip100ContinueHeader: 1; bool hasPragmaHeader: 1; unsigned int connectTimeout; Options options; AbstractSessionPtr session; const LString *host; ControllerRequestConfigPtr config; ev_io connectedWatcher; ev_timer connectedWatcherTimout; ServerKit::FdSinkChannel appSink; ServerKit::FdSourceChannel appSource; AppResponse appResponse; ServerKit::FileBufferedChannel bodyBuffer; boost::uint64_t bodyBytesBuffered; // After dechunking HashedStaticString cacheKey; LString *cacheControl; LString *varyCookie; // Value of the `!~PASSENGER_ENV_VARS` header. This is different // from `options.environmentVariables`. If `!~PASSENGER_ENV_VARS` // is not set or is empty, then `envvars` is NULL, while // `options.environmentVariables` retains a previous value. // // This value is guaranteed to be contiguous. LString *envvars; #ifdef DEBUG_CC_EVENT_LOOP_BLOCKING bool timedAppPoolGet; ev_tstamp timeBeforeAccessingApplicationPool; ev_tstamp timeOnRequestHeaderSent; ev_tstamp timeOnResponseBegun; #endif Request() : BaseHttpRequest() { } const char *getStateString() const { switch (state) { case ANALYZING_REQUEST: return "ANALYZING_REQUEST"; case BUFFERING_REQUEST_BODY: return "BUFFERING_REQUEST_BODY"; case CHECKING_OUT_SESSION: return "CHECKING_OUT_SESSION"; case SENDING_HEADER_TO_APP: return "SENDING_HEADER_TO_APP"; case FORWARDING_BODY_TO_APP: return "FORWARDING_BODY_TO_APP"; case WAITING_FOR_APP_OUTPUT: return "WAITING_FOR_APP_OUTPUT"; default: return "UNKNOWN"; } } DEFINE_SERVER_KIT_BASE_HTTP_REQUEST_FOOTER(Passenger::Core::Request); }; } // namespace Core } // namespace Passenger #endif /* _PASSENGER_REQUEST_HANDLER_REQUEST_H_ */
Upload File
Create Folder