DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T r

⟦fd490a021⟧ TextFile

    Length: 1368 (0x558)
    Types: TextFile
    Names: »refuse.c«

Derivation

└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen
    └─⟦62b59102f⟧ »./log_tcp/3.1.tar.Z« 
        └─⟦1de3ed35f⟧ 
            └─⟦this⟧ »log_tcp/refuse.c« 

TextFile

#if defined(PARANOID) || defined(HOSTS_ACCESS)

 /*
  * refuse - do the necessary cleanup if we refuse service to some host. This
  * code is never invoked when access control and protection against bad host
  * names are disabled.
  * 
  * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
  */

#ifndef lint
static char sccsid[] = "@(#) refuse.c 1.1 91/10/02 23:01:53";
#endif

/* System libraries. */

#include <sys/types.h>
#include <sys/param.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <syslog.h>

extern void exit();

/* Local stuff. */

#include "log_tcp.h"

/* refuse - refuse request from bad host */

void    refuse(f)
struct from_host *f;
{
    char    buf[BUFSIZ];
    struct sockaddr sa;
    int     size = sizeof(sa);

    syslog(LOG_WARNING, "refused connect from %s", f->source);

    /*
     * In the case of non-connection-oriented services we must discard the
     * packet sent by the client. Otherwise, a fresh daemon will be started
     * each time the present one exits. Some systems insist on a non-zero
     * source address argument in the recvfrom() call below.
     */

    if (f->sock_type == FROM_UNCONNECTED)
	(void) recvfrom(0, buf, sizeof(buf), 0, &sa, &size);

    /* Terminate with zero exit status to keep the inetd happy. */

    exit(0);
}

#endif