Postfix3.3.1
データ構造 | マクロ定義 | 型定義 | 関数 | 変数
postmulti.c ファイル
#include <sys_defs.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <vstream.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <syslog.h>
#include <errno.h>
#include <ctype.h>
#include <stddef.h>
#include <msg.h>
#include <msg_vstream.h>
#include <msg_syslog.h>
#include <vstring_vstream.h>
#include <stringops.h>
#include <clean_env.h>
#include <argv.h>
#include <safe.h>
#include <mymalloc.h>
#include <htable.h>
#include <name_code.h>
#include <ring.h>
#include <warn_stat.h>
#include <mail_version.h>
#include <mail_params.h>
#include <mail_conf.h>
#include <mail_parm_split.h>

[ソースコード]

データ構造

struct  SHARED_PATH
 
struct  instance
 
struct  INST_SELECTION
 
struct  NAME_ASSIGNMENT
 

マクロ定義

#define ITER_CMD_POSTFIX   (1<<0) /* postfix(1) iterator mode */
 
#define ITER_CMD_LIST   (1<<1) /* listing iterator mode */
 
#define ITER_CMD_GENERIC   (1<<2) /* generic command iterator mode */
 
#define ITER_CMD_MASK_ALL   (ITER_CMD_POSTFIX | ITER_CMD_LIST | ITER_CMD_GENERIC)
 
#define EDIT_CMD_CREATE   (1<<4) /* create new instance */
 
#define EDIT_CMD_IMPORT   (1<<5) /* import existing instance */
 
#define EDIT_CMD_DESTROY   (1<<6) /* destroy instance */
 
#define EDIT_CMD_DEPORT   (1<<7) /* export instance */
 
#define EDIT_CMD_ENABLE   (1<<8) /* enable start/stop */
 
#define EDIT_CMD_DISABLE   (1<<9) /* disable start/stop */
 
#define EDIT_CMD_ASSIGN   (1<<10) /* assign name/group */
 
#define EDIT_CMD_INIT   (1<<11) /* hook into main.cf */
 
#define EDIT_CMD_MASK_ADD   (EDIT_CMD_CREATE | EDIT_CMD_IMPORT)
 
#define EDIT_CMD_MASK_DEL   (EDIT_CMD_DESTROY | EDIT_CMD_DEPORT)
 
#define EDIT_CMD_MASK_ASSIGN   (EDIT_CMD_MASK_ADD | EDIT_CMD_ASSIGN)
 
#define EDIT_CMD_MASK_ENB   (EDIT_CMD_ENABLE | EDIT_CMD_DISABLE)
 
#define EDIT_CMD_MASK_ALL
 
#define EDIT_CMD_CODE(str)   name_code(edit_command_table, NAME_CODE_FLAG_STRICT_CASE, (str))
 
#define EDIT_CMD_STR(code)   str_name_code(edit_command_table, (code))
 
#define NAME_PREFIX   "postfix-"
 
#define HAS_NAME_PREFIX(name)   (strncmp((name), NAME_PREFIX, sizeof(NAME_PREFIX)-1) == 0)
 
#define NEED_NAME_PREFIX(name)   ((name) != 0 && strcmp((name), "-") != 0 && !HAS_NAME_PREFIX(name))
 
#define NAME_SUFFIX(name)   ((name) + sizeof(NAME_PREFIX) - 1)
 
#define RING_TO_INSTANCE(ring_ptr)   RING_TO_APPL(ring_ptr, INSTANCE, ring)
 
#define RING_PTR_OF(x)   (&((x)->ring))
 
#define FOREACH_INSTANCE(entry)
 
#define FOREACH_SECONDARY_INSTANCE(entry)
 
#define NEXT_ITERATOR_INSTANCE(flags, entry)   (((flags) & ITER_FLAG_REVERSE) ? ring_pred(entry) : ring_succ(entry))
 
#define FOREACH_ITERATOR_INSTANCE(flags, entry)
 
#define INST_SEL_NONE   0 /* default: no selection */
 
#define INST_SEL_ALL   1 /* select all instances */
 
#define INST_SEL_NAME   2 /* select instance name */
 
#define INST_SEL_GROUP   3 /* select instance group */
 
#define ITER_FLAG_DEFAULT   0 /* default setting */
 
#define ITER_FLAG_REVERSE   (1<<0) /* reverse iteration order */
 
#define ITER_FLAG_CHECK_DISABLED   (1<<1) /* check disabled instances */
 
#define ITER_FLAG_SKIP_DISABLED   (1<<2) /* skip disabled instances */
 
#define EXP_FLAG_MULTI_DIRS   (1<<0) /* export multi_instance_directories */
 
