[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: client.h
File is not writable. Editing disabled.
/* +----------------------------------------------------------------------+ | Swoole | +----------------------------------------------------------------------+ | This source file is subject to version 2.0 of the Apache license, | | that is bundled with this package in the file LICENSE, and is | | available through the world-wide-web at the following url: | | http://www.apache.org/licenses/LICENSE-2.0.html | | If you did not receive a copy of the Apache2.0 license and are unable| | to obtain it through the world-wide-web, please send a note to | | license@swoole.com so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Author: Tianfeng Han <mikan.tenny@gmail.com> | +----------------------------------------------------------------------+ */ #ifndef SW_CLIENT_H_ #define SW_CLIENT_H_ SW_EXTERN_C_BEGIN #include "buffer.h" #include "connection.h" #define SW_SOCK_ASYNC 1 #define SW_SOCK_SYNC 0 #define SW_HTTPS_PROXY_HANDSHAKE_RESPONSE "HTTP/1.1 200 Connection established" enum swClient_pipe_flag { SW_CLIENT_PIPE_TCP_SESSION = 1, }; enum swHttp_proxy_state { SW_HTTP_PROXY_STATE_WAIT = 0, SW_HTTP_PROXY_STATE_HANDSHAKE, SW_HTTP_PROXY_STATE_READY, }; struct _http_proxy { uint8_t state; uint8_t dont_handshake; int proxy_port; const char *proxy_host; const char *user; const char *password; int l_user; int l_password; const char *target_host; int l_target_host; int target_port; char buf[512]; }; typedef struct _swClient { int id; int type; long timeout_id; //timeout node id int _sock_type; int _sock_domain; int _protocol; int reactor_fdtype; uint32_t active :1; uint32_t async :1; uint32_t keep :1; uint32_t destroyed :1; uint32_t http2 :1; uint32_t sleep :1; uint32_t wait_dns :1; uint32_t shutdow_rw :1; uint32_t shutdown_read :1; uint32_t shutdown_write :1; uint32_t remove_delay :1; uint32_t closed :1; uint32_t high_watermark :1; /** * one package: length check */ uint32_t open_length_check :1; uint32_t open_eof_check :1; swProtocol protocol; struct _swSocks5 *socks5_proxy; struct _http_proxy* http_proxy; uint32_t reuse_count; const char *server_str; const char *server_host; int server_port; void *ptr; void *params; uint8_t server_strlen; double timeout; swTimer_node *timer; /** * signal interruption */ double interrupt_time; /** * sendto, read only. */ swSocketAddress server_addr; /** * recvfrom */ swSocketAddress remote_addr; swSocket *socket; void *object; swString *buffer; uint32_t wait_length; uint32_t buffer_input_size; uint32_t buffer_high_watermark; uint32_t buffer_low_watermark; #ifdef SW_USE_OPENSSL uint8_t open_ssl :1; uint8_t ssl_wait_handshake :1; SSL_CTX *ssl_context; swSSL_option ssl_option; #endif void (*onConnect)(struct _swClient *cli); void (*onError)(struct _swClient *cli); void (*onReceive)(struct _swClient *cli, char *data, uint32_t length); void (*onClose)(struct _swClient *cli); void (*onBufferFull)(struct _swClient *cli); void (*onBufferEmpty)(struct _swClient *cli); int (*connect)(struct _swClient *cli, const char *host, int port, double _timeout, int sock_flag); int (*send)(struct _swClient *cli, const char *data, int length, int flags); int (*sendfile)(struct _swClient *cli, const char *filename, off_t offset, size_t length); int (*recv)(struct _swClient *cli, char *data, int len, int flags); int (*close)(struct _swClient *cli); } swClient; void swClient_init_reactor(swReactor *reactor); int swClient_create(swClient *cli, int type, int async); int swClient_sleep(swClient *cli); int swClient_wakeup(swClient *cli); int swClient_shutdown(swClient *cli, int __how); #ifdef SW_USE_OPENSSL int swClient_enable_ssl_encrypt(swClient *cli); int swClient_ssl_handshake(swClient *cli); int swClient_ssl_verify(swClient *cli, int allow_self_signed); #endif void swClient_free(swClient *cli); //----------------------------------------Stream--------------------------------------- typedef struct _swStream { swString *buffer; uint8_t cancel; void *private_data; void (*response)(struct _swStream *stream, char *data, uint32_t length); swClient client; } swStream; swStream* swStream_new(char *dst_host, int dst_port, int type); int swStream_send(swStream *stream, char *data, size_t length); void swStream_set_protocol(swProtocol *protocol); void swStream_set_max_length(swStream *stream, uint32_t max_length); int swStream_recv_blocking(int fd, void *__buf, size_t __len); //----------------------------------------Stream End------------------------------------ SW_EXTERN_C_END #endif /* SW_CLIENT_H_ */
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server05.hostinghome.co.in
Server IP: 192.168.74.40
PHP Version: 7.4.33
Server Software: Apache
System: Linux server05.hostinghome.co.in 3.10.0-962.3.2.lve1.5.81.el7.x86_64 #1 SMP Wed May 31 10:36:47 UTC 2023 x86_64
HDD Total: 1.95 TB
HDD Free: 727.77 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Disabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: itsweb
User ID (UID): 1619
Group ID (GID): 1621
Script Owner UID: 1619
Current Dir Owner: N/A