#endif
(void)Conn_WriteStr(Idx,
"NOTICE AUTH :*** Looking up your hostname");
- (void)Handle_Write(Idx);
+ /* Send buffered data to the client, but break on errors
+ * because Handle_Write() would have closed the connection
+ * again in this case! */
+ if (!Handle_Write(Idx))
+ return;
}
Resolve_Addr(&My_Connections[Idx].proc_stat, &My_Connections[Idx].addr,
*ptr ? "" : ": ",
*ptr ? "" : identptr);
}
- } else {
+ } else if(Conf_Ident) {
Log(LOG_INFO, "IDENT lookup for connection %d: no result.", i);
- if (Conf_NoticeAuth && Conf_Ident)
+ if (Conf_NoticeAuth)
(void)Conn_WriteStr(i,
"NOTICE AUTH :*** No ident response");
}
#endif
- if (Conf_NoticeAuth)
- (void)Handle_Write(i);
+ if (Conf_NoticeAuth) {
+ /* Send buffered data to the client, but break on
+ * errors because Handle_Write() would have closed
+ * the connection again in this case! */
+ if (!Handle_Write(i))
+ return;
+ }
Class_HandleServerBans(c);
}