⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rcpthosts.c

📁 linux下qmail的源码 本人加了一些注释
💻 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 + -