summaryrefslogtreecommitdiffstats
path: root/socket.h
diff options
context:
space:
mode:
Diffstat (limited to 'socket.h')
-rw-r--r--socket.h142
1 files changed, 0 insertions, 142 deletions
diff --git a/socket.h b/socket.h
deleted file mode 100644
index 7a3d039..0000000
--- a/socket.h
+++ /dev/null
@@ -1,142 +0,0 @@
-#pragma once
-
-#include "swoole.h"
-#include "connection.h"
-#include "socks5.h"
-#include <string>
-
-namespace swoole
-{
-class Socket
-{
-public:
- Socket(enum swSocket_type type);
- Socket(int _fd, Socket *sock);
- ~Socket();
- bool connect(std::string host, int port, int flags = 0);
- bool shutdown(int how);
- bool close();
- ssize_t send(const void *__buf, size_t __n);
- ssize_t peek(void *__buf, size_t __n);
- ssize_t recv(void *__buf, size_t __n);
- ssize_t recv_all(void *__buf, size_t __n);
- ssize_t send_all(const void *__buf, size_t __n);
- ssize_t recv_packet();
- Socket* accept();
- void resume();
- void yield();
- bool bind(std::string address, int port = 0);
- std::string resolve(std::string host);
- bool listen(int backlog = 0);
- bool sendfile(char *filename, off_t offset, size_t length);
- int sendto(char *address, int port, char *data, int len);
- int recvfrom(void *__buf, size_t __n, char *address, int *port = nullptr);
- swString* get_buffer();
-
- void setTimeout(double timeout)
- {
- _timeout = timeout;
- }
-
-#ifdef SW_USE_OPENSSL
- bool ssl_handshake();
- int ssl_verify(bool allow_self_signed);
-#endif
-
-protected:
- inline void init()
- {
- _cid = 0;
- suspending = false;
- _timeout = 0;
- _port = 0;
- errCode = 0;
- errMsg = nullptr;
- timer = nullptr;
- bind_port = 0;
- _backlog = 0;
-
- http2 = 0;
- shutdow_rw = 0;
- shutdown_read = 0;
- shutdown_write = 0;
- open_length_check = 0;
- open_eof_check = 0;
-
- socks5_proxy = nullptr;
- http_proxy = nullptr;
-
- buffer = nullptr;
- protocol = {0};
-
- protocol.package_length_type = 'N';
- protocol.package_length_size = 4;
- protocol.package_body_offset = 0;
- protocol.package_max_length = SW_BUFFER_INPUT_SIZE;
-
-#ifdef SW_USE_OPENSSL
- open_ssl = 0;
- ssl_wait_handshake = 0;
- ssl_context = NULL;
- ssl_option = {0};
-#endif
- }
-
- inline bool wait_events(int events)
- {
- if (reactor->add(reactor, socket->fd, SW_FD_CORO_SOCKET | events) < 0)
- {
- errCode = errno;
- return false;
- }
- else
- {
- return true;
- }
- }
-
- bool socks5_handshake();
- bool http_proxy_handshake();
-
-public:
- swTimer_node *timer;
- swReactor *reactor;
- std::string _host;
- std::string bind_address;
- int bind_port;
- int _port;
- int _cid;
- bool suspending;
- swConnection *socket;
- enum swSocket_type type;
- int _sock_type;
- int _sock_domain;
- double _timeout;
- int _backlog;
- int errCode;
- const char *errMsg;
- uint32_t http2 :1;
- uint32_t shutdow_rw :1;
- uint32_t shutdown_read :1;
- uint32_t shutdown_write :1;
- /**
- * one package: length check
- */
- uint32_t open_length_check :1;
- uint32_t open_eof_check :1;
-
- swProtocol protocol;
- swString *buffer;
-
- struct _swSocks5 *socks5_proxy;
- struct _http_proxy* http_proxy;
-
-#ifdef SW_USE_OPENSSL
- uint8_t open_ssl :1;
- uint8_t ssl_wait_handshake :1;
- SSL_CTX *ssl_context;
- swSSL_option ssl_option;
-#endif
-};
-
-};