+ const int maxlitlen=50;
+
+ ssize_t l=strlen(name);
+ if (name[0]=='[' && l<maxlitlen && l>2 && name[l-1]==']') {
+ char trimmed[maxlitlen+1];
+ memcpy(trimmed,name+1,l-2);
+ trimmed[l-2]=0;
+ struct in_addr ia;
+ if (inet_aton(trimmed,&ia))
+ cb(cst,&ia);
+ else
+ cb(cst,0);
+ return True;
+ }