/* 4m v2.15 (discuser.c)
 * (C) Copyright 1990 by Carrick Sean Casey
 * (C) Copyright 1993 by Scott Chasin and Michaeljon Miller
 *
 * 3-22-93 See file COPYING for copyright information.
 *
 * Disconnect user
 *
 */

#include <sys/types.h>

#ifdef NEEDS_SELECT
# include "select.h"
#endif

#include "ipcf.h"
#include "externs.h"


extern int close ();
extern int shutdown();
extern void s_lost_user();

void disconnectuser(user)
     int user;
{
    int i;

    shutdown(user, 2);
    close(user);

    FD_CLR(user, &fdset);

 /* walk the highestfd down so we don't waste time in select() */
    if (user == highestfd) {
        for (i = FD_SETSIZE - 1; i > 0 && !FD_ISSET(i, &fdset); i--);
        highestfd = i;
    }

 /* let main program know user went bye bye */
    s_lost_user(user);

    return;
}
