diff options
author | mrb0nk500 <b0nk@b0nk.xyz> | 2023-03-03 20:01:22 -0400 |
---|---|---|
committer | mrb0nk500 <b0nk@b0nk.xyz> | 2023-03-03 20:02:24 -0400 |
commit | 310be43184c5af1cfe791bb955fd9e70ca861e0f (patch) | |
tree | 5327da1af72da44cd574d518f85b7cbb5cc9bf42 /context.h | |
parent | 232dd530a98b7d633bc46a3b8066fb8305c1c2e0 (diff) |
TTcpSocket: Revert `TTcpSocket: Make most of the virtuals inline`
Caused unwanted inlining in some cases.
Diffstat (limited to 'context.h')
-rw-r--r-- | context.h | 120 |
1 files changed, 7 insertions, 113 deletions
@@ -912,125 +912,19 @@ private: int m_is_encrypted; public: WEAK_FUNC TTcpSocket(TObject *parent = nullptr); + virtual ~TTcpSocket(); - virtual ~TTcpSocket() { - close(); - }; - - virtual void recv() { - if (sock_fd() != -1) { - packet_buffer().fill(0); - set_buffer_cleared(true); - (int)tcp_receive(sock_fd(), notify, packet_buffer().size(), packet_buffer().data()); - } - }; - - virtual int send(u8 *data, size_t size) { - if (sock_fd() != -1) { - if (!m_is_encrypted) { - m_send_crypt.encrypt(data, size); - } - - const s8 flags = sock_flags(); - if (flags || !get_link_status()) { - return -1; - } else { - if (int status = stat()) { - log(get_sock_status_name(status)); - set_flags(1); - return 1; - } else { - if (send_window() <= size) { - set_flags(1); - return 1; - } else { - if (stat_val() < 0) { - set_flags(1); - return 1; - } else { - struct send_buffs sb; - sb.buff = data; - sb.len = size; - set_unused(0); - int ret = tcp_send(sock_fd(), nullptr, 1, &sb); - if (ret >= 1 || ret < -1) { - set_flags(1); - log(get_sock_status_name(ret)); - close(); - return ret; - } - } - } - } - } - } else { - return -1; - } - }; - - virtual short send(u8 *data) { - if (sock_fd() != -1) { - const s8 flags = sock_flags(); - if (flags || !get_link_status()) { - return -1; - } else { - if (short status = stat()) { - log(get_sock_status_name(status)); - set_flags(1); - return 1; - } else { - if (stat_val() < 0) { - set_flags(1); - return 1; - } else { - s8 len = strlen(reinterpret_cast<const char *>(data)); - struct send_buffs sb; - sb.buff = data; - sb.len = len; - if (send_window() <= len) { - set_flags(1); - return 1; - } else { - short ret = tcp_send(sock_fd(), nullptr, 1, &sb); - if (ret) { - close(); - } - return ret; - } - } - } - } - } else { - return -1; - } - }; - - virtual short open(); - virtual short close(); + virtual short open() override; + virtual short close() override; + virtual void recv() override; + virtual short send(u8 *data) override; + virtual int send(u8 *data, size_t size) override; short stat(); void some_stub(); int test_connection(); - static void notify(short size, short sock_fd) { - char tmp_str[64]; - TTcpSocket *socket = tcp_socket_table[sock_fd]; - - if (socket != nullptr) { - if (size > 0) { - socket->set_buffer_cleared(false); - socket->set_size(size); - socket->set_buffer_offset(0); - sprintf(tmp_str, "Rcv:%d byte", size); - socket->log(tmp_str); - if (socket->callback() != nullptr) { - socket->callback()(socket); - } - } else { - socket->set_flags(1); - } - } - }; + static void notify(short size, short sock_fd); PRIVATE_MEMBER_ACCESSORS(PSOV3EncryptionTCP, send_crypt); PRIVATE_MEMBER_ACCESSORS(PSOV3EncryptionTCP, recv_crypt); |