summaryrefslogtreecommitdiffstats
path: root/src/lib9/dial.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-12-29 21:41:54 +0000
committerrsc <devnull@localhost>2005-12-29 21:41:54 +0000
commit3d484b0d1a2a49113683f40a66a7fc4c1bebcda1 (patch)
treea84c94062c51c5dd49f139cb712a24cc70728b33 /src/lib9/dial.c
parentadeb5ac9eb03ba6da8f8c175fbaf3621523e2837 (diff)
downloadplan9port-3d484b0d1a2a49113683f40a66a7fc4c1bebcda1.tar.gz
plan9port-3d484b0d1a2a49113683f40a66a7fc4c1bebcda1.zip
set qid.vers (Erik Quanstrom)
Diffstat (limited to 'src/lib9/dial.c')
-rw-r--r--src/lib9/dial.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/lib9/dial.c b/src/lib9/dial.c
index da9019ae..dcbdc0b8 100644
--- a/src/lib9/dial.c
+++ b/src/lib9/dial.c
@@ -60,10 +60,6 @@ p9dial(char *addr, char *local, char *dummy2, int *dummy3)
}
free(buf);
- memset(&sa, 0, sizeof sa);
- memmove(&sa.sin_addr, &host, 4);
- sa.sin_family = AF_INET;
- sa.sin_port = htons(port);
if((s = socket(AF_INET, proto, 0)) < 0)
return -1;
@@ -100,9 +96,15 @@ p9dial(char *addr, char *local, char *dummy2, int *dummy3)
n = 1;
setsockopt(s, SOL_SOCKET, SO_BROADCAST, &n, sizeof n);
- if(connect(s, (struct sockaddr*)&sa, sizeof sa) < 0){
- close(s);
- return -1;
+ if(host != 0){
+ memset(&sa, 0, sizeof sa);
+ memmove(&sa.sin_addr, &host, 4);
+ sa.sin_family = AF_INET;
+ sa.sin_port = htons(port);
+ if(connect(s, (struct sockaddr*)&sa, sizeof sa) < 0){
+ close(s);
+ return -1;
+ }
}
if(proto == SOCK_STREAM){
int one = 1;