ProFTPD Developer's Guide: Bindings API Structures

ProFTPD Version 1.2


Table of Contents

Bindings API Structures
The Bindings API uses and manipulates two similar structures, called pr_ipbind_t and pr_namebind_t, respectively.

The code definining the structures of these objects is in include/bindings.h, but is included here for your reading pleasure:

/* Structure associating an IP address to a server_rec */
typedef struct ipbind_rec {
  struct ipbind_rec *ib_next;

  /* IP address to which this binding is "bound" */
  p_in_addr_t ib_addr;
  unsigned int ib_port;

  /* Default server to handle requests to this binding.  If namebinds are
   * present, they will be checked before using this server
   */
  server_rec *ib_server;

  /* List of name-based servers bound to the above IP address.  Note that
   * if this functionality becomes widely adopted and used, a more efficient
   * search-and-lookup mechanism will be needed, for performance reasons.
   */
  array_header *ib_namebinds;

  /* Listen connection, if separate from the main socket */
  conn_t *ib_listen;

  /* If this binding is the DefaultServer binding */
  unsigned char ib_isdefault;

  /* If this binding handles localhost requests */
  unsigned char ib_islocalhost;

  /* If this binding is active */
  unsigned char ib_isactive;

} pr_ipbind_t;

/* Structure associating a name to a server_rec */
typedef struct namebind_rec {
  server_rec *nb_server;
  const char *nb_name;
  unsigned char nb_isactive;
} pr_namebind_t;

Table of Contents



Author: $Author: castaglia $
Last Updated: $Date: 2002/07/15 15:26:19 $


© Copyright 2000-2002 TJ Saunders
All Rights Reserved