chiark / gitweb /
provide errorCode for invalid reverse addrs
[chiark-tcl.git] / dgram / sockaddr.c
index a191cac93d99e5b7702895343197d28c7f6ceff1..c5592ea986abbfa52f1ddafe8e89ac0a9541ade4 100644 (file)
@@ -137,7 +137,7 @@ static int sockaddr_t_sfa(Tcl_Interp *ip, Tcl_Obj *o) {
     else { assert(str[0]=='/' && str[1]!='/'); path=str; }
 
     if (strlen(str) >= sizeof(s.sun.sun_path))
-      return staticerr(ip, "AF_UNIX path too long");
+      return staticerr(ip, "AF_UNIX path too long", "SOCKADDR AFUNIX LENGTH");
 
     strcpy(s.sun.sun_path, path);
 
@@ -159,21 +159,24 @@ static int sockaddr_t_sfa(Tcl_Interp *ip, Tcl_Obj *o) {
     }
     TFREE(copy);
 
-    if (!iprv) return staticerr(ip, "bad IPv4 address syntax");
+    if (!iprv)
+      return staticerr(ip, "bad IPv4 address syntax", "SOCKADDR SYNTAX IPV4");
 
     comma++;
     if (!strcmp(comma,"*")) {
       s.sin.sin_port= 0;
     } else {
       errno=0; port_l=strtoul(comma,&ep,10);
-      if (errno || *ep) return staticerr(ip, "bad IPv4 port");
-      if (port_l > 65535) return staticerr(ip, "IPv4 port out of range");
+      if (errno || *ep)
+       return staticerr(ip, "bad IPv4 port", "SOCKADDR SYNTAX IPV4");
+      if (port_l > 65535)
+       return staticerr(ip, "IPv4 port out of range", "SOCKADDR SYNTAX IPV4");
       s.sin.sin_port= htons(port_l);
     }
 
   } else {
 
-    return staticerr(ip, "bad socket address syntax");
+    return staticerr(ip, "bad socket address syntax", "SOCKADDR SYNTAX OTHER");
 
   }