亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? qmail-showctl.c

?? linux下qmail的源碼 本人加了一些注釋
?? C
字號:
//顯示當前的qmail系統配置情況

#include <sys/types.h>#include <sys/stat.h>#include "substdio.h"#include "subfd.h"#include "exit.h"#include "fmt.h"#include "str.h"#include "control.h"#include "constmap.h"#include "stralloc.h"#include "direntry.h"#include "auto_uids.h"#include "auto_qmail.h"#include "auto_break.h"#include "auto_patrn.h"#include "auto_spawn.h"#include "auto_split.h"stralloc me = {0};int meok;stralloc line = {0};char num[FMT_ULONG];void safeput(buf,len)char *buf;unsigned int len;{  char ch;  while (len > 0) {    ch = *buf;    if ((ch < 32) || (ch > 126)) ch = '?';    substdio_put(subfdout,&ch,1);    ++buf;    --len;  }}void do_int(fn,def,pre,post)char *fn;char *def;char *pre;char *post;{  int i;  substdio_puts(subfdout,"\n");  substdio_puts(subfdout,fn);  substdio_puts(subfdout,": ");  switch(control_readint(&i,fn)) {    case 0:      substdio_puts(subfdout,"(Default.) ");      substdio_puts(subfdout,pre);      substdio_puts(subfdout,def);      substdio_puts(subfdout,post);      substdio_puts(subfdout,".\n");      break;    case 1:      if (i < 0) i = 0;      substdio_puts(subfdout,pre);      substdio_put(subfdout,num,fmt_uint(num,i));      substdio_puts(subfdout,post);      substdio_puts(subfdout,".\n");      break;    default:      substdio_puts(subfdout,"Oops! Trouble reading this file.\n");      break;  }}void do_str(fn,flagme,def,pre)char *fn;int flagme;char *def;char *pre;{  substdio_puts(subfdout,"\n");  substdio_puts(subfdout,fn);  substdio_puts(subfdout,": ");  switch(control_readline(&line,fn)) {    case 0:      substdio_puts(subfdout,"(Default.) ");      if (!stralloc_copys(&line,def)) {	substdio_puts(subfdout,"Oops! Out of memory.\n");	break;      }      if (flagme && meok)	if (!stralloc_copy(&line,&me)) {	  substdio_puts(subfdout,"Oops! Out of memory.\n");	  break;	}    case 1:      substdio_puts(subfdout,pre);      safeput(line.s,line.len);      substdio_puts(subfdout,".\n");      break;    default:      substdio_puts(subfdout,"Oops! Trouble reading this file.\n");      break;  }}int do_lst(fn,def,pre,post)char *fn;char *def;char *pre;char *post;{  int i;  int j;  substdio_puts(subfdout,"\n");  substdio_puts(subfdout,fn);  substdio_puts(subfdout,": ");  switch(control_readfile(&line,fn)) {    case 0:      substdio_puts(subfdout,"(Default.) ");      substdio_puts(subfdout,def);      substdio_puts(subfdout,"\n");      return 0;    case 1:      substdio_puts(subfdout,"\n");      i = 0;      for (j = 0;j < line.len;++j)	if (!line.s[j]) {          substdio_puts(subfdout,pre);          safeput(line.s + i,j - i);          substdio_puts(subfdout,post);          substdio_puts(subfdout,"\n");	  i = j + 1;	}      return 1;    default:      substdio_puts(subfdout,"Oops! Trouble reading this file.\n");      return -1;  }}void main(){  DIR *dir;  direntry *d;  struct stat stmrh;  struct stat stmrhcdb;  substdio_puts(subfdout,"qmail home directory: ");  substdio_puts(subfdout,auto_qmail);  substdio_puts(subfdout,".\n");  substdio_puts(subfdout,"user-ext delimiter: ");  substdio_puts(subfdout,auto_break);  substdio_puts(subfdout,".\n");  substdio_puts(subfdout,"paternalism (in decimal): ");  substdio_put(subfdout,num,fmt_ulong(num,(unsigned long) auto_patrn));  substdio_puts(subfdout,".\n");  substdio_puts(subfdout,"silent concurrency limit: ");  substdio_put(subfdout,num,fmt_ulong(num,(unsigned long) auto_spawn));  substdio_puts(subfdout,".\n");  substdio_puts(subfdout,"subdirectory split: ");  substdio_put(subfdout,num,fmt_ulong(num,(unsigned long) auto_split));  substdio_puts(subfdout,".\n");  substdio_puts(subfdout,"user ids: ");  substdio_put(subfdout,num,fmt_ulong(num,(unsigned long) auto_uida));  substdio_puts(subfdout,", ");  substdio_put(subfdout,num,fmt_ulong(num,(unsigned long) auto_uidd));  substdio_puts(subfdout,", ");  substdio_put(subfdout,num,fmt_ulong(num,(unsigned long) auto_uidl));  substdio_puts(subfdout,", ");  substdio_put(subfdout,num,fmt_ulong(num,(unsigned long) auto_uido));  substdio_puts(subfdout,", ");  substdio_put(subfdout,num,fmt_ulong(num,(unsigned long) auto_uidp));  substdio_puts(subfdout,", ");  substdio_put(subfdout,num,fmt_ulong(num,(unsigned long) auto_uidq));  substdio_puts(subfdout,", ");  substdio_put(subfdout,num,fmt_ulong(num,(unsigned long) auto_uidr));  substdio_puts(subfdout,", ");  substdio_put(subfdout,num,fmt_ulong(num,(unsigned long) auto_uids));  substdio_puts(subfdout,".\n");  substdio_puts(subfdout,"group ids: ");  substdio_put(subfdout,num,fmt_ulong(num,(unsigned long) auto_gidn));  substdio_puts(subfdout,", ");  substdio_put(subfdout,num,fmt_ulong(num,(unsigned long) auto_gidq));  substdio_puts(subfdout,".\n");  if (chdir(auto_qmail) == -1) {    substdio_puts(subfdout,"Oops! Unable to chdir to ");    substdio_puts(subfdout,auto_qmail);    substdio_puts(subfdout,".\n");    substdio_flush(subfdout);    _exit(111);  }  if (chdir("control") == -1) {    substdio_puts(subfdout,"Oops! Unable to chdir to control.\n");    substdio_flush(subfdout);    _exit(111);  }  dir = opendir(".");  if (!dir) {    substdio_puts(subfdout,"Oops! Unable to open current directory.\n");    substdio_flush(subfdout);    _exit(111);  }  meok = control_readline(&me,"me");  if (meok == -1) {    substdio_puts(subfdout,"Oops! Trouble reading control/me.");    substdio_flush(subfdout);    _exit(111);  }  do_lst("badmailfrom","Any MAIL FROM is allowed.",""," not accepted in MAIL FROM.");  do_str("bouncefrom",0,"MAILER-DAEMON","Bounce user name is ");  do_str("bouncehost",1,"bouncehost","Bounce host name is ");  do_int("concurrencylocal","10","Local concurrency is ","");  do_int("concurrencyremote","20","Remote concurrency is ","");  do_int("databytes","0","SMTP DATA limit is "," bytes");  do_str("defaultdomain",1,"defaultdomain","Default domain name is ");  do_str("defaulthost",1,"defaulthost","Default host name is ");  do_str("doublebouncehost",1,"doublebouncehost","2B recipient host: ");  do_str("doublebounceto",0,"postmaster","2B recipient user: ");  do_str("envnoathost",1,"envnoathost","Presumed domain name is ");  do_str("helohost",1,"helohost","SMTP client HELO host name is ");  do_str("idhost",1,"idhost","Message-ID host name is ");  do_str("localiphost",1,"localiphost","Local IP address becomes ");  do_lst("locals","Messages for me are delivered locally.","Messages for "," are delivered locally.");  do_str("me",0,"undefined! Uh-oh","My name is ");  do_lst("percenthack","The percent hack is not allowed.","The percent hack is allowed for user%host@",".");  do_str("plusdomain",1,"plusdomain","Plus domain name is ");  do_lst("qmqpservers","No QMQP servers.","QMQP server: ",".");  do_int("queuelifetime","604800","Message lifetime in the queue is "," seconds");  if (do_lst("rcpthosts","SMTP clients may send messages to any recipient.","SMTP clients may send messages to recipients at ","."))    do_lst("morercpthosts","No effect.","SMTP clients may send messages to recipients at ",".");  else    do_lst("morercpthosts","No rcpthosts; morercpthosts is irrelevant.","No rcpthosts; doesn't matter that morercpthosts has ",".");  /* XXX: check morercpthosts.cdb contents */  substdio_puts(subfdout,"\nmorercpthosts.cdb: ");  if (stat("morercpthosts",&stmrh) == -1)    if (stat("morercpthosts.cdb",&stmrhcdb) == -1)      substdio_puts(subfdout,"(Default.) No effect.\n");    else      substdio_puts(subfdout,"Oops! morercpthosts.cdb exists but morercpthosts doesn't.\n");  else    if (stat("morercpthosts.cdb",&stmrhcdb) == -1)      substdio_puts(subfdout,"Oops! morercpthosts exists but morercpthosts.cdb doesn't.\n");    else      if (stmrh.st_mtime > stmrhcdb.st_mtime)        substdio_puts(subfdout,"Oops! morercpthosts.cdb is older than morercpthosts.\n");      else        substdio_puts(subfdout,"Modified recently enough; hopefully up to date.\n");  do_str("smtpgreeting",1,"smtpgreeting","SMTP greeting: 220 ");  do_lst("smtproutes","No artificial SMTP routes.","SMTP route: ","");  do_int("timeoutconnect","60","SMTP client connection timeout is "," seconds");  do_int("timeoutremote","1200","SMTP client data timeout is "," seconds");  do_int("timeoutsmtpd","1200","SMTP server data timeout is "," seconds");  do_lst("virtualdomains","No virtual domains.","Virtual domain: ","");  while (d = readdir(dir)) {    if (str_equal(d->d_name,".")) continue;    if (str_equal(d->d_name,"..")) continue;    if (str_equal(d->d_name,"bouncefrom")) continue;    if (str_equal(d->d_name,"bouncehost")) continue;    if (str_equal(d->d_name,"badmailfrom")) continue;    if (str_equal(d->d_name,"bouncefrom")) continue;    if (str_equal(d->d_name,"bouncehost")) continue;    if (str_equal(d->d_name,"concurrencylocal")) continue;    if (str_equal(d->d_name,"concurrencyremote")) continue;    if (str_equal(d->d_name,"databytes")) continue;    if (str_equal(d->d_name,"defaultdomain")) continue;    if (str_equal(d->d_name,"defaulthost")) continue;    if (str_equal(d->d_name,"doublebouncehost")) continue;    if (str_equal(d->d_name,"doublebounceto")) continue;    if (str_equal(d->d_name,"envnoathost")) continue;    if (str_equal(d->d_name,"helohost")) continue;    if (str_equal(d->d_name,"idhost")) continue;    if (str_equal(d->d_name,"localiphost")) continue;    if (str_equal(d->d_name,"locals")) continue;    if (str_equal(d->d_name,"me")) continue;    if (str_equal(d->d_name,"morercpthosts")) continue;    if (str_equal(d->d_name,"morercpthosts.cdb")) continue;    if (str_equal(d->d_name,"percenthack")) continue;    if (str_equal(d->d_name,"plusdomain")) continue;    if (str_equal(d->d_name,"qmqpservers")) continue;    if (str_equal(d->d_name,"queuelifetime")) continue;    if (str_equal(d->d_name,"rcpthosts")) continue;    if (str_equal(d->d_name,"smtpgreeting")) continue;    if (str_equal(d->d_name,"smtproutes")) continue;    if (str_equal(d->d_name,"timeoutconnect")) continue;    if (str_equal(d->d_name,"timeoutremote")) continue;    if (str_equal(d->d_name,"timeoutsmtpd")) continue;    if (str_equal(d->d_name,"virtualdomains")) continue;    substdio_puts(subfdout,"\n");    substdio_puts(subfdout,d->d_name);    substdio_puts(subfdout,": I have no idea what this file does.\n");  }  substdio_flush(subfdout);  _exit(0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品小仙女| 日韩欧美高清一区| 国产成人av福利| 日本不卡免费在线视频| 亚洲综合在线免费观看| 中文字幕在线一区免费| 久久久久久日产精品| 欧美电视剧免费全集观看| 7777精品伊人久久久大香线蕉最新版| 99精品欧美一区| 成人app软件下载大全免费| 国产成人精品一区二区三区网站观看| 久久电影网电视剧免费观看| 美女免费视频一区| 日本亚洲三级在线| 日韩成人免费看| 欧美日本一区二区在线观看| 欧美日韩国产高清一区二区三区| 色就色 综合激情| 91久久国产综合久久| 色香色香欲天天天影视综合网| 99精品视频在线观看免费| 91在线你懂得| 91蜜桃免费观看视频| 不卡视频一二三四| 不卡av在线免费观看| 成人禁用看黄a在线| av在线不卡免费看| 91丨九色丨尤物| 欧美三级韩国三级日本三斤| 欧美日韩综合不卡| 欧美一区二区三区在线观看| 欧美电影免费观看完整版 | 亚洲欧美区自拍先锋| 亚洲人成网站精品片在线观看| 亚洲啪啪综合av一区二区三区| 亚洲一区二区三区四区在线观看 | 北岛玲一区二区三区四区| 成人性色生活片免费看爆迷你毛片| 国产福利电影一区二区三区| 成人97人人超碰人人99| 91电影在线观看| 911国产精品| 欧美精品一区二| 国产精品久久久久国产精品日日| 亚洲激情在线播放| 丝袜美腿亚洲一区二区图片| 精品在线视频一区| 99r精品视频| 欧美浪妇xxxx高跟鞋交| 日韩精品一区二区三区老鸭窝| 久久久久国色av免费看影院| 亚洲视频狠狠干| 日韩国产成人精品| 国产91精品在线观看| 色一情一乱一乱一91av| 日韩一区二区三区av| 国产亚洲一区二区在线观看| 亚洲欧美日韩国产一区二区三区| 日韩电影在线一区| 成人黄色免费短视频| 欧美日韩高清不卡| 欧美国产禁国产网站cc| 午夜精品久久久久久久久久| 国产自产视频一区二区三区| 色婷婷综合激情| 2023国产精品自拍| 亚洲国产综合色| 国产成人在线网站| 欧美日韩和欧美的一区二区| 国产色爱av资源综合区| 亚洲午夜在线视频| 国产精品 日产精品 欧美精品| 欧美在线视频日韩| 欧美国产日韩一二三区| 亚洲a一区二区| 成人黄色在线视频| 欧美一级片在线| 亚洲欧美电影院| 国产精品一区二区x88av| 欧美三级视频在线| 国产精品美女一区二区在线观看| 日韩精品五月天| 一本色道久久加勒比精品| 久久久亚洲高清| 日本伊人色综合网| 色美美综合视频| 国产亚洲精品7777| 婷婷中文字幕一区三区| 99国产精品久久久| 国产视频一区二区在线观看| 美美哒免费高清在线观看视频一区二区| 99在线精品一区二区三区| 日韩欧美国产精品| 亚洲午夜在线观看视频在线| 99re热视频精品| 久久一二三国产| 人人爽香蕉精品| 欧美日韩国产色站一区二区三区| 亚洲日本va在线观看| 成人激情av网| 国产欧美日韩一区二区三区在线观看| 蜜臀av性久久久久av蜜臀妖精| 欧美综合视频在线观看| 中文字幕一区二区5566日韩| 国产资源精品在线观看| 日韩免费观看2025年上映的电影| 天天av天天翘天天综合网色鬼国产 | 成人免费黄色大片| 久久毛片高清国产| 美腿丝袜一区二区三区| 欧美一级欧美三级| 天堂va蜜桃一区二区三区漫画版| 色婷婷亚洲婷婷| 亚洲人亚洲人成电影网站色| 成人激情开心网| 国产精品久久久久久亚洲毛片 | 中文字幕高清一区| 国产精品一区二区男女羞羞无遮挡| 日韩免费看网站| 看片网站欧美日韩| 欧美成人精品福利| 狠狠色综合日日| 久久一日本道色综合| 国产精品一区二区在线看| 国产亚洲自拍一区| 成人动漫一区二区| 国产精品福利影院| 99r国产精品| 亚洲综合清纯丝袜自拍| 精品1区2区3区| 亚洲bt欧美bt精品| 日韩一区二区精品在线观看| 美女视频黄频大全不卡视频在线播放| 欧美成人性战久久| 国产精华液一区二区三区| 国产亚洲一区二区三区| 波多野结衣在线一区| 自拍偷拍国产亚洲| 欧美吻胸吃奶大尺度电影| 亚洲chinese男男1069| 国产呦萝稀缺另类资源| 欧美激情艳妇裸体舞| 91在线国产观看| 亚洲成人av福利| 日韩一区二区电影| 国产精品亚洲午夜一区二区三区| 国产精品―色哟哟| 色综合久久综合网97色综合| 亚洲国产成人av| 精品入口麻豆88视频| 成人爱爱电影网址| 91麻豆精品国产无毒不卡在线观看| 久草在线在线精品观看| 亚洲国产精品精华液2区45| 色999日韩国产欧美一区二区| 亚洲成人精品一区二区| 日韩精品一区二区三区中文精品| 风间由美一区二区三区在线观看| 亚洲视频在线观看三级| 欧美精品黑人性xxxx| 国产在线精品免费av| 成人欧美一区二区三区在线播放| 欧美老肥妇做.爰bbww| 国产精品自产自拍| 亚洲激情自拍偷拍| 日韩精品一区二区三区在线| av日韩在线网站| 丝袜亚洲另类丝袜在线| 中文字幕不卡在线播放| 欧美三片在线视频观看| 国产69精品久久久久777| 青青草成人在线观看| 国产精品无遮挡| 欧美日韩精品欧美日韩精品| 韩国三级中文字幕hd久久精品| 日韩美女视频19| 日韩免费视频一区| 一本久道中文字幕精品亚洲嫩| 秋霞午夜鲁丝一区二区老狼| 国产精品卡一卡二卡三| 欧美一区二区三区视频免费| 成人a区在线观看| 久久成人久久鬼色| 亚洲自拍与偷拍| 国产日韩欧美高清| 制服丝袜亚洲网站| 99免费精品在线| 久久国产生活片100| 一区二区三区四区在线免费观看| 久久免费午夜影院| 91 com成人网| 99精品偷自拍| 国产精品伊人色| 免费成人在线观看视频| 亚洲欧美日韩久久| 国产农村妇女精品| 欧美一二三区在线| 欧美伊人久久久久久久久影院| 成人a级免费电影|