亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久精品999| 精品一区二区精品| 国产精品久久久一区麻豆最新章节| 91精品国产综合久久久久| 91精彩视频在线| 91福利社在线观看| 欧美日韩视频在线第一区 | 欧美日韩一二三| 在线看国产一区| 欧美日韩在线免费视频| 欧美日韩高清影院| 欧美变态凌虐bdsm| 国产日韩欧美一区二区三区综合| 国产无一区二区| 国产精品久久毛片a| 一区二区三区在线视频观看58| 亚洲免费观看视频| 亚洲一二三区在线观看| 免费在线一区观看| 国产精品99精品久久免费| 白白色 亚洲乱淫| 欧美日韩综合在线| 欧美精品一区二区不卡 | 亚洲国产三级在线| 免费黄网站欧美| 国产成人综合自拍| 91视频xxxx| 日韩视频一区二区三区| 亚洲国产精品成人综合色在线婷婷| 1000部国产精品成人观看| 一区二区三区在线视频免费观看| 欧美96一区二区免费视频| 国产福利一区二区三区| 欧美午夜电影在线播放| 精品福利视频一区二区三区| 中文字幕在线观看一区| 五月天中文字幕一区二区| 精品午夜一区二区三区在线观看| 成人黄色一级视频| 69久久99精品久久久久婷婷| 欧美精彩视频一区二区三区| 亚洲国产中文字幕在线视频综合| 国产美女精品人人做人人爽| 在线视频综合导航| 精品裸体舞一区二区三区| 亚洲人成在线播放网站岛国 | 精品1区2区3区| 国产日本亚洲高清| 免费亚洲电影在线| 色国产综合视频| 欧美—级在线免费片| 日韩va欧美va亚洲va久久| jiyouzz国产精品久久| 久久综合视频网| 日日欢夜夜爽一区| 一本久道中文字幕精品亚洲嫩| 久久亚洲捆绑美女| 麻豆精品在线观看| 欧美色国产精品| 亚洲欧美另类久久久精品2019| 国产剧情av麻豆香蕉精品| 日韩亚洲电影在线| 亚洲福利国产精品| 91福利资源站| 亚洲欧美偷拍三级| 成人免费视频免费观看| 国产午夜亚洲精品羞羞网站| 麻豆91小视频| 欧美美女视频在线观看| 亚洲一区二区三区四区中文字幕 | 欧美视频一区二区| 一区二区三区在线观看动漫| 成人激情免费视频| 国产精品久线在线观看| 国产精品亚洲视频| 国产欧美一区二区精品忘忧草| 另类中文字幕网| 欧美不卡在线视频| 狠狠色丁香久久婷婷综| 精品国产成人在线影院| 成人91在线观看| 久久久美女毛片| 韩国av一区二区三区| 久久中文字幕电影| 国产麻豆精品在线观看| 久久精品男人天堂av| 国产91在线看| 中文字幕在线不卡一区| 91在线视频官网| 亚洲欧美电影一区二区| 在线观看成人免费视频| 五月婷婷久久丁香| 日韩精品一区二区三区中文精品| 久久www免费人成看片高清| 国产香蕉久久精品综合网| 国产高清不卡一区二区| 成人欧美一区二区三区白人| 欧美在线免费观看亚洲| 日本成人在线一区| 久久久国产午夜精品| 99在线热播精品免费| 亚洲国产中文字幕在线视频综合| 欧美一区二区三区免费| 国产福利不卡视频| 自拍偷自拍亚洲精品播放| 欧美日韩在线三区| 精品制服美女丁香| 国产精品久久久久影院| 欧美久久一二区| 国产精品亚洲综合一区在线观看| 中文字幕一区二区三区四区| 欧美性大战久久| 韩国女主播一区| 亚洲精品一卡二卡| 精品国产网站在线观看| 99久久综合99久久综合网站| 三级在线观看一区二区| 国产日韩欧美激情| 欧美久久久久久蜜桃| 高清视频一区二区| 亚洲一区二区3| 久久蜜臀精品av| 欧美三级三级三级爽爽爽| 国产精品99久久久久久似苏梦涵 | 一区二区三区欧美在线观看| 亚洲欧美一区二区久久 | 一区二区三区四区乱视频| 欧美体内she精高潮| 久久99久久99| 亚洲精品国产品国语在线app| 日韩欧美自拍偷拍| 色欧美日韩亚洲| 国产精品一卡二卡在线观看| 午夜精品123| 国产精品久线在线观看| 国产午夜精品在线观看| 欧美日韩1区2区| 99久久国产综合精品麻豆| 久色婷婷小香蕉久久| 亚洲国产wwwccc36天堂| 国产精品成人免费| 久久综合久久综合九色| 欧美日韩成人高清| 色爱区综合激月婷婷| 成人av电影免费在线播放| 亚洲综合一区二区| 色综合久久久久| 中文字幕一区二区三区色视频| 五月激情综合网| 午夜精品久久久久久久蜜桃app| 久久麻豆一区二区| 日韩色在线观看| 欧美日韩精品综合在线| 一本到不卡免费一区二区| 粉嫩一区二区三区在线看| 国内精品国产三级国产a久久 | 精品国产乱码久久久久久蜜臀| 色哟哟国产精品| 色婷婷精品大视频在线蜜桃视频| 成人高清av在线| 成人avav影音| jlzzjlzz国产精品久久| 成人av在线一区二区| 高清视频一区二区| 成人av集中营| 99精品久久久久久| 91色九色蝌蚪| 97久久精品人人做人人爽| 国产精品888| 丁香婷婷综合五月| 中文字幕视频一区| www国产精品av| 国产日本亚洲高清| 国产精品理伦片| 亚洲色图第一区| 亚洲自拍偷拍综合| 人人狠狠综合久久亚洲| 精品一区二区三区免费| 国产一区二区在线观看免费| 国产一区二三区好的| 成人99免费视频| 欧美无乱码久久久免费午夜一区| 91精品在线麻豆| 精品少妇一区二区三区日产乱码| 国产亚洲一区二区三区在线观看 | 欧日韩精品视频| 欧美群妇大交群中文字幕| 欧美一级二级在线观看| 久久亚区不卡日本| 国产精品国产三级国产aⅴ无密码| 亚洲乱码日产精品bd| 成人av在线影院| 亚洲欧美日韩国产中文在线| 久久九九影视网| 亚洲猫色日本管| 久久精品国产一区二区三| 国产成人亚洲综合a∨婷婷图片| 99久久国产综合精品女不卡| 欧美日韩国产成人在线91| 久久综合狠狠综合久久综合88|