!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/cxx_supportlib/ServerKit/   drwxr-xr-x
Free 234.14 GB of 981.82 GB (23.85%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Context.h (4.67 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
 *  Phusion Passenger - https://www.phusionpassenger.com/
 *  Copyright (c) 2014-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_SERVER_KIT_CONTEXT_H_
#define _PASSENGER_SERVER_KIT_CONTEXT_H_

#include <string>
#include <boost/config.hpp>

#include <ServerKit/Config.h>
#include <ConfigKit/ConfigKit.h>
#include <MemoryKit/mbuf.h>
#include <LoggingKit/Assert.h>
#include <SafeLibev.h>
#include <Exceptions.h>
#include <Utils.h>
#include <JsonTools/JsonUtils.h>

extern "C" {
    struct uv_loop_s;
}

namespace Passenger {
namespace ServerKit {

using namespace std;


class Context {
private:
    ConfigKit::Store configStore;

public:
    typedef ServerKit::ConfigChangeRequest ConfigChangeRequest;

    // Dependencies
    SafeLibevPtr libev;
    struct uv_loop_s *libuv;

    // Others
    Config config;
    struct MemoryKit::mbuf_pool mbuf_pool;

    Context(const Schema &schema, const Json::Value &initialConfig = Json::Value(),
        const ConfigKit::Translator &translator = ConfigKit::DummyTranslator())
        : configStore(schema, initialConfig, translator),
          libuv(NULL),
          config(configStore)
        { }

    ~Context() {
        MemoryKit::mbuf_pool_deinit(&mbuf_pool);
    }

    void initialize() {
        if (libev == NULL) {
            throw RuntimeException("libev must be non-NULL");
        }
        if (libuv == NULL) {
            throw RuntimeException("libuv must be non-NULL");
        }

        mbuf_pool.mbuf_block_chunk_size = configStore["mbuf_block_chunk_size"].asUInt();
        MemoryKit::mbuf_pool_init(&mbuf_pool);
    }

    bool configure(const Json::Value &updates, vector<ConfigKit::Error> &errors) {
        ConfigChangeRequest req;
        bool result = prepareConfigChange(updates, errors, req);
        if (result) {
            commitConfigChange(req);
        }
        return result;
    }

    bool prepareConfigChange(const Json::Value &updates,
        vector<ConfigKit::Error> &errors, ConfigChangeRequest &req)
    {
        req.configStore.reset(new ConfigKit::Store(configStore, updates, errors));
        if (errors.empty()) {
            req.config.reset(new Config(*req.configStore));
        }
        return errors.empty();
    }

    void commitConfigChange(ConfigChangeRequest &req) BOOST_NOEXCEPT_OR_NOTHROW {
        configStore.swap(*req.configStore);
        config.swap(*req.config);
    }

    Json::Value inspectConfig() const {
        return configStore.inspect();
    }

    Json::Value inspectStateAsJson() const {
        Json::Value doc;
        Json::Value mbufDoc;

        mbufDoc["free_blocks"] = (Json::UInt) mbuf_pool.nfree_mbuf_blockq;
        mbufDoc["active_blocks"] = (Json::UInt) mbuf_pool.nactive_mbuf_blockq;
        mbufDoc["chunk_size"] = (Json::UInt) mbuf_pool.mbuf_block_chunk_size;
        mbufDoc["offset"] = (Json::UInt) mbuf_pool.mbuf_block_offset;
        mbufDoc["spare_memory"] = byteSizeToJson(mbuf_pool.nfree_mbuf_blockq
            * mbuf_pool.mbuf_block_chunk_size);
        mbufDoc["active_memory"] = byteSizeToJson(mbuf_pool.nactive_mbuf_blockq
            * mbuf_pool.mbuf_block_chunk_size);
        #ifdef MBUF_ENABLE_DEBUGGING
            struct MemoryKit::active_mbuf_block_list *list =
                const_cast<struct MemoryKit::active_mbuf_block_list *>(
                    &mbuf_pool.active_mbuf_blockq);
            struct MemoryKit::mbuf_block *block;
            Json::Value listJson(Json::arrayValue);

            TAILQ_FOREACH (block, list, active_q) {
                Json::Value blockJson;
                blockJson["refcount"] = block->refcount;
                #ifdef MBUF_ENABLE_BACKTRACES
                    blockJson["backtrace"] =
                        (block->backtrace == NULL)
                        ? "(null)"
                        : block->backtrace;
                #endif
                listJson.append(blockJson);
            }
            mbufDoc["active_blocks_list"] = listJson;
        #endif

        doc["mbuf_pool"] = mbufDoc;

        return doc;
    }
};


} // namespace ServerKit
} // namespace Passenger

#endif /* _PASSENGER_SERVER_KIT_CONTEXT_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.0082 ]--