From 310be43184c5af1cfe791bb955fd9e70ca861e0f Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Fri, 3 Mar 2023 20:01:22 -0400 Subject: TTcpSocket: Revert `TTcpSocket: Make most of the virtuals inline` Caused unwanted inlining in some cases. --- context.h | 120 ++++---------------------------------------------------------- 1 file changed, 7 insertions(+), 113 deletions(-) (limited to 'context.h') diff --git a/context.h b/context.h index 468f768..a52d296 100644 --- a/context.h +++ b/context.h @@ -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(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); -- cgit v1.2.3-13-gbd6f