Postfix3.3.1
データ構造 | マクロ定義 | 型定義 | 関数
postscreen_dnsbl.c ファイル
#include <sys_defs.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <limits.h>
#include <msg.h>
#include <mymalloc.h>
#include <argv.h>
#include <htable.h>
#include <events.h>
#include <vstream.h>
#include <connect.h>
#include <split_at.h>
#include <valid_hostname.h>
#include <ip_match.h>
#include <myaddrinfo.h>
#include <stringops.h>
#include <mail_params.h>
#include <mail_proto.h>
#include <postscreen.h>

[ソースコード]

データ構造

struct  PSC_DNSBL_HEAD
 
struct  PSC_DNSBL_SITE
 
struct  PSC_CALL_BACK_ENTRY
 
struct  PSC_DNSBL_SCORE
 

マクロ定義

#define PSC_CALL_BACK_INIT(sp)
 
#define PSC_CALL_BACK_INDEX_OF_LAST(sp)   ((sp)->index - 1)
 
#define PSC_CALL_BACK_CANCEL(sp, idx)
 
#define PSC_CALL_BACK_EXTEND(hp, sp)
 
#define PSC_CALL_BACK_ENTER(sp, fn, ctx)
 
#define PSC_CALL_BACK_NOTIFY(sp, ev)
 
#define PSC_NULL_EVENT   (0)
 
#define DO_GRIPE   1
 

型定義

typedef struct PSC_DNSBL_SITE PSC_DNSBL_SITE
 

関数

int psc_dnsbl_retrieve (const char *client_addr, const char **dnsbl_name, int dnsbl_index, int *dnsbl_ttl)
 
int psc_dnsbl_request (const char *client_addr, void(*callback)(int, void *), void *context)
 
void psc_dnsbl_init (void)
 

マクロ定義詳解

#define DO_GRIPE   1
#define PSC_CALL_BACK_CANCEL (   sp,
  idx 
)
値:
do { \
PSC_CALL_BACK_ENTRY *_cb_; \
if ((idx) < 0 || (idx) >= (sp)->index) \
msg_panic("%s: index %d must be >= 0 and < %d", \
myname, (idx), (sp)->index); \
_cb_ = (sp)->table + (idx); \
event_cancel_timer(_cb_->callback, _cb_->context); \
_cb_->callback = 0; \
_cb_->context = 0; \
} while (0)
NORETURN msg_panic(const char *fmt,...)
Definition: msg.c:295
int event_cancel_timer(EVENT_NOTIFY_TIME_FN callback, void *context)
Definition: events.c:965

postscreen_dnsbl.c172 行目に定義があります。

#define PSC_CALL_BACK_ENTER (   sp,
  fn,
  ctx 
)
値:
do { \
PSC_CALL_BACK_ENTRY *_cb_ = (sp)->table + (sp)->index++; \
_cb_->callback = (fn); \
_cb_->context = (ctx); \
} while (0)

postscreen_dnsbl.c193 行目に定義があります。

#define PSC_CALL_BACK_EXTEND (   hp,
  sp 
)
値:
do { \
if ((sp)->index >= (sp)->limit) { \
int _count_ = ((sp)->limit ? (sp)->limit * 2 : 5); \
(hp)->value = myrealloc((void *) (sp), sizeof(*(sp)) + \
_count_ * sizeof((sp)->table)); \
(sp) = (PSC_DNSBL_SCORE *) (hp)->value; \
(sp)->limit = _count_; \
} \
} while (0)
void * myrealloc(void *ptr, ssize_t len)
Definition: mymalloc.c:175
int int
Definition: smtpd_proxy.h:21

postscreen_dnsbl.c183 行目に定義があります。

#define PSC_CALL_BACK_INDEX_OF_LAST (   sp)    ((sp)->index - 1)

postscreen_dnsbl.c170 行目に定義があります。

#define PSC_CALL_BACK_INIT (   sp)
値:
do { \
(sp)->limit = 0; \
(sp)->index = 0; \
} while (0)

postscreen_dnsbl.c165 行目に定義があります。

#define PSC_CALL_BACK_NOTIFY (   sp,
  ev 
)
値:
do { \
PSC_CALL_BACK_ENTRY *_cb_; \
for (_cb_ = (sp)->table; _cb_ < (sp)->table + (sp)->index; _cb_++) \
if (_cb_->callback != 0) \
_cb_->callback((ev), _cb_->context); \
} while (0)

postscreen_dnsbl.c199 行目に定義があります。

#define PSC_NULL_EVENT   (0)

postscreen_dnsbl.c206 行目に定義があります。

型定義詳解

関数詳解

void psc_dnsbl_init ( void  )

postscreen_dnsbl.c582 行目に定義があります。

int psc_dnsbl_request ( const char *  client_addr,
void(*)(int, void *)  callback,
void *  context 
)

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

int psc_dnsbl_retrieve ( const char *  client_addr,
const char **  dnsbl_name,
int  dnsbl_index,
int dnsbl_ttl 
)

postscreen_dnsbl.c320 行目に定義があります。