X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=regress%2Fhcommon.c;h=3c2daa300bf1989ec27744b8ba9620697da63600;hb=220a115d87fbaf82ac953052fa7458cee6e33ae2;hp=2cd3508a251dd7434ad0ef0b9ac736f295502d6f;hpb=4e25ff4e538e8af8837b0b982a56ecc838fd7e27;p=adns.git diff --git a/regress/hcommon.c b/regress/hcommon.c index 2cd3508..3c2daa3 100644 --- a/regress/hcommon.c +++ b/regress/hcommon.c @@ -29,10 +29,12 @@ const struct Terrno Terrnos[]= { { "ECONNRESET", ECONNRESET }, { "ECONNREFUSED", ECONNREFUSED }, { "EPIPE", EPIPE }, + { "ENOTSOCK", ENOTSOCK }, { 0, 0 } }; static vbuf vbw; int Hgettimeofday(struct timeval *tv, struct timezone *tz) { + Tensurerecordfile(); Tmust("gettimeofday","tz",!tz); *tv= currenttime; return 0; @@ -65,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==PF_INET ? " domain=PF_INET" : + domain==PF_INET6 ? " domain=PF_INET6" : + " domain=AF_???"); Tvbf(type==SOCK_STREAM ? " type=SOCK_STREAM" : " type=SOCK_DGRAM"); Q_vb(); } @@ -91,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"); @@ -110,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 ) { @@ -128,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; @@ -273,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 */ +}