#define EXP_FLAG_MULTI_NAME   (1<<1) /* export multi_instance_name */
 
#define EXP_FLAG_MULTI_GROUP   (1<<2) /* export multi_instance_group */
 
#define IS_CLAIMED_BY(name)   (claim_table ? htable_find(claim_table, (name)) : 0)
 
#define INSTANCE_NAME(i)   ((i)->name ? (i)->name : (i)->config_dir)
 
#define STR(buf)   vstring_str(buf)
 
#define append_instance(ip)   insert_instance((ip), (INST_SELECTION *) 0)
 
#define SAVE_INSTANCE_NAME(val)   (*(val) ? mystrdup(val) : 0)
 
#define REQUEST_PARAM_COUNT   5 /* # of requested parameters */
 
#define CLOBBER   1
 
#define SAFE_PUNCT   "!@%-_=+:./"
 
#define DONT_UNLINK   0
 
#define DO_UNLINK   1
 
#define NO_EXPORT_FLAGS   ((int *) 0)
 
#define HELPER   "postmulti-script"
 
#define POSTFIX_CMD   "postfix"
 

型定義

typedef struct instance INSTANCE
 

関数

int main (int argc, char **argv)
 

変数

char * var_multi_start_cmds
 
char * var_multi_stop_cmds
 
char * var_multi_cntrl_cmds
 
 MAIL_VERSION_STAMP_DECLARE
 

マクロ定義詳解

#define append_instance (   ip)    insert_instance((ip), (INST_SELECTION *) 0)
#define CLOBBER   1
#define DO_UNLINK   1
#define DONT_UNLINK   0
#define EDIT_CMD_ASSIGN   (1<<10) /* assign name/group */

postmulti.c487 行目に定義があります。

#define EDIT_CMD_CODE (   str)    name_code(edit_command_table, NAME_CODE_FLAG_STRICT_CASE, (str))

postmulti.c513 行目に定義があります。

#define EDIT_CMD_CREATE   (1<<4) /* create new instance */

postmulti.c481 行目に定義があります。

#define EDIT_CMD_DEPORT   (1<<7) /* export instance */

postmulti.c484 行目に定義があります。

#define EDIT_CMD_DESTROY   (1<<6) /* destroy instance */

postmulti.c483 行目に定義があります。

#define EDIT_CMD_DISABLE   (1<<9) /* disable start/stop */

postmulti.c486 行目に定義があります。

#define EDIT_CMD_ENABLE   (1<<8) /* enable start/stop */

postmulti.c485 行目に定義があります。

#define EDIT_CMD_IMPORT   (1<<5) /* import existing instance */

postmulti.c482 行目に定義があります。

#define EDIT_CMD_INIT   (1<<11) /* hook into main.cf */

postmulti.c488 行目に定義があります。

#define EDIT_CMD_MASK_ADD   (EDIT_CMD_CREATE | EDIT_CMD_IMPORT)

postmulti.c490 行目に定義があります。

#define EDIT_CMD_MASK_ALL
値:
#define EDIT_CMD_INIT
Definition: postmulti.c:488
#define EDIT_CMD_MASK_ENB
Definition: postmulti.c:493
#define EDIT_CMD_MASK_DEL
Definition: postmulti.c:491
#define EDIT_CMD_MASK_ASSIGN
Definition: postmulti.c:492

postmulti.c494 行目に定義があります。

#define EDIT_CMD_MASK_ASSIGN   (EDIT_CMD_MASK_ADD | EDIT_CMD_ASSIGN)

postmulti.c492 行目に定義があります。

#define EDIT_CMD_MASK_DEL   (EDIT_CMD_DESTROY | EDIT_CMD_DEPORT)

postmulti.c491 行目に定義があります。

#define EDIT_CMD_MASK_ENB   (EDIT_CMD_ENABLE | EDIT_CMD_DISABLE)

postmulti.c493 行目に定義があります。

#define EDIT_CMD_STR (   code)    str_name_code(edit_command_table, (code))

postmulti.c515 行目に定義があります。

#define EXP_FLAG_MULTI_DIRS   (1<<0) /* export multi_instance_directories */

postmulti.c605 行目に定義があります。

#define EXP_FLAG_MULTI_GROUP   (1<<2) /* export multi_instance_group */

postmulti.c607 行目に定義があります。

#define EXP_FLAG_MULTI_NAME   (1<<1) /* export multi_instance_name */

postmulti.c606 行目に定義があります。

#define FOREACH_INSTANCE (   entry)
値:
for ((entry) = instance_hd; \
((entry) = ring_succ(entry)) != instance_hd;)
#define ring_succ(c)
Definition: ring.h:29

