--- lmtp2nntp_config.h 2002/01/17 17:01:55 1.3
+++ lmtp2nntp_config.h 2002/01/21 16:21:16 1.4
@@ -27,34 +27,42 @@
#include "lmtp2nntp_global.h"
#include "val.h"
+struct optionconfig_s;
+typedef struct optionconfig_s optionconfig_t;
+
typedef struct {
- int childsmax;
- int daemonize;
- int kill;
- char *pidfile;
- argz_t acl;
- char *bind;
- char *client;
- argz_t destination;
- char *groupmode;
- argz_t headervalue;
- argz_t include;
- char *size;
- int *timeoutlmtpaccept;
- int *timeoutlmtpread;
- int *timeoutlmtpwrite;
- int *timeoutnntpconnect;
- int *timeoutnntpread;
- int *timeoutnntpwrite;
- char *mailfrom;
- char *nodename;
- char *operationmode;
- char *l2spec;
- char *uid;
- argz_t restrictheader;
- argz_t newsgroup;
- /**/
- val_t *vo;
+ int childsmax;
+ int daemonize;
+ int kill;
+ char *pidfile;
+ argz_t acl;
+ char *bind;
+ char *client;
+ argz_t destination;
+ char *groupmode;
+ argz_t headervalue;
+ argz_t include;
+ char *size;
+ int *timeoutlmtpaccept;
+ int *timeoutlmtpread;
+ int *timeoutlmtpwrite;
+ int *timeoutnntpconnect;
+ int *timeoutnntpread;
+ int *timeoutnntpwrite;
+ char *mailfrom;
+ char *nodename;
+ char *operationmode;
+ char *l2spec;
+ char *uid;
+ argz_t restrictheader;
+ argz_t newsgroup;
+ /*FIXME above*/
+ optionconfig_t *first;
+ optionconfig_t *last;
+ val_t *vo; /* val_t for all options */
+ int pi; /* popt index to next record */
+ int pn; /* popt number of available records */
+ struct popt_option *pt; /* popt table */
} lmtp2nntp_option_t;
@@ -65,6 +73,14 @@
OPTION_ERR_VAL /* libval failed */
} lmtp2nntp_option_rc_t;
-lmtp2nntp_option_rc_t option_create (lmtp2nntp_option_t **);
-lmtp2nntp_option_rc_t option_parse (lmtp2nntp_option_t *, int, char **);
-lmtp2nntp_option_rc_t option_destroy(lmtp2nntp_option_t *);
+typedef enum {
+ OPT_FLAG,
+ OPT_SINGLE,
+ OPT_MULTI
+} optiontype_t;
+
+typedef void (optionloop_cb_t)(optionconfig_t *oc, char *arg, char *cbctx);
+lmtp2nntp_option_rc_t option_create (lmtp2nntp_option_t **);
+lmtp2nntp_option_rc_t option_register(lmtp2nntp_option_t *, char *, char, optiontype_t, optionloop_cb_t *, char *, char *, char *);
+lmtp2nntp_option_rc_t option_parse (lmtp2nntp_option_t *, int, char **);
+lmtp2nntp_option_rc_t option_destroy (lmtp2nntp_option_t *);
|