diff --git a/src/server/ChangeLog b/src/server/ChangeLog index bbdefed366fce51d30d008c654931ca6795a0d1c..63597f7518c1068c9cab2c50af3108173d782d47 100644 --- a/src/server/ChangeLog +++ b/src/server/ChangeLog @@ -1,3 +1,31 @@ +Thu Apr 16 00:46:50 1992 Per Cederqvist (ceder@lysator) + + * Use isc-0.97: + * Makefile (LIBS): -lisc-new instead of -lold-isc. + * Makefile (GENOBJS, GEN_SRCS): Include isc-malloc.[oc]. + * isc-malloc.[hc]: New files. (Compare string-malloc.[hc]). + * Various namechanges: + ISCMCB -> IscMaster + ISCECB -> IscEvent + ISCSCB -> IscSession + + * Use isc_destroy() instead of isc_close(). + * isc-interfacs.h: Include <isc-new.h> instead of <isc.h>. + * lyskomd.h (listen_client, listen_mux): Now (IscSession *). + Updated all references. + * lyskomd.h (kom_server_mcb): Now declared here. + * ramkomd.c ("isc-malloc.h"): Include instead of <isc-dump.h>. + * ramkomd.c (server_init): Use the new configuration scheme. + (Needs som further investigation). + * ramkomd.c (dump_exit_statistics): Don't + dump_isc_message_counts() since it doesn't exist. + +Wed Apr 15 19:52:20 1992 Per Cederqvist (ceder@lysator) + + * connections.c (add_to_kill_list): Check if the connection + already was on the kill-list. If so, print a diagnostic and + return. + Tue Apr 14 17:21:26 1992 Per Cederqvist (ceder@lysator) * Version 1.1.2 (not released). diff --git a/src/server/connections.c b/src/server/connections.c index 5b2d35868008f51e3524940afca0950e0bc99a09..c80014533ed317348856adf91c6b9a162d076f77 100644 --- a/src/server/connections.c +++ b/src/server/connections.c @@ -1,5 +1,5 @@ /* - * $Id: connections.c,v 0.16 1992/04/11 20:02:20 ceder Exp $ + * $Id: connections.c,v 0.17 1992/04/15 22:58:48 ceder Exp $ * Copyright (C) 1991 Lysator Academic Computer Association. * * This file is part of the LysKOM server. @@ -30,7 +30,7 @@ * Created by Willf|r 31/3-90. Mostly written by ceder. */ -static char *rcsid = "$Id: connections.c,v 0.16 1992/04/11 20:02:20 ceder Exp $"; +static char *rcsid = "$Id: connections.c,v 0.17 1992/04/15 22:58:48 ceder Exp $"; #include <errno.h> @@ -67,7 +67,7 @@ static char *rcsid = "$Id: connections.c,v 0.16 1992/04/11 20:02:20 ceder Exp $" #include "internal-connections.h" #include "rfc931.h" -ISCMCB * kom_server_mcb = NULL; +IscMaster * kom_server_mcb = NULL; Connection * active_connection = NULL; /* @@ -401,7 +401,7 @@ mux_handle_packet(Mux *mux) cp->session_no, (int)cp->hostname.len, cp->hostname.string, - mux->scb->info.tcp.hostname)); + isc_gethostname(mux->scb->info.tcp.raddr, NULL, 0))); BUG((" is connecting]\n")); break; @@ -419,7 +419,7 @@ mux_handle_packet(Mux *mux) BUG(("\n[Client %d via MUX(%s)", cp->session_no, - mux->scb->info.tcp.hostname)); + isc_gethostname(mux->scb->info.tcp.raddr, NULL, 0))); BUG((" is logging out by request]\n")); add_to_kill_list(cp); @@ -464,13 +464,13 @@ mux_logout(Mux *mp) { BUG(("\n[Client %d via MUX(%s)", mp->client_v[i].conn->session_no, - mp->scb->info.tcp.hostname)); + isc_gethostname(mp->scb->info.tcp.raddr, NULL, 0))); BUG((" is logging out by MUX shutdown]\n")); logout_client(mp->client_v[i].conn); end_of_atomic(FALSE); } - isc_close(mp->scb); + isc_destroy(kom_server_mcb, mp->scb); mux_destruct(mp); } @@ -639,6 +639,16 @@ int kill_list_size = 0; void add_to_kill_list(Connection *conn) { + int i; + + for (i = 0; i < kill_list_size; i++) + if (kill_list[kill_list_size] == conn->session_no) + { + log("add_to_kill_list(%d): already present as %d of %d.\n", + conn->session_no, i, kill_list_size); + return; + } + if (kill_list == NULL) { if (kill_list_size != 0) @@ -694,7 +704,7 @@ check_kill_flg(void) } static void -login_request(ISCECB *event) +login_request(IscEvent *event) { Connection * cp; char *realuser; @@ -704,7 +714,7 @@ login_request(ISCECB *event) BUG(("Connection attempt rejected.\n")); isc_printf(event->session, "%s", "%% No connections left.\n"); isc_flush(event->session); - isc_close(event->session); + isc_destroy(kom_server_mcb, event->session); async_rejected_connection(); return; @@ -715,11 +725,11 @@ login_request(ISCECB *event) { isc_printf(event->session, "%s", "%% No logins allowed.\n"); isc_flush(event->session); - isc_close(event->session); + isc_destroy(kom_server_mcb, event->session); return; } - if (event->session->info.tcp.listen == listen_mux) + if (event->session == listen_mux) { /* Multiplexer requesting connection */ @@ -729,7 +739,8 @@ login_request(ISCECB *event) event->session->udg = mux_create(MUX_TYPE_MUX, event->session); BUG(("MUX #%d at %s connecting.\n", - (int)event->session, event->session->info.tcp.hostname)); + (int)event->session, + isc_gethostname(event->session->info.tcp.raddr, NULL, 0))); } else { @@ -743,7 +754,9 @@ login_request(ISCECB *event) cp = new_client(); cp->mux = event->session->udg; - s_crea_str(&cp->hostname, event->session->info.tcp.hostname); + s_crea_str(&cp->hostname, + isc_gethostname(event->session->info.tcp.raddr, + NULL, 0)); /* Get the real user name, as returned by the Ident protocol (rfc 931). */ @@ -754,20 +767,20 @@ login_request(ISCECB *event) mux_addclient(event->session->udg, 0, cp); BUG(("\n[Client %d from %s", cp->session_no, - event->session->info.tcp.hostname)); + isc_gethostname(event->session->info.tcp.raddr, NULL, 0))); BUG((" is connecting]\n")); } } static void -logout_request(ISCECB *event) +logout_request(IscEvent *event) { Connection * cp; if (event->session->udg->type == MUX_TYPE_MUX) { BUG(("\n[MUX #%d at %s", (int)event->session, - event->session->info.tcp.hostname)); + isc_gethostname(event->session->info.tcp.raddr, NULL, 0))); BUG((" is logging out]\n")); /* @@ -780,7 +793,7 @@ logout_request(ISCECB *event) cp = event->session->udg->client_v[0].conn; BUG(("\n[Client %d from %s", cp->session_no, - event->session->info.tcp.hostname)); + isc_gethostname(event->session->info.tcp.raddr, NULL, 0))); BUG((" is logging out]\n")); add_to_kill_list(cp); @@ -789,7 +802,7 @@ logout_request(ISCECB *event) static void -message_request(ISCECB *event) +message_request(IscEvent *event) { Connection *cp; String tmp_str; @@ -825,7 +838,7 @@ timevaldiff(struct timeval a, void toploop(void) { - ISCECB * event; + IscEvent * event; Bool pending_input = TRUE; /* Should be TRUE whenever there is or might be pending input from any client in the unparsed