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

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

?? updatehosts.c

?? A* sudo sudo/* B* adduser script adduser C* rmuser script rmuser E* tout tout/*
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*** updatehosts - accept /etc/host file section updates via mail.****  Accepts mail on stdin, then looks at body of message for:**      # begin: foo****  whereupon it writes this and all lines up to and including:**      # end: foo****  to the file HOSTDIR/foo... If a line of the format:**      # adminmail: goober**  is encountered an acknowledgment is sent to goober. ****  If it sees: **      send**  it will send the sender a copy of the current hosts file. If it**  sees:**      help**  it will send the sender a copy of the help file******  to make the program receive mail addressed to updatehosts,**  add the following line to your /usr/lib/aliases file **	updatehosts: "|/usr/local/adm/hosts/updatehosts"****  Written by Bob Coggeshall (coggs@boulder.Colorado.EDU)***/#define JTY "Just thought you'd like to know.\n"#include <stdio.h>#include <ctype.h>#include <sys/param.h>#define HOSTDIR         "/usr/local/adm/hosts/hostsrc/"#define HOSTS           "/usr/local/adm/hosts/hostsrc/hosts"#define HELPFILE        "/usr/local/adm/hosts/doc/updatehosts.catme"/** NEDITOR should be the name of the person allowed to edit  **/#define NEDITOR         "coggs"#define TEMPFILEPREF    "/tmp/updatehosts."#define STDERR      	"/tmp/updatehosts.stderr"#define UMASK		002/** domainame contains your domain name **/char *domainame = "colorado.edu";char hostname[MAXHOSTNAMELEN];/* values used by upexit() */#define FAIL 1#define FAKEFAIL 0		/* avoid generating mail bounces */#define SUCCESS 0/* values returned by parsline() */#define BEGIN       1#define END         2#define ADMINMAIL   3#define MAILHEAD    4#define DATA        5#define SEND        6#define HELP        7#define SUBJECT     8	/* values used by mail() */#define INDENT   1#define NOINDENT 0char *gets();char *rindex();char *index();char *getcuradmin();FILE *fopen();FILE *freopen();char *progname;char wrkline[256];          /* yet another */char wrkline1[256];         /* yet another 1 */char realsender[256];       /* sender from the 'From ' line */char curadminmail[256];     /* current value of 'Adminmail:' arg from file */FILE *fd = NULL;            /* file descriptor for writing section file */FILE *tfd = NULL;           /* file descriptor for temp file */FILE *efd = NULL;           /* file descriptor for stderr */char *cp;                   /* general purpose character pointer */char tempfile[256];         /* name of temporary file */main(ac,av)int ac;char **av;{    char arg[256];              /* rhs of arguments from input file */    char line[256];             /* general purpose line buffer */    char secfile[256];          /* name of section file */    char secname[256];          /* name of section */    char adminmail[256];        /* administrator mail arg */    int pid;                    /* process id */    int freadcount;             /* count returned from fread() */    int systatus;               /* returned by system() */	umask(UMASK);    /*    ** get the hostname and the program name.    */    gethostname(hostname,sizeof(hostname));    if ((progname = rindex(*av,'/')) == 0)        progname = *av;    else        progname++;    /*    ** redirect stderr to a file    */    if ( (efd = freopen(STDERR,"w+",stderr)) == NULL) {        sprintf(wrkline, "%s: couldn't freopen() %s", progname,STDERR);        mail(NEDITOR,wrkline, JTY,0,0);    }    /*     ** process input, parseline figures out what kind of line it is    ** and this case statement decides what to do.    */    while (gets(line) != NULL)    {        switch (parseline(line,arg)) {                case ADMINMAIL:         /* snarf adminmail arg */                    if (tfd) {                        fputs(line,tfd);                        fputc('\n',tfd);                    }                    strcpy(adminmail,arg);                    /*                    ** check that old adminmail and new adminmail args match                    */                    strcpy(wrkline,adminmail);                    if ((cp = index(wrkline,'@')) != 0)                             *cp = '\0';                    strcpy(wrkline1,curadminmail);                    if ((cp = index(wrkline1,'@')) != 0)                             *cp = '\0';                    if ( (strncmp(wrkline,wrkline1,sizeof(wrkline)) != 0) ) {                        sprintf(wrkline,			"%s: new adminmail:%s and current adminmail: %s  don't match",                        progname,adminmail,curadminmail);                        mail(NEDITOR,wrkline, JTY,0,0);                        upexit(FAKEFAIL);                    }                    break;                case MAILHEAD:          /* its the mail header, skip it */                    strcpy(realsender,arg); /* snarf sender */					fprintf(stderr,"realsender: %s\n",realsender);                    break;                case SUBJECT:                     break;                case SEND:          /* they want a copy of the whole thing */                    sprintf(wrkline,"%s: copy of current hosts file:",progname);                    mail(realsender,wrkline,"",HOSTS,NOINDENT);                    sprintf(wrkline,"%s: sent %s copy of current hosts file",                            progname,realsender);                    mail(NEDITOR,wrkline,JTY,0,0);                    upexit(SUCCESS);                    break;                case HELP:          /* send them the help file */                    sprintf(wrkline,"%s: help file",progname);                    mail(realsender,wrkline,"",HELPFILE,NOINDENT);                    sprintf(wrkline,"%s: sent %s the help file",                            progname,realsender);                    mail(NEDITOR,wrkline,JTY,0,0);                    upexit(SUCCESS);                    break;                case DATA:              /* its data, snarf it. */                    if (tfd) {                        fputs(line,tfd);                        fputc('\n',tfd);                    }                    break;                case BEGIN:                                 /*                    ** if begin, then see if section file exists                    ** if it doesn't send mail and die. if it does                    ** open it tempfile for write.                    */                    strcpy(secfile,HOSTDIR);                    strcpy(secname,arg);                    strcat(secfile,secname);                    if (access(secfile,0) != 0) {                        sprintf(wrkline,"%s: Can't access() %s",                        progname,secfile);                        mail(NEDITOR,wrkline,                        "File needs to exist before i'll overwrite it",0,0);                        upexit(FAKEFAIL);                    }                                    /*                     ** read secfile and get the current adminmail: arg                    ** and authenticate by comparing it with sender                    */                    strcpy(curadminmail,getcuradmin(secfile));                    strcpy(wrkline,curadminmail);                    if ((cp = index(wrkline,'@')) != 0)                             *cp = '\0';                    strcpy(wrkline1,realsender);                    if ((cp = index(wrkline1,'@')) != 0)                             *cp = '\0';                    if ( (strncmp(wrkline,wrkline1,sizeof(wrkline)) != 0) ) {                    /*                    ** some exceptions....                    */                    strcpy(wrkline,NEDITOR);                    if ((cp  = index(wrkline,'@')) != 0)                        *cp = '\0';                    if ( (strncmp(wrkline,wrkline1,sizeof(wrkline)) == 0)||                         strncmp(wrkline,"root",sizeof("root")) == 0)                        goto except;                    sprintf(wrkline,                    "%s: sender: %s and current adminmail: %s don't match",                    progname,realsender,curadminmail);                    mail(NEDITOR,wrkline, JTY,0,0);                    upexit(FAKEFAIL);                }            except:                    /*                    ** open temporary file.                    */                    pid = getpid();                     sprintf(tempfile,"%s%d",TEMPFILEPREF,pid);                    if ( (tfd = fopen(tempfile,"w+")) == 0) {                        sprintf(wrkline,"%s: Can't fopen() %s",                        progname,tempfile);                        mail(NEDITOR,wrkline,JTY,0,0);                        upexit(FAKEFAIL);                    }                    if ( (fputs("##\n",tfd)) == EOF) {                        sprintf(wrkline,"%s: %s: Write failed",                         progname, tempfile);                        mail(NEDITOR,wrkline,JTY,0,0);                        upexit(FAKEFAIL);                    }                    fputs(line,tfd);                    fputc('\n',tfd);                    break;                case END:                    /*                    **   if end then close file, make sure begin and                    **  end agree. complain and die if not. otherwise                    **  send mail that things are ok                    */                    strcpy(wrkline,HOSTDIR);                    strcat(wrkline,arg);                    if (strncmp(wrkline,secfile,strlen(tempfile)) != 0) {                        sprintf(wrkline,"%s %s",NEDITOR,adminmail);                        sprintf(wrkline1,                        "%s: 'End:' arg disagreed with 'Begin:' arg",progname);                        mail(wrkline,wrkline1,JTY,0,0);                        upexit(FAKEFAIL);                    }                    fputs(line,tfd);                    fputc('\n',tfd);                    fputs("##\n",tfd);                    (void)fseek(tfd,0L,0);                    if ( (fd = fopen(secfile,"w")) == 0) {                        sprintf(wrkline,"%s: Can't fopen() %s",                        progname,secfile);                        mail(NEDITOR,wrkline,JTY,0,0);                        upexit(FAKEFAIL);                    }                    while( (freadcount = fread(wrkline,                                         sizeof(*wrkline),                                        sizeof(wrkline),tfd))  > 0)                        if ((fwrite(wrkline,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费精品视频在线| 91亚洲男人天堂| 成人免费一区二区三区视频| 欧美天堂亚洲电影院在线播放| 麻豆成人免费电影| 一区二区在线免费观看| 2023国产精华国产精品| 日本精品一区二区三区高清| 国产精品夜夜嗨| 日本不卡一区二区三区| 亚洲人一二三区| 国产日韩欧美一区二区三区综合| 欧美人妖巨大在线| 97精品超碰一区二区三区| 丰满岳乱妇一区二区三区| 精品一区二区三区的国产在线播放| 亚洲精品国产成人久久av盗摄 | 午夜视频在线观看一区| 国产精品欧美一级免费| 亚洲精品一区二区三区影院 | 成人黄色电影在线| 国产一区91精品张津瑜| 午夜精品久久久| 亚洲精品国产成人久久av盗摄| 国产精品美女一区二区在线观看| 精品国产区一区| 欧美精品日韩综合在线| 欧美无人高清视频在线观看| 99久久国产综合精品麻豆 | 日韩视频中午一区| 欧美影院精品一区| 99riav久久精品riav| 国产91丝袜在线播放| 狠狠色综合色综合网络| 久久精品国产亚洲a| 日本欧美加勒比视频| 日韩经典中文字幕一区| 日韩影院在线观看| 亚洲va韩国va欧美va| 亚洲自拍偷拍av| 亚洲成人tv网| 日本亚洲一区二区| 美女视频黄a大片欧美| 琪琪一区二区三区| 激情都市一区二区| 国产成人精品三级| 成人av电影在线| 色综合久久久久久久久久久| 欧美综合天天夜夜久久| 欧美日韩视频第一区| 欧美一区日本一区韩国一区| 日韩精品一区二区三区老鸭窝| 精品国产免费一区二区三区四区| 精品国产精品一区二区夜夜嗨| 久久综合九色综合97_久久久| 国产亚洲精品福利| 国产精品不卡一区二区三区| 亚洲狠狠丁香婷婷综合久久久| 亚洲大片一区二区三区| 日日夜夜一区二区| 日韩主播视频在线| 狠狠色综合日日| 国产不卡在线一区| 成人激情电影免费在线观看| 成人免费高清在线| 99久久精品免费看| 99v久久综合狠狠综合久久| 日韩主播视频在线| 国内一区二区在线| 成人性色生活片| 99精品视频在线观看免费| 91丨九色丨黑人外教| 一本色道久久综合亚洲精品按摩| 欧美制服丝袜第一页| 欧美三片在线视频观看| 欧美精选在线播放| 26uuu久久综合| 亚洲国产成人在线| 国产精品三级视频| 亚洲日本va在线观看| 亚洲高清不卡在线| 久久国产视频网| 国产成人av一区二区三区在线观看| 成人激情免费网站| 精品视频1区2区| 精品久久久久久久一区二区蜜臀| 精品国产一区二区三区不卡| 国产三级久久久| 日本一二三不卡| 亚洲一区自拍偷拍| 麻豆精品一区二区| av在线播放不卡| 欧美日韩高清一区二区不卡| 欧美va亚洲va国产综合| 国产精品久久久99| 亚洲大片一区二区三区| 国产精品亚洲第一区在线暖暖韩国| 不卡一区二区中文字幕| 欧美日韩情趣电影| 日韩精品中文字幕一区| 国产精品乱码久久久久久| 性做久久久久久久久| 国产成人福利片| 91麻豆精品国产91久久久久久 | 亚洲国产视频直播| 九色porny丨国产精品| jlzzjlzz亚洲日本少妇| 欧美色图免费看| 亚洲国产精品激情在线观看| 丝袜美腿亚洲一区二区图片| 丰满白嫩尤物一区二区| 5月丁香婷婷综合| 一色桃子久久精品亚洲| 奇米色777欧美一区二区| www.日韩精品| 精品嫩草影院久久| 亚洲不卡在线观看| av不卡一区二区三区| 欧美色精品在线视频| 夜夜嗨av一区二区三区中文字幕 | 欧美探花视频资源| 久久精品亚洲精品国产欧美 | 在线欧美日韩国产| 精品剧情在线观看| 免费人成在线不卡| 欧美日韩在线播放三区| 国产精品福利一区二区| 极品尤物av久久免费看| 欧美日韩不卡一区| 一区二区三区免费观看| 亚洲图片自拍偷拍| 国产欧美一区二区三区在线老狼| 亚洲国产精品久久不卡毛片| 风间由美一区二区av101 | 99r精品视频| wwww国产精品欧美| 一区二区三区小说| 99国产精品视频免费观看| 久久精品一区四区| 蓝色福利精品导航| 日韩亚洲欧美在线观看| 亚洲一区二区高清| 成人精品小蝌蚪| 亚洲欧洲成人自拍| 不卡电影免费在线播放一区| 国产亚洲女人久久久久毛片| 国产麻豆午夜三级精品| 欧美v日韩v国产v| 麻豆精品一区二区| 欧美日本视频在线| 精品系列免费在线观看| 欧美成人猛片aaaaaaa| 美女视频黄免费的久久| 91精品国产高清一区二区三区蜜臀 | 成人理论电影网| 中文字幕欧美国产| 成人一区二区三区在线观看| 国产欧美一区二区三区鸳鸯浴 | 久久久久久久久久久久久久久99| 精品一区在线看| 久久久99久久| 国产成人精品一区二区三区四区 | 视频在线在亚洲| jiyouzz国产精品久久| 国产亚洲成年网址在线观看| 九九**精品视频免费播放| 精品日韩在线观看| 国产原创一区二区三区| 精品久久国产字幕高潮| 国产成人av影院| 国产精品短视频| 国产福利91精品| 中文字幕乱码日本亚洲一区二区 | 美女诱惑一区二区| 精品国免费一区二区三区| 国产真实乱对白精彩久久| 精品国产露脸精彩对白| 成人爽a毛片一区二区免费| 18成人在线观看| 不卡视频免费播放| 亚洲永久免费视频| 欧美一区二区三区四区在线观看| 蜜臀av性久久久久av蜜臀妖精| 欧美精品一区二区精品网| 久久精品国产亚洲一区二区三区| 日韩一区二区三区观看| 国产乱妇无码大片在线观看| 国产午夜精品福利| 欧美三级电影在线观看| 久国产精品韩国三级视频| 亚洲一区成人在线| 欧美成人午夜电影| 成人综合婷婷国产精品久久| 怡红院av一区二区三区| 日韩一级片网站| hitomi一区二区三区精品| 美日韩黄色大片| |精品福利一区二区三区| 在线不卡一区二区| 成人综合在线观看|