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

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

?? vcdb.c

?? 相當優秀的 UNIX 進程管理工具
?? C
?? 第 1 頁 / 共 2 頁
字號:
	/* get the owner of the domain */	vget_assign(domain,NULL,0,&uid,&gid);	/* get the current effective user */    myuid = geteuid();	/* 	 * if it is not the owner, vpopmail or root	 * then reject this operation	 */    if ( myuid != 0 && myuid != uid ) {		return(VA_BAD_UID);    }    set_vpasswd_files( domain );#ifdef FILE_LOCKING	fs3 = fopen(vpasswd_lock_file, "w+");	if ( get_write_lock(fs3) < 0 ) return(-2);#endif    fs1 = fopen(vpasswd_bak_file, "w+");    if ( (fs2 = fopen(vpasswd_file, "r+")) == NULL ) {    	fs2 = fopen(vpasswd_file, "w+");	}    if ( fs1 == NULL || fs2 == NULL ) {		if ( fs1 != NULL ) fclose(fs1);		if ( fs2 != NULL ) fclose(fs2);#ifdef FILE_LOCKING		unlock_lock(fileno(fs3), 0, SEEK_SET, 0);		fclose(fs3);#endif        return(-1);    }    vcdb_strip_char( inpw->pw_gecos );#ifndef CLEAR_PASS    vcdb_strip_char( inpw->pw_clear_passwd );#endif    while (fgets(tmpbuf1,MAX_BUFF,fs2)!=NULL){        strncpy(tmpbuf2, tmpbuf1, MAX_BUFF);        tmpstr = strtok(tmpbuf2,":\n");                if ( strcmp(inpw->pw_name, tmpstr) != 0) {            fputs(tmpbuf1, fs1);        } else {#ifndef CLEAR_PASS            fprintf(fs1, "%s:%s:%d:%d:%s:%s:%s\n",                inpw->pw_name,                inpw->pw_passwd,                inpw->pw_uid,                inpw->pw_gid,                inpw->pw_gecos,                inpw->pw_dir,                inpw->pw_shell);#else            fprintf(fs1, "%s:%s:%d:%d:%s:%s:%s:%s\n",                inpw->pw_name,                inpw->pw_passwd,                inpw->pw_uid,                inpw->pw_gid,                inpw->pw_gecos,                inpw->pw_dir,                inpw->pw_shell, inpw->pw_clear_passwd);#endif        }    }    fclose(fs1);    fclose(fs2);    rename(vpasswd_bak_file, vpasswd_file);    make_vpasswd_cdb(domain);#ifdef FILE_LOCKING	unlock_lock(fileno(fs3), 0, SEEK_SET, 0);	fclose(fs3);#endif#ifdef SQWEBMAIL_PASS	tmpstr = vget_assign(domain, NULL, 0, &uid, &gid );    vsqwebmail_pass( inpw->pw_dir, inpw->pw_passwd, uid, gid);#endif    return(0);}int vauth_adduser_line( FILE *fs1,     char *user,     char *pass,     char *domain,     char *gecos,     char *dir, int apop ){ char Dir[156]; uid_t uid; gid_t gid; char crypted[100];	if ( vget_assign(domain, Dir, 156, &uid, &gid ) == NULL ) {		strcpy(Dir, VPOPMAILDIR);        }         if ( pass[0] != 0 ) {            mkpasswd3(pass,crypted, 100);        } else {            crypted[0] = 0;        }        fprintf(fs1,"%s:", user );        if ( apop == USE_POP ) fprintf(fs1, "%s:1:", crypted);        else fprintf(fs1, "%s:2:", crypted);        fprintf(fs1, "0:%s:%s", gecos, Dir);                if ( strlen(domain) <= 0 ) {            if ( strlen(dir) > 0 ) {                fprintf(fs1, "/users/%s/%s:", dir, user);            } else {                fprintf(fs1, "/users/%s:", user);            }        } else {            if ( strlen(dir) > 0 ) {                fprintf(fs1,"/%s/%s:", dir,user);            } else {                fprintf(fs1, "/%s:", user);            }        }        fprintf(fs1, "NOQUOTA");#ifndef CLEAR_PASS        fprintf(fs1, "\n");#else        fprintf(fs1, ":%s\n", pass);#endif        return(0);}int vmkpasswd( char *domain ){#ifdef FILE_LOCKING FILE *fs3;#endif char Dir[156]; uid_t uid; gid_t gid; char *tmpstr;    getcwd(TmpBuf1, MAX_BUFF);	tmpstr = vget_assign(domain, Dir, 156, &uid, &gid );    if ( chdir(Dir) != 0 ) return(VA_BAD_DIR);    lowerit(domain);    set_vpasswd_files( domain );#ifdef FILE_LOCKING	fs3 = fopen(vpasswd_lock_file, "w+");	if ( get_write_lock(fs3) < 0 ) return(-2);#endif    make_vpasswd_cdb(domain);#ifdef FILE_LOCKING	unlock_lock(fileno(fs3), 0, SEEK_SET, 0);	fclose(fs3);#endif    return(0);}void vclose(){}#ifdef IP_ALIAS_DOMAINSint vget_ip_map( char *ip, char *domain, int domain_size){ FILE *fs; char tmpbuf[156]; char *tmpstr;	if ( ip == NULL || strlen(ip) <= 0 ) return(-1);	/* open the ip_alias_map file */	snprintf(tmpbuf, 156, "%s/%s", VPOPMAILDIR, IP_ALIAS_MAP_FILE);	if ( (fs = fopen(tmpbuf,"r")) == NULL ) return(-1);	while( fgets(tmpbuf, 156, fs) != NULL ) {		tmpstr = strtok(tmpbuf, IP_ALIAS_TOKENS);		if ( tmpstr == NULL ) continue;		if ( strcmp(ip, tmpstr) != 0 ) continue;		tmpstr = strtok(NULL, IP_ALIAS_TOKENS);		if ( tmpstr == NULL ) continue;		strncpy(domain, tmpstr, domain_size);		fclose(fs);		return(0);	}	fclose(fs);	return(-1);}/*  * Add an ip to domain mapping * It will remove any duplicate entry before adding it * */int vadd_ip_map( char *ip, char *domain){ FILE *fs; char tmpbuf[156];	if ( ip == NULL || strlen(ip) <= 0 ) return(-1);	if ( domain == NULL || strlen(domain) <= 0 ) return(-10);	vdel_ip_map( ip, domain );	snprintf(tmpbuf, 156, "%s/%s", VPOPMAILDIR, IP_ALIAS_MAP_FILE);	if ( (fs = fopen(tmpbuf,"a+")) == NULL ) return(-1);	fprintf( fs, "%s %s\n", ip, domain);	fclose(fs);	return(0);}int vdel_ip_map( char *ip, char *domain) { FILE *fs; FILE *fs1; char file1[156]; char file2[156]; char tmpbuf[156]; char tmpbuf1[156]; char *ip_f; char *domain_f;	if ( ip == NULL || strlen(ip) <= 0 ) return(-1);	if ( domain == NULL || strlen(domain) <= 0 ) return(-1);	snprintf(file1, 156, "%s/%s", VPOPMAILDIR, IP_ALIAS_MAP_FILE);	if ( (fs = fopen(file1,"r")) == NULL ) return(-1);	snprintf(file2, 156,            "%s/%s.%d", VPOPMAILDIR, IP_ALIAS_MAP_FILE, getpid());	if ( (fs1 = fopen(file2,"w")) == NULL ) {		fclose(fs);		return(-1);	}	while( fgets(tmpbuf, 156, fs) != NULL ) {		strncpy(tmpbuf1,tmpbuf, 156);		ip_f = strtok(tmpbuf, IP_ALIAS_TOKENS);		if ( ip_f == NULL ) continue;		domain_f = strtok(NULL, IP_ALIAS_TOKENS);		if ( domain_f == NULL ) continue;		if ( strcmp(ip, ip_f) == 0 && strcmp(domain,domain_f) == 0)			continue;		fprintf(fs1, tmpbuf1);	}	fclose(fs);	fclose(fs1);	if ( rename( file2, file1) < 0 ) return(-1);	return(0);}int vshow_ip_map( int first, char *ip, char *domain){ static FILE *fs = NULL; char tmpbuf[156]; char *tmpstr;	if ( ip == NULL ) return(-1);	if ( domain == NULL ) return(-1);	if ( first == 1 ) {		if ( fs != NULL ) {			fclose(fs);			fs = NULL;		}		snprintf(tmpbuf, 156, "%s/%s", VPOPMAILDIR, IP_ALIAS_MAP_FILE);		if ( (fs = fopen(tmpbuf,"r")) == NULL ) return(-1);	}	if ( fs == NULL ) return(-1);	while (1) {		if (fgets(tmpbuf, 156, fs) == NULL ) {			fclose(fs);			fs = NULL;			return(0);		}		tmpstr = strtok(tmpbuf, IP_ALIAS_TOKENS);		if ( tmpstr == NULL ) continue;		strcpy( ip, tmpstr);		tmpstr = strtok(NULL, IP_ALIAS_TOKENS);		if ( tmpstr == NULL ) continue;		strcpy( domain, tmpstr);		return(1);	}	return(-1);}#endifint vread_dir_control(vdir_type *vdir, char *domain, uid_t uid, gid_t gid){  FILE *fs; char dir_control_file[MAX_DIR_NAME]; int i;    strncpy(dir_control_file,dc_filename(domain, uid, gid),MAX_DIR_NAME);    if ( (fs = fopen(dir_control_file, "r")) == NULL ) {        vdir->cur_users = 0;        for(i=0;i<MAX_DIR_LEVELS;++i){            vdir->level_start[i] = 0;            vdir->level_end[i] = MAX_DIR_LIST-1;            vdir->level_index[i] = 0;        }        vdir->level_mod[0] = 0;        vdir->level_mod[1] = 2;        vdir->level_mod[2] = 4;        vdir->level_cur = 0;        vdir->level_max = MAX_DIR_LEVELS;        vdir->the_dir[0] = 0;        return(-1);    }     fgets(dir_control_file, MAX_DIR_NAME, fs );     vdir->cur_users = atol(dir_control_file);    fgets(dir_control_file, MAX_DIR_NAME, fs );     vdir->level_cur = atoi(dir_control_file);    fgets(dir_control_file, MAX_DIR_NAME, fs );     vdir->level_max = atoi(dir_control_file);    fgets(dir_control_file, MAX_DIR_NAME, fs );     vdir->level_start[0] = atoi(dir_control_file);    for(i=0;dir_control_file[i]!=' ';++i); ++i;    vdir->level_start[1] = atoi(&dir_control_file[i]);    for(i=0;dir_control_file[i]!=' ';++i); ++i;    vdir->level_start[2] = atoi(&dir_control_file[i]);    fgets(dir_control_file, MAX_DIR_NAME, fs );     vdir->level_end[0] = atoi(dir_control_file);    for(i=0;dir_control_file[i]!=' ';++i); ++i;    vdir->level_end[1] = atoi(&dir_control_file[i]);    for(i=0;dir_control_file[i]!=' ';++i); ++i;    vdir->level_end[2] = atoi(&dir_control_file[i]);    fgets(dir_control_file, MAX_DIR_NAME, fs );     vdir->level_mod[0] = atoi(dir_control_file);    for(i=0;dir_control_file[i]!=' ';++i); ++i;    vdir->level_mod[1] = atoi(&dir_control_file[i]);    for(i=0;dir_control_file[i]!=' ';++i); ++i;    vdir->level_mod[2] = atoi(&dir_control_file[i]);    fgets(dir_control_file, MAX_DIR_NAME, fs );     vdir->level_index[0] = atoi(dir_control_file);    for(i=0;dir_control_file[i]!=' ';++i); ++i;    vdir->level_index[1] = atoi(&dir_control_file[i]);    for(i=0;dir_control_file[i]!=' ';++i); ++i;    vdir->level_index[2] = atoi(&dir_control_file[i]);    fgets(dir_control_file, MAX_DIR_NAME, fs );     for(i=0;dir_control_file[i]!=0;++i) {        if (dir_control_file[i] == '\n') {            dir_control_file[i] = 0;        }    }    fgets(dir_control_file, MAX_DIR_NAME, fs );     for(i=0;dir_control_file[i]!=0;++i) {        if (dir_control_file[i] == '\n') {            dir_control_file[i] = 0;        }    }    strncpy(vdir->the_dir, dir_control_file, MAX_DIR_NAME);    fclose(fs);    return(0);}int vwrite_dir_control(vdir_type *vdir, char *domain, uid_t uid, gid_t gid){  FILE *fs; char dir_control_file[MAX_DIR_NAME]; char dir_control_tmp_file[MAX_DIR_NAME];    strncpy(dir_control_file,dc_filename(domain, uid, gid),MAX_DIR_NAME);    snprintf(dir_control_tmp_file, MAX_DIR_NAME,         "%s.%d", dir_control_file, getpid());    if ( (fs = fopen(dir_control_tmp_file, "w+")) == NULL ) {        return(-1);    }     fprintf(fs, "%lu\n", vdir->cur_users);    fprintf(fs, "%d\n", vdir->level_cur);    fprintf(fs, "%d\n", vdir->level_max);    fprintf(fs, "%d %d %d\n",         vdir->level_start[0],        vdir->level_start[1],        vdir->level_start[2]);    fprintf(fs, "%d %d %d\n",         vdir->level_end[0],        vdir->level_end[1],        vdir->level_end[2]);    fprintf(fs, "%d %d %d\n",         vdir->level_mod[0],        vdir->level_mod[1],        vdir->level_mod[2]);    fprintf(fs, "%d %d %d\n",         vdir->level_index[0],        vdir->level_index[1],        vdir->level_index[2]);    fprintf(fs, "%s\n", vdir->the_dir);     fclose(fs);    rename( dir_control_tmp_file, dir_control_file);     chown(dir_control_file,uid, gid);    return(0);}int vdel_dir_control(char *domain){ char dir_control_file[MAX_DIR_NAME];    vget_assign(domain, dir_control_file, 156, NULL,NULL);    strncat(dir_control_file,"/.dir-control", MAX_DIR_NAME);    return(unlink(dir_control_file));}#ifdef ENABLE_AUTH_LOGGINGint vset_lastauth(char *user, char *domain, char *remoteip ){ char *tmpbuf; FILE *fs; struct vqpasswd *vpw; uid_t uid; gid_t gid;    if( (vpw = vauth_getpw( user, domain )) == NULL) return(0);	tmpbuf = malloc(MAX_BUFF);	snprintf(tmpbuf, MAX_BUFF, "%s/lastauth", vpw->pw_dir);	if ( (fs = fopen(tmpbuf,"w+")) == NULL ) {	  free(tmpbuf);	  return(-1);	}	fprintf(fs, "%s", remoteip);	fclose(fs);        vget_assign(domain,NULL,0,&uid,&gid);        chown(tmpbuf,uid,gid);	free(tmpbuf);	return(0);}time_t vget_lastauth( struct vqpasswd *pw, char *domain){ char *tmpbuf; struct stat mystatbuf;	tmpbuf = malloc(MAX_BUFF);	snprintf(tmpbuf, MAX_BUFF, "%s/lastauth", pw->pw_dir);	if ( stat(tmpbuf,&mystatbuf) == -1 ) {		free(tmpbuf);		return(0);	}	free(tmpbuf);	return(mystatbuf.st_mtime);}char *vget_lastauthip( struct vqpasswd *pw, char *domain){ static char tmpbuf[MAX_BUFF]; FILE *fs;	snprintf(tmpbuf, MAX_BUFF, "%s/lastauth", pw->pw_dir);        if ( (fs=fopen(tmpbuf,"r"))==NULL) return(NULL);        fgets(tmpbuf,MAX_BUFF,fs);        fclose(fs);        return(tmpbuf);}#endif /* ENABLE_AUTH_LOGGING */char *dc_filename(char *domain, uid_t uid, gid_t gid){ static char dir_control_file[MAX_DIR_NAME]; struct passwd *pw;    /* if we are lucky the domain is in the assign file */    if ( vget_assign(domain,dir_control_file,MAX_DIR_NAME,NULL,NULL)!=NULL ) { 	strncat(dir_control_file, "/.dir-control", MAX_DIR_NAME);    /* it isn't in the assign file so we have to get it from /etc/passwd */    } else {              /* save some time if this is the vpopmail user */        if ( uid == VPOPMAILUID ) {            strncpy(dir_control_file, VPOPMAILDIR, MAX_DIR_NAME);        /* for other users, look them up in /etc/passwd */        } else if ( (pw=getpwuid(uid))!=NULL ) {            strncpy(dir_control_file, pw->pw_dir, MAX_DIR_NAME);        /* all else fails return a blank string */        } else {            return("");        }        /* stick on the rest of the path */        strncat(dir_control_file, "/" DOMAINS_DIR "/.dir-control", MAX_DIR_NAME);     }    return(dir_control_file);}void vcdb_strip_char( char *instr ){ char *nextstr;    nextstr = instr;    while (*instr != 0 ) {       if ( *instr == ':' ) ++instr;       if ( nextstr != instr ) *nextstr = *instr;       ++nextstr;       ++instr;    }}int vauth_crypt(char *user,char *domain,char *clear_pass,struct vqpasswd *vpw){  if ( vpw == NULL ) return(-1);  return(strcmp(crypt(clear_pass,vpw->pw_passwd),vpw->pw_passwd));}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩三级视频中文字幕| 毛片不卡一区二区| 91国偷自产一区二区三区成为亚洲经典 | 91福利国产成人精品照片| 综合婷婷亚洲小说| 欧美日韩日日夜夜| 男男gaygay亚洲| 久久久99久久| 色综合一区二区| 日韩国产精品久久久| 日韩区在线观看| 成人免费视频免费观看| 亚洲一二三级电影| 精品蜜桃在线看| 99re亚洲国产精品| 图片区小说区区亚洲影院| 欧美videos中文字幕| 成人国产精品免费观看动漫| 一区二区中文字幕在线| 欧美日本韩国一区| 国产精品亚洲第一| 一区二区三区在线免费| 日韩精品一区二区三区蜜臀| 风间由美性色一区二区三区| 亚洲一区二区三区在线看| 精品剧情v国产在线观看在线| 国产成人午夜精品5599| 五月综合激情网| 国产精品视频看| 欧美日韩精品一区二区| 成人性生交大片免费看中文网站| 亚洲一区二区三区激情| 中文字幕不卡的av| 日韩天堂在线观看| av激情亚洲男人天堂| 蜜乳av一区二区| 夜夜精品视频一区二区| 国产免费观看久久| 日韩免费福利电影在线观看| 在线视频欧美区| 成人精品电影在线观看| 看片网站欧美日韩| 亚洲制服丝袜av| 中文字幕精品综合| 精品国内二区三区| 欧美二区三区的天堂| 91久久精品一区二区| 高清国产一区二区三区| 久久国产精品露脸对白| 午夜久久久影院| 一区二区三区四区在线| 中文字幕一区二区三区精华液| 亚洲视频狠狠干| 欧美国产精品一区二区三区| 日韩免费观看2025年上映的电影| 欧美三级日韩在线| 欧美在线一区二区| 色综合天天天天做夜夜夜夜做| 国产一区二区三区av电影 | 欧美喷潮久久久xxxxx| 色综合久久久网| 成人福利电影精品一区二区在线观看| 久久福利资源站| 麻豆精品国产91久久久久久| 日韩精品色哟哟| 午夜在线成人av| 亚洲成人免费av| 亚洲高清三级视频| 伊人一区二区三区| 亚洲色图.com| 一区二区视频在线| 伊人婷婷欧美激情| 亚洲综合色区另类av| 亚洲精品中文字幕在线观看| 亚洲欧美激情插| 亚洲综合免费观看高清完整版在线 | 国产午夜亚洲精品理论片色戒 | 国产日韩v精品一区二区| 久久蜜桃一区二区| 久久久不卡影院| 国产精品三级电影| 亚洲欧美另类久久久精品| 有码一区二区三区| 婷婷国产在线综合| 免费成人你懂的| 精品一区二区三区蜜桃| 国产美女久久久久| 国产iv一区二区三区| 99久久99久久免费精品蜜臀| 91麻豆国产精品久久| 在线观看视频一区二区欧美日韩| 色av综合在线| 91精品久久久久久蜜臀| 精品久久久久久最新网址| 国产亚洲成aⅴ人片在线观看| 国产午夜精品一区二区三区四区| 国产精品女主播av| 亚洲电影一区二区三区| 另类小说一区二区三区| 粉嫩高潮美女一区二区三区| 日本道色综合久久| 欧美一区二区美女| 国产色产综合产在线视频| 亚洲视频综合在线| 三级在线观看一区二区| 国产一区二区免费看| 99久久精品久久久久久清纯| 欧美日本一区二区| 国产亚洲成年网址在线观看| 亚洲影视资源网| 久久av资源站| 91麻豆免费看片| 精品成人佐山爱一区二区| 亚洲色图欧美在线| 美女国产一区二区三区| 99久久精品免费| 欧美videossexotv100| 亚洲精品久久久久久国产精华液| 美女诱惑一区二区| 在线一区二区三区四区五区 | 国产亚洲精品bt天堂精选| 一区二区三区在线观看网站| 国产一区二区三区免费观看| 欧美性猛交xxxx黑人交| 国产女主播在线一区二区| 午夜久久久影院| 91亚洲精华国产精华精华液| 精品日韩欧美在线| 视频一区中文字幕| 91美女片黄在线观看91美女| 久久久久久综合| 日韩电影一二三区| 91黄色免费版| 亚洲欧美在线另类| 国产另类ts人妖一区二区| 在线综合视频播放| 亚洲欧美日韩在线播放| 丁香婷婷深情五月亚洲| 精品国产99国产精品| 午夜成人在线视频| 精品视频一区二区三区免费| 中文字幕一区二区三区乱码在线| 国产一区二区美女| 精品国产乱子伦一区| 强制捆绑调教一区二区| 欧美日韩高清在线播放| 亚洲最大成人网4388xx| 91色porny蝌蚪| 国产精品萝li| 成人h动漫精品| 亚洲国产精品二十页| 国产风韵犹存在线视精品| 欧美xxxxx牲另类人与| 青青草国产成人av片免费| 欧美色大人视频| 亚洲午夜精品在线| 欧美在线制服丝袜| 亚洲最新视频在线播放| 在线观看区一区二| 依依成人综合视频| 在线一区二区三区| 亚洲高清不卡在线观看| 欧美在线啊v一区| 性欧美大战久久久久久久久| 欧美日韩你懂得| 日韩精品1区2区3区| 欧美一区二区日韩| 久久99精品国产麻豆不卡| 日韩欧美亚洲另类制服综合在线| 蜜臀av一级做a爰片久久| 欧美电视剧免费观看| 国产在线一区观看| 亚洲精品在线三区| 风流少妇一区二区| 亚洲免费观看高清在线观看| 在线观看一区二区视频| 亚洲观看高清完整版在线观看| 在线影视一区二区三区| 日日夜夜一区二区| 日韩欧美国产一二三区| 国产乱人伦偷精品视频不卡| 国产欧美日韩一区二区三区在线观看 | 在线精品视频免费观看| 亚洲在线观看免费| 欧美成人一区二区三区在线观看| 精品一区二区三区在线播放| 国产拍揄自揄精品视频麻豆| 91小视频在线免费看| 亚洲激情网站免费观看| 日韩一区二区免费在线电影| 国产一区二区福利| 亚洲日本在线视频观看| 欧美老肥妇做.爰bbww视频| 国内精品免费在线观看| 日韩一区欧美一区| 欧美精品1区2区| 国产福利91精品| 亚洲观看高清完整版在线观看 | 国产精品久久夜| 欧美视频一区二区三区在线观看|