- if (INADDR_NONE == i_addr(iauth)) {
- i_addr(iauth) = inet_addr(i_host(iauth));
- if (INADDR_NONE == i_addr(iauth)) {
- i_query(iauth).vptr = iauth;
- i_query(iauth).callback = iauth_dns_callback;
- gethost_byname(i_host(iauth), &i_query(iauth));
- return;
- }
- }
- fd = socket(AF_INET, SOCK_STREAM, 0);
- if (0 > fd) {
- sendto_opmask_butone(0, SNO_OLDSNO, "IAuth reconnect unable to allocate socket: %s", strerror(errno));
+ if (!irc_in_addr_valid(&i_addr(iauth).addr)
+ && !ircd_aton(&i_addr(iauth).addr, i_host(iauth))) {
+ i_query(iauth).vptr = iauth;
+ i_query(iauth).callback = iauth_dns_callback;
+ gethost_byname(i_host(iauth), &i_query(iauth));