mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-16 18:52:22 +00:00
Removal of openssl stuff
This commit is contained in:
@@ -28,68 +28,40 @@ void EQ::Net::TCPConnection::Connect(const std::string &addr, int port, bool ipv
|
||||
memset(socket, 0, sizeof(uv_tcp_t));
|
||||
uv_tcp_init(loop, socket);
|
||||
|
||||
sockaddr_storage iaddr;
|
||||
if (ipv6) {
|
||||
sockaddr_in6 iaddr;
|
||||
uv_ip6_addr(addr.c_str(), port, &iaddr);
|
||||
|
||||
uv_connect_t *connect = new uv_connect_t;
|
||||
memset(connect, 0, sizeof(uv_connect_t));
|
||||
|
||||
EQTCPConnectBaton *baton = new EQTCPConnectBaton;
|
||||
baton->cb = cb;
|
||||
baton->socket = socket;
|
||||
connect->data = baton;
|
||||
uv_tcp_connect(connect, socket, (sockaddr*)&iaddr,
|
||||
[](uv_connect_t* req, int status) {
|
||||
EQTCPConnectBaton *baton = (EQTCPConnectBaton*)req->data;
|
||||
auto socket = baton->socket;
|
||||
auto cb = baton->cb;
|
||||
|
||||
delete baton;
|
||||
|
||||
if (status < 0) {
|
||||
uv_close((uv_handle_t*)socket, on_close_handle);
|
||||
delete req;
|
||||
cb(nullptr);
|
||||
}
|
||||
else {
|
||||
delete req;
|
||||
std::shared_ptr<EQ::Net::TCPConnection> connection(new EQ::Net::TCPConnection(socket));
|
||||
cb(connection);
|
||||
}
|
||||
});
|
||||
uv_ip6_addr(addr.c_str(), port, (sockaddr_in6*)&iaddr);
|
||||
}
|
||||
else {
|
||||
sockaddr_in iaddr;
|
||||
uv_ip4_addr(addr.c_str(), port, &iaddr);
|
||||
|
||||
uv_connect_t *connect = new uv_connect_t;
|
||||
memset(connect, 0, sizeof(uv_connect_t));
|
||||
|
||||
EQTCPConnectBaton *baton = new EQTCPConnectBaton;
|
||||
baton->cb = cb;
|
||||
baton->socket = socket;
|
||||
connect->data = baton;
|
||||
uv_tcp_connect(connect, socket, (sockaddr*)&iaddr,
|
||||
[](uv_connect_t* req, int status) {
|
||||
EQTCPConnectBaton *baton = (EQTCPConnectBaton*)req->data;
|
||||
auto socket = baton->socket;
|
||||
auto cb = baton->cb;
|
||||
|
||||
delete baton;
|
||||
|
||||
if (status < 0) {
|
||||
uv_close((uv_handle_t*)socket, on_close_handle);
|
||||
delete req;
|
||||
cb(nullptr);
|
||||
}
|
||||
else {
|
||||
delete req;
|
||||
std::shared_ptr<EQ::Net::TCPConnection> connection(new EQ::Net::TCPConnection(socket));
|
||||
cb(connection);
|
||||
}
|
||||
});
|
||||
uv_ip4_addr(addr.c_str(), port, (sockaddr_in*)&iaddr);
|
||||
}
|
||||
|
||||
uv_connect_t *connect = new uv_connect_t;
|
||||
memset(connect, 0, sizeof(uv_connect_t));
|
||||
|
||||
EQTCPConnectBaton *baton = new EQTCPConnectBaton;
|
||||
baton->cb = cb;
|
||||
baton->socket = socket;
|
||||
connect->data = baton;
|
||||
uv_tcp_connect(connect, socket, (sockaddr*)&iaddr,
|
||||
[](uv_connect_t* req, int status) {
|
||||
EQTCPConnectBaton *baton = (EQTCPConnectBaton*)req->data;
|
||||
auto socket = baton->socket;
|
||||
auto cb = baton->cb;
|
||||
|
||||
delete baton;
|
||||
|
||||
if (status < 0) {
|
||||
uv_close((uv_handle_t*)socket, on_close_handle);
|
||||
delete req;
|
||||
cb(nullptr);
|
||||
}
|
||||
else {
|
||||
delete req;
|
||||
std::shared_ptr<EQ::Net::TCPConnection> connection(new EQ::Net::TCPConnection(socket));
|
||||
cb(connection);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void EQ::Net::TCPConnection::Start() {
|
||||
@@ -173,3 +145,39 @@ void EQ::Net::TCPConnection::Write(const char *data, size_t count)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
std::string EQ::Net::TCPConnection::RemoteIP() const
|
||||
{
|
||||
sockaddr_storage addr;
|
||||
int addr_len = sizeof(addr);
|
||||
uv_tcp_getpeername(m_socket, (sockaddr*)&addr, &addr_len);
|
||||
|
||||
char endpoint[64] = { 0 };
|
||||
if (addr.ss_family == AF_INET) {
|
||||
uv_ip4_name((const sockaddr_in*)&addr, endpoint, 64);
|
||||
}
|
||||
else if(addr.ss_family == AF_INET6) {
|
||||
uv_ip6_name((const sockaddr_in6*)&addr, endpoint, 64);
|
||||
}
|
||||
|
||||
return endpoint;
|
||||
}
|
||||
|
||||
int EQ::Net::TCPConnection::RemotePort() const
|
||||
{
|
||||
sockaddr_storage addr;
|
||||
int addr_len = sizeof(addr);
|
||||
uv_tcp_getpeername(m_socket, (sockaddr*)&addr, &addr_len);
|
||||
|
||||
char endpoint[64] = { 0 };
|
||||
if (addr.ss_family == AF_INET) {
|
||||
sockaddr_in *s = (sockaddr_in*)&addr;
|
||||
return ntohs(s->sin_port);
|
||||
}
|
||||
else if (addr.ss_family == AF_INET6) {
|
||||
sockaddr_in6 *s = (sockaddr_in6*)&addr;
|
||||
return ntohs(s->sin6_port);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
#include <uv.h>
|
||||
#include <functional>
|
||||
#include <string>
|
||||
#include <memory>
|
||||
#include <evt_tls.h>
|
||||
#include <uv.h>
|
||||
|
||||
namespace EQ
|
||||
{
|
||||
@@ -24,6 +23,8 @@ namespace EQ
|
||||
void Disconnect();
|
||||
void Read(const char *data, size_t count);
|
||||
void Write(const char *data, size_t count);
|
||||
std::string RemoteIP() const;
|
||||
int RemotePort() const;
|
||||
private:
|
||||
TCPConnection();
|
||||
|
||||
|
||||
@@ -27,17 +27,15 @@ void EQ::Net::TCPServer::Listen(int port, bool ipv6, std::function<void(std::sha
|
||||
memset(m_socket, 0, sizeof(uv_tcp_t));
|
||||
uv_tcp_init(loop, m_socket);
|
||||
|
||||
sockaddr_storage iaddr;
|
||||
if (ipv6) {
|
||||
sockaddr_in6 iaddr;
|
||||
uv_ip6_addr("::", port, &iaddr);
|
||||
uv_tcp_bind(m_socket, (sockaddr*)&iaddr, 0);
|
||||
uv_ip6_addr("::", port, (sockaddr_in6*)&iaddr);
|
||||
}
|
||||
else {
|
||||
sockaddr_in iaddr;
|
||||
uv_ip4_addr("0.0.0.0", port, &iaddr);
|
||||
uv_tcp_bind(m_socket, (sockaddr*)&iaddr, 0);
|
||||
uv_ip4_addr("0.0.0.0", port, (sockaddr_in*)&iaddr);
|
||||
}
|
||||
|
||||
uv_tcp_bind(m_socket, (sockaddr*)&iaddr, 0);
|
||||
m_socket->data = this;
|
||||
|
||||
uv_listen((uv_stream_t*)m_socket, 128, [](uv_stream_t* server, int status) {
|
||||
|
||||
Reference in New Issue
Block a user