#include <errno.h>
#include <string.h>
+#include <sys/types.h>
#include <sys/uio.h>
#include "internal.h"
p= owner; pe= owner+ol;
nlabs= 0;
- if (!*p) return adns_s_querydomaininvalid;
- do {
+ while (p!=pe) {
ll= 0;
while (p!=pe && (c= *p++)!='.') {
if (c=='\\') {
if (nlabs++ > 63) return adns_s_querydomaintoolong;
MKQUERY_ADDB(ll);
memcpy(rqp,label,ll); rqp+= ll;
- } while (p!=pe);
+ }
MKQUERY_ADDB(0);
MKQUERY_STOP(vb);
servaddr.sin_addr= ads->servers[serv].addr;
servaddr.sin_port= htons(DNS_PORT);
- r= sendto(ads->udpsocket,qu->query_dgram,qu->query_dglen,0,&servaddr,sizeof(servaddr));
+ r= sendto(ads->udpsocket,qu->query_dgram,qu->query_dglen,0,
+ (const struct sockaddr*)&servaddr,sizeof(servaddr));
if (r<0 && errno == EMSGSIZE) { query_usetcp(qu,now); return; }
if (r<0) adns__warn(ads,serv,0,"sendto failed: %s",strerror(errno));