✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server366.web-hosting.com ​🇻​♯➤ 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2025

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 67.223.118.204 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.36
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /opt/alt/php84/usr/include/php/ext/swoole/ext-src//php_swoole_ssh2.h
#pragma once

#include "php_swoole_cxx.h"
#include "php_swoole_ssh2_def.h"

#include <libssh2.h>
#include <libssh2_sftp.h>
#include <libssh2_publickey.h>

typedef struct _php_ssh2_session_data {
    /* Userspace callback functions */
    zval *ignore_cb;
    zval *debug_cb;
    zval *macerror_cb;
    zval *disconnect_cb;

    SocketImpl *socket;
} php_ssh2_session_data;

static inline swoole::EventType ssh2_get_event_type(LIBSSH2_SESSION *session) {
    int dir = libssh2_session_block_directions(session);
    if (dir & LIBSSH2_SESSION_BLOCK_OUTBOUND) {
        return SW_EVENT_WRITE;
    } else {
        return SW_EVENT_READ;
    }
}

static inline SocketImpl *ssh2_get_socket(LIBSSH2_SESSION *session) {
    auto session_data = (php_ssh2_session_data **) libssh2_session_abstract(session);
    return (*session_data)->socket;
}

static inline void ssh2_set_socket_timeout(LIBSSH2_SESSION *session, int timeout_ms) {
    auto sock = ssh2_get_socket(session);
    sock->set_timeout(timeout_ms / 1000, SW_TIMEOUT_ALL);
}

class ResourceGuard {
    zval zres_;

  public:
    ResourceGuard(zval *zres) {
        zval_addref_p(zres);
        zres_ = *zres;
    }
    ~ResourceGuard() {
        zval_ptr_dtor(&zres_);
    }
};

static inline int ssh2_async_call(LIBSSH2_SESSION *session, const std::function<int(void)> &fn) {
    auto event = ssh2_get_event_type(session);
    auto socket = ssh2_get_socket(session);

    socket->check_bound_co(SW_EVENT_READ);
    socket->check_bound_co(SW_EVENT_WRITE);

    int rc = 0;
    while (1) {
        rc = fn();
        if (rc == LIBSSH2_ERROR_EAGAIN) {
            if (!socket->poll(event)) {
                return LIBSSH2_ERROR_SOCKET_NONE;
            }
            continue;
        }
        break;
    }
    return rc;
}

template <typename T>
static inline T *ssh2_async_call_ex(LIBSSH2_SESSION *session, const std::function<T *(void)> &fn) {
    auto event = ssh2_get_event_type(session);
    auto socket = ssh2_get_socket(session);

    socket->check_bound_co(SW_EVENT_READ);
    socket->check_bound_co(SW_EVENT_WRITE);

    T *handle;
    while (1) {
        handle = fn();
        if (handle) {
            return handle;
        }
        if (libssh2_session_last_errno(session) == LIBSSH2_ERROR_EAGAIN && socket->poll(event)) {
            continue;
        }
        break;
    }
    return nullptr;
}


Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
8 Apr 2026 5.01 AM
root / linksafe
0755
php_swoole_call_stack.h
1.814 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_client.h
2.792 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_coroutine.h
9.851 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_coroutine_system.h
1.889 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_curl.h
5.066 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_cxx.h
27.047 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_firebird.h
4.869 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_ftp_def.h
1.173 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_http.h
16.252 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_http_server.h
4.121 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_library.h
425.519 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_odbc.h
5.622 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_oracle.h
2.972 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_pgsql.h
2.55 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_private.h
44.826 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_process.h
1.522 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_server.h
6.87 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_sqlite.h
2.204 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_ssh2.h
2.309 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_ssh2_def.h
1.284 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_ssh2_hook.h
21.897 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_stdext.h
1.839 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_thread.h
10.781 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
php_swoole_websocket.h
2.485 KB
18 Mar 2026 9.07 AM
root / linksafe
0644
swoole_curl_interface.h
2.308 KB
18 Mar 2026 9.07 AM
root / linksafe
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF