X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=adns.git;a=blobdiff_plain;f=regress%2Fhcommon.c;h=0aa3ffb05e58550310f050f708ed06ebc1b95602;hp=3466ec98025648f29faff2be6bace386885734a7;hb=e7308d2612173a14b26f797ae3aca830859ea3bf;hpb=c227e3bcc4a3d9e4a076e19976f8b2bb153143e7 diff --git a/regress/hcommon.c b/regress/hcommon.c index 3466ec9..0aa3ffb 100644 --- a/regress/hcommon.c +++ b/regress/hcommon.c @@ -67,9 +67,12 @@ void Qpoll( const struct pollfd *fds , int nfds , int timeout ) { Q_vb(); } #endif -void Qsocket( int type ) { +void Qsocket( int domain , int type ) { vb.used= 0; Tvba("socket"); + Tvbf(domain==AF_INET ? " domain=AF_INET" : + domain==AF_INET6 ? " domain=AF_INET6" : + " domain=AF_???"); Tvbf(type==SOCK_STREAM ? " type=SOCK_STREAM" : " type=SOCK_DGRAM"); Q_vb(); } @@ -126,7 +129,6 @@ void Qrecvfrom( int fd , int buflen , int addrlen ) { Tvba("recvfrom"); Tvbf(" fd=%d",fd); Tvbf(" buflen=%lu",(unsigned long)buflen); - Tvbf(" *addrlen=%d",addrlen); Q_vb(); } void Qread( int fd , size_t buflen ) { @@ -144,10 +146,12 @@ void Qwrite( int fd , const void *buf , size_t len ) { Q_vb(); } void Tvbaddr(const struct sockaddr *addr, int len) { - const struct sockaddr_in *ai= (const struct sockaddr_in*)addr; - assert(len==sizeof(struct sockaddr_in)); - assert(ai->sin_family==AF_INET); - Tvbf("%s:%u",inet_ntoa(ai->sin_addr),htons(ai->sin_port)); + char buf[ADNS_ADDR2TEXT_BUFLEN]; + int err, port; + int sz= sizeof(buf); + err= adns_addr2text(addr, 0, buf,&sz, &port); + assert(!err); + Tvbf(strchr(buf, ':') ? "[%s]:%d" : "%s:%d", buf,port); } void Tvbbytes(const void *buf, int len) { const byte *bp; @@ -163,6 +167,10 @@ void Tvbbytes(const void *buf, int len) { void Tvbfdset(int max, const fd_set *fds) { int i; const char *comma= ""; + if (!fds) { + Tvba("null"); + return; + } Tvba("["); for (i=0; isz; } else { osz= 0; } np= Hmalloc(nsz); - memcpy(np,op, osz>nsz ? nsz : osz); + if (osz) memcpy(np,op, osz>nsz ? nsz : osz); Hfree(op); return np; } -void Hexit(int rv) { +void Texit(int rv) { struct malloced *loopnode; Tshutdown(); adns__vbuf_free(&vb); @@ -289,9 +297,18 @@ void Hexit(int rv) { if (mallocedlist.head) { fprintf(stderr,"adns test harness: memory leaked:"); for (loopnode=mallocedlist.head; loopnode; loopnode=loopnode->next) - fprintf(stderr," %lu(%lu)",loopnode->count,(unsigned long)loopnode->sz); + fprintf(stderr," %lu",loopnode->count); putc('\n',stderr); if (ferror(stderr)) exit(-1); } exit(rv); } +void Hexit(int rv) { + vb.used= 0; + Tvbf("exit %d", rv); + Q_vb(); + Texit(0); +} +pid_t Hgetpid(void) { + return 2264; /* just some number */ +}