postmulti.c551 行目に定義があります。

#define FOREACH_ITERATOR_INSTANCE (   flags,
  entry 
)
値:
for ((entry) = instance_hd; \
((entry) = NEXT_ITERATOR_INSTANCE(flags, (entry))) != instance_hd;)
#define NEXT_ITERATOR_INSTANCE(flags, entry)
Definition: postmulti.c:559

postmulti.c562 行目に定義があります。

#define FOREACH_SECONDARY_INSTANCE (   entry)
値:
for ((entry) = ring_succ(instance_hd); \
((entry) = ring_succ(entry)) != instance_hd;)
#define ring_succ(c)
Definition: ring.h:29

postmulti.c555 行目に定義があります。

#define HAS_NAME_PREFIX (   name)    (strncmp((name), NAME_PREFIX, sizeof(NAME_PREFIX)-1) == 0)

postmulti.c523 行目に定義があります。

#define HELPER   "postmulti-script"
#define INST_SEL_ALL   1 /* select all instances */

postmulti.c576 行目に定義があります。

#define INST_SEL_GROUP   3 /* select instance group */

postmulti.c578 行目に定義があります。

#define INST_SEL_NAME   2 /* select instance name */

postmulti.c577 行目に定義があります。

#define INST_SEL_NONE   0 /* default: no selection */

postmulti.c575 行目に定義があります。

#define INSTANCE_NAME (   i)    ((i)->name ? (i)->name : (i)->config_dir)

postmulti.c635 行目に定義があります。

#define IS_CLAIMED_BY (   name)    (claim_table ? htable_find(claim_table, (name)) : 0)

postmulti.c623 行目に定義があります。

#define ITER_CMD_GENERIC   (1<<2) /* generic command iterator mode */

postmulti.c476 行目に定義があります。

#define ITER_CMD_LIST   (1<<1) /* listing iterator mode */

postmulti.c475 行目に定義があります。

#define ITER_CMD_MASK_ALL   (ITER_CMD_POSTFIX | ITER_CMD_LIST | ITER_CMD_GENERIC)

postmulti.c478 行目に定義があります。

#define ITER_CMD_POSTFIX   (1<<0) /* postfix(1) iterator mode */

postmulti.c474 行目に定義があります。

#define ITER_FLAG_CHECK_DISABLED   (1<<1) /* check disabled instances */

postmulti.c598 行目に定義があります。

#define ITER_FLAG_DEFAULT   0 /* default setting */

postmulti.c596 行目に定義があります。

#define ITER_FLAG_REVERSE   (1<<0) /* reverse iteration order */

postmulti.c597 行目に定義があります。

#define ITER_FLAG_SKIP_DISABLED   (1<<2) /* skip disabled instances */

postmulti.c599 行目に定義があります。

#define NAME_PREFIX   "postfix-"

postmulti.c521 行目に定義があります。

#define NAME_SUFFIX (   name)    ((name) + sizeof(NAME_PREFIX) - 1)

postmulti.c527 行目に定義があります。

#define NEED_NAME_PREFIX (   name)    ((name) != 0 && strcmp((name), "-") != 0 && !HAS_NAME_PREFIX(name))

postmulti.c525 行目に定義があります。

#define NEXT_ITERATOR_INSTANCE (   flags,
  entry 
)    (((flags) & ITER_FLAG_REVERSE) ? ring_pred(entry) : ring_succ(entry))

postmulti.c559 行目に定義があります。

#define NO_EXPORT_FLAGS   ((int *) 0)
#define POSTFIX_CMD   "postfix"
#define REQUEST_PARAM_COUNT   5 /* # of requested parameters */
#define RING_PTR_OF (   x)    (&((x)->ring))

postmulti.c549 行目に定義があります。

#define RING_TO_INSTANCE (   ring_ptr)    RING_TO_APPL(ring_ptr, INSTANCE, ring)

postmulti.c548 行目に定義があります。

#define SAFE_PUNCT   "!@%-_=+:./"
#define SAVE_INSTANCE_NAME (   val)    (*(val) ? mystrdup(val) : 0)
#define STR (   buf)    vstring_str(buf)

postmulti.c636 行目に定義があります。

型定義詳解

typedef struct instance INSTANCE

関数詳解

int main ( int  argc,
char **  argv 
)

postmulti.c1637 行目に定義があります。

変数詳解

MAIL_VERSION_STAMP_DECLARE

postmulti.c1633 行目に定義があります。

char* var_multi_cntrl_cmds

postmulti.c453 行目に定義があります。

char* var_multi_start_cmds

postmulti.c451 行目に定義があります。

char* var_multi_stop_cmds

postmulti.c452 行目に定義があります。