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

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

?? squid_ldap_group.c

?? 代理服務器 squid-2.6.STABLE16
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * squid_ldap_group: lookup group membership in LDAP * * (C)2002,2003 MARA Systems AB * * License: squid_ldap_group 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, * or (at your option) any later version. *  * Authors: *  Flavio Pescuma <flavio@marasystems.com> *  Henrik Nordstrom <hno@marasystems.com> *  MARA Systems AB, Sweden <http://www.marasystems.com> * * With contributions from others mentioned in the ChangeLog file * * In part based on squid_ldap_auth by Glen Newton and Henrik Nordstrom. * * Latest version of this program can always be found from MARA Systems * at http://marasystems.com/download/LDAP_Group/ *  * Dependencies: You need to get the OpenLDAP libraries * from http://www.openldap.org or use another compatible * LDAP C-API library. * * If you want to make a TLS enabled connection you will also need the * OpenSSL libraries linked into openldap. See http://www.openssl.org/ *  * License: squid_ldap_group 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,  * or (at your option) any later version. */#define LDAP_DEPRECATED 1#include "util.h"#include <stdio.h>#include <string.h>#include <stdlib.h>#include <ctype.h>#ifdef _SQUID_MSWIN_		/* Native Windows port and MinGW */#define snprintf _snprintf#include <windows.h>#include <winldap.h>#ifndef LDAPAPI#define LDAPAPI __cdecl#endif#ifdef LDAP_VERSION3#ifndef LDAP_OPT_X_TLS#define LDAP_OPT_X_TLS 0x6000#endif/* Some tricks to allow dynamic bind with ldap_start_tls_s entry point at * run time. */#undef ldap_start_tls_s#if LDAP_UNICODE#define LDAP_START_TLS_S "ldap_start_tls_sW"typedef WINLDAPAPI ULONG(LDAPAPI * PFldap_start_tls_s) (IN PLDAP, OUT PULONG, OUT LDAPMessage **, IN PLDAPControlW *, IN PLDAPControlW *);#else#define LDAP_START_TLS_S "ldap_start_tls_sA"typedef WINLDAPAPI ULONG(LDAPAPI * PFldap_start_tls_s) (IN PLDAP, OUT PULONG, OUT LDAPMessage **, IN PLDAPControlA *, IN PLDAPControlA *);#endif /* LDAP_UNICODE */PFldap_start_tls_s Win32_ldap_start_tls_s;#define ldap_start_tls_s(l,s,c) Win32_ldap_start_tls_s(l,NULL,NULL,s,c)#endif /* LDAP_VERSION3 */#else#include <lber.h>#include <ldap.h>#endif#if defined(LDAP_OPT_NETWORK_TIMEOUT)#include <sys/time.h>#endif#define PROGRAM_NAME "squid_ldap_group"#define PROGRAM_VERSION "2.17"/* Globals */static char *basedn = NULL;static char *searchfilter = NULL;static char *userbasedn = NULL;static char *userdnattr = NULL;static char *usersearchfilter = NULL;static char *binddn = NULL;static char *bindpasswd = NULL;static int searchscope = LDAP_SCOPE_SUBTREE;static int persistent = 0;static int noreferrals = 0;static int debug = 0;static int aliasderef = LDAP_DEREF_NEVER;#if defined(NETSCAPE_SSL)static char *sslpath = NULL;static int sslinit = 0;#endifstatic int connect_timeout = 0;static int timelimit = LDAP_NO_LIMIT;#ifdef LDAP_VERSION3/* Added for TLS support and version 3 */static int use_tls = 0;static int version = -1;#endifstatic int searchLDAP(LDAP * ld, char *group, char *user, char *extension_dn);static int readSecret(char *filename);/* Yuck.. we need to glue to different versions of the API */#ifndef LDAP_NO_ATTRS#define LDAP_NO_ATTRS "1.1"#endif#if defined(LDAP_API_VERSION) && LDAP_API_VERSION > 1823static intsquid_ldap_errno(LDAP * ld){    int err = 0;    ldap_get_option(ld, LDAP_OPT_ERROR_NUMBER, &err);    return err;}static voidsquid_ldap_set_aliasderef(LDAP * ld, int deref){    ldap_set_option(ld, LDAP_OPT_DEREF, &deref);}static voidsquid_ldap_set_referrals(LDAP * ld, int referrals){    int *value = referrals ? LDAP_OPT_ON : LDAP_OPT_OFF;    ldap_set_option(ld, LDAP_OPT_REFERRALS, value);}static voidsquid_ldap_set_timelimit(LDAP * ld, int timelimit){    ldap_set_option(ld, LDAP_OPT_TIMELIMIT, &timelimit);}static voidsquid_ldap_set_connect_timeout(LDAP * ld, int timelimit){#if defined(LDAP_OPT_NETWORK_TIMEOUT)    struct timeval tv;    tv.tv_sec = timelimit;    tv.tv_usec = 0;    ldap_set_option(ld, LDAP_OPT_NETWORK_TIMEOUT, &tv);#elif defined(LDAP_X_OPT_CONNECT_TIMEOUT)    timelimit *= 1000;    ldap_set_option(ld, LDAP_X_OPT_CONNECT_TIMEOUT, &timelimit);#endif}static voidsquid_ldap_memfree(char *p){    ldap_memfree(p);}#elsestatic intsquid_ldap_errno(LDAP * ld){    return ld->ld_errno;}static voidsquid_ldap_set_aliasderef(LDAP * ld, int deref){    ld->ld_deref = deref;}static voidsquid_ldap_set_referrals(LDAP * ld, int referrals){    if (referrals)	ld->ld_options |= ~LDAP_OPT_REFERRALS;    else	ld->ld_options &= ~LDAP_OPT_REFERRALS;}static voidsquid_ldap_set_timelimit(LDAP * ld, int timelimit){    ld->ld_timelimit = timelimit;}static voidsquid_ldap_set_connect_timeout(LDAP * ld, int timelimit){    fprintf(stderr, "Connect timeouts not supported in your LDAP library\n");}static voidsquid_ldap_memfree(char *p){    free(p);}#endif#ifdef LDAP_API_FEATURE_X_OPENLDAP#if LDAP_VENDOR_VERSION > 194#define HAS_URI_SUPPORT 1#endif#endifintmain(int argc, char **argv){    char buf[8192];    char *user, *group, *extension_dn = NULL;    char *ldapServer = NULL;    LDAP *ld = NULL;    int tryagain = 0, rc;    int port = LDAP_PORT;    int use_extension_dn = 0;    int strip_nt_domain = 0;    int err = 0;    setbuf(stdout, NULL);    while (argc > 1 && argv[1][0] == '-') {	char *value = "";	char option = argv[1][1];	switch (option) {	case 'P':	case 'R':	case 'z':	case 'Z':	case 'd':	case 'g':	case 'S':	    break;	default:	    if (strlen(argv[1]) > 2) {		value = argv[1] + 2;	    } else if (argc > 2) {		value = argv[2];		argv++;		argc--;	    } else		value = "";	    break;	}	argv++;	argc--;	switch (option) {	case 'H':#if !HAS_URI_SUPPORT	    fprintf(stderr, "ERROR: Your LDAP library does not have URI support\n");	    exit(1);#endif	    /* Fall thru to -h */	case 'h':	    if (ldapServer) {		int len = strlen(ldapServer) + 1 + strlen(value) + 1;		char *newhost = malloc(len);		snprintf(newhost, len, "%s %s", ldapServer, value);		free(ldapServer);		ldapServer = newhost;	    } else {		ldapServer = strdup(value);	    }	    break;	case 'b':	    basedn = value;	    break;	case 'f':	    searchfilter = value;	    break;	case 'B':	    userbasedn = value;	    break;	case 'F':	    usersearchfilter = value;	    break;	case 'u':	    userdnattr = value;	    break;	case 's':	    if (strcmp(value, "base") == 0)		searchscope = LDAP_SCOPE_BASE;	    else if (strcmp(value, "one") == 0)		searchscope = LDAP_SCOPE_ONELEVEL;	    else if (strcmp(value, "sub") == 0)		searchscope = LDAP_SCOPE_SUBTREE;	    else {		fprintf(stderr, PROGRAM_NAME " ERROR: Unknown search scope '%s'\n", value);		exit(1);	    }	    break;	case 'E':#if defined(NETSCAPE_SSL)	    sslpath = value;	    if (port == LDAP_PORT)		port = LDAPS_PORT;#else	    fprintf(stderr, PROGRAM_NAME " ERROR: -E unsupported with this LDAP library\n");	    exit(1);#endif	    break;	case 'c':	    connect_timeout = atoi(value);	    break;	case 't':	    timelimit = atoi(value);	    break;	case 'a':	    if (strcmp(value, "never") == 0)		aliasderef = LDAP_DEREF_NEVER;	    else if (strcmp(value, "always") == 0)		aliasderef = LDAP_DEREF_ALWAYS;	    else if (strcmp(value, "search") == 0)		aliasderef = LDAP_DEREF_SEARCHING;	    else if (strcmp(value, "find") == 0)		aliasderef = LDAP_DEREF_FINDING;	    else {		fprintf(stderr, PROGRAM_NAME " ERROR: Unknown alias dereference method '%s'\n", value);		exit(1);	    }	    break;	case 'D':	    binddn = value;	    break;	case 'w':	    bindpasswd = value;	    break;	case 'W':	    readSecret(value);	    break;	case 'P':	    persistent = !persistent;	    break;	case 'p':	    port = atoi(value);	    break;	case 'R':	    noreferrals = !noreferrals;	    break;#ifdef LDAP_VERSION3	case 'v':	    switch (atoi(value)) {	    case 2:		version = LDAP_VERSION2;		break;	    case 3:		version = LDAP_VERSION3;		break;	    default:		fprintf(stderr, "Protocol version should be 2 or 3\n");		exit(1);	    }	    break;	case 'Z':	    if (version == LDAP_VERSION2) {		fprintf(stderr, "TLS (-Z) is incompatible with version %d\n",		    version);		exit(1);	    }	    version = LDAP_VERSION3;	    use_tls = 1;	    break;#endif	case 'd':	    debug = 1;	    break;	case 'g':	    use_extension_dn = 1;	    break;	case 'S':	    strip_nt_domain = 1;	    break;	default:	    fprintf(stderr, PROGRAM_NAME " ERROR: Unknown command line option '%c'\n", option);	    exit(1);	}    }    while (argc > 1) {	char *value = argv[1];	if (ldapServer) {	    int len = strlen(ldapServer) + 1 + strlen(value) + 1;	    char *newhost = malloc(len);	    snprintf(newhost, len, "%s %s", ldapServer, value);	    free(ldapServer);	    ldapServer = newhost;	} else {	    ldapServer = strdup(value);	}	argc--;	argv++;    }    if (!ldapServer)	ldapServer = "localhost";    if (!basedn || !searchfilter) {	fprintf(stderr, "\n" PROGRAM_NAME " version " PROGRAM_VERSION "\n\n");	fprintf(stderr, "Usage: " PROGRAM_NAME " -b basedn -f filter [options] ldap_server_name\n\n");	fprintf(stderr, "\t-b basedn (REQUIRED)\tbase dn under where to search for groups\n");	fprintf(stderr, "\t-f filter (REQUIRED)\tgroup search filter pattern. %%v = user,\n\t\t\t\t%%a = group\n");	fprintf(stderr, "\t-B basedn (REQUIRED)\tbase dn under where to search for users\n");	fprintf(stderr, "\t-F filter (REQUIRED)\tuser search filter pattern. %%s = login\n");	fprintf(stderr, "\t-s base|one|sub\t\tsearch scope\n");	fprintf(stderr, "\t-D binddn\t\tDN to bind as to perform searches\n");	fprintf(stderr, "\t-w bindpasswd\t\tpassword for binddn\n");	fprintf(stderr, "\t-W secretfile\t\tread password for binddn from file secretfile\n");#if HAS_URI_SUPPORT	fprintf(stderr, "\t-H URI\t\t\tLDAPURI (defaults to ldap://localhost)\n");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费观看在线色综合| 国产做a爰片久久毛片| 精品久久久久久最新网址| 丁香激情综合国产| 日韩高清欧美激情| 国产精品高潮久久久久无| 日韩免费视频一区二区| 一本色道**综合亚洲精品蜜桃冫| 免费成人在线网站| 亚洲在线中文字幕| 亚洲婷婷综合久久一本伊一区| 欧美三级蜜桃2在线观看| 精品嫩草影院久久| 欧美精品欧美精品系列| 色屁屁一区二区| 日韩一区精品视频| 亚洲综合图片区| 国产精品传媒入口麻豆| 精品久久免费看| 91精品午夜视频| 日韩精品一区二区三区中文不卡| 97精品国产露脸对白| 国产精品亚洲一区二区三区妖精 | 日韩理论在线观看| 久久精品夜夜夜夜久久| 欧美va亚洲va国产综合| 在线不卡免费av| 欧美精品在线一区二区| 色综合婷婷久久| 成人黄色一级视频| av网站免费线看精品| 国产999精品久久| 国产传媒一区在线| 国产精品99久久久久久久女警 | 国产精品一区二区久激情瑜伽| 无码av中文一区二区三区桃花岛| 一区二区三区电影在线播| 亚洲免费观看高清在线观看| 国产精品免费aⅴ片在线观看| 国产亚洲精品久| 国产女人18毛片水真多成人如厕| 久久久久久久网| 亚洲国产精品黑人久久久| 欧美激情中文不卡| 最新热久久免费视频| 亚洲欧美激情在线| 亚洲成人激情社区| 久久精品国产一区二区三| 久久99久久99| 成人精品一区二区三区中文字幕| 懂色av一区二区三区免费看| 99亚偷拍自图区亚洲| 一本到不卡精品视频在线观看| 一本色道a无线码一区v| 欧美日韩成人在线| 精品国产乱码久久久久久久 | 亚洲bt欧美bt精品777| 日日骚欧美日韩| 久99久精品视频免费观看| 91福利精品视频| 7777精品久久久大香线蕉| 精品三级在线看| 中文成人av在线| 亚洲午夜视频在线| 看国产成人h片视频| 高清成人免费视频| 在线免费av一区| 日韩一区二区在线看| 久久精品视频一区| 亚洲美女视频在线观看| 日本午夜精品视频在线观看 | 欧美三级电影在线看| 日韩欧美一级二级三级久久久| 国产亚洲成年网址在线观看| 亚洲精品少妇30p| 日本亚洲一区二区| 成人性视频免费网站| 欧美视频一区二区| 国产日韩欧美综合一区| 亚洲成人资源网| 国产成人午夜精品影院观看视频 | 欧美精品v国产精品v日韩精品 | 中文字幕欧美三区| 午夜久久电影网| 成人免费va视频| 777xxx欧美| 成人欧美一区二区三区白人| 日本欧美韩国一区三区| 国产**成人网毛片九色| 制服.丝袜.亚洲.中文.综合| 国产精品免费看片| 久久国产精品免费| 欧美视频一区在线| 久久久亚洲精品石原莉奈| 亚洲成人动漫在线免费观看| 高清久久久久久| 欧美一区二区在线免费观看| 亚洲女同一区二区| 精品亚洲porn| 欧美伦理影视网| 亚洲一区在线观看视频| 国产福利视频一区二区三区| 欧美色综合久久| 18涩涩午夜精品.www| 久久99精品久久久| 欧美日本韩国一区| 亚洲女人****多毛耸耸8| 国产乱码精品一区二区三区忘忧草| 欧美丝袜丝交足nylons| 国产精品视频一区二区三区不卡| 美腿丝袜亚洲色图| 欧美日韩一区精品| 洋洋成人永久网站入口| 不卡免费追剧大全电视剧网站| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲成人在线观看视频| 一本高清dvd不卡在线观看| 国产精品久久午夜| 国产精品一区在线观看乱码| 日韩免费在线观看| 奇米影视7777精品一区二区| 欧美日韩精品二区第二页| 一区二区三区精品久久久| 91性感美女视频| 国产精品乱码一区二三区小蝌蚪| 国产一区三区三区| 精品美女一区二区三区| 免费成人在线视频观看| 91精品国产乱| 日本视频一区二区| 欧美一区二区不卡视频| 午夜精品久久久久久久| 欧美日韩激情一区二区| 亚洲一区二区三区美女| 欧美在线观看视频一区二区 | 亚洲免费观看高清完整版在线| 不卡一卡二卡三乱码免费网站| 欧美激情一区三区| av一区二区三区在线| 亚洲图片另类小说| 日本韩国欧美国产| 亚洲与欧洲av电影| 欧美丰满嫩嫩电影| 免费不卡在线视频| 精品国产污网站| 韩国v欧美v日本v亚洲v| 久久久久久久久一| 欧美日韩色一区| 毛片av一区二区| 久久久久久久久久久久电影| 懂色av中文字幕一区二区三区 | 一区二区三区成人| 欧美这里有精品| 日本午夜一区二区| 久久久久久久久97黄色工厂| 成人久久18免费网站麻豆| 一区二区三区日韩欧美精品 | 91精品1区2区| 午夜不卡av在线| 精品久久久久久久久久久久久久久 | 久久精品国产色蜜蜜麻豆| 欧美精品一区二区精品网| 国产激情一区二区三区| 亚洲欧美日韩一区二区三区在线观看 | 美腿丝袜亚洲一区| 国产清纯白嫩初高生在线观看91| 一本到不卡精品视频在线观看| 天天综合色天天综合色h| 久久综合一区二区| 91亚洲精品一区二区乱码| 天天综合色天天综合色h| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 欧美不卡在线视频| av在线不卡观看免费观看| 日韩精品午夜视频| 国产日韩欧美麻豆| 欧美日韩精品一区二区三区 | 成人91在线观看| 水野朝阳av一区二区三区| 久久精品视频免费| 欧美日韩一区二区三区四区| 久久99精品久久久久久久久久久久| 国产精品成人在线观看| 欧美高清视频在线高清观看mv色露露十八 | 日韩免费观看高清完整版| 成人av网站在线观看免费| 日韩—二三区免费观看av| 亚洲国产精品99久久久久久久久 | 国内外成人在线| 一区二区三区色| 久久视频一区二区| 欧美在线观看一区| 成人国产视频在线观看| 免费在线观看不卡| 一区二区三区在线视频观看58| 欧美成人video| 欧美日韩成人综合天天影院| 成人aaaa免费全部观看| 免费在线观看成人| 亚洲一区在线观看网站|