Skip to content
Snippets Groups Projects
Commit b59731da authored by Benny Baumann's avatar Benny Baumann
Browse files

fmt: Code style

parent 32c4653d
No related branches found
No related tags found
1 merge request!4Draft: Resolve "Unix Socket Server schreiben"
......@@ -12,7 +12,7 @@
#include "net/udp_client.hpp"
namespace rmrf::net {
[[nodiscard]] socketaddr get_own_address_after_connect(const auto_fd& socket) {
socketaddr own_address;
socklen_t sa_local_len = sizeof(sockaddr_storage);
......@@ -61,15 +61,15 @@ namespace rmrf::net {
}
return c;
}
[[nodiscard]] std::unique_ptr<tcp_client> client_factory_construct_tcp_client(const socketaddr& socket_identifier, connection_client::incomming_data_cb cb) {
auto_fd socket_candidate{socket(socket_identifier.family(), SOCK_STREAM, 0)};
if (socket_candidate.valid()) {
if (connect(socket_candidate.get(), socket_identifier.ptr(), socket_identifier.size()) == 0) {
make_socket_nonblocking(socket_candidate);
const auto own_address = get_own_address_after_connect(socket_candidate);
// TODO create client object using socket_candidate, own_address and socket_identifier as remote address
auto c = std::make_unique<tcp_client>(nullptr, std::move(socket_candidate), own_address, socket_identifier);
if(cb) {
......@@ -80,7 +80,7 @@ namespace rmrf::net {
}
return nullptr;
}
[[nodiscard]] std::unique_ptr<connection_client> connect(const socketaddr& address, const socket_t& type) {
switch(type) {
case socket_t::TCP:
......@@ -94,7 +94,7 @@ namespace rmrf::net {
return nullptr;
}
}
socket_t guess_socket_type_from_address(const socketaddr& address) {
switch(address.family()) {
case AF_INET:
......@@ -117,11 +117,11 @@ namespace rmrf::net {
[[nodiscard]] std::unique_ptr<connection_client> connect(const std::string& peer_address, const std::string& service, int ip_addr_family) {
const auto candidates = get_socketaddr_list(peer_address, service);
if (candidates.empty()) {
throw netio_exception("Unable to find suitable connection candidate.");
}
if (ip_addr_family == AF_UNSPEC) {
ip_addr_family = candidates.front().family();
}
......@@ -129,20 +129,21 @@ namespace rmrf::net {
if (!(ip_addr_family == AF_INET || ip_addr_family == AF_INET6 || ip_addr_family == AF_UNIX)) {
throw netio_exception("Invalid IP address family.");
}
std::unique_ptr<connection_client> latest_client;
for(const auto& current_connection_candidate : candidates) {
if(latest_client = connect(current_connection_candidate, guess_socket_type_from_address(current_connection_candidate));
latest_client) {
break;
}
}
if (!latest_client) {
throw netio_exception("Unable to find suitable connection candidate.");
}
return latest_client;
}
}
}
......@@ -30,46 +30,46 @@
namespace rmrf::net {
auto_fd create_tcp_server_socket(const socketaddr& socket_identifier) {
auto_fd socket_fd{socket(socket_identifier.family(), SOCK_STREAM, 0)};
if (!socket_fd.valid()) {
// TODO implement propper error handling
throw netio_exception("Failed to create socket fd.");
}
if (auto error = bind(socket_fd.get(), socket_identifier.ptr(), socket_identifier.size()); error != 0) {
std::string msg = "Failed to bind to all addresses (FIXME). Errorcode: " + std::to_string(error);
if (socket_identifier.family() == AF_INET6) {
sockaddr_in* inptr = (sockaddr_in*) socket_identifier.ptr();
const auto port = ntohs(inptr->sin_port);
if (port < 1024) {
msg += "\nYou tried to bind to a port smaller than 1024. Are you root?";
}
} else if (socket_identifier.family() == AF_INET) {
sockaddr_in6* inptr = (sockaddr_in6*) socket_identifier.ptr();
const auto port = ntohs(inptr->sin6_port);
if (port < 1024) {
msg += "\nYou tried to bind to a port smaller than 1024. Are you root?";
}
auto_fd create_tcp_server_socket(const socketaddr& socket_identifier) {
auto_fd socket_fd{socket(socket_identifier.family(), SOCK_STREAM, 0)};
if (!socket_fd.valid()) {
// TODO implement propper error handling
throw netio_exception("Failed to create socket fd.");
}
if (auto error = bind(socket_fd.get(), socket_identifier.ptr(), socket_identifier.size()); error != 0) {
std::string msg = "Failed to bind to all addresses (FIXME). Errorcode: " + std::to_string(error);
if (socket_identifier.family() == AF_INET6) {
sockaddr_in* inptr = (sockaddr_in*) socket_identifier.ptr();
const auto port = ntohs(inptr->sin_port);
if (port < 1024) {
msg += "\nYou tried to bind to a port smaller than 1024. Are you root?";
}
} else if (socket_identifier.family() == AF_INET) {
sockaddr_in6* inptr = (sockaddr_in6*) socket_identifier.ptr();
const auto port = ntohs(inptr->sin6_port);
throw netio_exception(msg);
}
make_socket_nonblocking(socket_fd);
if (listen(socket_fd.get(), 5) == -1) {
throw netio_exception("Failed to enable listening mode for raw socket");
if (port < 1024) {
msg += "\nYou tried to bind to a port smaller than 1024. Are you root?";
}
}
return socket_fd;
throw netio_exception(msg);
}
make_socket_nonblocking(socket_fd);
if (listen(socket_fd.get(), 5) == -1) {
throw netio_exception("Failed to enable listening mode for raw socket");
}
return socket_fd;
}
tcp_server_socket::tcp_server_socket(
const socketaddr& socket_identifier,
async_server_socket::accept_handler_type client_listener
......@@ -111,7 +111,7 @@ std::shared_ptr<connection_client> tcp_server_socket::await_raw_socket_incomming
if (client_fd_raw < 0) {
throw netio_exception("Unable to bind incoming client");
}
auto client_socket = auto_fd(client_fd_raw);
make_socket_nonblocking(client_socket);
......@@ -122,7 +122,7 @@ std::shared_ptr<connection_client> tcp_server_socket::await_raw_socket_incomming
setsockopt(client_socket.get(), IPPROTO_TCP, TCP_QUICKACK, &one, sizeof(one));
#endif
}
return std::make_shared<tcp_client>(
this->get_locked_destructor_callback(),
std::move(client_socket),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment