!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache. PHP/5.6.40 

uname -a: Linux cpanel06wh.bkk1.cloud.z.com 2.6.32-954.3.5.lve1.4.80.el6.x86_64 #1 SMP Thu Sep 24
01:42:00 EDT 2020 x86_64
 

uid=851(cp949260) gid=853(cp949260) groups=853(cp949260) 

Safe-mode: OFF (not secure)

/opt/passenger-5.3.7-4.el6.cloudlinux/src/agent/Core/SpawningKit/   drwxr-xr-x
Free 220.57 GB of 981.82 GB (22.47%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Config.h (10.33 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
 *  Phusion Passenger - https://www.phusionpassenger.com/
 *  Copyright (c) 2011-2018 Phusion Holding B.V.
 *
 *  "Passenger", "Phusion Passenger" and "Union Station" are registered
 *  trademarks of Phusion Holding 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_SPAWNING_KIT_CONFIG_H_
#define _PASSENGER_SPAWNING_KIT_CONFIG_H_

#include <oxt/macros.hpp>
#include <boost/shared_array.hpp>
#include <vector>
#include <cstddef>

#include <jsoncpp/json.h>

#include <Constants.h>
#include <StaticString.h>
#include <DataStructures/StringKeyTable.h>

namespace Passenger {
namespace SpawningKit {

using namespace std;


// The following hints are available:
//
// @require_non_empty
// @pass_during_handshake
// @non_confidential
// @only_meaningful_if
// @only_pass_during_handshake_if
//
// - begin hinted parseable class -
class Config {
private:
    boost::shared_array<char> storage;

    Json::Value tableToJson(const StringKeyTable<StaticString> &table) const {
        Json::Value doc(Json::objectValue);
        StringKeyTable<StaticString>::ConstIterator it(table);

        while (*it != NULL) {
            doc[it.getKey().toString()] = it.getValue().toString();
            it.next();
        }

        return doc;
    }

public:
    /**
     * The app group name that the spawned process shall belong to. SpawningKit does
     * not use this information directly: it is passed to LoggingKit when logging
     * app output.
     *
     * @hinted_parseable
     * @require_non_empty
     * @pass_during_handshake
     * @non_confidential
     */
    StaticString appGroupName;

    /**
     * The root directory of the application to spawn. For example, for Ruby apps, this
     * is the directory containing config.ru. The startCommand will be invoked from
     * this directory.
     *
     * @hinted_parseable
     * @require_non_empty
     * @pass_during_handshake
     * @non_confidential
     */
    StaticString appRoot;

    /**
     * The log level to use.
     *
     * @hinted_parseable
     * @pass_during_handshake
     * @non_confidential
     */
    int logLevel;

    /**
     * Whether the app to be spawned is generic or not. Generic
     * apps do not have special support for Passenger built in,
     * nor do we have a wrapper for loading the app.
     *
     * For example, Rack and Node.js apps are not considered
     * generic because we have wrappers for them. Go apps without
     * special Passenger support built in are considered generic.
     *
     * @hinted_parseable
     * @pass_during_handshake
     * @non_confidential
     */
    bool genericApp: 1;

    /**
     * If the app is not generic (`!genericApp`), then this specifies
     * whether the app is loaded through a wrapper (true), or whether
     * the app has special support for Passenger built in and is
     * started directly (false). The only use for this in SpawningKit
     * is to better format error messages.
     *
     * @hinted_parseable
     * @only_meaningful_if !config.genericApp
     * @pass_during_handshake
     * @non_confidential
     */
    bool startsUsingWrapper: 1;

    /**
     * When a wrapper is used to load the application, this field
     * specifies whether the wrapper is supplied by Phusion or by
     * a third party. The only use for this in SpawningKit is to better
     * format error messages.
     *
     * @hinted_parseable
     * @only_meaningful_if !config.genericApp && config.startsUsingWrapper
     * @pass_during_handshake
     * @non_confidential
     */
    bool wrapperSuppliedByThirdParty: 1;

    /**
     * If the app is not generic (`!genericApp`), then this specifies
     * whether SpawningKit should find a free port to pass to the app
     * so that it can listen on that port.
     * This is always done if the app is generic, but *can* be done
     * for non-generic apps as well.
     *
     * @hinted_parseable
     * @only_meaningful_if !config.genericApp
     */
    bool findFreePort: 1;

    /**
     * Whether to load environment variables set in shell startup
     * files (e.g. ~/.bashrc) during spawning.
     *
     * @hinted_parseable
     * @pass_during_handshake
     * @non_confidential
     */
    bool loadShellEnvvars: 1;

    /**
     * Set to true if you do not want SpawningKit to remove the
     * work directory after a spawning operation, which is useful
     * for debugging. Defaults to false.
     *
     * @hinted_parseable
     */
    bool debugWorkDir: 1;

    /**
     * The command to run in order to start the app.
     *
     * If `genericApp` is true, then the command string must contain '$PORT'.
     * The command string is expected to start the app on the given port.
     * SpawningKit will take care of passing an appropriate $PORT value to
     * the app.
     *
     * If `genericApp` is false, then the command string is expected do
     * either one of these things:
     * - If there is a wrapper available for the app, then the command string
     *   is to invoke the wrapper (and `startsUsingWrapper` should be true).
     * - Otherwise, the command string is to start the app directly, in
     *   Passenger mode (and `startsUsingWrapper` should be false).
     *
     * @hinted_parseable
     * @require_non_empty
     * @pass_during_handshake
     * @non_confidential
     */
    StaticString startCommand;

    /**
     * The application's entry point file. If a relative path is given, then it
     * is relative to the app root. Only meaningful if app is to be loaded through
     * a wrapper.
     *
     * @hinted_parseable
     * @only_meaningful_if !config.genericApp && config.startsUsingWrapper
     * @require_non_empty
     * @pass_during_handshake
     * @non_confidential
     */
    StaticString startupFile;

    /**
     * A process title to set when spawning the application.
     *
     * @hinted_parseable
     * @pass_during_handshake
     * @non_confidential
     * @only_pass_during_handshake_if !config.processTitle.empty()
     */
    StaticString processTitle;

    /**
     * An application type name, e.g. "ruby" or "nodejs". The only use for this
     * in SpawningKit is to better format error messages.
     *
     * @hinted_parseable
     * @require_non_empty
     * @pass_during_handshake
     * @non_confidential
     */
    StaticString appType;

    /**
     * The value to set PASSENGER_APP_ENV/RAILS_ENV/etc to.
     *
     * @hinted_parseable
     * @require_non_empty
     * @pass_during_handshake
     * @non_confidential
     */
    StaticString appEnv;

    /**
     * The spawn method used for spawning the app, i.e. "smart" or "direct".
     *
     * @hinted_parseable
     * @require_non_empty
     * @pass_during_handshake
     * @non_confidential
     */
    StaticString spawnMethod;

    /**
     * The base URI on which the app runs. If the app is running on the
     * root URI, then this value must be "/".
     *
     * @hinted_parseable
     * @require_non_empty
     * @pass_during_handshake base_uri
     * @non_confidential
     */
    StaticString baseURI;

    /**
     * The user to start run the app as. Only has effect if the current process
     * is running with root privileges.
     *
     * @hinted_parseable
     * @require_non_empty
     * @pass_during_handshake
     * @non_confidential
     */
    StaticString user;

    /**
     * The group to start run the app as. Only has effect if the current process
     * is running with root privileges.
     *
     * @hinted_parseable
     * @require_non_empty
     * @pass_during_handshake
     * @non_confidential
     */
    StaticString group;

    /**
     * Any environment variables to pass to the application. These will be set
     * after the OS shell has already done its work, but before the application
     * is started.
     *
     * @hinted_parseable
     * @pass_during_handshake
     */
    StringKeyTable<StaticString> environmentVariables;

    /**
     * Specifies that the app's stdout/stderr output should be written
     * to the given log file.
     *
     * @hinted_parseable
     * @non_confidential
     * @pass_during_handshake
     */
    StaticString logFile;

    /**
     * The API key of the pool group that the spawned process is to belong to.
     *
     * @hinted_parseable
     * @pass_during_handshake
     * @only_pass_during_handshake_if !config.apiKey.empty()
     */
    StaticString apiKey;

    /**
     * A UUID that's generated on Group initialization, and changes every time
     * the Group receives a restart command. Allows Union Station to track app
     * restarts.
     *
     * @hinted_parseable
     * @pass_during_handshake
     * @only_pass_during_handshake_if !config.groupUuid.empty()
     */
    StaticString groupUuid;

    /**
     * Minimum user ID starting from which entering LVE and CageFS is allowed.
     *
     * @hinted_parseable
     */
    unsigned int lveMinUid;

    /**
     * The file descriptor ulimit that the app should have.
     * A value of 0 means that the ulimit should not be changed.
     *
     * @hinted_parseable
     * @pass_during_handshake
     * @non_confidential
     * @only_pass_during_handshake_if config.fileDescriptorUlimit > 0
     */
    unsigned int fileDescriptorUlimit;

    /**
     * The maximum amount of time, in milliseconds, that may be spent
     * on spawning the process or the preloader.
     *
     * @hinted_parseable
     * @require config.startTimeoutMsec > 0
     */
    unsigned int startTimeoutMsec;

    /*********************/
    /*********************/

    Config()
        : logLevel(DEFAULT_LOG_LEVEL),
          genericApp(false),
          startsUsingWrapper(false),
          wrapperSuppliedByThirdParty(false),
          findFreePort(false),
          loadShellEnvvars(false),
          debugWorkDir(false),
          appEnv(P_STATIC_STRING(DEFAULT_APP_ENV)),
          baseURI(P_STATIC_STRING("/")),
          lveMinUid(DEFAULT_LVE_MIN_UID),
          fileDescriptorUlimit(0),
          startTimeoutMsec(DEFAULT_START_TIMEOUT)
          /*********************/
        { }

    void internStrings();
    bool validate(vector<StaticString> &errors) const;
    Json::Value getConfidentialFieldsToPassToApp() const;
    Json::Value getNonConfidentialFieldsToPassToApp() const;
};
// - end hinted parseable class -


#include <Core/SpawningKit/Config/AutoGeneratedCode.h>


} // namespace SpawningKit
} // namespace Passenger

#endif /* _PASSENGER_SPAWNING_KIT_CONFIG_H_ */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.021 ]--