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

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

?? squid_ldap_group.c

?? 代理服務器 squid-2.6.STABLE16
?? C
?? 第 1 頁 / 共 2 頁
字號:
#endif	fprintf(stderr, "\t-h server\t\tLDAP server (defaults to localhost)\n");	fprintf(stderr, "\t-p port\t\t\tLDAP server port (defaults to %d)\n", LDAP_PORT);	fprintf(stderr, "\t-P\t\t\tpersistent LDAP connection\n");#if defined(NETSCAPE_SSL)	fprintf(stderr, "\t-E sslcertpath\t\tenable LDAP over SSL\n");#endif	fprintf(stderr, "\t-c timeout\t\tconnect timeout\n");	fprintf(stderr, "\t-t timelimit\t\tsearch time limit\n");	fprintf(stderr, "\t-R\t\t\tdo not follow referrals\n");	fprintf(stderr, "\t-a never|always|search|find\n\t\t\t\twhen to dereference aliases\n");#ifdef LDAP_VERSION3	fprintf(stderr, "\t-v 2|3\t\t\tLDAP version\n");	fprintf(stderr, "\t-Z\t\t\tTLS encrypt the LDAP connection, requires\n\t\t\t\tLDAP version 3\n");#endif	fprintf(stderr, "\t-g\t\t\tfirst query parameter is base DN extension\n\t\t\t\tfor this query\n");	fprintf(stderr, "\t-S\t\t\tStrip NT domain from usernames\n");	fprintf(stderr, "\n");	fprintf(stderr, "\tIf you need to bind as a user to perform searches then use the\n\t-D binddn -w bindpasswd or -D binddn -W secretfile options\n\n");	exit(1);    }/* On Windows ldap_start_tls_s is available starting from Windows XP,  * so we need to bind at run-time with the function entry point */#ifdef _SQUID_MSWIN_    if (use_tls) {	HMODULE WLDAP32Handle;	WLDAP32Handle = GetModuleHandle("wldap32");	if ((Win32_ldap_start_tls_s = (PFldap_start_tls_s) GetProcAddress(WLDAP32Handle, LDAP_START_TLS_S)) == NULL) {	    fprintf(stderr, PROGRAM_NAME ": ERROR: TLS (-Z) not supported on this platform.\n");	    exit(1);	}    }#endif    while (fgets(buf, 256, stdin) != NULL) {	int found = 0;	if (!strchr(buf, '\n')) {	    /* too large message received.. skip and deny */	    fprintf(stderr, "%s: ERROR: Too large: %s\n", argv[0], buf);	    while (fgets(buf, sizeof(buf), stdin)) {		fprintf(stderr, "%s: ERROR: Too large..: %s\n", argv[0], buf);		if (strchr(buf, '\n') != NULL)		    break;	    }	    goto error;	}	user = strtok(buf, " \n");	if (!user) {	    fprintf(stderr, "%s: Invalid request\n", argv[0]);	    goto error;	}	rfc1738_unescape(user);	if (strip_nt_domain) {	    char *u = strchr(user, '\\');	    if (!u)		u = strchr(user, '/');	    if (u && u[1])		user = u + 1;	}	if (use_extension_dn) {	    extension_dn = strtok(NULL, " \n");	    if (!extension_dn) {		fprintf(stderr, "%s: Invalid request\n", argv[0]);		goto error;	    }	    rfc1738_unescape(extension_dn);	}	while (!found && user && (group = strtok(NULL, " \n")) != NULL) {	    rfc1738_unescape(group);	  recover:	    if (ld == NULL) {#if HAS_URI_SUPPORT		if (strstr(ldapServer, "://") != NULL) {		    rc = ldap_initialize(&ld, ldapServer);		    if (rc != LDAP_SUCCESS) {			fprintf(stderr, "\nUnable to connect to LDAPURI:%s\n", ldapServer);			break;		    }		} else#endif#if NETSCAPE_SSL		if (sslpath) {		    if (!sslinit && (ldapssl_client_init(sslpath, NULL) != LDAP_SUCCESS)) {			fprintf(stderr, "\nUnable to initialise SSL with cert path %s\n",			    sslpath);			exit(1);		    } else {			sslinit++;		    }		    if ((ld = ldapssl_init(ldapServer, port, 1)) == NULL) {			fprintf(stderr, "\nUnable to connect to SSL LDAP server: %s port:%d\n",			    ldapServer, port);			exit(1);		    }		} else#endif		if ((ld = ldap_init(ldapServer, port)) == NULL) {		    fprintf(stderr, "\nUnable to connect to LDAP server:%s port:%d\n", ldapServer, port);		    break;		}		if (connect_timeout)		    squid_ldap_set_connect_timeout(ld, connect_timeout);#ifdef LDAP_VERSION3		if (version == -1) {		    version = LDAP_VERSION2;		}		if (ldap_set_option(ld, LDAP_OPT_PROTOCOL_VERSION, &version) != LDAP_SUCCESS) {		    fprintf(stderr, "Could not set LDAP_OPT_PROTOCOL_VERSION %d\n",			version);		    ldap_unbind(ld);		    ld = NULL;		    break;		}		if (use_tls) {#ifdef LDAP_OPT_X_TLS		    if (version != LDAP_VERSION3) {			fprintf(stderr, "TLS requires LDAP version 3\n");			exit(1);		    } else if (ldap_start_tls_s(ld, NULL, NULL) != LDAP_SUCCESS) {			fprintf(stderr, "Could not Activate TLS connection\n");			ldap_unbind(ld);			ld = NULL;			break;		    }#else		    fprintf(stderr, "TLS not supported with your LDAP library\n");		    exit(1);#endif		}#endif		squid_ldap_set_timelimit(ld, timelimit);		squid_ldap_set_referrals(ld, !noreferrals);		squid_ldap_set_aliasderef(ld, aliasderef);		if (binddn && bindpasswd && *binddn && *bindpasswd) {		    rc = ldap_simple_bind_s(ld, binddn, bindpasswd);		    if (rc != LDAP_SUCCESS) {			fprintf(stderr, PROGRAM_NAME " WARNING, could not bind to binddn '%s'\n", ldap_err2string(rc));			ldap_unbind(ld);			ld = NULL;			break;		    }		}		if (debug)		    fprintf(stderr, "Connected OK\n");	    }	    if (searchLDAP(ld, group, user, extension_dn) == 0) {		found = 1;		break;	    } else {		if (tryagain) {		    tryagain = 0;		    ldap_unbind(ld);		    ld = NULL;		    goto recover;		}	    }	}	if (found)	    printf("OK\n");	else {	  error:	    printf("ERR\n");	}	if (ld != NULL) {	    if (!persistent || (squid_ldap_errno(ld) != LDAP_SUCCESS && squid_ldap_errno(ld) != LDAP_INVALID_CREDENTIALS)) {		ldap_unbind(ld);		ld = NULL;	    } else {		tryagain = 1;	    }	}	err = 0;    }    if (ld)	ldap_unbind(ld);    return 0;}static intldap_escape_value(char *escaped, int size, const char *src){    int n = 0;    while (size > 4 && *src) {	switch (*src) {	case '*':	case '(':	case ')':	case '\\':	    n += 3;	    size -= 3;	    if (size > 0) {		*escaped++ = '\\';		snprintf(escaped, 3, "%02x", (unsigned char) *src++);		escaped += 2;	    }	    break;	default:	    *escaped++ = *src++;	    n++;	    size--;	}    }    *escaped = '\0';    return n;}static intbuild_filter(char *filter, int size, const char *template, const char *user, const char *group){    int n;    while (*template && size > 0) {	switch (*template) {	case '%':	    template++;	    switch (*template) {	    case 'u':	    case 'v':		template++;		n = ldap_escape_value(filter, size, user);		size -= n;		filter += n;		break;	    case 'g':	    case 'a':		template++;		n = ldap_escape_value(filter, size, group);		size -= n;		filter += n;		break;	    default:		fprintf(stderr, "ERROR: Unknown filter template string %%%c\n", *template);		return 1;		break;	    }	    break;	case '\\':	    template++;	    if (*template) {		*filter++ = *template++;		size--;	    }	    break;	default:	    *filter++ = *template++;	    size--;	    break;	}    }    if (size <= 0) {	fprintf(stderr, "ERROR: Filter too large\n");	return 1;    }    *filter = '\0';    return 0;}static intsearchLDAPGroup(LDAP * ld, char *group, char *member, char *extension_dn){    char filter[256];    static char searchbase[256];    LDAPMessage *res = NULL;    LDAPMessage *entry;    int rc;    char *searchattr[] =    {LDAP_NO_ATTRS, NULL};    if (extension_dn && *extension_dn)	snprintf(searchbase, sizeof(searchbase), "%s,%s", extension_dn, basedn);    else	snprintf(searchbase, sizeof(searchbase), "%s", basedn);    if (build_filter(filter, sizeof(filter), searchfilter, member, group) != 0) {	fprintf(stderr, PROGRAM_NAME " ERROR, Failed to construct LDAP search filter. filter=\"%s\", user=\"%s\", group=\"%s\"\n", filter, member, group);	return 1;    }    if (debug)	fprintf(stderr, "group filter '%s', searchbase '%s'\n", filter, searchbase);    rc = ldap_search_s(ld, searchbase, searchscope, filter, searchattr, 1, &res);    if (rc != LDAP_SUCCESS) {	if (noreferrals && rc == LDAP_PARTIAL_RESULTS) {	    /* Everything is fine. This is expected when referrals	     * are disabled.	     */	} else {	    fprintf(stderr, PROGRAM_NAME " WARNING, LDAP search error '%s'\n", ldap_err2string(rc));#if defined(NETSCAPE_SSL)	    if (sslpath && ((rc == LDAP_SERVER_DOWN) || (rc == LDAP_CONNECT_ERROR))) {		int sslerr = PORT_GetError();		fprintf(stderr, PROGRAM_NAME ": WARNING, SSL error %d (%s)\n", sslerr, ldapssl_err2string(sslerr));	    }#endif	    ldap_msgfree(res);	    return 1;	}    }    entry = ldap_first_entry(ld, res);    if (!entry) {	ldap_msgfree(res);	return 1;    }    ldap_msgfree(res);    return 0;}static intsearchLDAP(LDAP * ld, char *group, char *login, char *extension_dn){    if (usersearchfilter) {	char filter[8192];	char searchbase[8192];	char escaped_login[1024];	LDAPMessage *res = NULL;	LDAPMessage *entry;	int rc;	char *userdn;	char *searchattr[] =	{LDAP_NO_ATTRS, NULL};	if (extension_dn && *extension_dn)	    snprintf(searchbase, sizeof(searchbase), "%s,%s", extension_dn, userbasedn ? userbasedn : basedn);	else	    snprintf(searchbase, sizeof(searchbase), "%s", userbasedn ? userbasedn : basedn);	ldap_escape_value(escaped_login, sizeof(escaped_login), login);	snprintf(filter, sizeof(filter), usersearchfilter, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login, escaped_login);	if (debug)	    fprintf(stderr, "user filter '%s', searchbase '%s'\n", filter, searchbase);	rc = ldap_search_s(ld, searchbase, searchscope, filter, searchattr, 1, &res);	if (rc != LDAP_SUCCESS) {	    if (noreferrals && rc == LDAP_PARTIAL_RESULTS) {		/* Everything is fine. This is expected when referrals		 * are disabled.		 */	    } else {		fprintf(stderr, PROGRAM_NAME " WARNING, LDAP search error '%s'\n", ldap_err2string(rc));#if defined(NETSCAPE_SSL)		if (sslpath && ((rc == LDAP_SERVER_DOWN) || (rc == LDAP_CONNECT_ERROR))) {		    int sslerr = PORT_GetError();		    fprintf(stderr, PROGRAM_NAME ": WARNING, SSL error %d (%s)\n", sslerr, ldapssl_err2string(sslerr));		}#endif		ldap_msgfree(res);		return 1;	    }	}	entry = ldap_first_entry(ld, res);	if (!entry) {	    fprintf(stderr, PROGRAM_NAME " WARNING, User '%s' not found in '%s'\n", login, searchbase);	    ldap_msgfree(res);	    return 1;	}	userdn = ldap_get_dn(ld, entry);	rc = searchLDAPGroup(ld, group, userdn, extension_dn);	squid_ldap_memfree(userdn);	ldap_msgfree(res);	return rc;    } else if (userdnattr) {	char dn[8192];	if (extension_dn && *extension_dn)	    sprintf(dn, "%s=%s, %s, %s", userdnattr, login, extension_dn, userbasedn ? userbasedn : basedn);	else	    sprintf(dn, "%s=%s, %s", userdnattr, login, userbasedn ? userbasedn : basedn);	return searchLDAPGroup(ld, group, dn, extension_dn);    } else {	return searchLDAPGroup(ld, group, login, extension_dn);    }}int readSecret(char *filename){    char buf[BUFSIZ];    char *e = 0;    FILE *f;    if (!(f = fopen(filename, "r"))) {	fprintf(stderr, PROGRAM_NAME " ERROR: Can not read secret file %s\n", filename);	return 1;    }    if (!fgets(buf, sizeof(buf) - 1, f)) {	fprintf(stderr, PROGRAM_NAME " ERROR: Secret file %s is empty\n", filename);	fclose(f);	return 1;    }    /* strip whitespaces on end */    if ((e = strrchr(buf, '\n')))	*e = 0;    if ((e = strrchr(buf, '\r')))	*e = 0;    bindpasswd = (char *) calloc(sizeof(char), strlen(buf) + 1);    if (bindpasswd) {	strcpy(bindpasswd, buf);    } else {	fprintf(stderr, PROGRAM_NAME " ERROR: can not allocate memory\n");    }    fclose(f);    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本三级亚洲精品| 欧美成人猛片aaaaaaa| 91精品国产免费| 国产欧美日韩精品a在线观看| 午夜免费久久看| 福利一区福利二区| 欧美一区二区三区在线电影| 最新日韩av在线| 国产一区在线看| 欧美一区永久视频免费观看| 亚洲伦理在线免费看| 成人黄色一级视频| 欧美精品一区二区三区蜜臀| 无吗不卡中文字幕| 在线影院国内精品| 国产精品短视频| 成人激情视频网站| 国产亚洲精品福利| 国产剧情在线观看一区二区| 日韩一区二区在线观看视频播放| 亚洲一区二区三区小说| 99国产精品久| 亚洲视频小说图片| 99精品视频中文字幕| 欧美激情在线一区二区三区| 激情欧美日韩一区二区| 日韩欧美一二三| 久久精品国产秦先生| 日韩精品一区二区三区三区免费| 美国十次综合导航| 日韩欧美一区电影| 韩国精品免费视频| 久久久久国产精品人| 国产不卡免费视频| 国产精品午夜电影| 99国产一区二区三精品乱码| 亚洲图片你懂的| 91久久精品一区二区三| 一区二区三区国产| 欧美高清视频一二三区 | 亚洲精品一区二区三区福利| 日韩经典中文字幕一区| 欧美片网站yy| 麻豆精品新av中文字幕| 日韩精品一区在线| 国产在线精品一区二区不卡了 | 亚洲人成网站影音先锋播放| jizzjizzjizz欧美| 亚洲一区二区三区影院| 日韩一区二区免费视频| 国产精品综合av一区二区国产馆| 欧美国产精品专区| 91精品福利视频| 奇米影视在线99精品| 久久久久久久久久久电影| 国产91精品一区二区麻豆亚洲| 国产精品美女久久久久久| 一本色道亚洲精品aⅴ| 午夜不卡av免费| 国产亚洲精品免费| 色综合婷婷久久| 麻豆成人免费电影| 国产欧美一区二区三区沐欲| 色94色欧美sute亚洲线路一久| 日本午夜一本久久久综合| 亚洲国产精品传媒在线观看| 日本福利一区二区| 国产精品一区在线观看你懂的| 亚洲欧美偷拍另类a∨色屁股| 日韩一本二本av| 色噜噜久久综合| 黑人巨大精品欧美一区| 亚洲自拍另类综合| 国产日韩精品视频一区| 欧美三级韩国三级日本三斤| 国产成人欧美日韩在线电影| 亚洲chinese男男1069| 国产视频一区不卡| 91精品国产麻豆| 92国产精品观看| 精品一二三四在线| 亚洲高清免费视频| 国产精品美女久久久久aⅴ| 欧美群妇大交群中文字幕| 成人天堂资源www在线| 免费看黄色91| 亚洲成a人片综合在线| 中文字幕一区二区三区在线不卡| 精品国产伦一区二区三区观看方式 | 狠狠色伊人亚洲综合成人| 亚洲另类色综合网站| 久久久不卡网国产精品一区| 欧美精品精品一区| 一本久久精品一区二区| 不卡视频一二三四| 国产乱子伦一区二区三区国色天香| 亚洲成人综合在线| 亚洲一级不卡视频| 亚洲婷婷国产精品电影人久久| 国产午夜精品理论片a级大结局| 欧美tk—视频vk| 91精品国产全国免费观看 | 香蕉影视欧美成人| 亚洲视频一区在线观看| 国产精品乱码久久久久久 | 精品欧美一区二区三区精品久久 | 99re热视频这里只精品 | 狠狠色丁香久久婷婷综| 日本在线观看不卡视频| 亚洲午夜精品网| 亚洲影院理伦片| 亚洲影视在线观看| 亚洲综合成人在线| 亚洲综合自拍偷拍| 亚洲视频一区在线观看| 一区二区中文字幕在线| 亚洲男人天堂av网| 一区二区三区免费看视频| 依依成人综合视频| 午夜精品久久久久久久久 | 亚洲国产日日夜夜| 亚洲成人一二三| 日韩av一二三| 美女视频一区二区| 韩国三级电影一区二区| 国产精品一区一区三区| 高清不卡一二三区| 97久久超碰精品国产| 91福利资源站| 欧美三级资源在线| 91精品国产综合久久国产大片| 欧美一区二区三区男人的天堂| 日韩欧美专区在线| 久久精品亚洲精品国产欧美kt∨| 国产日韩一级二级三级| 中文久久乱码一区二区| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲精品国产一区二区精华液| 香蕉影视欧美成人| 狠狠色伊人亚洲综合成人| 成人爽a毛片一区二区免费| 色中色一区二区| 日韩欧美成人一区二区| 国产精品毛片久久久久久| 亚洲一区二区在线观看视频| 日本v片在线高清不卡在线观看| 国产成人免费视频| 99久久99久久精品国产片果冻 | 看片的网站亚洲| 粉嫩绯色av一区二区在线观看| 91久久精品一区二区三| 精品成a人在线观看| 亚洲黄色免费电影| 九九国产精品视频| 色94色欧美sute亚洲13| 久久综合久久综合亚洲| 一区二区在线观看免费视频播放| 男男视频亚洲欧美| 91在线视频播放| 欧美成人video| 一区二区三区四区乱视频| 精品一区二区久久久| 欧美午夜精品久久久久久孕妇| 日韩欧美一区二区在线视频| 亚洲精品视频观看| 国产成人精品亚洲日本在线桃色| 欧美日韩精品三区| 国产精品入口麻豆九色| 蜜臀精品一区二区三区在线观看 | 日本韩国视频一区二区| 欧美精品一区二区在线播放| 亚洲国产成人av网| 99国产麻豆精品| 国产欧美日韩三级| 久久精品国产99国产| 欧美久久久一区| 一区二区在线电影| 色综合久久中文字幕综合网| 国产三级一区二区三区| 美女视频网站黄色亚洲| 欧美日本免费一区二区三区| 成人欧美一区二区三区1314| 国产精品一线二线三线| 日韩一区二区免费电影| 日韩精品91亚洲二区在线观看| 在线观看精品一区| 亚洲乱码中文字幕综合| 99精品视频在线免费观看| 国产精品不卡一区| 成人自拍视频在线观看| 国产日韩欧美一区二区三区乱码 | 国产精品久久国产精麻豆99网站 | 国产精品视频免费看| 韩国一区二区在线观看| 欧美大尺度电影在线| 捆绑变态av一区二区三区| 欧美videossexotv100| 老司机精品视频在线| 欧美va在线播放| 国产精品自拍网站|