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

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

?? xauth.c

?? This a good VPN source
?? C
?? 第 1 頁 / 共 4 頁
字號:
	{	    u_int16_t val;	    int len;            if (!in_struct(&attr, &isakmp_xauth_attribute_desc, attrs, &strattr))	    {		/* Skip unknown */		if (attr.isaat_af_type & 0x8000)		{		    len = 4;		    val = attr.isaat_lv;		} else {		    len = attr.isaat_lv;		    val = ntohs(*(u_int16_t *)strattr.cur);		}		if(len < 4)		{		    openswan_log("Attribute was too short: %d", len);		    return STF_FAIL;		}		attrs->cur += len;		continue;	    }	    if (attr.isaat_af_type & 0x8000)	    {		len = 4;		val = attr.isaat_lv;	    } else {		len = attr.isaat_lv;		val = ntohs(*(u_int16_t *)strattr.cur);	    }	    switch(attr.isaat_af_type)	    {	    case XAUTH_TYPE:		if(val != 0)		    return NO_PROPOSAL_CHOSEN;		break;	    case XAUTH_USER_NAME:		clonetochunk(name,strattr.cur,attr.isaat_lv+1,"username");		name.ptr[name.len-1] = 0;	/* Pass NULL terminated strings */		gotname = TRUE;		break;			    case XAUTH_USER_PASSWORD:		clonetochunk(password,strattr.cur,attr.isaat_lv+1,"password");		password.ptr[password.len-1] = 0;		gotpassword = TRUE;		break;			    default:		openswan_log("XAUTH:  Unsupported XAUTH parameter %s received."		     , enum_show(&modecfg_attr_names, attr.isaat_af_type));		break;	    }	}    }    /** we must get a username and a password value */    if(!gotname || !gotpassword) {      openswan_log("Expected MODE_CFG_REPLY did not contain %s%s%s attribute"	   , (!gotname ? "username" : "")	   , ((!gotname && !gotpassword) ? " or " : "")	   , (!gotpassword ? "password" : ""));      if(st->hidden_variables.st_xauth_client_attempt++ < XAUTH_PROMPT_TRIES)      {	  stf_status stat = xauth_send_request(st);	  openswan_log("XAUTH: User %s: Authentication Failed (retry %d)"	       , (!gotname ? "<unknown>" : (char *)name.ptr)	       , st->hidden_variables.st_xauth_client_attempt);	  /**	   * STF_OK means that we transmitted again okay, but actually	   * the state transition failed, as we are prompting again.	   */	  if(stat == STF_OK)	  {	      return STF_IGNORE;	  } else {	      return stat;	  }      } else {	  stf_status stat = xauth_send_status(st, FALSE);	  openswan_log("XAUTH: User %s: Authentication Failed (Retried %d times)"	       , (!gotname ? "<unknown>" : (char *)name.ptr)	       , st->hidden_variables.st_xauth_client_attempt);	  if(stat == STF_OK)	  {	      return STF_FAIL;	  } else {	      return stat;	  }      }    } else {	clonetochunk(connname		     , st->st_connection->name		     , strlen(st->st_connection->name)+1		     ,"connname");		connname.ptr[connname.len-1] = 0; /* Pass NULL terminated strings */		xauth_launch_authent(st,name,password,connname);    }    return STF_IGNORE;}/** STATE_XAUTH_R1: *  STATUS sent, expect for ACK *  HDR*, ATTR(STATUS), HASH --> Done * * @param md Message Digest * @return stf_status */stf_statusxauth_inR1(struct msg_digest *md){    struct state *const st = md->st;    openswan_log("XAUTH: xauth_inR1(STF_OK)");    /* Back to where we were */     st->st_oakley.xauth = 0;    if(!st->st_connection->spd.this.modecfg_server) {	DBG(DBG_CONTROL	    , DBG_log("Not server, starting new exchange"));	st->st_msgid = 0;    }    if(st->st_connection->spd.this.modecfg_server        && st->hidden_variables.st_modecfg_vars_set) {	DBG(DBG_CONTROL	    , DBG_log("modecfg server, vars are set. Starting new exchange."));	st->st_msgid = 0;    }    if(st->st_connection->spd.this.modecfg_server        && st->st_connection->policy & POLICY_MODECFG_PULL) {	DBG(DBG_CONTROL	    , DBG_log("modecfg server, pull mode. Starting new exchange."));	st->st_msgid = 0;    }    return STF_OK;}/* * * STATE_MODE_CFG_R0: *  HDR*, HASH, ATTR(REQ=IP) --> HDR*, HASH, ATTR(REPLY=IP) * * This state occurs both in the responder and in the initiator. * * In the responding server, it occurs when the client *asks* for an IP * address or other information.  * * Otherwise, it occurs in the initiator when the server sends a challenge * a set, or has a reply to our request. * * @param md Message Digest * @return stf_status */stf_statusmodecfg_inR0(struct msg_digest *md){    struct state *const st = md->st;    struct payload_digest *p;    pb_stream *attrs;    stf_status stat;    DBG(DBG_CONTROLMORE, DBG_log("arrived in modecfg_inR0"));    st->st_msgid = md->hdr.isa_msgid;    CHECK_QUICK_HASH(md		     ,xauth_mode_cfg_hash(hash_val					  ,hash_pbs->roof					  , md->message_pbs.roof, st)		     , "MODECFG-HASH", "MODE R0");    /* process the MODECFG payloads therein */    for(p = md->chain[ISAKMP_NEXT_ATTR]; p != NULL; p = p->next)    {        struct isakmp_attribute attr;        pb_stream strattr;	unsigned int resp = LEMPTY;	attrs = &p->pbs;	switch(p->payload.attribute.isama_type)	{	default:	    openswan_log("Expecting ISAKMP_CFG_REQUEST, got %s instead (ignored)."			 , enum_name(&attr_msg_type_names				     , p->payload.attribute.isama_type));	    while(pbs_left(attrs) > sizeof(struct isakmp_attribute))	    {		if (!in_struct(&attr, &isakmp_xauth_attribute_desc, attrs, &strattr))		{		    /* Skip unknown */		    int len;		    if (attr.isaat_af_type & 0x8000)			len = 4;		    else			len = attr.isaat_lv;		    		    if(len < 4)		    {			openswan_log("Attribute was too short: %d", len);			return STF_FAIL;		    }		    		    attrs->cur += len;		}				openswan_log("ignored mode cfg attribute %s."		     , enum_show(&modecfg_attr_names				 , (attr.isaat_af_type & ISAKMP_ATTR_RTYPE_MASK )));	    }	    break;	case ISAKMP_CFG_REQUEST:	    while(pbs_left(attrs) > sizeof(struct isakmp_attribute))	    {		if (!in_struct(&attr, &isakmp_xauth_attribute_desc, attrs, &strattr))		{		    /* Skip unknown */		    int len;		    if (attr.isaat_af_type & 0x8000)			len = 4;		    else			len = attr.isaat_lv;		    		    if(len < 4)		    {			openswan_log("Attribute was too short: %d", len);			return STF_FAIL;		    }		    		    attrs->cur += len;		}		switch(attr.isaat_af_type & ISAKMP_ATTR_RTYPE_MASK )		{		case INTERNAL_IP4_ADDRESS:		case INTERNAL_IP4_NETMASK:		case INTERNAL_IP4_DNS:		case INTERNAL_IP4_SUBNET:		case INTERNAL_IP4_NBNS:		    resp |= LELEM(attr.isaat_af_type);		    break;		default:		    openswan_log("unsupported mode cfg attribute %s received."			 , enum_show(&modecfg_attr_names				     , (attr.isaat_af_type & ISAKMP_ATTR_RTYPE_MASK )));		    break;		}	    }	    	    stat = modecfg_resp(st, resp				,&md->rbody				,ISAKMP_CFG_REPLY				,TRUE				,p->payload.attribute.isama_identifier);	    	    if(stat != STF_OK) {		/* notification payload - not exactly the right choice, but okay */		md->note = CERTIFICATE_UNAVAILABLE;		return stat;	    }	    /* they asked us, we reponsed, msgid is done */	    st->st_msgid = 0;	}    }    openswan_log("modecfg_inR0(STF_OK)");    return STF_OK;}/** STATE_MODE_CFG_R2: *  HDR*, HASH, ATTR(SET=IP) --> HDR*, HASH, ATTR(ACK,OK) * * used in server push mode, on the client (initiator). *	     * @param md Message Digest * @return stf_status */static stf_statusmodecfg_inI2(struct msg_digest *md){    struct state *const st = md->st;    pb_stream *attrs = &md->chain[ISAKMP_NEXT_ATTR]->pbs;    int resp = LEMPTY;    stf_status stat;    struct payload_digest *p;    u_int16_t isama_id;    DBG(DBG_CONTROL, DBG_log("modecfg_inI2"));    st->st_msgid = md->hdr.isa_msgid;    CHECK_QUICK_HASH(md		     , xauth_mode_cfg_hash(hash_val					  ,hash_pbs->roof					  , md->message_pbs.roof					  , st)		     , "MODECFG-HASH", "MODE R1");    for(p = md->chain[ISAKMP_NEXT_ATTR]; p != NULL; p = p->next)    {        struct isakmp_attribute attr;        pb_stream strattr;	isama_id = p->payload.attribute.isama_identifier;	if (p->payload.attribute.isama_type != ISAKMP_CFG_SET)	{	    openswan_log("Expecting MODE_CFG_SET, got %x instead."			 ,md->chain[ISAKMP_NEXT_ATTR]->payload.attribute.isama_type);	    return STF_IGNORE;	}	/* CHECK that SET has been received. */	while(pbs_left(attrs) > sizeof(struct isakmp_attribute))	{            if (!in_struct(&attr, &isakmp_xauth_attribute_desc			   , attrs, &strattr))	    {		/* Skip unknown */		int len;		if (attr.isaat_af_type & 0x8000)		    len = 4;		else		    len = attr.isaat_lv;		if(len < 4)		{		    openswan_log("Attribute was too short: %d", len);		    return STF_FAIL;		}		attrs->cur += len;	    }	    switch(attr.isaat_af_type & ISAKMP_ATTR_RTYPE_MASK )	    {		case INTERNAL_IP4_ADDRESS:		    {			struct connection *c = st->st_connection;			ip_address a;			char caddr[SUBNETTOT_BUF];			u_int32_t *ap = (u_int32_t *)(strattr.cur);			a.u.v4.sin_family = AF_INET;			memcpy(&a.u.v4.sin_addr.s_addr, ap			       , sizeof(a.u.v4.sin_addr.s_addr));			addrtosubnet(&a, &c->spd.this.client);			c->spd.this.has_client = TRUE;			subnettot(&c->spd.this.client, 0				  , caddr, sizeof(caddr));			openswan_log("setting client address to %s", caddr);						if(addrbytesptr(&c->spd.this.host_srcip, NULL) == 0			   || isanyaddr(&c->spd.this.host_srcip)) {			  openswan_log("setting ip source address to %s"				       , caddr);			  c->spd.this.host_srcip = a;			}		    }		    resp |= LELEM(attr.isaat_af_type);		    break;		case INTERNAL_IP4_NETMASK:		case INTERNAL_IP4_DNS:		case INTERNAL_IP4_SUBNET:		case INTERNAL_IP4_NBNS:		    resp |= LELEM(attr.isaat_af_type);		    break;		default:		    openswan_log("unsupported mode cfg attribute %s received."				 , enum_show(&modecfg_attr_names, (attr.isaat_af_type & ISAKMP_ATTR_RTYPE_MASK )));		    break;	    }	}	/* loglog(LOG_DEBUG,"ModeCfg ACK: %x",resp); */    }    /* ack things */    stat = modecfg_resp(st, resp			,&md->rbody			,ISAKMP_CFG_ACK			,FALSE			,isama_id);    if(stat != STF_OK) {	/* notification payload - not exactly the right choice, but okay */	md->note = CERTIFICATE_UNAVAILABLE;	return stat;    }    /*     * we are done with this exchange, clear things so     * that we can start phase 2 properly     */    st->st_msgid = 0;    if(resp) {	st->hidden_variables.st_modecfg_vars_set = TRUE;    }    DBG(DBG_CONTROL, DBG_log("modecfg_inI2(STF_OK)"));    return STF_OK;}/** STATE_MODE_CFG_R1: *  HDR*, HASH, ATTR(SET=IP) --> HDR*, HASH, ATTR(ACK,OK) *	     * @param md Message Digest * @return stf_status */stf_statusmodecfg_inR1(struct msg_digest *md){    struct state *const st = md->st;    pb_stream *attrs = &md->chain[ISAKMP_NEXT_ATTR]->pbs;    int resp = LEMPTY;    struct payload_digest *p;    DBG(DBG_CONTROL, DBG_log("modecfg_inR1"));    openswan_log("received mode cfg reply");    st->st_msgid = md->hdr.isa_msgid;    CHECK_QUICK_HASH(md,xauth_mode_cfg_hash(hash_val,hash_pbs->roof, md->message_pbs.roof, st)	, "MODECFG-HASH", "MODE R1");    /* process the MODECFG payloads therein */    for(p = md->chain[ISAKMP_NEXT_ATTR]; p != NULL; p = p->next)    {        struct isakmp_attribute attr;        pb_stream strattr;		attrs = &p->pbs;		switch(p->payload.attribute.isama_type)	{	default:	{	    openswan_log("Expecting MODE_CFG_ACK, got %x instead.",md->chain[ISAKMP_NEXT_ATTR]->payload.attribute.isama_type);	    return STF_IGNORE;	}	break;		case ISAKMP_CFG_ACK:	    	    /* CHECK that ACK has been received. */	    while(pbs_left(attrs) > sizeof(struct isakmp_attribute))	    {		if (!in_struct(&attr, &isakmp_xauth_attribute_desc			       , attrs, &strattr))		{		    /* Skip unknown */		    int len;		    if (attr.isaat_af_type & 0x8000)			len = 4;		    else			len = attr.isaat_lv;		    		    if(len < 4)		    {			openswan_log("Attribute was too short: %d", len);			return STF_FAIL;		    }		    		    attrs->cur += len;		}				switch(attr.isaat_af_type & ISAKMP_ATTR_RTYPE_MASK )		{		case INTERNAL_IP4_ADDRESS:		case INTERNAL_IP4_NETMASK:		case INTERNAL_IP4_DNS:		case INTERNAL_IP4_SUBNET:		case INTERNAL_IP4_NBNS:		    resp |= LELEM(attr.isaat_af_type);		    break;		default:		    openswan_log("unsupported mode cfg attribute %s received."				 , enum_show(&modecfg_attr_names, (attr.isaat_af_type & ISAKMP_ATTR_RTYPE_MASK )));		    break;		}	    }	    break;	    	case ISAKMP_CFG_REPLY:	    while(pbs_left(attrs) > sizeof(struct isakmp_attribute))	    {		if (!in_struct(&attr, &isakmp_xauth_attribute_desc			       , attrs, &strattr))		{		    /* Skip unknown */		    int len;		    if (attr.isaat_af_type & 0x8000)			len = 4;		    else			len = attr.isaat_lv;		    		    if(len < 4)		    {			openswan_log("Attribute was too short: %d", len);			return STF_FAIL;		    }		    		    attrs->cur += len;		}				switch(attr.isaat_af_type & ISAKMP_ATTR_RTYPE_MASK )		{		case INTERNAL_IP4_ADDRESS:		{		    struct connection *c = st->st_connection;		    ip_address a;		    char caddr[SUBNETTOT_BUF];		    		    u_int32_t *ap = (u_int32_t *)(strattr.cur);		    a.u.v4.sin_family = AF_INET;		    memcpy(&a.u.v4.sin_addr.s_addr, ap			   , sizeof(a.u.v4.sin_addr.s_addr));		    addrtosubnet(&a, &c->spd.this.client);		    /* make sure that the port info is zeroed */		    setportof(0, &c->spd.this.client.addr);		    c->spd.this.has_client = TRUE;		    subnettot(&c->spd.this.client, 0			      , caddr, sizeof(caddr));		    openswan_log("setting client address to %s"				 , caddr);		    		    if(addrbytesptr(&c->spd.this.host_srcip, NULL) == 0		       || isanyaddr(&c->spd.this.host_srcip)) {			openswan_log("setting ip source address to %s"				     , caddr);			c->spd.this.host_srcip = a;		    }		}		resp |= LELEM(attr.isaat_af_type);		break;				case INTERNAL_IP4_NETMASK:		case INTERNAL_IP4_DNS:		case INTERNAL_IP4_SUBNET:		case INTERNAL_IP4_NBNS:		    resp |= LELEM(attr.isaat_af_type);		    break;		default:		    openswan_log("unsupported mode cfg attribute %s received."				 , enum_show(&modecfg_attr_names, (attr.isaat_af_type & ISAKMP_ATTR_RTYPE_MASK )));		    break;		}	    }	    /* loglog(LOG_DEBUG,"ModeCfg ACK: %x",resp); */	    break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产露脸精彩对白| 精品国产sm最大网站免费看| 精东粉嫩av免费一区二区三区| 欧美激情在线看| 91精品国产综合久久蜜臀| 成人毛片在线观看| 久久av资源网| 天堂成人国产精品一区| 国产精品日产欧美久久久久| 日韩欧美你懂的| 在线观看www91| 成人一级片网址| 蜜桃免费网站一区二区三区| 亚洲夂夂婷婷色拍ww47| 国产精品久久午夜| 国产亚洲婷婷免费| 日韩精品一区二区三区视频播放 | 日韩欧美成人午夜| 欧美丝袜丝交足nylons| 成人国产精品免费观看视频| 国产精选一区二区三区| 免费在线观看视频一区| 亚洲成a人片综合在线| 亚洲免费观看视频| 亚洲欧洲在线观看av| 国产女人aaa级久久久级| 日韩欧美成人午夜| 制服.丝袜.亚洲.中文.综合| 精品视频123区在线观看| 色播五月激情综合网| 91在线视频在线| 成人激情图片网| 成人午夜在线免费| 不卡视频免费播放| 99久久婷婷国产综合精品电影| 丁香婷婷综合五月| 粉嫩av一区二区三区粉嫩| 国产一区二区三区在线观看免费视频| 美女国产一区二区| 麻豆91在线播放| 蓝色福利精品导航| 经典一区二区三区| 国产在线乱码一区二区三区| 国产精品亚洲一区二区三区在线| 黄色小说综合网站| 国产一区二区精品久久99| 精品毛片乱码1区2区3区| 欧美一区二区观看视频| 欧美一区二区三区小说| 日韩一级欧美一级| 久久综合色之久久综合| 国产女同性恋一区二区| 亚洲精品自拍动漫在线| 亚洲一区成人在线| 蜜臀精品久久久久久蜜臀| 久久精品国产网站| 国产91露脸合集magnet| 波多野结衣亚洲| 在线观看视频欧美| 91精品婷婷国产综合久久竹菊| 日韩三区在线观看| 国产日韩成人精品| 自拍偷拍欧美精品| 亚洲成人手机在线| 久久9热精品视频| 99视频精品全部免费在线| 欧美在线免费播放| 欧美第一区第二区| 国产精品久线在线观看| 亚洲国产日韩在线一区模特| 久久99热这里只有精品| 国产高清久久久久| 色嗨嗨av一区二区三区| 日韩欧美中文字幕公布| 欧美国产激情一区二区三区蜜月| 一区二区三区四区在线免费观看| 午夜日韩在线观看| 国产成人在线免费观看| 欧美午夜精品理论片a级按摩| 日韩天堂在线观看| 中文字幕在线一区免费| 亚洲www啪成人一区二区麻豆 | 国产一区二区三区观看| 91蜜桃免费观看视频| 91精品国产综合久久福利软件| 国产女人18毛片水真多成人如厕 | 韩国三级电影一区二区| www.激情成人| 欧美一级一区二区| 亚洲欧美国产77777| 美女网站色91| 91免费视频网| 精品免费视频.| 亚洲综合一区二区三区| 国产成人免费视频一区| 欧美日韩精品欧美日韩精品一 | 免费精品视频最新在线| 波多野结衣精品在线| 欧美一级日韩一级| 亚洲天堂成人在线观看| 国产在线视频精品一区| 欧美电影一区二区| 亚洲女同一区二区| 国产一区二区毛片| 91精品欧美福利在线观看| 亚洲欧美在线视频| 国产在线国偷精品产拍免费yy| 欧美三级电影在线观看| 国产精品免费aⅴ片在线观看| 免费高清在线一区| 欧美在线免费播放| 亚洲欧美日韩国产中文在线| 激情成人午夜视频| 日韩欧美国产综合一区| 亚洲午夜免费视频| 91丨porny丨首页| 国产欧美日韩麻豆91| 韩国中文字幕2020精品| 欧美一级二级三级乱码| 亚洲午夜精品网| 日本高清不卡aⅴ免费网站| 国产精品久久午夜| 成人永久aaa| 国产欧美一区二区三区在线看蜜臀 | 国产91在线看| 久久天天做天天爱综合色| 日韩精品色哟哟| 欧美另类久久久品| 色网站国产精品| 国产精品久久久久久久第一福利| 激情av综合网| 国产偷国产偷精品高清尤物| 国产一区亚洲一区| 亚洲精品一区二区三区四区高清| 免费一级欧美片在线观看| 91精品国产一区二区三区蜜臀| 婷婷国产v国产偷v亚洲高清| 欧美日韩一级二级| 日韩成人一区二区| 日韩欧美一级二级三级久久久| 美女一区二区久久| 久久久亚洲高清| 成人视屏免费看| 综合中文字幕亚洲| 色悠久久久久综合欧美99| 亚洲国产你懂的| 91精品国产乱码| 麻豆精品在线播放| 国产亚洲婷婷免费| 91在线视频官网| 亚洲一级二级三级| 欧美一区二区三区性视频| 国内精品不卡在线| 国产精品色在线| 色噜噜狠狠色综合中国| 亚洲777理论| 欧美变态tickling挠脚心| 国产.欧美.日韩| 一区二区三区欧美日| 欧美日韩亚洲不卡| 国产一区二区视频在线| 欧美国产成人在线| 欧美视频中文字幕| 国产真实乱子伦精品视频| 最新热久久免费视频| 欧美精品在线视频| 国产福利一区在线| 亚洲一区日韩精品中文字幕| 日韩欧美国产综合在线一区二区三区| 国产99久久久国产精品潘金网站| 亚洲丝袜另类动漫二区| 欧美一区午夜精品| 国产91精品露脸国语对白| 一区二区三区美女视频| 精品粉嫩超白一线天av| 色激情天天射综合网| 久久精品国产亚洲一区二区三区| 欧美极品aⅴ影院| 欧美日韩一区二区在线观看视频 | 国产精品理论片| 欧美老肥妇做.爰bbww| 国产成人夜色高潮福利影视| 亚洲丰满少妇videoshd| 欧美激情一区不卡| 欧美一区二区三区视频免费| 高清国产一区二区| 奇米综合一区二区三区精品视频| 国产精品久久久久久久久免费樱桃| 欧美日韩一级黄| www..com久久爱| 国内精品伊人久久久久影院对白| 亚洲乱码国产乱码精品精的特点| 精品99999| 7777精品伊人久久久大香线蕉最新版 | 三级一区在线视频先锋| 国产精品污污网站在线观看| 日韩一区二区三区电影在线观看| 色偷偷一区二区三区| 成人免费视频国产在线观看| 日本成人在线一区|