OSSP CVS Repository

ossp - ossp-pkg/lmtp2nntp/fixme.h
Not logged in
[Honeypot]  [Browse]  [Directory]  [Home]  [Login
[Reports]  [Search]  [Ticket]  [Timeline
  [Raw

ossp-pkg/lmtp2nntp/fixme.h

/*FIXME this structure should not be global! This is a temporary fix to allow
 * code migration from lmtp2nntp_main.c's getopt switch to lmtp2nntp_config.[ch]
 */
#ifndef __FIXME_H__
#define __FIXME_H__

#include <val.h>
#include <var.h>
#include <sa.h>
struct acl {
    char      *acl;
    int        not;
    size_t     prefixlen;
    sa_addr_t *saa;
};
struct nntp_st;
typedef struct nntp_st nntp_t;
#include "lmtp2nntp_nntp.h"
struct ns {
    sa_addr_t      *saa;
    sa_t           *sa;
    nntp_t         *nntp;
    nntp_rc_t       rc;
    l2_channel_t   *l2;
};
struct session {
    int     lhlo_seen;
    char   *lhlo_domain;
};
#include <sys/utsname.h>

struct headerrule_st;
typedef struct headerrule_st headerrule_t;
#include <pcre.h>
struct headerrule_st {
    headerrule_t *next;
    int           pri;
    char         *regex;
    char         *name;
    char         *val;
    pcre         *pcreRegex;
    pcre_extra   *pcreExtra;
};
headerrule_t *FIXME1;

struct headerdata_st;
typedef struct headerdata_st headerdata_t;
struct headerdata_st {
    headerdata_t *prev;
    headerdata_t *next;
    char *name;
    int ndata; /* =0 means data is invalid, =1 means use data.s, >1 means use data.m */
    union {
        char *s;
        char **m;
    } data;
};
headerdata_t *FIXME2;

typedef struct {
    l2_context_t    ctx;
    val_t          *prival;
    val_t          *val;
    char           *progname;
    int             option_groupmode;
    int             option_operationmode;
    char           *option_operationmodefakestatus;
    char           *option_operationmodefakedsn;
    int             option_maxmessagesize;
    headerrule_t   *option_firstheaderrule;
    int             option_timeout_lmtp_accept;
    int             option_timeout_lmtp_read;
    int             option_timeout_lmtp_write;
    int             option_timeout_nntp_connect;
    int             option_timeout_nntp_read;
    int             option_timeout_nntp_write;
    char           *option_nodename;
    char           *option_mailfrom;
    char           *option_restrictheader;
    char           *option_pidfile;
    int             option_killflag;
    uid_t           option_uid;
    int             option_daemon;
    int             nacl; /* number of acl structures found at pacl */
    struct acl     *pacl; /* pointer to an array of acl structures */
    int             option_childsmax;
    int             active_childs;
    l2_env_t       *l2_env;
    l2_channel_t   *l2;
    sa_addr_t      *saaServerbind;
    sa_t           *saServerbind;
    sa_addr_t      *saaClientbind;
    sa_t           *saClientbind;
    sa_addr_t      *saaIO;
    sa_t           *saIO;
    int             fdIOi;
    int             fdIOo;
    int             nns; /* number of ns structures found at pns */
    struct ns      *pns; /* pointer to an array of ns structures */
    char           *azGroupargs;
    size_t          asGroupargs;
    struct          session session;
    msg_t          *msg;
    var_t          *config_varregex;
    var_t          *config_varctx;
    int             msgcount; /* number of messages processed, used for creating unique ids */
} lmtp2nntp_t;

#define ERR_EXECUTION 1
#define ERR_DELIVERY -2

enum {
    GROUPMODE_UNDEF = 0,
    GROUPMODE_ARG,
    GROUPMODE_ENVELOPE,
    GROUPMODE_HEADER
};

enum {
    OPERATIONMODE_UNDEF = 0,
    OPERATIONMODE_FAKE,
    OPERATIONMODE_POST,
    OPERATIONMODE_FEED
};

void msg_headermatrixbuildup(msg_t *msg);
void msg_headermatrixteardwn(msg_t *msg);
void headerrewrite(lmtp2nntp_t *ctx);

#include "l2.h"
extern l2_handler_t l2_handler_var;
extern void logbook(l2_channel_t *, l2_level_t, const char *, ...);
#endif /* __FIXME_H__ */

CVSTrac 2.0.1