summaryrefslogtreecommitdiff
path: root/libc/inet
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2000-10-09 20:06:30 +0000
committerEric Andersen <andersen@codepoet.org>2000-10-09 20:06:30 +0000
commitc1fe19d4c1db610692365472a90f4661e48449c1 (patch)
treed0b0219ffca3c4c4256f55c4aea4513e43d6aecd /libc/inet
parent9efafb8bbc7408b04643dcd53825d971577b4d9d (diff)
Bug ugly formatting update
Diffstat (limited to 'libc/inet')
-rw-r--r--libc/inet/.indent.pro33
-rw-r--r--libc/inet/Makefile10
-rw-r--r--libc/inet/addr.c108
-rw-r--r--libc/inet/resolv.c552
-rw-r--r--libc/inet/rpc/auth_none.c57
-rw-r--r--libc/inet/rpc/auth_unix.c126
-rw-r--r--libc/inet/rpc/authunix_prot.c22
-rw-r--r--libc/inet/rpc/bindresvport.c12
-rw-r--r--libc/inet/rpc/clnt_generic.c19
-rw-r--r--libc/inet/rpc/clnt_perror.c218
-rw-r--r--libc/inet/rpc/clnt_raw.c106
-rw-r--r--libc/inet/rpc/clnt_simple.c39
-rw-r--r--libc/inet/rpc/clnt_tcp.c234
-rw-r--r--libc/inet/rpc/clnt_udp.c261
-rw-r--r--libc/inet/rpc/get_myaddress.c22
-rw-r--r--libc/inet/rpc/getrpcent.c74
-rw-r--r--libc/inet/rpc/getrpcport.c6
-rw-r--r--libc/inet/rpc/pmap_clnt.c40
-rw-r--r--libc/inet/rpc/pmap_getmaps.c20
-rw-r--r--libc/inet/rpc/pmap_getport.c26
-rw-r--r--libc/inet/rpc/pmap_prot.c17
-rw-r--r--libc/inet/rpc/pmap_prot2.c26
-rw-r--r--libc/inet/rpc/pmap_rmt.c212
-rw-r--r--libc/inet/rpc/rpc_callmsg.c74
-rw-r--r--libc/inet/rpc/rpc_commondata.c3
-rw-r--r--libc/inet/rpc/rpc_dtablesize.c6
-rw-r--r--libc/inet/rpc/rpc_prot.c124
-rw-r--r--libc/inet/rpc/svc.c301
-rw-r--r--libc/inet/rpc/svc_auth.c33
-rw-r--r--libc/inet/rpc/svc_auth_unix.c39
-rw-r--r--libc/inet/rpc/svc_raw.c81
-rw-r--r--libc/inet/rpc/svc_run.c13
-rw-r--r--libc/inet/rpc/svc_simple.c51
-rw-r--r--libc/inet/rpc/svc_tcp.c219
-rw-r--r--libc/inet/rpc/svc_udp.c229
-rw-r--r--libc/inet/rpc/xdr.c198
-rw-r--r--libc/inet/rpc/xdr_array.c52
-rw-r--r--libc/inet/rpc/xdr_float.c154
-rw-r--r--libc/inet/rpc/xdr_mem.c101
-rw-r--r--libc/inet/rpc/xdr_rec.c312
-rw-r--r--libc/inet/rpc/xdr_reference.c37
-rw-r--r--libc/inet/rpc/xdr_stdio.c132
42 files changed, 2166 insertions, 2233 deletions
diff --git a/libc/inet/.indent.pro b/libc/inet/.indent.pro
new file mode 100644
index 000000000..492ecf1c7
--- /dev/null
+++ b/libc/inet/.indent.pro
@@ -0,0 +1,33 @@
+--blank-lines-after-declarations
+--blank-lines-after-procedures
+--break-before-boolean-operator
+--no-blank-lines-after-commas
+--braces-on-if-line
+--braces-on-struct-decl-line
+--comment-indentation25
+--declaration-comment-column25
+--no-comment-delimiters-on-blank-lines
+--cuddle-else
+--continuation-indentation4
+--case-indentation0
+--else-endif-column33
+--space-after-cast
+--line-comments-indentation0
+--declaration-indentation1
+--dont-format-first-column-comments
+--dont-format-comments
+--honour-newlines
+--indent-level4
+/* changed from 0 to 4 */
+--parameter-indentation4
+--line-length78 /* changed from 75 */
+--continue-at-parentheses
+--no-space-after-function-call-names
+--dont-break-procedure-type
+--dont-star-comments
+--leave-optional-blank-lines
+--dont-space-special-semicolon
+--tab-size4
+/* additions by Mark */
+--case-brace-indentation0
+--leave-preprocessor-space
diff --git a/libc/inet/Makefile b/libc/inet/Makefile
index 519501180..07d84d6eb 100644
--- a/libc/inet/Makefile
+++ b/libc/inet/Makefile
@@ -33,11 +33,13 @@ MOBJ2=encodeh.o decodeh.o encoded.o decoded.o lengthd.o encodeq.o \
formquery.o dnslookup.o resolveaddress.o resolvemailbox.o \
opennameservers.o closenameservers.o resolvename.o gethostbyname.o\
gethostbyaddr.o
+OBJS=$(MOBJ) $(MOBJ2)
+all: $(OBJS) $(LIBC)
-all: $(MOBJ) $(MOBJ2) $(LIBC)
+$(LIBC): ar-target
-$(LIBC): $(MOBJ) $(MOBJ2)
- $(AR) $(ARFLAGS) $(LIBC) $(MOBJ) $(MOBJ2)
+ar-target: $(OBJS)
+ $(AR) $(ARFLAGS) $(LIBC) $(OBJS)
$(MOBJ): $(MSRC)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
@@ -45,6 +47,8 @@ $(MOBJ): $(MSRC)
$(MOBJ2): $(MSRC2)
$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
+$(OBJS): Makefile
+
clean:
rm -f *.[oa] *~ core
diff --git a/libc/inet/addr.c b/libc/inet/addr.c
index dcdd06cd4..142363ccc 100644
--- a/libc/inet/addr.c
+++ b/libc/inet/addr.c
@@ -10,77 +10,75 @@
int inet_aton(const char *cp, struct in_addr *inp);
#ifdef L_inet_aton
-int
-inet_aton(cp, inp)
+int inet_aton(cp, inp)
const char *cp;
struct in_addr *inp;
{
- unsigned long addr;
- int value;
- int part;
-
- if (!inp)
- return 0;
-
- addr = 0;
- for (part=1;part<=4;part++) {
-
- if (!isdigit(*cp))
- return 0;
-
- value = 0;
- while (isdigit(*cp)) {
- value *= 10;
- value += *cp++ - '0';
- if (value > 255)
- return 0;
- }
-
- if (*cp++ != ((part == 4) ? '\0' : '.'))
- return 0;
-
- addr <<= 8;
- addr |= value;
- }
-
- inp->s_addr = htonl(addr);
-
- return 1;
+ unsigned long addr;
+ int value;
+ int part;
+
+ if (!inp)
+ return 0;
+
+ addr = 0;
+ for (part = 1; part <= 4; part++) {
+
+ if (!isdigit(*cp))
+ return 0;
+
+ value = 0;
+ while (isdigit(*cp)) {
+ value *= 10;
+ value += *cp++ - '0';
+ if (value > 255)
+ return 0;
+ }
+
+ if (*cp++ != ((part == 4) ? '\0' : '.'))
+ return 0;
+
+ addr <<= 8;
+ addr |= value;
+ }
+
+ inp->s_addr = htonl(addr);
+
+ return 1;
}
#endif
#ifdef L_inet_addr
-unsigned long
-inet_addr(cp)
+unsigned long inet_addr(cp)
const char *cp;
{
- struct in_addr a;
- if (!inet_aton(cp, &a))
- return -1;
- else
- return a.s_addr;
+ struct in_addr a;
+
+ if (!inet_aton(cp, &a))
+ return -1;
+ else
+ return a.s_addr;
}
#endif
#ifdef L_inet_ntoa
-extern char * itoa(int);
+extern char *itoa(int);
-char *
-inet_ntoa(in)
+char *inet_ntoa(in)
struct in_addr in;
{
- static char buf[18];
- unsigned long addr = ntohl(in.s_addr);
-
- strcpy(buf, itoa((addr >> 24) & 0xff));
- strcat(buf, ".");
- strcat(buf, itoa((addr >> 16) & 0xff));
- strcat(buf, ".");
- strcat(buf, itoa((addr >> 8) & 0xff));
- strcat(buf, ".");
- strcat(buf, itoa(addr & 0xff));
-
- return buf;
+ static char buf[18];
+ unsigned long addr = ntohl(in.s_addr);
+
+ strcpy(buf, itoa((addr >> 24) & 0xff));
+ strcat(buf, ".");
+ strcat(buf, itoa((addr >> 16) & 0xff));
+ strcat(buf, ".");
+ strcat(buf, itoa((addr >> 8) & 0xff));
+ strcat(buf, ".");
+ strcat(buf, itoa(addr & 0xff));
+
+ return buf;
}
#endif
diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c
index 27daaf4d6..ae23064bb 100644
--- a/libc/inet/resolv.c
+++ b/libc/inet/resolv.c
@@ -31,10 +31,10 @@
#define DPRINTF(X,args...) printf(X,args...)
#else
#define DPRINTF(X,args...)
-#endif /* DEBUG */
+#endif /* DEBUG */
#ifdef L_encodeh
-int encode_header(struct resolv_header * h, unsigned char * dest, int maxlen)
+int encode_header(struct resolv_header *h, unsigned char *dest, int maxlen)
{
if (maxlen < 12)
return -1;
@@ -42,12 +42,9 @@ int encode_header(struct resolv_header * h, unsigned char * dest, int maxlen)
dest[0] = (h->id & 0xff00) >> 8;
dest[1] = (h->id & 0x00ff) >> 0;
dest[2] = (h->qr ? 0x80 : 0) |
- ((h->opcode & 0x0f) << 3) |
- (h->aa ? 0x04 : 0) |
- (h->tc ? 0x02 : 0) |
- (h->rd ? 0x01 : 0);
- dest[3] = (h->ra ? 0x80 : 0) |
- (h->rcode & 0x0f);
+ ((h->opcode & 0x0f) << 3) |
+ (h->aa ? 0x04 : 0) | (h->tc ? 0x02 : 0) | (h->rd ? 0x01 : 0);
+ dest[3] = (h->ra ? 0x80 : 0) | (h->rcode & 0x0f);
dest[4] = (h->qdcount & 0xff00) >> 8;
dest[5] = (h->qdcount & 0x00ff) >> 0;
dest[6] = (h->ancount & 0xff00) >> 8;
@@ -56,13 +53,13 @@ int encode_header(struct resolv_header * h, unsigned char * dest, int maxlen)
dest[9] = (h->nscount & 0x00ff) >> 0;
dest[10] = (h->arcount & 0xff00) >> 8;
dest[11] = (h->arcount & 0x00ff) >> 0;
-
+
return 12;
}
#endif
#ifdef L_decodeh
-int decode_header(unsigned char * data, struct resolv_header * h)
+int decode_header(unsigned char *data, struct resolv_header *h)
{
h->id = (data[0] << 8) | data[1];
h->qr = (data[2] & 0x80) ? 1 : 0;
@@ -76,7 +73,7 @@ int decode_header(unsigned char * data, struct resolv_header * h)
h->ancount = (data[6] << 8) | data[7];
h->nscount = (data[8] << 8) | data[9];
h->arcount = (data[10] << 8) | data[11];
-
+
return 12;
}
#endif
@@ -85,33 +82,33 @@ int decode_header(unsigned char * data, struct resolv_header * h)
/* Encode a dotted string into nameserver transport-level encoding.
This routine is fairly dumb, and doesn't attempt to compress
the data */
-
-int encode_dotted(const char * dotted, unsigned char * dest, int maxlen)
+
+int encode_dotted(const char *dotted, unsigned char *dest, int maxlen)
{
- int used=0;
+ int used = 0;
- while(dotted && *dotted) {
- char * c = strchr(dotted, '.');
+ while (dotted && *dotted) {
+ char *c = strchr(dotted, '.');
int l = c ? c - dotted : strlen(dotted);
-
- if (l >= (maxlen-used-1))
+
+ if (l >= (maxlen - used - 1))
return -1;
-
+
dest[used++] = l;
- memcpy(dest+used, dotted, l);
+ memcpy(dest + used, dotted, l);
used += l;
-
+
if (c)
- dotted = c+1;
+ dotted = c + 1;
else
break;
}
-
+
if (maxlen < 1)
return -1;
-
+
dest[used++] = 0;
-
+
return used;
}
#endif
@@ -120,19 +117,19 @@ int encode_dotted(const char * dotted, unsigned char * dest, int maxlen)
/* Decode a dotted string from nameserver transport-level encoding.
This routine understands compressed data. */
-int decode_dotted(const unsigned char * data, int offset,
- char * dest, int maxlen)
+int decode_dotted(const unsigned char *data, int offset,
+ char *dest, int maxlen)
{
int l;
- int measure=1;
+ int measure = 1;
int total = 0;
- int used=0;
-
+ int used = 0;
+
if (!data)
return -1;
-
- while ((measure && total++), (l=data[offset++])) {
-
+
+ while ((measure && total++), (l = data[offset++])) {
+
if ((l & 0xc0) == (0xc0)) {
if (measure)
total++;
@@ -141,80 +138,80 @@ int decode_dotted(const unsigned char * data, int offset,
measure = 0;
continue;
}
-
- if ((used+l+1) >= maxlen)
+
+ if ((used + l + 1) >= maxlen)
return -1;
-
- memcpy(dest+used, data+offset, l);
+
+ memcpy(dest + used, data + offset, l);
offset += l;
used += l;
if (measure)
total += l;
-
+
if (data[offset] != 0)
dest[used++] = '.';
else
dest[used++] = '\0';
}
-
+
DPRINTF("Total decode len = %d\n", total);
-
+
return total;
}
#endif
#ifdef L_lengthd
-int length_dotted(const unsigned char * data, int offset)
+int length_dotted(const unsigned char *data, int offset)
{
int orig_offset = offset;
int l;
-
+
if (!data)
return -1;
-
- while ((l=data[offset++])) {
-
+
+ while ((l = data[offset++])) {
+
if ((l & 0xc0) == (0xc0)) {
offset++;
break;
}
-
+
offset += l;
}
-
- return offset-orig_offset;
+
+ return offset - orig_offset;
}
#endif
#ifdef L_encodeq
-int encode_question(struct resolv_question * q,
- unsigned char * dest, int maxlen)
+int encode_question(struct resolv_question *q,
+ unsigned char *dest, int maxlen)
{
int i;
i = encode_dotted(q->dotted, dest, maxlen);
if (i < 0)
return i;
-
+
dest += i;
maxlen -= i;
-
+
if (maxlen < 4)
return -1;
-
+
dest[0] = (q->qtype & 0xff00) >> 8;
dest[1] = (q->qtype & 0x00ff) >> 0;
dest[2] = (q->qclass & 0xff00) >> 8;
dest[3] = (q->qclass & 0x00ff) >> 0;
-
- return i+4;
+
+ return i + 4;
}
#endif
#ifdef L_decodeq
-int decode_question(unsigned char * message, int offset,
- struct resolv_question * q)
+int decode_question(unsigned char *message, int offset,
+ struct resolv_question *q)
{
char temp[256];
int i;
@@ -222,46 +219,45 @@ int decode_question(unsigned char * message, int offset,
i = decode_dotted(message, offset, temp, 256);
if (i < 0)
return i;
-
+
offset += i;
-
+
q->dotted = strdup(temp);
- q->qtype = (message[offset+0] << 8) | message[offset+1];
- q->qclass = (message[offset+2] << 8) | message[offset+3];
-
- return i+4;
+ q->qtype = (message[offset + 0] << 8) | message[offset + 1];
+ q->qclass = (message[offset + 2] << 8) | message[offset + 3];
+
+ return i + 4;
}
#endif
#ifdef L_lengthq
-int length_question(unsigned char * message, int offset)
+int length_question(unsigned char *message, int offset)
{
int i;
i = length_dotted(message, offset);
if (i < 0)
return i;
-
- return i+4;
+
+ return i + 4;
}
#endif
#ifdef L_encodea
-int encode_answer(struct resolv_answer * a,
- unsigned char * dest, int maxlen)
+int encode_answer(struct resolv_answer *a, unsigned char *dest, int maxlen)
{
int i;
i = encode_dotted(a->dotted, dest, maxlen);
if (i < 0)
return i;
-
+
dest += i;
maxlen -= i;
-
- if (maxlen < (10+a->rdlength))
+
+ if (maxlen < (10 + a->rdlength))
return -1;
-
+
*dest++ = (a->atype & 0xff00) >> 8;
*dest++ = (a->atype & 0x00ff) >> 0;
*dest++ = (a->aclass & 0xff00) >> 8;
@@ -273,14 +269,14 @@ int encode_answer(struct resolv_answer * a,
*dest++ = (a->rdlength & 0xff00) >> 8;
*dest++ = (a->rdlength & 0x00ff) >> 0;
memcpy(dest, a->rdata, a->rdlength);
-
- return i+10+a->rdlength;
+
+ return i + 10 + a->rdlength;
}
#endif
#ifdef L_decodea
-int decode_answer(unsigned char * message, int offset,
- struct resolv_answer * a)
+int decode_answer(unsigned char *message, int offset,
+ struct resolv_answer *a)
{
char temp[256];
int i;
@@ -288,47 +284,48 @@ int decode_answer(unsigned char * message, int offset,
i = decode_dotted(message, offset, temp, 256);
if (i < 0)
return i;
-
- message += offset+i;
-
+
+ message += offset + i;
+
a->dotted = strdup(temp);
- a->atype = (message[0] << 8) | message[1]; message += 2;
- a->aclass = (message[0] << 8) | message[1]; message += 2;
+ a->atype = (message[0] << 8) | message[1];
+ message += 2;
+ a->aclass = (message[0] << 8) | message[1];
+ message += 2;
a->ttl = (message[0] << 24) |
- (message[1] << 16) |
- (message[2] << 8) |
- (message[3] << 0);
+ (message[1] << 16) | (message[2] << 8) | (message[3] << 0);
message += 4;
- a->rdlength = (message[0] << 8) | message[1]; message += 2;
+ a->rdlength = (message[0] << 8) | message[1];
+ message += 2;
a->rdata = message;
- a->rdoffset = offset+i+10;
-
+ a->rdoffset = offset + i + 10;
+
DPRINTF("i=%d,rdlength=%d\n", i, a->rdlength);
-
- return i+10+a->rdlength;
+
+ return i + 10 + a->rdlength;
}
#endif
#ifdef L_encodep
-int encode_packet(struct resolv_header * h,
- struct resolv_question ** q,
- struct resolv_answer ** an,
- struct resolv_answer ** ns,
- struct resolv_answer ** ar,
- unsigned char * dest, int maxlen)
+int encode_packet(struct resolv_header *h,
+ struct resolv_question **q,
+ struct resolv_answer **an,
+ struct resolv_answer **ns,
+ struct resolv_answer **ar,
+ unsigned char *dest, int maxlen)
{
- int i, total=0;
+ int i, total = 0;
int j;
i = encode_header(h, dest, maxlen);
if (i < 0)
return i;
-
+
dest += i;
maxlen -= i;
total += i;
-
- for(j=0;j<h->qdcount;j++) {
+
+ for (j = 0; j < h->qdcount; j++) {
i = encode_question(q[j], dest, maxlen);
if (i < 0)
return i;
@@ -337,7 +334,7 @@ int encode_packet(struct resolv_header * h,
total += i;
}
- for(j=0;j<h->ancount;j++) {
+ for (j = 0; j < h->ancount; j++) {
i = encode_answer(an[j], dest, maxlen);
if (i < 0)
return i;
@@ -345,7 +342,7 @@ int encode_packet(struct resolv_header * h,
maxlen -= i;
total += i;
}
- for(j=0;j<h->nscount;j++) {
+ for (j = 0; j < h->nscount; j++) {
i = encode_answer(ns[j], dest, maxlen);
if (i < 0)
return i;
@@ -353,7 +350,7 @@ int encode_packet(struct resolv_header * h,
maxlen -= i;
total += i;
}
- for(j=0;j<h->arcount;j++) {
+ for (j = 0; j < h->arcount; j++) {
i = encode_answer(ar[j], dest, maxlen);
if (i < 0)
return i;
@@ -361,57 +358,59 @@ int encode_packet(struct resolv_header * h,
maxlen -= i;
total += i;
}
-
+
return total;
}
#endif
#ifdef L_decodep
-int decode_packet(unsigned char * data, struct resolv_header * h)
+int decode_packet(unsigned char *data, struct resolv_header *h)
{
return decode_header(data, h);
}
#endif
#ifdef L_formquery
-int form_query(int id, const char * name, int type, unsigned char * packet, int maxlen)
+int form_query(int id, const char *name, int type, unsigned char *packet,
+ int maxlen)
{
struct resolv_header h;
struct resolv_question q;
- int i,j;
-
+ int i, j;
+
memset(&h, 0, sizeof(h));
h.id = id;
h.qdcount = 1;
-
- q.dotted = (char*)name;
+
+ q.dotted = (char *) name;
q.qtype = type;
- q.qclass = 1 /*CLASS_IN*/;
-
+ q.qclass = 1 /*CLASS_IN */ ;
+
i = encode_header(&h, packet, maxlen);
if (i < 0)
return i;
-
- j = encode_question(&q, packet+i, maxlen-i);
+
+ j = encode_question(&q, packet + i, maxlen - i);
if (j < 0)
return j;
- return i+j;
+ return i + j;
}
#endif
#ifdef L_dnslookup
int dns_caught_signal = 0;
-void dns_catch_signal(int signo) {
+void dns_catch_signal(int signo)
+{
dns_caught_signal = 1;
-}
+}
-int dns_lookup(const char * name, int type, int nscount, const char ** nsip,
- unsigned char ** outpacket, struct resolv_answer * a)
+int dns_lookup(const char *name, int type, int nscount, const char **nsip,
+ unsigned char **outpacket, struct resolv_answer *a)
{
- static int id=1;
- int i,j,len;
+ static int id = 1;
+ int i, j, len;
int fd;
int pos;
static int ns = 0;
@@ -421,63 +420,63 @@ int dns_lookup(const char * name, int type, int nscount, const char ** nsip,
struct resolv_header h;
struct resolv_question q;
int retries = 0;
- unsigned char * packet = malloc(512);
-
+ unsigned char *packet = malloc(512);
+
if (!packet)
goto fail1;
-
+
DPRINTF("Looking up type %d answer for '%s'\n", type, name);
-
+
if (!nscount)
goto fail1;
-
+
ns %= nscount;
-
+
fd = -1;
-
+
while (retries++ < MAX_RETRIES) {
-
+
if (fd != -1)
close(fd);
fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
-
- if (fd==-1)
+
+ if (fd == -1)
goto fail2;
-
-
+
+
memset(packet, 0, 512);
memset(&h, 0, sizeof(h));
h.id = ++id;
h.qdcount = 1;
h.rd = 1;
-
+
DPRINTF("encoding header\n");
i = encode_header(&h, packet, 512);
if (i < 0)
goto fail3;
- q.dotted = (char*)name;
+ q.dotted = (char *) name;
q.qtype = type;
- q.qclass = 1 /*CLASS_IN*/;
-
- j = encode_question(&q, packet+i, 512-i);
+ q.qclass = 1 /*CLASS_IN */ ;
+
+ j = encode_question(&q, packet + i, 512 - i);
if (j < 0)
goto fail3;
-
- len = i+j;
+
+ len = i + j;
DPRINTF("On try %d, sending query to port %d of machine %s\n",
- retries, DNS_SERVICE, nsip[ns]);
+ retries, DNS_SERVICE, nsip[ns]);
sa.sin_family = AF_INET;
sa.sin_port = htons(DNS_SERVICE);
sa.sin_addr.s_addr = inet_addr(nsip[ns]);
- if (connect(fd, (struct sockaddr*)&sa, sizeof(sa))==-1) {
+ if (connect(fd, (struct sockaddr *) &sa, sizeof(sa)) == -1) {
if (errno == ENETUNREACH) {
/* routing error, presume not transient */
goto tryall;
@@ -485,57 +484,55 @@ int dns_lookup(const char * name, int type, int nscount, const char ** nsip,
/* retry */
break;
}
-
- DPRINTF("Transmitting packet of length %d, id=%d, qr=%d\n",
- len, h.id, h.qr);
+
+ DPRINTF("Transmitting packet of length %d, id=%d, qr=%d\n",
+ len, h.id, h.qr);
send(fd, packet, len, 0);
dns_caught_signal = 0;
oldalarm = alarm(REPLY_TIMEOUT);
oldhandler = signal(SIGALRM, dns_catch_signal);
-
+
i = recv(fd, packet, 512, 0);
-
+
alarm(0);
signal(SIGALRM, oldhandler);
alarm(oldalarm);
-
- DPRINTF("Timeout=%d, len=%d\n",
- dns_caught_signal, i);
-
+
+ DPRINTF("Timeout=%d, len=%d\n", dns_caught_signal, i);
+
if (dns_caught_signal)
/* timed out, so retry send and receive,
to next nameserver on queue */
goto again;
-
+
if (i < 12)
/* too short ! */
goto again;
-
+
decode_header(packet, &h);
-
- DPRINTF("id = %d, qr = %d\n",
- h.id, h.qr);
-
+
+ DPRINTF("id = %d, qr = %d\n", h.id, h.qr);
+
if ((h.id != id) || (!h.qr))
/* unsolicited */
goto again;
-
+
DPRINTF("Got response (i think)!\n");
DPRINTF("qrcount=%d,ancount=%d,nscount=%d,arcount=%d\n",
- h.qdcount, h.ancount, h.nscount, h.arcount);
+ h.qdcount, h.ancount, h.nscount, h.arcount);
DPRINTF("opcode=%d,aa=%d,tc=%d,rd=%d,ra=%d,rcode=%d\n",
- h.opcode,h.aa,h.tc,h.rd,h.ra,h.rcode);
-
+ h.opcode, h.aa, h.tc, h.rd, h.ra, h.rcode);
+
if ((h.rcode) || (h.ancount < 1)) {
/* negative result, not present */
goto tryall;
}
-
+
pos = 12;
- for(j=0;j<h.qdcount;j++) {
+ for (j = 0; j < h.qdcount; j++) {
DPRINTF("Skipping question %d at %d\n", j, pos);
i = length_question(packet, pos);
DPRINTF("Length of question %d is %d\n", j, i);
@@ -544,82 +541,81 @@ int dns_lookup(const char * name, int type, int nscount, const char ** nsip,
pos += i;
}
DPRINTF("Decoding answer at pos %d\n", pos);
-
+
i = decode_answer(packet, pos, a);
-
- if (i<0) {
+
+ if (i < 0) {
DPRINTF("failed decode %d\n", i);
goto again;
}
-
+
DPRINTF("Answer name = |%s|\n", a->dotted);
DPRINTF("Answer type = |%d|\n", a->atype);
-
+
close(fd);
-
+
if (outpacket)
*outpacket = packet;
else
free(packet);
- return (0); /* success! */
+ return (0); /* success! */
- tryall:
+ tryall:
/* if there are other nameservers, give them a go,
otherwise return with error */
if (retries >= nscount)
break;
- again:
+ again:
ns = (ns + 1) % nscount;
continue;
}
-
-
-fail3:
+
+
+ fai