X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=peer.c;h=d508f740866f04f605ba727bfd7095c56e615b38;hb=b9a75fe625a02a9d499aee4a9b68cf1687d509fc;hp=ab73641f07c14df5b4597878e8f03b22e76f0f95;hpb=9589c63acacbc31945e4e12ba9a8ad9d67a5c946;p=dragonnet.git diff --git a/peer.c b/peer.c index ab73641..d508f74 100644 --- a/peer.c +++ b/peer.c @@ -6,32 +6,14 @@ #include "peer.h" #include "recv_thread.h" -const struct timeval dragonnet_timeout = { - .tv_sec = 30, - .tv_usec = 0 -}; - static bool dragonnet_peer_init(DragonnetPeer *p, char *addr) { - p->mu = malloc(sizeof *p->mu); - pthread_rwlock_init(p->mu, NULL); - pthread_rwlock_wrlock(p->mu); + pthread_rwlock_init(&p->mu, NULL); + pthread_rwlock_wrlock(&p->mu); p->sock = socket(AF_INET6, SOCK_STREAM, 0); p->raddr = dragonnet_addr_parse_str(addr); - if (setsockopt(p->sock, SOL_SOCKET, SO_RCVTIMEO, &dragonnet_timeout, - sizeof dragonnet_timeout) < 0) { - perror("setsockopt"); - return false; - } - - if (setsockopt(p->sock, SOL_SOCKET, SO_SNDTIMEO, &dragonnet_timeout, - sizeof dragonnet_timeout) < 0) { - perror("setsockopt"); - return false; - } - struct sockaddr_in6 sock_addr = dragonnet_addr_sock(p->raddr); if (connect(p->sock, (const struct sockaddr *) &sock_addr, sizeof sock_addr) < 0) { @@ -49,7 +31,7 @@ static bool dragonnet_peer_init(DragonnetPeer *p, char *addr) p->laddr = dragonnet_addr_parse_sock(sock_name); - pthread_rwlock_unlock(p->mu); + pthread_rwlock_unlock(&p->mu); return true; } @@ -73,18 +55,18 @@ void dragonnet_peer_run(DragonnetPeer *p) void dragonnet_peer_close(DragonnetPeer *p) { - pthread_rwlock_wrlock(p->mu); + pthread_rwlock_wrlock(&p->mu); if (p->state == DRAGONNET_PEER_ACTIVE) { shutdown(p->sock, SHUT_RDWR); p->state++; } - pthread_rwlock_unlock(p->mu); + pthread_rwlock_unlock(&p->mu); } void dragonnet_peer_delete(DragonnetPeer *p) { - pthread_rwlock_destroy(p->mu); + pthread_rwlock_destroy(&p->mu); free(p); }