chiark / gitweb /
Reentrancy: Avoid reentrant callbacks
[adns.git] / regress / hcommon.c
index 2ee9d41..3c2daa3 100644 (file)
@@ -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==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();
 }
@@ -143,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;