X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=regress%2Fhcommon.c;h=ebbef9400e4d361dc96c24cbabe2dcec6d54fd33;hb=4153634256ab06ee5b147a20234a0b7b305c12ea;hp=4a6293ae4fad5a14ba639375bf82e2728c28c740;hpb=237ce71042451bd1b4039b01cd769fc187750246;p=adns.git diff --git a/regress/hcommon.c b/regress/hcommon.c index 4a6293a..ebbef94 100644 --- a/regress/hcommon.c +++ b/regress/hcommon.c @@ -34,6 +34,7 @@ const struct Terrno Terrnos[]= { }; static vbuf vbw; int Hgettimeofday(struct timeval *tv, struct timezone *tz) { + Tensurerecordfile(); Tmust("gettimeofday","tz",!tz); *tv= currenttime; return 0; @@ -66,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(); } @@ -92,6 +96,20 @@ void Qconnect( int fd , const struct sockaddr *addr , int addrlen ) { Tvba(" addr="); Tvbaddr(addr,addrlen); Q_vb(); } +void Qbind( int fd , const struct sockaddr *addr , int addrlen ) { + vb.used= 0; + Tvba("bind"); + Tvbf(" fd=%d",fd); + Tvba(" addr="); Tvbaddr(addr,addrlen); + Q_vb(); +} +void Qlisten( int fd , int backlog ) { + vb.used= 0; + Tvba("listen"); + Tvbf(" fd=%d",fd); + Tvbf(" backlog=%d",backlog); + Q_vb(); +} void Qclose( int fd ) { vb.used= 0; Tvba("close"); @@ -111,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 ) { @@ -129,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; @@ -274,9 +293,12 @@ 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); } +pid_t Hgetpid(void) { + return 2264; /* just some number */ +}