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

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

?? vldap.c

?? 相當優秀的 UNIX 進程管理工具
?? C
?? 第 1 頁 / 共 3 頁
字號:
            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);}int 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_time(char *user, char *domain, char *remoteip, time_t cur_time ) {    char *tmpbuf;    FILE *fs;    struct vqpasswd *vpw;    struct utimbuf ubuf;    uid_t uid;    gid_t gid;    if ((vpw = vauth_getpw( user, domain )) == NULL)        return (0);    tmpbuf = (char *) safe_malloc(MAX_BUFF);    sprintf(tmpbuf, "%s/lastauth", vpw->pw_dir);    if ( (fs = fopen(tmpbuf,"w+")) == NULL ) {        safe_free((void **) &tmpbuf);        return(-1);    }    fprintf(fs, "%s", remoteip);    fclose(fs);    ubuf.actime = cur_time;    ubuf.modtime = cur_time;    utime(tmpbuf, &ubuf);    vget_assign(domain,NULL,0,&uid,&gid);    chown(tmpbuf,uid,gid);    safe_free((void **) &tmpbuf);    return(0);}int vset_lastauth(char *user, char *domain, char *remoteip ) {    return(vset_lastauth_time(user, domain, remoteip, time(NULL) ));}time_t vget_lastauth( struct vqpasswd *pw, char *domain) {    char *tmpbuf;    struct stat mystatbuf;    tmpbuf = (char *) safe_malloc(MAX_BUFF);    sprintf(tmpbuf, "%s/lastauth", pw->pw_dir);    if ( stat(tmpbuf,&mystatbuf) == -1 ) {        safe_free((void **) &tmpbuf);        return(0);    }    safe_free((void **) &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 *//***************************************************************************/#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);}#endif/***************************************************************************//* take a given domain, and set dn to be a string of this format : * ou=somedomain,o=vpopmail */int compose_dn (char **dn, char *domain) {    size_t len = 0;    len = strlen(domain) + strlen(VLDAP_BASEDN) + 5;    *dn = (char *)safe_malloc(len);    memset((char *)*dn, 0, len);    snprintf(*dn,len,"ou=%s,%s",domain,VLDAP_BASEDN);    return 0;}/***************************************************************************/int ldap_connect () {    int ret = 0;    /* Set verror here and unset it when successful, is ok, because if one of these    three steps fail the whole auth_connection failed */    verrori = VA_NO_AUTH_CONNECTION;    ld = ldap_init(VLDAP_SERVER, VLDAP_PORT);    if (ld == NULL) {        ldap_perror(ld,"Failed to inititialize LDAP-Connection");        return -99;    }    ret = ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, &ldapversion );    if (ret != LDAP_OPT_SUCCESS) {        ldap_perror(ld,"Failed to set LDAP-Option");        return -99;    }    ret = ldap_simple_bind_s(ld, VLDAP_USER, VLDAP_PASSWORD);    if (ret != LDAP_SUCCESS) {        ldap_perror(ld,"Error");        return (VA_NO_AUTH_CONNECTION);    }    verrori = 0;    return VA_SUCCESS;}/***************************************************************************/void safe_free (void **p) {    if (*p) {        free (*p);        *p = 0;    }}/***************************************************************************/char *safe_strdup (const char *s) {    char *p;    size_t l;    if (!s || !*s)        return 0;    l = strlen (s) + 1;    p = (char *)safe_malloc (l);    memcpy (p, s, l);    return (p);}/***************************************************************************/void *safe_malloc (size_t siz) {    void *p;    if (siz == 0)        return 0;    if ((p = (void *) malloc (siz)) == 0) {        printf("No more memory...exiting\n");        exit (1);    }    return (p);}/***************************************************************************/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一区二区三区免费野_久草精品视频
精品污污网站免费看| 亚洲欧美综合在线精品| 精品处破学生在线二十三| 国产欧美精品一区二区色综合 | 亚洲福利一二三区| 视频一区视频二区在线观看| 青草av.久久免费一区| 韩国av一区二区三区在线观看| 免费看日韩a级影片| 国产一区二区三区| 成人国产亚洲欧美成人综合网| www.视频一区| 欧美日韩一区三区四区| 日韩一级片在线播放| 久久久久久黄色| 亚洲欧美自拍偷拍色图| 午夜国产精品一区| 国产一区二区三区四区五区美女| 成人avav影音| 精品视频123区在线观看| 精品国产乱码久久久久久影片| 国产欧美一区视频| 一卡二卡欧美日韩| 久久99热这里只有精品| 成人精品视频网站| 欧美精品丝袜中出| 国产日韩影视精品| 夜夜亚洲天天久久| 精品一区二区在线观看| 波多野结衣在线一区| 欧美午夜精品一区二区三区| 日韩视频免费观看高清在线视频| 欧美高清在线一区二区| 亚洲成人第一页| 国产成人午夜视频| 欧美日韩一区二区三区在线| 久久中文字幕电影| 亚洲国产视频在线| 日韩国产精品91| 国产超碰在线一区| 色偷偷久久一区二区三区| 91激情五月电影| 欧美成人r级一区二区三区| 成人欧美一区二区三区视频网页 | 99re视频精品| 精品第一国产综合精品aⅴ| 亚洲乱码一区二区三区在线观看| 狠狠狠色丁香婷婷综合久久五月| 欧美亚洲精品一区| 国产女同互慰高潮91漫画| 午夜精品久久久久久久| 成人精品国产一区二区4080| 日韩欧美国产小视频| 洋洋av久久久久久久一区| 国产黑丝在线一区二区三区| 欧美日韩和欧美的一区二区| 国产精品久久影院| 久久国产精品一区二区| 99re亚洲国产精品| 捆绑变态av一区二区三区| 亚洲已满18点击进入久久| 极品少妇一区二区三区精品视频| 欧美日韩亚洲另类| 一区二区三区四区蜜桃| 91色视频在线| 中文字幕在线不卡| www.日韩在线| 亚洲国产精品精华液ab| 粉嫩在线一区二区三区视频| 日韩免费看网站| 亚洲资源中文字幕| 欧美亚洲综合在线| 一区二区三区日韩欧美| 国产91精品在线观看| 欧美精品欧美精品系列| 中文字幕欧美激情| 激情综合色播激情啊| 久久亚洲精精品中文字幕早川悠里| 男男成人高潮片免费网站| 色综合天天做天天爱| 久久久综合激的五月天| 久久99久久久久| 欧美一区午夜视频在线观看| 五月婷婷综合在线| 欧美精品九九99久久| 亚洲v日本v欧美v久久精品| 欧美性xxxxxx少妇| 亚洲影视在线观看| 欧美性高清videossexo| 亚洲一区二区三区激情| 欧美性一级生活| 亚洲国产综合91精品麻豆| 欧洲生活片亚洲生活在线观看| 亚洲免费在线看| 在线亚洲+欧美+日本专区| 日韩一区欧美一区| 色域天天综合网| 亚洲国产视频a| 91精品国产福利| 麻豆久久一区二区| 26uuu欧美日本| 国产99久久久国产精品免费看| 国产精品天美传媒沈樵| av在线播放成人| 一区二区三区在线视频播放| 欧美日韩一区中文字幕| 日本不卡一区二区三区高清视频| 欧美一区二区三区性视频| 久久se这里有精品| 欧美激情一区二区在线| 色悠悠久久综合| 视频在线在亚洲| 精品国产精品网麻豆系列| 国产大陆精品国产| 亚洲六月丁香色婷婷综合久久| 欧美午夜精品一区| 麻豆久久一区二区| 国产精品久久久久影院亚瑟 | 欧美在线短视频| 日韩成人精品视频| 久久精品视频免费观看| 91免费版在线| 亚洲va欧美va天堂v国产综合| 欧美性猛片aaaaaaa做受| 美女国产一区二区三区| 91精品国产91久久久久久最新毛片| 国产美女一区二区三区| 亚洲图片你懂的| 91精品在线观看入口| 国产美女在线观看一区| 亚洲精品高清在线观看| 欧美巨大另类极品videosbest | 亚洲视频一区二区免费在线观看| 欧美在线不卡一区| 激情综合网激情| 亚洲免费色视频| 日韩网站在线看片你懂的| 成人午夜看片网址| 性久久久久久久久久久久| 国产午夜亚洲精品午夜鲁丝片| 色婷婷综合激情| 精品影视av免费| 亚洲一级不卡视频| 久久你懂得1024| 色视频成人在线观看免| 毛片基地黄久久久久久天堂| 日韩美女视频一区二区| 日韩免费在线观看| 在线视频你懂得一区二区三区| 久久精品噜噜噜成人88aⅴ| 亚洲品质自拍视频| 日韩精品一区在线| 一本大道久久精品懂色aⅴ| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲午夜成aⅴ人片| 日本一区二区三区视频视频| 3atv在线一区二区三区| 成人国产精品免费观看| 日韩av二区在线播放| 亚洲三级免费电影| 久久久www免费人成精品| 欧美日本韩国一区| 色视频欧美一区二区三区| 久久99在线观看| 夜夜夜精品看看| 欧美www视频| 成人福利视频网站| 麻豆国产精品官网| 日韩理论片中文av| 国产亚洲一二三区| 欧美成人性战久久| 欧美美女视频在线观看| 91在线精品一区二区三区| 国产精品一区二区在线播放| 奇米888四色在线精品| 亚洲综合清纯丝袜自拍| 中文字幕中文字幕中文字幕亚洲无线| 日韩欧美国产一区在线观看| 欧美日韩国产系列| 欧洲另类一二三四区| 91免费观看在线| 成人蜜臀av电影| 丁香另类激情小说| 国产乱码字幕精品高清av| 精品影院一区二区久久久| 青娱乐精品视频| 亚洲大尺度视频在线观看| 国产精品你懂的| 国产视频一区在线观看| 国产欧美一区二区三区在线看蜜臀| 精品成人一区二区| 日韩精品一区二区在线| 欧美一级免费观看| 制服丝袜av成人在线看| 欧美精品乱码久久久久久按摩| 欧美日韩精品综合在线| 欧美三级一区二区| 欧美图区在线视频| 91.麻豆视频| 欧美一区二区三区白人|