Select Git revision
Crypto.pmod
-
Niels Möller authored
Rev: lib/modules/Crypto.pmod:1.1 Rev: lib/modules/Crypto.pmod.pike:1.4(DEAD) Rev: lib/modules/Crypto/randomness.pmod:1.1 Rev: lib/modules/Crypto/randomness.pmod.pike:1.3(DEAD)
Niels Möller authoredRev: lib/modules/Crypto.pmod:1.1 Rev: lib/modules/Crypto.pmod.pike:1.4(DEAD) Rev: lib/modules/Crypto/randomness.pmod:1.1 Rev: lib/modules/Crypto/randomness.pmod.pike:1.3(DEAD)
rfc931.c 2.37 KiB
/*
* $Id: rfc931.c,v 1.14 1994/04/05 08:04:27 ceder Exp $
* Copyright (C) 1991, 1992, 1993, 1994 Lysator Academic Computer Association.
*
* This file is part of the LysKOM server.
*
* LysKOM is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* LysKOM is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License
* along with LysKOM; see the file COPYING. If not, write to
* Lysator, c/o ISY, Linkoping University, S-581 83 Linkoping, SWEDEN,
* or the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
* MA 02139, USA.
*
* Please mail bug reports to bug-lyskom@lysator.liu.se.
*/
/*
* This function retrieves the real user that owns the TCP/IP link
* that is connecting via the IscSession "scb". The returned string
* points to static data which is overwritten on the next call.
*
* Link with "-lauthuser".
*/
#include <errno.h>
#include <stdio.h>
#ifdef HAVE_LIBAUTHUSER
# include <authuser.h>
#endif
#ifdef HAVE_STDARG_H
# include <stdarg.h>
#endif
#include <sys/types.h>
#include <sys/socket.h>
#include <time.h>
#include "log.h"
#include "isc-interface.h"
#include "s-string.h"
#include "misc-types.h"
#include "kom-types.h"
#include "param.h"
char *
get_real_username(IscSession *scb,
char *hostname)
{
#ifdef HAVE_LIBAUTHUSER
unsigned long inlocal;
unsigned long inremote;
unsigned short local;
unsigned short remote;
char *result;
time_t before, after;
if (param.authentication_level == 0)
return NULL;
if (auth_fd2(scb->fd, &inlocal, &inremote,
&local, &remote) == -1)
return NULL;
time(&before);
result = auth_tcpuser3(inlocal, inremote, local, remote, 20);
if (result == NULL && errno == ETIMEDOUT)
log ("Identd request to %s timed out.\n", hostname);
else
{
time(&after);
if (after-before > 15)
log ("Identd at %s said %s after %d seconds.\n",
hostname,
result == NULL ? "(error)" : result,
(int)after-before);
}
return result;
#else
return "unknown";
#endif
}