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

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

?? negotiate_auth.c

?? 代理服務器 squid-2.6.STABLE16
?? C
字號:
/* * mswin_negotiate_auth: helper for Negotiate Authentication for Squid Cache * * (C)2005 Guido Serassio - Acme Consulting S.r.l. * * Authors: *  Guido Serassio <guido.serassio@acmeconsulting.it> *  Acme Consulting S.r.l., Italy <http://www.acmeconsulting.it> * * With contributions from others mentioned in the change history section * below. * * Based on previous work of Francesco Chemolli and Robert Collins. * * Dependencies: Windows NT4 SP4 and later. * * 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, USA. * * History: * * Version 1.0 * 29-10-2005 Guido Serassio *              First release. * * */#include "util.h"#if HAVE_GETOPT_H#include <getopt.h>#endif#include "negotiate.h"#if HAVE_CTYPE_H#include <ctype.h>#endif#define BUFFER_SIZE 10240int debug_enabled = 0;int Negotiate_packet_debug_enabled = 0;static int have_serverblob;/* makes a null-terminated string upper-case. Changes CONTENTS! */voiduc(char *string){    char *p = string, c;    while ((c = *p)) {	*p = xtoupper(c);	p++;    }}/* makes a null-terminated string lower-case. Changes CONTENTS! */static voidlc(char *string){    char *p = string, c;    while ((c = *p)) {	*p = xtolower(c);	p++;    }}voidhelperfail(const char *reason){#if FAIL_DEBUG    fail_debug_enabled = 1;#endif    SEND2("BH %s", reason);}/* * options: * -d enable debugging. * -v enable verbose NTLM packet debugging. */char *my_program_name = NULL;voidusage(){    fprintf(stderr,	"Usage: %s [-d] [-v] [-h]\n"	" -d  enable debugging.\n"	" -v  enable verbose NTLM packet debugging.\n"	" -h  this message\n\n",	my_program_name);}voidprocess_options(int argc, char *argv[]){    int opt, had_error = 0;    opterr = 0;    while (-1 != (opt = getopt(argc, argv, "hdv"))) {	switch (opt) {	case 'd':	    debug_enabled = 1;	    break;	case 'v':	    debug_enabled = 1;	    Negotiate_packet_debug_enabled = 1;	    break;	case 'h':	    usage();	    exit(0);	case '?':	    opt = optopt;	    /* fall thru to default */	default:	    fprintf(stderr, "unknown option: -%c. Exiting\n", opt);	    usage();	    had_error = 1;	}    }    if (had_error)	exit(1);}intmanage_request(){    char buf[BUFFER_SIZE];    char helper_command[3];    char *c, *decoded;    int plen, status;    int oversized = 0;    char *ErrorMessage;    static char cred[SSP_MAX_CRED_LEN + 1];    BOOL Done = FALSE;  try_again:    if (fgets(buf, BUFFER_SIZE, stdin) == NULL)	return 0;    c = memchr(buf, '\n', BUFFER_SIZE);		/* safer against overrun than strchr */    if (c) {	if (oversized) {	    helperfail("illegal request received");	    fprintf(stderr, "Illegal request received: '%s'\n", buf);	    return 1;	}	*c = '\0';    } else {	fprintf(stderr, "No newline in '%s'\n", buf);	oversized = 1;	goto try_again;    }    if ((strlen(buf) > 3) && Negotiate_packet_debug_enabled) {	decoded = base64_decode(buf + 3);	strncpy(helper_command, buf, 2);	debug("Got '%s' from Squid with data:\n", helper_command);	hex_dump(decoded, ((strlen(buf) - 3) * 3) / 4);    } else	debug("Got '%s' from Squid\n", buf);    if (memcmp(buf, "YR ", 3) == 0) {	/* refresh-request */	/* figure out what we got */	decoded = base64_decode(buf + 3);	/*  Note: we don't need to manage memory at this point, since	 *  base64_decode returns a pointer to static storage.	 */	if (!decoded) {		/* decoding failure, return error */	    SEND("NA * Packet format error, couldn't base64-decode");	    return 1;	}	/* Obtain server blob against SSPI */	plen = (strlen(buf) - 3) * 3 / 4;	/* we only need it here. Optimization */	c = (char *) SSP_MakeNegotiateBlob(decoded, plen, &Done, &status, cred);	if (status == SSP_OK) {	    if (Done) {		lc(cred);	/* let's lowercase them for our convenience */		have_serverblob = 0;		Done = FALSE;		if (Negotiate_packet_debug_enabled) {		    printf("AF %s %s\n", c, cred);		    decoded = base64_decode(c);		    debug("sending 'AF' %s to squid with data:\n", cred);		    hex_dump(decoded, (strlen(c) * 3) / 4);		} else		    SEND3("AF %s %s", c, cred);	    } else {		if (Negotiate_packet_debug_enabled) {		    printf("TT %s\n", c);		    decoded = base64_decode(c);		    debug("sending 'TT' to squid with data:\n");		    hex_dump(decoded, (strlen(c) * 3) / 4);		} else {		    SEND2("TT %s", c);		}		have_serverblob = 1;	    }	} else	    helperfail("can't obtain server blob");	return 1;    }    if (memcmp(buf, "KK ", 3) == 0) {	/* authenticate-request */	if (!have_serverblob) {	    helperfail("invalid server blob");	    return 1;	}	/* figure out what we got */	decoded = base64_decode(buf + 3);	/*  Note: we don't need to manage memory at this point, since	 *  base64_decode returns a pointer to static storage.	 */	if (!decoded) {		/* decoding failure, return error */	    SEND("NA * Packet format error, couldn't base64-decode");	    return 1;	}	/* check against SSPI */	plen = (strlen(buf) - 3) * 3 / 4;	/* we only need it here. Optimization */	c = (char *) SSP_ValidateNegotiateCredentials(decoded, plen, &Done, &status, cred);	if (status == SSP_ERROR) {#if FAIL_DEBUG	    fail_debug_enabled = 1;#endif	    FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |		FORMAT_MESSAGE_IGNORE_INSERTS,		NULL,		GetLastError(),		MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),	/* Default language */		(LPTSTR) & ErrorMessage,		0,		NULL);	    if (ErrorMessage[strlen(ErrorMessage) - 1] == '\n')		ErrorMessage[strlen(ErrorMessage) - 1] = '\0';	    if (ErrorMessage[strlen(ErrorMessage) - 1] == '\r')		ErrorMessage[strlen(ErrorMessage) - 1] = '\0';	    SEND2("NA * %s", ErrorMessage);	    LocalFree(ErrorMessage);	    return 1;	}	if (Done) {	    lc(cred);		/* let's lowercase them for our convenience */	    have_serverblob = 0;	    Done = FALSE;	    if (Negotiate_packet_debug_enabled) {		printf("AF %s %s\n", c, cred);		decoded = base64_decode(c);		debug("sending 'AF' %s to squid with data:\n", cred);		hex_dump(decoded, (strlen(c) * 3) / 4);	    } else {		SEND3("AF %s %s", c, cred);	    }	    return 1;	} else {	    if (Negotiate_packet_debug_enabled) {		printf("TT %s\n", c);		decoded = base64_decode(c);		debug("sending 'TT' to squid with data:\n");		hex_dump(decoded, (strlen(c) * 3) / 4);	    } else		SEND2("TT %s", c);	    return 1;	}    } else {			/* not an auth-request */	helperfail("illegal request received");	fprintf(stderr, "Illegal request received: '%s'\n", buf);	return 1;    }    helperfail("detected protocol error");    return 1;/********* END ********/}intmain(int argc, char *argv[]){    my_program_name = argv[0];    process_options(argc, argv);    debug("%s build " __DATE__ ", " __TIME__ " starting up...\n", my_program_name);    if (LoadSecurityDll(SSP_NTLM, NEGOTIATE_PACKAGE_NAME) == NULL) {	fprintf(stderr, "FATAL, can't initialize SSPI, exiting.\n");	exit(1);    }    debug("SSPI initialized OK\n");    atexit(UnloadSecurityDll);    /* initialize FDescs */    setbuf(stdout, NULL);    setbuf(stderr, NULL);    while (manage_request()) {	/* everything is done within manage_request */    }    exit(0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
制服丝袜在线91| 精品福利一区二区三区| 成人美女在线视频| 国产成人精品影院| 99热精品国产| 日本道在线观看一区二区| 日本韩国欧美在线| 欧美中文字幕一区| 6080午夜不卡| 日韩一二三区不卡| 久久久精品欧美丰满| 国产精品你懂的在线欣赏| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 99re66热这里只有精品3直播| 国产成人精品免费| 色嗨嗨av一区二区三区| 4438亚洲最大| 日本一二三不卡| 亚洲免费在线电影| 美女一区二区三区在线观看| 国产精品亚洲а∨天堂免在线| 成人国产精品免费观看视频| 欧美亚洲综合一区| 精品国产污网站| 亚洲精品日韩一| 久久99精品国产91久久来源| www.激情成人| 91.com视频| 亚洲天堂av老司机| 日本不卡高清视频| av电影一区二区| 日韩欧美一二三| 亚洲人成精品久久久久| 蜜桃av噜噜一区二区三区小说| 成人av动漫在线| 日韩一区二区三区视频在线观看| 中文字幕在线不卡一区二区三区| 秋霞影院一区二区| 91麻豆免费观看| 精品日韩一区二区| 午夜国产精品一区| 成人午夜看片网址| 日韩美女视频一区二区在线观看| 一区二区三区影院| 国产精品69久久久久水密桃| 欧美日韩中文另类| 国产精品盗摄一区二区三区| 国产中文字幕一区| 欧美一区二区日韩| 亚洲国产综合色| 99精品久久免费看蜜臀剧情介绍| 欧美videossexotv100| 午夜久久久久久电影| 色悠悠久久综合| 国产精品免费看片| 国产91精品在线观看| 2023国产精华国产精品| 日本欧美一区二区| 欧美日韩一区二区三区在线| 亚洲男人的天堂在线观看| 丁香天五香天堂综合| 久久精品视频在线看| 激情欧美一区二区| 日韩欧美国产三级| 舔着乳尖日韩一区| 7777精品伊人久久久大香线蕉| 一区二区三区不卡视频| 91浏览器在线视频| 一区二区不卡在线播放 | 国内精品免费**视频| 日韩一级精品视频在线观看| 日韩成人dvd| 日韩一区二区麻豆国产| 捆绑调教美女网站视频一区| 91精品国产美女浴室洗澡无遮挡| 亚洲成av人影院在线观看网| 欧美伊人久久久久久久久影院| 一区二区三区色| 欧美精品一二三| 日韩制服丝袜av| 精品久久久久久最新网址| 极品少妇xxxx精品少妇偷拍| 国产日韩视频一区二区三区| 国产精品12区| 亚洲精品自拍动漫在线| 欧美日韩午夜精品| 免费观看在线综合色| 久久久久久久久久电影| youjizz国产精品| 亚洲成人综合视频| 精品成a人在线观看| 国产成人精品www牛牛影视| 国产精品福利电影一区二区三区四区 | 国产精品77777| 日韩伦理免费电影| 欧美日韩国产a| 黄一区二区三区| 日韩一区在线播放| 538在线一区二区精品国产| 激情亚洲综合在线| 亚洲你懂的在线视频| 日韩一区二区三区视频在线观看| 国产精品一级二级三级| 亚洲猫色日本管| 欧美变态凌虐bdsm| 色综合久久久久综合| 奇米精品一区二区三区在线观看| 欧美国产成人在线| 在线成人免费观看| 99久久777色| 激情综合一区二区三区| 中文字幕在线不卡| 欧美一区二区三区男人的天堂 | 亚洲色图视频免费播放| 欧美人与性动xxxx| 国产黄人亚洲片| 丝袜美腿亚洲一区二区图片| 日本一区二区三区在线不卡| 欧美日韩激情一区| 99re66热这里只有精品3直播| 麻豆成人91精品二区三区| 亚洲欧美精品午睡沙发| 久久久久久久久久久黄色| 欧美军同video69gay| 97久久精品人人做人人爽50路| 久久国产夜色精品鲁鲁99| 一区二区三区日韩在线观看| 国产精品卡一卡二| 久久亚洲私人国产精品va媚药| 欧美日韩中文字幕一区二区| 91丨porny丨中文| 国产成a人亚洲精品| 激情文学综合网| 裸体一区二区三区| 亚洲高清不卡在线| 亚洲伦理在线精品| 成人免费在线观看入口| 国产精品女主播在线观看| www激情久久| 精品国产乱码久久久久久久久| 欧美丰满美乳xxx高潮www| 91黄色激情网站| 色婷婷精品久久二区二区蜜臀av| k8久久久一区二区三区| 成人免费视频播放| 成人国产视频在线观看| 波多野结衣精品在线| 成人av电影观看| 91视频一区二区| 日本福利一区二区| 欧美亚洲高清一区| 欧美欧美欧美欧美首页| 欧美卡1卡2卡| 欧美一级在线视频| 26uuu国产在线精品一区二区| 日韩欧美一级二级三级久久久| 欧美zozo另类异族| 国产欧美日韩精品一区| 国产精品久久久久一区二区三区| 国产精品不卡一区二区三区| 亚洲激情在线播放| 亚洲最新视频在线观看| 午夜精品久久久久久久99水蜜桃 | 日韩精品中文字幕在线一区| 日韩一区二区在线看片| 国产女人18水真多18精品一级做| 欧美专区日韩专区| 欧美日韩国产精品自在自线| 欧美日韩大陆一区二区| 欧美成人性战久久| 久久影音资源网| 亚洲女同ⅹxx女同tv| 日韩黄色免费电影| 国产另类ts人妖一区二区| 不卡在线观看av| 欧美猛男男办公室激情| 国产亚洲一区字幕| 亚洲一区在线播放| 久久91精品国产91久久小草| caoporn国产精品| 91麻豆精品国产91久久久| 中文字幕免费不卡| 舔着乳尖日韩一区| 风间由美一区二区三区在线观看| 欧美婷婷六月丁香综合色| 精品国产三级a在线观看| 国产精品久久久久国产精品日日| 亚洲黄色在线视频| 国产一区二区在线观看免费| 91久久精品网| 国产欧美精品国产国产专区 | 欧美性猛交xxxx乱大交退制版 | 狠狠网亚洲精品| 97se亚洲国产综合自在线| 欧美一区二区三区影视| 国产精品久久久久aaaa樱花| 麻豆91小视频| 欧美色综合影院| 国产精品萝li| 国产精品乡下勾搭老头1|