summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/asr/res_send_async.c14
-rw-r--r--lib/libc/rpc/clnt_udp.c25
2 files changed, 6 insertions, 33 deletions
diff --git a/lib/libc/asr/res_send_async.c b/lib/libc/asr/res_send_async.c
index 3404b79c802..52dd5ed84e1 100644
--- a/lib/libc/asr/res_send_async.c
+++ b/lib/libc/asr/res_send_async.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: res_send_async.c,v 1.23 2015/06/20 01:16:25 jca Exp $ */
+/* $OpenBSD: res_send_async.c,v 1.24 2015/09/09 15:40:04 guenther Exp $ */
/*
* Copyright (c) 2012 Eric Faurot <eric@openbsd.org>
*
@@ -301,17 +301,9 @@ res_send_async_run(struct asr_query *as, struct asr_result *ar)
static int
sockaddr_connect(const struct sockaddr *sa, int socktype)
{
- int errno_save, flags, sock;
+ int errno_save, sock;
- if ((sock = socket(sa->sa_family, socktype, 0)) == -1)
- goto fail;
-
- if ((flags = fcntl(sock, F_GETFL, 0)) == -1)
- goto fail;
-
- flags |= O_NONBLOCK;
-
- if ((flags = fcntl(sock, F_SETFL, flags)) == -1)
+ if ((sock = socket(sa->sa_family, socktype | SOCK_NONBLOCK, 0)) == -1)
goto fail;
if (connect(sock, sa, sa->sa_len) == -1) {
diff --git a/lib/libc/rpc/clnt_udp.c b/lib/libc/rpc/clnt_udp.c
index 7a30c38fc63..472e1faabc7 100644
--- a/lib/libc/rpc/clnt_udp.c
+++ b/lib/libc/rpc/clnt_udp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: clnt_udp.c,v 1.29 2015/09/01 19:54:01 deraadt Exp $ */
+/* $OpenBSD: clnt_udp.c,v 1.30 2015/09/09 15:40:04 guenther Exp $ */
/*
* Copyright (c) 2010, Oracle America, Inc.
@@ -158,9 +158,8 @@ clntudp_bufcreate(struct sockaddr_in *raddr, u_long program, u_long version,
}
cu->cu_xdrpos = XDR_GETPOS(&(cu->cu_outxdrs));
if (*sockp < 0) {
- int fl;
-
- *sockp = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
+ *sockp = socket(AF_INET, SOCK_DGRAM | SOCK_NONBLOCK,
+ IPPROTO_UDP);
if (*sockp < 0) {
rpc_createerr.cf_stat = RPC_SYSTEMERROR;
rpc_createerr.cf_error.re_errno = errno;
@@ -168,24 +167,6 @@ clntudp_bufcreate(struct sockaddr_in *raddr, u_long program, u_long version,
}
/* attempt to bind to priv port */
(void)bindresvport(*sockp, NULL);
- /* the sockets rpc controls are non-blocking */
-
- fl = fcntl(*sockp, F_GETFL);
- if (fl == -1) {
- close(*sockp);
- rpc_createerr.cf_stat = RPC_SYSTEMERROR;
- rpc_createerr.cf_error.re_errno = errno;
- goto fooy;
- }
- if ((fl & O_NONBLOCK) == 0) {
- fl |= O_NONBLOCK;
- if (fcntl(*sockp, F_SETFL, fl) == -1) {
- close(*sockp);
- rpc_createerr.cf_stat = RPC_SYSTEMERROR;
- rpc_createerr.cf_error.re_errno = errno;
- goto fooy;
- }
- }
cu->cu_closeit = TRUE;
} else {
cu->cu_closeit = FALSE;