Hacking Linux Exposed

About
Authors
Contents
Reviews
Foreword
Purchase

Articles
Books
Sourcecode
Tools
Errata

Home

 


(view this code in a separate window)

/*
 * An example of how you can implement
 * TCP wrappers in your own code.
 *
 * See the TCP wrapper library and tcpd.c file for
 * more examples.
 *
 * Copyright 2001, James Lee
 * Released under the GPL.
 *
 */

/*
 * Include the following in an included .h file,
 * or at the top of the .c file that uses
 * TCP wrappers
 */

#ifdef USE_LIBWRAP
#include <tcpd.h>

/* These default severities are probably acceptable. */
int allow_severity=LOG_NOTICE;
int deny_severity=LOG_WARNING;

#endif





/* The following goes in your actual .c file */

/*
* Insert code like the following after a connection
* is established, before the connection is used.
*/

#ifdef USE_LIBWRAP
      struct request_info request;

      request_init(&request, RQ_DAEMON, options.servname, RQ_FILE, local, 0);
      fromhost(&request);

      if (!hosts_access(&request)) {
          log(LOG_WARNING, "Connection from %s:%d REFUSED by libwrap",
              inet_ntoa(addr.sin_addr), ntohs(addr.sin_port));
          log(LOG_DEBUG, "See hosts_access(5) for details");
          goto cleanup_local;
      }
#endif