- m->pingfd = dial(netmkaddr(m->name, "icmp", "1"), 0, 0, 0);
- if(m->pingfd < 0)
+
+ m->version = 4;
+ if(strstr(name, "icmpv6!") != nil)
+ m->version = 6;
+again:
+ m->pingfd = dial(netmkaddr(m->name, m->version==4? "icmp": "icmpv6", "1"), nil, nil, &cfd);
+ if(m->pingfd < 0){
+ if(m->version == 4){
+ m->version = 6;
+ goto again;
+ }