The ident patch has a small problem in the file ident.c and in
function ident_check().
When checking for banned sites, the following code comes from the patch:
/* extra ban check */
if (isbanned(d->host) == BAN_ALL) {
close_socket(d);
sprintf(buf, "Connection attempt denied from [%s]", d->host);
mudlog(buf, CMP, LVL_MED_GOD, TRUE);
return;
}
Note that the socket is closed and in close_socket, the descriptor is
free'd. This poses a problem with trying to get the hostname of a
non-existant descriptor.
The fix is simple. Move the close_socket call. Like so:
/* extra ban check */
if (isbanned(d->host) == BAN_ALL) {
sprintf(buf, "Connection attempt denied from [%s]", d->host);
mudlog(buf, CMP, LVL_MED_GOD, TRUE);
close_socket(d);
return;
}
Good luck and have fun!
John Evans <evansj@hi-line.net>
May the source be with you.
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST