From 7091a9572d9fca9f7a9c23029a77e13e0154889c Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Sun, 16 Apr 2000 19:03:47 +0000 Subject: [PATCH] * Minor changes to avoid host lookup for local clients --- citadel/ChangeLog | 4 +++- citadel/citadel.c | 6 ++++-- citadel/citserver.c | 29 ++++++++++++++++++++++------- citadel/locate_host.c | 3 +++ 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/citadel/ChangeLog b/citadel/ChangeLog index 08e433057..edb57b400 100644 --- a/citadel/ChangeLog +++ b/citadel/ChangeLog @@ -1,4 +1,7 @@ $Log$ + Revision 571.2 2000/04/16 19:03:47 ajc + * Minor changes to avoid host lookup for local clients + Revision 571.1 2000/04/15 19:55:52 ajc * Fixed "Unvalidated users appear even with registration disabled" bug #36 @@ -1855,4 +1858,3 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant Fri Jul 10 1998 Art Cancro * Initial CVS import - diff --git a/citadel/citadel.c b/citadel/citadel.c index 0524ec989..1f2347eff 100644 --- a/citadel/citadel.c +++ b/citadel/citadel.c @@ -834,9 +834,11 @@ int main(int argc, char **argv) signal(SIGTERM, dropcarr); /* Cleanup gracefully if terminated */ signal(SIGCONT, catch_sigcont); /* Catch SIGCONT so we can reset terminal */ - printf("Attaching to server...\r"); + printf("Attaching to server... \r"); fflush(stdout); attach_to_server(argc, argv); + printf("Establishing session...\r"); + fflush(stdout); send_ansi_detect(); @@ -851,7 +853,7 @@ int main(int argc, char **argv) cls(0); color(7); - printf("%-22s\n%s\n%s\n", serv_info.serv_software, serv_info.serv_humannode, + printf("%-23s\n%s\n%s\n", serv_info.serv_software, serv_info.serv_humannode, serv_info.serv_bbs_city); screenwidth = 80; /* default screen dimensions */ screenheight = 24; diff --git a/citadel/citserver.c b/citadel/citserver.c index 7acaa6701..2ed7016c1 100644 --- a/citadel/citserver.c +++ b/citadel/citserver.c @@ -366,8 +366,10 @@ int is_public_client(char *where) char buf[256]; FILE *fp; - if (hostnames_match(where,"localhost")) return(1); - if (hostnames_match(where,config.c_fqdn)) return(1); + lprintf(9, "Checking whether %s is a public client\n", where); + + if (hostnames_match(where, "localhost")) return(1); + if (hostnames_match(where, config.c_fqdn)) return(1); fp = fopen("public_clients","r"); if (fp == NULL) return(0); @@ -397,6 +399,7 @@ void cmd_iden(char *argbuf) char desc[256]; char from_host[256]; struct in_addr addr; + int do_lookup = 0; if (num_parms(argbuf)<4) { cprintf("%d usage error\n",ERROR); @@ -418,24 +421,36 @@ void cmd_iden(char *argbuf) safestrncpy(CC->cs_clientname, desc, sizeof CC->cs_clientname); CC->cs_clientname[31] = 0; - lprintf(9, "Looking up hostname '%s'\n", from_host); - if ((strlen(from_host)>0) - && ( (CC->is_local_socket) || (is_public_client(CC->cs_host)))) { - if ((addr.s_addr = inet_addr(from_host)) != -1) + if (strlen(from_host) > 0) { + if (CC->is_local_socket) do_lookup = 1; + else if (is_public_client(CC->cs_host)) do_lookup = 1; + } + + if (do_lookup) { + lprintf(9, "Looking up hostname '%s'\n", from_host); + if ((addr.s_addr = inet_addr(from_host)) != -1) { locate_host(CC->cs_host, &addr); + } else { safestrncpy(CC->cs_host, from_host, sizeof CC->cs_host); CC->cs_host[24] = 0; } } + lprintf(7, "client %d/%d/%01d.%02d (%s)\n", + dev_code, + cli_code, + (rev_level / 100), + (rev_level % 100), + desc); + syslog(LOG_NOTICE,"client %d/%d/%01d.%02d (%s)\n", dev_code, cli_code, (rev_level / 100), (rev_level % 100), desc); - cprintf("%d Ok\n",OK); + cprintf("%d Ok\n",OK); } diff --git a/citadel/locate_host.c b/citadel/locate_host.c index b4f5cdbad..a3dcd4954 100644 --- a/citadel/locate_host.c +++ b/citadel/locate_host.c @@ -26,6 +26,8 @@ void locate_host(char *tbuf, const struct in_addr *addr) char *i; int a1, a2, a3, a4; + lprintf(9, "locate_host() called\n"); + #ifdef HAVE_NONREENTRANT_NETDB begin_critical_section(S_NETDB); #endif @@ -66,4 +68,5 @@ void locate_host(char *tbuf, const struct in_addr *addr) #endif tbuf[25] = 0; + lprintf(9, "locate_host() exiting\n"); } -- 2.39.2