X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=regress%2Fhrecord.c;h=88e24a41f48925918a5601747e178098fd2df027;hb=87dd63455668503e4f929e741856a3cfc880d570;hp=c60f93c2286c93782a8f1c915e1dcac6187d69e5;hpb=52888ec6fd5f8b3afbf59dfae2c269829f757149;p=adns.git diff --git a/regress/hrecord.c b/regress/hrecord.c index c60f93c..88e24a4 100644 --- a/regress/hrecord.c +++ b/regress/hrecord.c @@ -12,7 +12,7 @@ void Tshutdown(void) { static void R_recordtime(void) { int r; struct timeval tv, tvrel; - Tensureoutputfile(); + Tensurerecordfile(); r= gettimeofday(&tv,0); if (r) Tfailed("gettimeofday syscallbegin"); tvrel.tv_sec= tv.tv_sec - currenttime.tv_sec; tvrel.tv_usec= tv.tv_usec - currenttime.tv_usec; @@ -20,7 +20,7 @@ static void R_recordtime(void) { Tvbf("\n +%ld.%06ld",(long)tvrel.tv_sec,(long)tvrel.tv_usec); currenttime= tv; } -void Tensureoutputfile(void) { +void Tensurerecordfile(void) { const char *fdstr; int fd, r; if (Toutputfile) return; @@ -36,7 +36,7 @@ void Tensureoutputfile(void) { } void Q_vb(void) { if (!adns__vbuf_append(&vb,"",1)) Tnomem(); - Tensureoutputfile(); + Tensurerecordfile(); if (fprintf(Toutputfile," %s\n",vb.buf) == EOF) Toutputerr(); if (fflush(Toutputfile)) Toutputerr(); } @@ -142,6 +142,36 @@ int Hconnect( int fd , const struct sockaddr *addr , int addrlen ) { errno= e; return r; } +int Hbind( int fd , const struct sockaddr *addr , int addrlen ) { + int r, e; + Qbind( fd , addr , addrlen ); + r= bind( fd , addr , addrlen ); + e= errno; + vb.used= 0; + Tvba("bind="); + if (r) { Tvberrno(e); goto x_error; } + Tvba("OK"); + x_error: + R_recordtime(); + R_vb(); + errno= e; + return r; +} +int Hlisten( int fd , int backlog ) { + int r, e; + Qlisten( fd , backlog ); + r= listen( fd , backlog ); + e= errno; + vb.used= 0; + Tvba("listen="); + if (r) { Tvberrno(e); goto x_error; } + Tvba("OK"); + x_error: + R_recordtime(); + R_vb(); + errno= e; + return r; +} int Hclose( int fd ) { int r, e; Qclose( fd );