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

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

?? vpalias.c

?? 相當優秀的 UNIX 進程管理工具
?? C
字號:
#ifndef VALIAS /* * $Id: vpalias.c,v 1.6 2004/01/14 23:55:21 tomcollins Exp $ * Copyright (C) 2000-2002 Inter7 Internet Technologies, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h>#include <dirent.h>#include <unistd.h>#include "config.h"#include "vpopmail.h"#include "vauth.h"/* Globals */static char alias_line[MAX_ALIAS_LINE];static DIR *mydir = NULL;static char Dir[156];#define MAX_FILE_SIZE 156static char FileName[156];static FILE *alias_fs = NULL;/* forward declarations */char *valias_next_return_line(char *alias);char *valias_select( char *alias, char *domain ){ char *tmpstr; char tmpbuf[156]; uid_t uid; gid_t gid; int i; char *p;    if ( alias == NULL )  {       verrori=VA_NULL_POINTER;        return( NULL );    }    if ( domain == NULL ) {       verrori=VA_NULL_POINTER;      return( NULL );    }    if ( strlen(alias) >= MAX_PW_NAME ) {      verrori = VA_USER_NAME_TOO_LONG;      return( NULL );    }    if ( strlen(domain) >= MAX_PW_DOMAIN ) {      verrori = VA_DOMAIN_NAME_TOO_LONG;      return( NULL );    }    if ( alias_fs != NULL ) fclose(alias_fs);    if ((tmpstr=vget_assign(domain,alias_line,MAX_ALIAS_LINE,&uid,&gid))==NULL) {	printf("invalid domain, not in qmail assign file\n");	return(NULL);    }    /* need to convert '.' to ':' */    i = snprintf(tmpbuf, sizeof(tmpbuf), "%s/.qmail-", tmpstr);    for (p = alias; (i < sizeof(tmpbuf) - 1) && (*p != '\0'); p++)      tmpbuf[i++] = (*p == '.' ? ':' : *p);    tmpbuf[i] = '\0';    if ( (alias_fs = fopen(tmpbuf, "r")) == NULL ) {    	return(NULL);    }    return(valias_select_next());}char *valias_select_next(){ char *tmpstr;    if ( alias_fs == NULL ) return(NULL);    memset(alias_line,0,sizeof(alias_line));    if ( fgets(alias_line, sizeof(alias_line), alias_fs) == NULL ) {	fclose(alias_fs);	alias_fs = NULL;	return(NULL);    }    for(tmpstr=alias_line;*tmpstr!=0;++tmpstr) {	if ( *tmpstr == '\n') *tmpstr = 0;    }    return(alias_line);}int valias_insert( char *alias, char *domain, char *alias_line){ int i; char *tmpstr; char Dir[156]; uid_t uid; gid_t gid; FILE *fs;    if ( alias == NULL ) return(VA_NULL_POINTER);    if ( domain == NULL ) return(VA_NULL_POINTER);    if ( alias_line == NULL ) return(VA_NULL_POINTER);    if ( strlen(alias) >= MAX_PW_NAME ) return(VA_USER_NAME_TOO_LONG);    if ( strlen(domain) >= MAX_PW_DOMAIN ) return(VA_DOMAIN_NAME_TOO_LONG);    if ( strlen(alias_line) >= MAX_ALIAS_LINE ) return(VA_ALIAS_LINE_TOO_LONG);    if ((tmpstr = vget_assign(domain, Dir, sizeof(Dir), &uid, &gid )) == NULL) {	printf("invalid domain, not in qmail assign file\n");	return(-1);    }    strncat(Dir, "/.qmail-", sizeof(Dir)-strlen(Dir)-1);    for(i=0;alias[i]!=0;++i) if ( alias[i] == '.' ) alias[i] = ':';    strncat(Dir, alias, sizeof(Dir)-strlen(Dir)-1);	    if ( (fs = fopen(Dir, "a")) == NULL ) {	return(-1);    }    chmod(Dir,0600);    chown(Dir,uid,gid);    fprintf(fs, "%s\n", alias_line);    fclose(fs);    return(0);}int valias_remove( char *alias, char *domain, char *alias_line){  fprintf (stderr, "Error: valias_remove() not implemented for non-SQL backends.\n");  return -1;}int valias_delete( char *alias, char *domain){ char *tmpstr; char Dir[156]; uid_t uid; gid_t gid; int i;    if ( alias == NULL ) return(VA_NULL_POINTER);     if ( domain == NULL ) return(VA_NULL_POINTER);    if ( strlen(alias) >= MAX_PW_NAME ) return(VA_USER_NAME_TOO_LONG);    if ( strlen(domain) >= MAX_PW_DOMAIN ) return(VA_DOMAIN_NAME_TOO_LONG);    if ((tmpstr = vget_assign(domain, Dir, 156, &uid, &gid )) == NULL) {	printf("invalid domain, not in qmail assign file\n");	return(-1);    }    strncat(Dir, "/.qmail-", sizeof(Dir)-strlen(Dir)-1);    for(i=0;alias[i]!=0;++i) if ( alias[i] == '.' ) alias[i] = ':';    strncat(Dir, alias, sizeof(Dir)-strlen(Dir)-1);    return(unlink(Dir));}char *valias_select_all( char *alias, char *domain ){ uid_t uid; gid_t gid;    if ( alias == NULL )  {       verrori=VA_NULL_POINTER;        return( NULL );    }    if ( domain == NULL ) {       verrori=VA_NULL_POINTER;      return( NULL );    }      if ( strlen(domain) >= MAX_PW_DOMAIN ) {      verrori = VA_DOMAIN_NAME_TOO_LONG;      return( NULL );    }    if ( alias_fs != NULL ) {	fclose(alias_fs);         alias_fs = NULL;    }    if ((vget_assign(domain, Dir, sizeof(Dir), &uid, &gid )) == NULL) {	printf("invalid domain, not in qmail assign file\n");	return(NULL);    }    if (mydir!=NULL) closedir(mydir);    if ( (mydir = opendir(Dir)) == NULL ) return(NULL);    return(valias_select_all_next(alias));}char *valias_select_all_next(char *alias){ static struct dirent *mydirent; char *tmpstr; int i;    if ( alias == NULL )  {       verrori=VA_NULL_POINTER;        return( NULL );    }      if ( alias_fs != NULL ) {    	if ( fgets(alias_line, sizeof(alias_line),alias_fs)==NULL){		fclose(alias_fs); alias_fs = NULL;    	} else {    		for(tmpstr=alias_line;*tmpstr!=0;++tmpstr) {			if ( *tmpstr == '\n') *tmpstr = 0;    		}		/* Michael Bowe 21st Aug 2003		 * Chance of buffer overflow here,                 * because we dont know the size of alias                 */		strcpy(alias, &mydirent->d_name[7]);                for(i=0;alias[i]!=0;++i) if (alias[i]==':') alias[i]='.';    		return(alias_line);	}    }    while ((mydirent=readdir(mydir))!=NULL) {        if ( strncmp(mydirent->d_name,".qmail-", 7) == 0 &&             strcmp(mydirent->d_name, ".qmail-default") != 0 ) {		snprintf(FileName, sizeof(FileName), "%s/%s", Dir, mydirent->d_name);		alias_fs = fopen(FileName, "r");		return (valias_select_all_next(alias));	}    }    closedir(mydir); mydir=NULL;    return(NULL);}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级片在线播放| 色香蕉成人二区免费| 亚洲免费毛片网站| 欧美一区二区不卡视频| 91婷婷韩国欧美一区二区| 九色综合狠狠综合久久| 亚洲影院久久精品| 日韩精品一区第一页| 亚洲色图在线看| 久久久久久久久蜜桃| 91精品国产综合久久婷婷香蕉| 欧美一区二区三区电影| 久久99精品久久久| 亚洲欧美综合另类在线卡通| 99精品视频中文字幕| 国产精品不卡一区二区三区| 91影院在线观看| 亚洲综合激情小说| 日韩精品一区二区三区swag| 国产精品自拍网站| 亚洲国产精品尤物yw在线观看| 国产a视频精品免费观看| 国产精品国产三级国产有无不卡 | 一区二区三区欧美日| 精品处破学生在线二十三| 欧美福利一区二区| 欧美日韩你懂得| 色素色在线综合| av在线不卡网| 91亚洲资源网| 99久久久无码国产精品| 成人一区二区视频| 成人网在线播放| 丁香另类激情小说| 成人av小说网| 99精品在线免费| 色综合激情五月| 色婷婷综合视频在线观看| 91香蕉国产在线观看软件| 99热99精品| 成人精品视频一区| 色先锋资源久久综合| 色综合久久久久久久久久久| 一本久久a久久精品亚洲| 色综合久久久久综合体| 在线影院国内精品| 欧美综合一区二区三区| 欧美精品日日鲁夜夜添| 欧美一区二区在线看| 欧美刺激午夜性久久久久久久| 91精品国产色综合久久不卡电影| 国产精品久久久久久久岛一牛影视 | 99九九99九九九视频精品| 成人av片在线观看| 日本道色综合久久| 欧美日韩视频专区在线播放| 91精品一区二区三区在线观看| 成人黄色电影在线| 精品一区二区综合| 国产精品自拍毛片| 九九热在线视频观看这里只有精品| 亚洲午夜免费福利视频| 一区二区三区产品免费精品久久75| 亚洲国产精品精华液ab| 久久久久久久国产精品影院| 精品精品欲导航| 久久久精品免费观看| 欧美va日韩va| 国产精品国产三级国产三级人妇 | 欧美tk丨vk视频| 国产精品亲子伦对白| 悠悠色在线精品| 日韩国产高清在线| 国产高清一区日本| 在线一区二区视频| 日韩免费一区二区| 久久99久久久久久久久久久| 国产精品一卡二卡在线观看| 99视频有精品| 欧美一级搡bbbb搡bbbb| 欧美高清在线精品一区| 一区二区三区四区不卡在线| 免费成人在线播放| aaa欧美大片| 日韩欧美国产一区在线观看| 国产人伦精品一区二区| 亚洲二区视频在线| 国产成人在线视频播放| 欧美伊人精品成人久久综合97| 日韩免费在线观看| 亚洲激情自拍偷拍| 蜜臀av一区二区| 91国偷自产一区二区三区观看| 717成人午夜免费福利电影| 国产香蕉久久精品综合网| 亚洲一区在线观看网站| 国产精品一级片| 8x8x8国产精品| 中文字幕一区二| 国产久卡久卡久卡久卡视频精品| 欧美日韩一级二级三级| 国产精品嫩草影院av蜜臀| 乱一区二区av| 欧美视频日韩视频| 亚洲欧洲日产国产综合网| 另类小说一区二区三区| 欧美亚洲一区三区| 中文字幕av在线一区二区三区| 男人的天堂久久精品| 欧美性猛交xxxx乱大交退制版| 亚洲国产成人私人影院tom| 免费在线观看成人| 欧美日韩午夜影院| 一区二区三区在线免费观看| 成人av在线一区二区| 久久久久青草大香线综合精品| 日本一不卡视频| 7777精品伊人久久久大香线蕉| 亚洲精品成人精品456| 成人av资源下载| 中文字幕国产精品一区二区| 欧美三级韩国三级日本三斤| 亚洲视频资源在线| 在线视频你懂得一区二区三区| 一区二区三区国产豹纹内裤在线| 国产 欧美在线| 欧美一区二区三区白人| 亚洲国产精品精华液网站| 成人18视频日本| 国产午夜精品理论片a级大结局 | 91在线一区二区三区| 欧美人妖巨大在线| 亚洲精品国产成人久久av盗摄| 奇米影视7777精品一区二区| 欧美日本视频在线| 亚洲精品成人a在线观看| 高清国产午夜精品久久久久久| 日韩欧美第一区| 日韩精品电影一区亚洲| 日韩午夜激情免费电影| 亚洲6080在线| av在线不卡网| 国产精品国模大尺度视频| 国产精品99久久久久久久女警| 日韩一区二区三区av| 日韩va欧美va亚洲va久久| 日韩一区二区在线看片| 日本成人在线网站| 日韩欧美一区在线观看| 免费看欧美女人艹b| 91精品国产综合久久精品图片 | 蜜芽一区二区三区| 777奇米四色成人影色区| 亚洲福利视频一区二区| av毛片久久久久**hd| 一区二区三区视频在线观看| 一本久久a久久精品亚洲| 亚洲欧美日韩中文字幕一区二区三区| 不卡av免费在线观看| 一个色综合av| 欧美日韩久久久| 一区二区三区在线观看网站| 在线精品观看国产| 亚洲一区二区三区免费视频| 欧美一级在线视频| 另类人妖一区二区av| 久久嫩草精品久久久精品一| 国产精一区二区三区| 一区二区三区在线视频免费| 在线免费一区三区| 五月天精品一区二区三区| 欧美一级免费大片| 日韩av高清在线观看| 中文一区在线播放| 色偷偷88欧美精品久久久| 亚洲成人av一区| 日韩色视频在线观看| 91在线视频免费91| 亚洲国产一二三| 欧美一区二区三区性视频| 国产麻豆成人精品| 亚洲电影一区二区三区| 日韩片之四级片| 国产91丝袜在线播放九色| 欧美电影免费观看高清完整版在线 | 亚洲国产高清aⅴ视频| 欧美三级中文字幕在线观看| 成人黄色在线网站| 色综合夜色一区| 一本色道a无线码一区v| 6080午夜不卡| 日韩电影在线一区二区| www精品美女久久久tv| 欧美性大战久久久久久久| 伦理电影国产精品| 自拍偷拍国产精品| 337p亚洲精品色噜噜噜| 久久精品国产一区二区三| 亚洲成人先锋电影| 日本一区二区视频在线观看|