diff --git a/src/server/ChangeLog b/src/server/ChangeLog index 63597f7518c1068c9cab2c50af3108173d782d47..2a7a35706c8531c18c785d209a182058058235e5 100644 --- a/src/server/ChangeLog +++ b/src/server/ChangeLog @@ -1,3 +1,13 @@ +Mon May 18 23:27:04 1992 Per Cederqvist (ceder@lysator) + + * connections.h (Connection): Added the boolean field + username_valid. + * internal-connections.c (new_client, EMPTY_CONNECTION): + Initialize it. + * prot-a.c (prot_a_parse_packet): Use it to test if username is + set or not (instead of just assuming that an empty username is + unset). + Thu Apr 16 00:46:50 1992 Per Cederqvist (ceder@lysator) * Use isc-0.97: diff --git a/src/server/connections.h b/src/server/connections.h index 180c5d4b0b795988b60fd35627dbab57a15b723d..94a7fd21503ac784d33d6feece4524c114e21a07 100644 --- a/src/server/connections.h +++ b/src/server/connections.h @@ -1,5 +1,5 @@ /* - * $Id: connections.h,v 0.10 1992/04/10 11:56:32 ceder Exp $ + * $Id: connections.h,v 0.11 1992/05/18 23:09:19 ceder Exp $ * Copyright (C) 1991 Lysator Academic Computer Association. * * This file is part of the LysKOM server. @@ -23,7 +23,7 @@ * Please mail bug reports to bug-lyskom@lysator.liu.se. */ /* - * $Id: connections.h,v 0.10 1992/04/10 11:56:32 ceder Exp $ + * $Id: connections.h,v 0.11 1992/05/18 23:09:19 ceder Exp $ * * connections.h -- The top level of the communication packet. * @@ -44,7 +44,8 @@ typedef struct connection { struct connection * prev; struct connection * next; - /* The following are used by services.c */ + /* The following are used by services.c (which has been split + into many files such as conference.c and person.c). */ Pers_no pers_no; /* 0 if not yet logged in. */ Person * person; /* NULL if not yet logged in. */ @@ -53,10 +54,11 @@ typedef struct connection { Conf_no cwc; /* Current working conference */ String what_am_i_doing; u_char ena_level; /* Enable level */ - String username; /* Userid and hostname. */ + String username; /* Given userid. */ String hostname; /* Real hostname */ String ident_user; /* Real username */ Bool invisible; /* Is this session invisible? */ + Bool username_valid; /* Set once username is set. */ /* The following are used by server/connections.c */ diff --git a/src/server/internal-connections.c b/src/server/internal-connections.c index b3c7e9f763d4c697ac6b8d2d4c94be3ec25aee60..0bcea8fd5110350b07c204bb877da571fe80d0ff 100644 --- a/src/server/internal-connections.c +++ b/src/server/internal-connections.c @@ -1,5 +1,5 @@ /* - * $Id: internal-connections.c,v 0.9 1992/04/10 11:56:34 ceder Exp $ + * $Id: internal-connections.c,v 0.10 1992/05/18 23:09:21 ceder Exp $ * Copyright (C) 1991 Lysator Academic Computer Association. * * This file is part of the LysKOM server. @@ -28,7 +28,7 @@ * Abstract routines on the data type Connection. */ -static char *rcsid = "$Id: internal-connections.c,v 0.9 1992/04/10 11:56:34 ceder Exp $"; +static char *rcsid = "$Id: internal-connections.c,v 0.10 1992/05/18 23:09:21 ceder Exp $"; #include "exp.h" @@ -54,7 +54,7 @@ INTERNAL const Connection EMPTY_CONNECTION = 0, NULL, NO_TIME, 0, EMPTY_STRING_i, 0, EMPTY_STRING_i, EMPTY_STRING_i, EMPTY_STRING_i, - FALSE, + FALSE, FALSE, /* Used by server/connections.c */ NULL, '\0', 0, 0, 0, 0, 0, 0, 0, @@ -118,6 +118,7 @@ new_client(void) c->username = EMPTY_STRING; c->ident_user = EMPTY_STRING; c->invisible = FALSE; + c->username_valid = FALSE; return c; } diff --git a/src/server/prot-a.c b/src/server/prot-a.c index a334cc7e7da0e9615b4ed65c7d6214b4f84eaff2..0b4010398fdc87756cf5c2a940bbc9f05f5ac3b8 100644 --- a/src/server/prot-a.c +++ b/src/server/prot-a.c @@ -1,5 +1,5 @@ /* - * $Id: prot-a.c,v 0.14 1992/04/04 17:32:55 ceder Exp $ + * $Id: prot-a.c,v 0.15 1992/05/18 23:09:23 ceder Exp $ * Copyright (C) 1991 Lysator Academic Computer Association. * * This file is part of the LysKOM server. @@ -26,7 +26,7 @@ * Protocol A. */ -static char *rcsid = "$Id: prot-a.c,v 0.14 1992/04/04 17:32:55 ceder Exp $"; +static char *rcsid = "$Id: prot-a.c,v 0.15 1992/05/18 23:09:23 ceder Exp $"; #include <stdio.h> @@ -329,7 +329,7 @@ prot_a_is_legal_fnc(Call_header fnc) void prot_a_parse_packet(Connection *client) { - if ( s_empty(client->username) ) + if ( client->username_valid == FALSE ) { /* Connection not established yet */ @@ -338,7 +338,8 @@ prot_a_parse_packet(Connection *client) client->username = client->c_string0; /* Kludge to deal with */ client->c_string0 = EMPTY_STRING; /* "A5B" as first input. */ /* Protokoll B will not suffer from this... */ - + + client->username_valid = TRUE; mux_printf(client, "LysKOM\n"); mux_flush(client); BUG(("[Client %d is logged on]\n", client->session_no));