chiark
/
gitweb
/
~mdw
/
adns
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
src/setup.c, src/transmit.c: New function finds udpsocket by AF.
[adns]
/
src
/
setup.c
diff --git
a/src/setup.c
b/src/setup.c
index 267f3dad3df10b8cbe5e334ec8b808ce3a7ad37a..fdbc6d08e23425d276acbf974d00d4dcf12f88d0 100644
(file)
--- a/
src/setup.c
+++ b/
src/setup.c
@@
-627,11
+627,8
@@
static int init_finish(adns_state ads) {
proto= getprotobyname("udp"); if (!proto) { r= ENOPROTOOPT; goto x_free; }
ads->nudp = 0;
for (i = 0; i < ads->nservers; i++) {
proto= getprotobyname("udp"); if (!proto) { r= ENOPROTOOPT; goto x_free; }
ads->nudp = 0;
for (i = 0; i < ads->nservers; i++) {
- for (j = 0; j < ads->nudp; j++) {
- if (ads->udpsocket[j].ai->af == ads->servers[i].addr.sa.sa_family)
- goto afmatch;
- }
-
+ if (adns__udpsocket_by_af(ads, ads->servers[i].addr.sa.sa_family))
+ continue;
assert(ads->nudp < MAXUDP);
udp = &ads->udpsocket[ads->nudp];
udp->ai = find_afinfo(ads->servers[i].addr.sa.sa_family);
assert(ads->nudp < MAXUDP);
udp = &ads->udpsocket[ads->nudp];
udp->ai = find_afinfo(ads->servers[i].addr.sa.sa_family);
@@
-641,8
+638,6
@@
static int init_finish(adns_state ads) {
r= adns__setnonblock(ads,udp->fd);
if (r) { r= errno; goto x_closeudp; }
ads->nudp++;
r= adns__setnonblock(ads,udp->fd);
if (r) { r= errno; goto x_closeudp; }
ads->nudp++;
-
- afmatch:;
}
return 0;
}
return 0;