Skip to content
Snippets Groups Projects
Commit 9b06679d authored by dnsadmin's avatar dnsadmin
Browse files

Timeout állítások kiszervezve a helyükre (#9)

Ha már írtam publikus wrappert akkor kéne használni. Amúgy is nem jó, ha minden udp socket ugyanaddig timeoutol.
parent ab0a9b91
Branches master
No related tags found
No related merge requests found
...@@ -25,6 +25,8 @@ IPC_US_communicator::IPC_US_communicator(std::string socket_path, const bool mas ...@@ -25,6 +25,8 @@ IPC_US_communicator::IPC_US_communicator(std::string socket_path, const bool mas
strncpy(ipc.sun_path+1, slave_sock_path.c_str(), sizeof(ipc.sun_path)-1-1); strncpy(ipc.sun_path+1, slave_sock_path.c_str(), sizeof(ipc.sun_path)-1-1);
this->slave_sockaddr.set_sockaddr((sockaddr*) &ipc, sizeof(ipc)); this->slave_sockaddr.set_sockaddr((sockaddr*) &ipc, sizeof(ipc));
timeval timeout = { 5, 0 };
comm_sock.setsockopt_wp(SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
if(master) if(master)
{ {
comm_sock.bind_wp(master_sockaddr); comm_sock.bind_wp(master_sockaddr);
......
...@@ -38,6 +38,8 @@ void dns_server::init(const general_sockaddr_wp& addr) { ...@@ -38,6 +38,8 @@ void dns_server::init(const general_sockaddr_wp& addr) {
pthread_mutex_lock(&mutex); pthread_mutex_lock(&mutex);
this->socket.close_socket(); // in case it's being changed this->socket.close_socket(); // in case it's being changed
this->socket.set_domain(addr.get_sockaddr()->sa_family); this->socket.set_domain(addr.get_sockaddr()->sa_family);
timeval timeout = { 2, 0 };
this->socket.setsockopt_wp(SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
this->socket.bind_wp(addr); this->socket.bind_wp(addr);
running = true; running = true;
pthread_mutex_unlock(&mutex); pthread_mutex_unlock(&mutex);
......
...@@ -22,10 +22,6 @@ void udp_socket_wp::create_socket(int __domain) { ...@@ -22,10 +22,6 @@ void udp_socket_wp::create_socket(int __domain) {
{ {
// May throw some exception... // May throw some exception...
} }
timeval tv;
tv.tv_sec = 1;
tv.tv_usec = 0;
setsockopt_wp(SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
} }
void udp_socket_wp::setsockopt_wp(int __level, int __optname, const void* __optval, socklen_t __optlen) { void udp_socket_wp::setsockopt_wp(int __level, int __optname, const void* __optval, socklen_t __optlen) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment