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

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

?? authenticate.cpp

?? MPICH是MPI的重要研究,提供了一系列的接口函數,為并行計算的實現提供了編程環境.
?? CPP
字號:
#include "mpdimpl.h"#include "Translate_Error.h"static CRITICAL_SECTION g_hCryptCriticalSection;static bool g_bCryptFirst = true;bool GenAuthenticationStrings(char *append, char *crypted){    int stamp;    char *crypted_internal;    char phrase[MPD_PASSPHRASE_MAX_LENGTH+1];    char phrase_internal[MPD_PASSPHRASE_MAX_LENGTH+1];    srand(GetTickCount());    stamp = rand();    if (!ReadMPDRegistry("phrase", phrase))	return false;    _snprintf(phrase_internal, MPD_PASSPHRASE_MAX_LENGTH, "%s%d", phrase, stamp);    sprintf(append, "%d", stamp);    if (g_bCryptFirst) // this is not safe code because two threads can enter this Initialize... block at the same time    {	InitializeCriticalSection(&g_hCryptCriticalSection);	g_bCryptFirst = false;    }    EnterCriticalSection(&g_hCryptCriticalSection);    //dbg_printf("GenAuthenticationStrings: calling crypt on '%s'\n", phrase_internal);    crypted_internal = crypt(phrase_internal, MPD_SALT_VALUE);    if (strlen(crypted_internal) > MPD_PASSPHRASE_MAX_LENGTH)    {	LeaveCriticalSection(&g_hCryptCriticalSection);	return false;    }    strcpy(crypted, crypted_internal);    LeaveCriticalSection(&g_hCryptCriticalSection);    return true;}bool AuthenticateAcceptedConnection(MPD_Context **pp){    int ret_val;    MPD_Context *p;    if (pp == NULL)	return false;    p = *pp;    // generate the challenge string and the encrypted result    if (!GenAuthenticationStrings(p->pszOut, p->pszCrypt))    {	err_printf("AuthenticateAcceptedConnection: failed to generate the authentication strings\n");	RemoveContext(p);	*pp = NULL;	return false;    }    // write the challenge string    if (WriteString(p->sock, p->pszOut) == SOCKET_ERROR)    {	err_printf("AuthenticateAcceptedConnection: Writing challenge string failed, error %d\n", WSAGetLastError());	RemoveContext(p);	*pp = NULL;	return false;    }    // read the response    if (!ReadString(p->sock, p->pszIn))    {	err_printf("AuthenticateAcceptedConnection: Reading challenge response failed, error %d\n", WSAGetLastError());	RemoveContext(p);	*pp = NULL;	return false;    }    // compare the response with the encrypted result and write success or failure    if (strcmp(p->pszIn, p->pszCrypt) == 0)	ret_val = WriteString(p->sock, "SUCCESS");    else	ret_val = WriteString(p->sock, "FAIL");    if (ret_val == SOCKET_ERROR)    {	err_printf("AuthenticateAcceptedConnection: Writing authentication result failed, error %d\n", WSAGetLastError());	RemoveContext(p);	*pp = NULL;	return false;    }    // read the type of connection    if (!ReadString(p->sock, p->pszIn))    {	err_printf("AuthenticateAcceptedConnection: Reading the connection type failed, error %d\n", WSAGetLastError());	RemoveContext(p);	*pp = NULL;	return false;    }    // set the state appropriate for the type of connection    if (stricmp(p->pszIn, "console") == 0)    {	dbg_printf("AuthenticateAcceptedConnection: MPD_CONSOLE_SOCKET(%d)\n", p->sock);	p->nType = MPD_CONSOLE_SOCKET;	p->nLLState= MPD_READING_CMD;    }    else if (strnicmp(p->pszIn, "left ", 5) == 0)    {	dbg_printf("AuthenticateAcceptedConnection: MPD_LEFT_SOCKET(%d)\n", p->sock);	p->nType = MPD_LEFT_SOCKET;	p->nLLState= MPD_READING_CMD;	strncpy(p->pszHost, &p->pszIn[5], MAX_HOST_LENGTH);	p->pszHost[MAX_HOST_LENGTH-1] = '\0';    }    else if (strnicmp(p->pszIn, "right ", 6) == 0)    {	dbg_printf("AuthenticateAcceptedConnection: MPD_RIGHT_SOCKET(%d)\n", p->sock);	p->nType = MPD_RIGHT_SOCKET;	p->nLLState= MPD_READING_CMD;	strncpy(p->pszHost, &p->pszIn[6], MAX_HOST_LENGTH);	p->pszHost[MAX_HOST_LENGTH-1] = '\0';    }    else    {	err_printf("AuthenticateAcceptedConnection: unknown socket type read: '%s'\n", p->pszIn);	RemoveContext(p);	*pp = NULL;	return false;    }    p->nState = MPD_IDLE;    return true;}bool AuthenticateConnectedConnection(MPD_Context **pp, char *passphrase/* = MPD_DEFAULT_PASSPHRASE*/){    int error;    MPD_Context *p;    char phrase[MPD_PASSPHRASE_MAX_LENGTH];    char *result;    if (pp == NULL)	return false;    p = *pp;    strcpy(phrase, passphrase);    // read the challenge string    if (!ReadString(p->sock, p->pszIn))    {	err_printf("AuthenticateConnectedConnection: Reading challenge string failed, error %d\n", WSAGetLastError());	RemoveContext(p);	*pp = NULL;	return false;    }    // crypt the passphrase + the challenge    if (strlen(phrase) + strlen(p->pszIn) > MPD_PASSPHRASE_MAX_LENGTH)    {	err_printf("AuthenticateConnectedConnection: unable to process passphrase.\n");	RemoveContext(p);	*pp = NULL;	return false;    }    strcat(phrase, p->pszIn);    if (g_bCryptFirst) // this is not safe code because two threads can enter this Initialize... block at the same time    {	InitializeCriticalSection(&g_hCryptCriticalSection);	g_bCryptFirst = false;    }    EnterCriticalSection(&g_hCryptCriticalSection);    result = crypt(phrase, MPD_SALT_VALUE);    strcpy(p->pszOut, result);    LeaveCriticalSection(&g_hCryptCriticalSection);    // write the response    if (WriteString(p->sock, p->pszOut) == SOCKET_ERROR)    {	error = WSAGetLastError();	Translate_Error(error, p->pszOut);	err_printf("AuthenticateConnectedConnection: WriteString of the encrypted response string failed: %d\n%s\n", error, p->pszOut);	RemoveContext(p);	*pp = NULL;	return false;    }    // read the result    if (!ReadString(p->sock, p->pszIn))    {	error = WSAGetLastError();	Translate_Error(error, p->pszOut);	err_printf("AuthenticateConnectedConnection: reading authentication result failed: error %d\n%s\n", error, p->pszOut);	RemoveContext(p);	*pp = NULL;	return false;    }    if (strcmp(p->pszIn, "SUCCESS"))    {	dbg_printf("host authentication failed.\n");	RemoveContext(p);	*pp = NULL;	return false;    }    return true;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕高清不卡| 六月丁香婷婷久久| 亚洲色图欧美激情| 一二三区精品视频| 亚洲综合色在线| 一区二区三区四区视频精品免费| 亚洲欧美日本韩国| 亚洲成人777| 亚洲国产一二三| 九色porny丨国产精品| 欧美精品久久久久久久多人混战| 欧美日韩一二三区| 91丨porny丨中文| 在线观看国产精品网站| 日韩精品最新网址| 中文字幕一区二| 亚瑟在线精品视频| 日本成人中文字幕在线视频| 国产老女人精品毛片久久| 色婷婷综合久久久中文字幕| 欧美日本国产一区| 国产精品女人毛片| 国产日韩欧美精品在线| 一区二区三区日韩精品| 国产一区二区三区久久久 | 成人一区二区三区| 欧美自拍丝袜亚洲| 91精品国产免费| 国产精品伦理在线| 久久精品国产在热久久| 色综合久久久久久久| 久久综合99re88久久爱| 一区二区三区中文字幕精品精品 | 一色桃子久久精品亚洲| 蜜桃视频在线观看一区| 国产99久久久精品| 国产精品一区三区| 欧美一区二区三区在线看| 亚洲综合色噜噜狠狠| www.成人在线| 国产精品私人自拍| 国产乱妇无码大片在线观看| 日韩免费一区二区三区在线播放| 亚洲成人资源网| 欧美综合色免费| 国产麻豆精品在线| 国产欧美日韩另类视频免费观看| 久久国产精品无码网站| 欧美日韩亚洲综合在线| 性做久久久久久久久| 欧美日韩国产一二三| 亚洲va在线va天堂| 91精品国产品国语在线不卡| 日韩国产在线观看一区| 日韩欧美亚洲国产精品字幕久久久| 丝袜美腿成人在线| 日韩三级视频在线观看| 视频一区视频二区中文| 91精品国产综合久久久蜜臀粉嫩| 蜜桃传媒麻豆第一区在线观看| 欧美成人精品1314www| 国产成人精品午夜视频免费| 国产免费成人在线视频| 91女人视频在线观看| 亚洲综合丁香婷婷六月香| 欧美日韩成人一区| 亚洲国产aⅴ成人精品无吗| 欧美一个色资源| 国产成人亚洲综合a∨婷婷 | 免费av网站大全久久| 久久综合色综合88| 色呦呦日韩精品| 国产一区二区三区四| 亚洲综合图片区| 欧美精品一区二区三区视频| 在线观看中文字幕不卡| 狠狠色综合播放一区二区| 亚洲少妇中出一区| 久久久精品一品道一区| 欧美精品乱码久久久久久| 国产91精品久久久久久久网曝门 | 国产美女久久久久| 国产乱码精品一区二区三| 国产在线精品一区二区夜色 | 91在线云播放| 欧美在线观看视频一区二区| 婷婷亚洲久悠悠色悠在线播放| 国产精品久线观看视频| 精品国产伦一区二区三区观看方式| 成年人网站91| 国产精品一线二线三线| 蜜臀av性久久久久蜜臀aⅴ| 亚洲综合一区在线| 一区二区在线电影| 亚洲黄色免费网站| 波多野结衣91| 91免费在线看| 欧美日韩国产一区| 日韩欧美一区二区免费| 欧美电影免费提供在线观看| 久久综合久久99| 国产精品美女久久久久久2018| 中文字幕一区二区5566日韩| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲婷婷综合色高清在线| 亚洲激情欧美激情| 日本中文在线一区| 国产在线播放一区二区三区| 国产福利一区二区| 91丨porny丨国产入口| 欧美精品日韩综合在线| xnxx国产精品| 亚洲一区二区综合| 久久精品国产99| 在线免费亚洲电影| 亚洲人成在线观看一区二区| 国产成a人无v码亚洲福利| 日韩欧美国产电影| 美美哒免费高清在线观看视频一区二区| 色综合激情久久| 亚洲男人天堂一区| 91丨九色丨蝌蚪丨老版| 亚洲精品中文在线| 欧洲国产伦久久久久久久| 亚洲国产wwwccc36天堂| 欧美色爱综合网| 日韩和欧美的一区| 欧美日韩视频在线第一区 | 26uuu国产在线精品一区二区| 日韩制服丝袜av| 日韩一区二区精品葵司在线| 日韩精品三区四区| 精品国产一区二区精华| 国产在线国偷精品产拍免费yy| 久久久精品日韩欧美| 97se亚洲国产综合在线| 中文字幕高清一区| 色婷婷综合视频在线观看| 日韩精品电影在线| 久久久99久久| 欧美性猛片xxxx免费看久爱| 老司机免费视频一区二区三区| 久久久精品黄色| 日本道精品一区二区三区| 奇米精品一区二区三区四区 | 欧美精品99久久久**| 男男成人高潮片免费网站| 久久久亚洲高清| 在线日韩av片| 国产精品99久| 亚洲国产另类av| 久久久.com| 欧美网站大全在线观看| 国产精品亚洲а∨天堂免在线| 中文字幕在线免费不卡| 欧美大片顶级少妇| 色哟哟精品一区| 国产精品一区二区在线观看网站| 亚洲一区二区三区在线看| 欧美精品一区二区久久婷婷| 91久久精品午夜一区二区| 成人午夜电影网站| 久久成人免费电影| 视频一区在线视频| 亚洲综合成人在线视频| 国产精品高潮呻吟| 国产亚洲精品7777| 精品国产免费一区二区三区四区| 欧美日韩免费在线视频| 99久久国产综合精品色伊| 成人免费视频视频| 黄色资源网久久资源365| 日韩在线播放一区二区| 亚洲国产综合人成综合网站| 亚洲色图都市小说| 亚洲视频1区2区| 国产精品福利在线播放| 综合网在线视频| 5858s免费视频成人| 精品视频1区2区3区| 91理论电影在线观看| 97精品电影院| 成人a级免费电影| 蜜臀av性久久久久蜜臀aⅴ| 一区二区在线观看免费| 777久久久精品| 欧美丰满高潮xxxx喷水动漫| 欧美日韩国产精品成人| 欧美另类一区二区三区| 欧美久久久久久久久久| 久久精品人人做人人爽人人| 国产精品麻豆网站| 亚洲人亚洲人成电影网站色| 亚洲精品免费在线| 亚洲6080在线| 国产永久精品大片wwwapp| 国内精品国产成人国产三级粉色| 国产精品综合一区二区三区| av中文字幕亚洲| 欧美日韩在线一区二区|