📄 rcpthosts.c
字号:
// 指定qmail可以接收的除本地主机名外的其他域名
#include "cdb.h"#include "byte.h"#include "open.h"#include "error.h"#include "control.h"#include "constmap.h"#include "stralloc.h"#include "rcpthosts.h"static int flagrh = 0;static stralloc rh = {0};static struct constmap maprh;static int fdmrh;int rcpthosts_init(){ flagrh = control_readfile(&rh,"control/rcpthosts",0); if (flagrh != 1) return flagrh; if (!constmap_init(&maprh,rh.s,rh.len,0)) return flagrh = -1; fdmrh = open_read("control/morercpthosts.cdb"); if (fdmrh == -1) if (errno != error_noent) return flagrh = -1; return 0;}static stralloc host = {0};int rcpthosts(buf,len)char *buf;int len;{ int j; if (flagrh != 1) return 1; j = byte_rchr(buf,len,'@'); if (j >= len) return 1; /* presumably envnoathost is acceptable */ ++j; buf += j; len -= j; if (!stralloc_copyb(&host,buf,len)) return -1; buf = host.s; case_lowerb(buf,len); for (j = 0;j < len;++j) if (!j || (buf[j] == '.')) if (constmap(&maprh,buf + j,len - j)) return 1; if (fdmrh != -1) { uint32 dlen; int r; for (j = 0;j < len;++j) if (!j || (buf[j] == '.')) { r = cdb_seek(fdmrh,buf + j,len - j,&dlen); if (r) return r; } } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -