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

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

?? mdb.c

?? open source dhcp server client etc...
?? C
?? 第 1 頁 / 共 5 頁
字號:
		} else if (lease -> uid != &lease -> uid_buf [0]) {			comp -> uid = lease -> uid;			comp -> uid_max = lease -> uid_max;			lease -> uid = (unsigned char *)0;			lease -> uid_max = 0;			comp -> uid_len = lease -> uid_len;			lease -> uid_len = 0;		} else {			log_fatal ("corrupt lease uid."); /* XXX */		}	} else {		comp -> uid = (unsigned char *)0;		comp -> uid_len = comp -> uid_max = 0;	}	if (comp -> host)		host_dereference (&comp -> host, MDL);	host_reference (&comp -> host, lease -> host, MDL);	comp -> hardware_addr = lease -> hardware_addr;	comp -> flags = ((lease -> flags & ~PERSISTENT_FLAGS) |			 (comp -> flags & ~EPHEMERAL_FLAGS));	if (comp -> scope)		binding_scope_dereference (&comp -> scope, MDL);	if (lease -> scope) {		binding_scope_reference (&comp -> scope, lease -> scope, MDL);		binding_scope_dereference (&lease -> scope, MDL);	}	if (comp -> agent_options)		option_chain_head_dereference (&comp -> agent_options, MDL);	if (lease -> agent_options) {		/* Only retain the agent options if the lease is still		   affirmatively associated with a client. */		if (lease -> next_binding_state == FTS_ACTIVE ||		    lease -> next_binding_state == FTS_EXPIRED ||		    lease -> next_binding_state == FTS_RESERVED ||		    lease -> next_binding_state == FTS_BOOTP)			option_chain_head_reference (&comp -> agent_options,						     lease -> agent_options,						     MDL);		option_chain_head_dereference (&lease -> agent_options, MDL);	}	/* Record the hostname information in the lease. */	if (comp -> client_hostname)		dfree (comp -> client_hostname, MDL);	comp -> client_hostname = lease -> client_hostname;	lease -> client_hostname = (char *)0;	if (lease -> on_expiry) {		if (comp -> on_expiry)			executable_statement_dereference (&comp -> on_expiry,							  MDL);		executable_statement_reference (&comp -> on_expiry,						lease -> on_expiry,						MDL);	}	if (lease -> on_commit) {		if (comp -> on_commit)			executable_statement_dereference (&comp -> on_commit,							  MDL);		executable_statement_reference (&comp -> on_commit,						lease -> on_commit,						MDL);	}	if (lease -> on_release) {		if (comp -> on_release)			executable_statement_dereference (&comp -> on_release,							  MDL);		executable_statement_reference (&comp -> on_release,						lease -> on_release, MDL);	}		/* Record the lease in the uid hash if necessary. */	if (enter_uid && comp -> uid) {		uid_hash_add (comp);	}		/* Record it in the hardware address hash if necessary. */	if (enter_hwaddr && lease -> hardware_addr.hlen) {		hw_hash_add (comp);	}	#if defined (FAILOVER_PROTOCOL)	comp -> cltt = lease -> cltt;	comp -> tstp = lease -> tstp;	comp -> tsfp = lease -> tsfp;#endif /* FAILOVER_PROTOCOL */	comp -> ends = lease -> ends;	comp -> next_binding_state = lease -> next_binding_state;      just_move_it:	if (!comp -> pool) {		log_error ("Supersede_lease: lease %s with no pool.",			   piaddr (comp -> ip_addr));		return 0;	}	/* Figure out which queue it's on. */	switch (comp -> binding_state) {	      case FTS_FREE:		lq = &comp -> pool -> free;		comp -> pool -> free_leases--;		break;	      case FTS_ACTIVE:	      case FTS_RESERVED:	      case FTS_BOOTP:		lq = &comp -> pool -> active;		break;	      case FTS_EXPIRED:	      case FTS_RELEASED:	      case FTS_RESET:		lq = &comp -> pool -> expired;		break;	      case FTS_ABANDONED:		lq = &comp -> pool -> abandoned;		break;	      case FTS_BACKUP:		lq = &comp -> pool -> backup;		comp -> pool -> backup_leases--;		break;	      default:		log_error ("Lease with bogus binding state: %d",			   comp -> binding_state);#if defined (BINDING_STATE_DEBUG)		abort ();#endif		return 0;	}	/* Remove the lease from its current place in its current	   timer sequence. */	prev = (struct lease *)0;	for (lp = *lq; lp; lp = lp -> next) {		if (lp == comp)			break;		prev = lp;	}	if (!lp) {		log_error ("Lease with binding state %s not on its queue.",			   (comp -> binding_state < 1 &&			    comp -> binding_state < FTS_BOOTP)			   ? "unknown"			   : binding_state_names [comp -> binding_state - 1]);		return 0;	}		if (prev) {		lease_dereference (&prev -> next, MDL);		if (comp -> next) {			lease_reference (&prev -> next, comp -> next, MDL);			lease_dereference (&comp -> next, MDL);		}	} else {		lease_dereference (lq, MDL);		if (comp -> next) {			lease_reference (lq, comp -> next, MDL);			lease_dereference (&comp -> next, MDL);		}	}	/* Make the state transition. */	if (commit || !pimmediate)		make_binding_state_transition (comp);	/* Put the lease back on the appropriate queue.    If the lease	   is corrupt (as detected by lease_enqueue), don't go any farther. */	if (!lease_enqueue (comp))		return 0;	/* If this is the next lease that will timeout on the pool,	   zap the old timeout and set the timeout on this pool to the	   time that the lease's next event will happen.		   	   We do not actually set the timeout unless commit is true -	   we don't want to thrash the timer queue when reading the	   lease database.  Instead, the database code calls the	   expiry event on each pool after reading in the lease file,	   and the expiry code sets the timer if there's anything left	   to expire after it's run any outstanding expiry events on	   the pool. */	if ((commit || !pimmediate) &&	    comp -> sort_time != MIN_TIME &&	    comp -> sort_time > cur_time &&	    (comp -> sort_time < comp -> pool -> next_event_time ||	     comp -> pool -> next_event_time == MIN_TIME)) {		comp -> pool -> next_event_time = comp -> sort_time;		add_timeout (comp -> pool -> next_event_time,			     pool_timer, comp -> pool,			     (tvref_t)pool_reference,			     (tvunref_t)pool_dereference);	}	if (commit) {		if (!write_lease (comp))			return 0;		if (!commit_leases ())			return 0;	}#if defined (FAILOVER_PROTOCOL)	if (propogate) {		if (!dhcp_failover_queue_update (comp, pimmediate))			return 0;	}#endif	/* If the current binding state has already expired, do an	   expiry event right now. */	/* XXX At some point we should optimize this so that we don't	   XXX write the lease twice, but this is a safe way to fix the	   XXX problem for 3.0 (I hope!). */	if ((commit || !pimmediate) &&	    comp -> sort_time < cur_time &&	    comp -> next_binding_state != comp -> binding_state)		pool_timer (comp -> pool);	return 1;}void make_binding_state_transition (struct lease *lease){#if defined (FAILOVER_PROTOCOL)	dhcp_failover_state_t *peer;	if (lease && lease -> pool && lease -> pool -> failover_peer)		peer = lease -> pool -> failover_peer;	else		peer = (dhcp_failover_state_t *)0;#endif	/* If the lease was active and is now no longer active, but isn't	   released, then it just expired, so do the expiry event. */	if (lease -> next_binding_state != lease -> binding_state &&	    ((#if defined (FAILOVER_PROTOCOL)		    peer &&		    lease -> binding_state == FTS_EXPIRED &&		    (lease -> next_binding_state == FTS_FREE ||		     lease -> next_binding_state == FTS_BACKUP)) ||	     (!peer &&#endif	      (lease -> binding_state == FTS_ACTIVE ||	       lease -> binding_state == FTS_BOOTP ||	       lease -> binding_state == FTS_RESERVED) &&	      lease -> next_binding_state != FTS_RELEASED))) {#if defined (NSUPDATE)		ddns_removals (lease);#endif		if (lease -> on_expiry) {			execute_statements ((struct binding_value **)0,					    (struct packet *)0, lease,					    (struct client_state *)0,					    (struct option_state *)0,					    (struct option_state *)0, /* XXX */					    &lease -> scope,					    lease -> on_expiry);			if (lease -> on_expiry)				executable_statement_dereference					(&lease -> on_expiry, MDL);		}				/* No sense releasing a lease after it's expired. */		if (lease -> on_release)			executable_statement_dereference (&lease -> on_release,							  MDL);		if (lease -> billing_class)			unbill_class (lease, lease -> billing_class);		/* Send the expiry time to the peer. */		lease -> tstp = lease -> ends;	}	/* If the lease was active and is now released, do the release	   event. */	if (lease -> next_binding_state != lease -> binding_state &&	    ((#if defined (FAILOVER_PROTOCOL)		    peer &&		    lease -> binding_state == FTS_RELEASED &&		    (lease -> next_binding_state == FTS_FREE ||		     lease -> next_binding_state == FTS_BACKUP)) ||	     (!peer &&#endif	      (lease -> binding_state == FTS_ACTIVE ||	       lease -> binding_state == FTS_BOOTP ||	       lease -> binding_state == FTS_RESERVED) &&	      lease -> next_binding_state == FTS_RELEASED))) {#if defined (NSUPDATE)		ddns_removals (lease);#endif		if (lease -> on_release) {			execute_statements ((struct binding_value **)0,					    (struct packet *)0, lease,					    (struct client_state *)0,					    (struct option_state *)0,					    (struct option_state *)0, /* XXX */					    &lease -> scope,					    lease -> on_release);			executable_statement_dereference (&lease -> on_release,							  MDL);		}				/* A released lease can't expire. */		if (lease -> on_expiry)			executable_statement_dereference (&lease -> on_expiry,							  MDL);		if (lease -> billing_class)			unbill_class (lease, lease -> billing_class);		/* Send the release time (should be == cur_time) to the		   peer. */		lease -> tstp = lease -> ends;	}#if defined (DEBUG_LEASE_STATE_TRANSITIONS)	log_debug ("lease %s moves from %s to %s",		   piaddr (lease -> ip_addr),		   binding_state_print (lease -> binding_state),		   binding_state_print (lease -> next_binding_state));#endif	lease -> binding_state = lease -> next_binding_state;	switch (lease -> binding_state) {	      case FTS_ACTIVE:	      case FTS_BOOTP:#if defined (FAILOVER_PROTOCOL)		if (lease -> pool && lease -> pool -> failover_peer)			lease -> next_binding_state = FTS_EXPIRED;		else#endif			lease -> next_binding_state = FTS_FREE;		break;	      case FTS_EXPIRED:	      case FTS_RELEASED:	      case FTS_ABANDONED:	      case FTS_RESET:		lease -> next_binding_state = FTS_FREE;		/* If we are not in partner_down, leases don't go from		   EXPIRED to FREE on a timeout - only on an update.		   If we're in partner_down, they expire at mclt past		   the time we entered partner_down. */		if (lease -> pool -> failover_peer &&		    lease -> pool -> failover_peer -> me.state == partner_down)			lease -> tsfp =			    (lease -> pool -> failover_peer -> me.stos +			     lease -> pool -> failover_peer -> mclt);		break;	      case FTS_FREE:	      case FTS_BACKUP:	      case FTS_RESERVED:		lease -> next_binding_state = lease -> binding_state;		break;	}#if defined (DEBUG_LEASE_STATE_TRANSITIONS)	log_debug ("lease %s: next binding state %s",		   piaddr (lease -> ip_addr),		   binding_state_print (lease -> next_binding_state));#endif}/* Copy the contents of one lease into another, correctly maintaining   reference counts. */int lease_copy (struct lease **lp,		struct lease *lease, const char *file, int line){	struct lease *lt = (struct lease *)0;	isc_result_t status;	status = lease_allocate (&lt, MDL);	if (status != ISC_R_SUCCESS)		return 0;	lt -> ip_addr = lease -> ip_addr;	lt -> starts = lease -> starts;	lt -> ends = lease -> ends;	lt -> timestamp = lease -> timestamp;	lt -> uid_len = lease -> uid_len;	lt -> uid_max = lease -> uid_max;	if (lease -> uid == lease -> uid_buf) {		lt -> uid = lt -> uid_buf;		memcpy (lt -> uid_buf, lease -> uid_buf, sizeof lt -> uid_buf);	} else if (!lease -> uid_max) {		lt -> uid = (unsigned char *)0;	} else {		lt -> uid = dmalloc (lt -> uid_max, MDL);		if (!lt -> uid) {			lease_dereference (&lt, MDL);			return 0;		}		memcpy (lt -> uid, lease -> uid, lease -> uid_max);	}	if (lease -> client_hostname) {		lt -> client_hostname =			dmalloc (strlen (lease -> client_hostname) + 1, MDL);		if (!lt -> client_hostname) {			lease_dereference (&lt, MDL);			return 0;		}		strcpy (lt -> client_hostname, lease -> client_hostname);	}	if (lease -> scope)		binding_scope_reference (&lt -> scope, lease -> scope, MDL);	if (lease -> agent_options)		option_chain_head_reference (&lt -> agent_options,					     lease -> agent_options, MDL);	host_reference (&lt -> host, lease -> host, file, line);	subnet_reference (&lt -> subnet, lease -> subnet, file, line);	pool_reference (&lt -> pool, lease -> pool, file, line);	class_reference (&lt -> billing_class,			 lease -> billing_class, file, line);	lt -> hardware_addr = lease -> hardware_addr;	if (lease -> on_expiry)		executable_statement_reference (&lt -> on_expiry,						lease -> on_expiry,						file, line);	if (lease -> on_commit)		executable_statement_reference (&lt -> on_commit,						lease -> on_commit,						file, line);	if (lease -> on_release)		executable_statement_reference (&lt -> on_release,						lease -> on_release,						file, line);	lt -> flags = lease -> flags;	lt -> tstp = lease -> tstp;	lt -> tsfp = lease -> tsfp;	lt -> cltt = lease -> cltt;	lt -> binding_state = lease -> binding_state;	lt -> next_binding_state = lease -> next_binding_state;	status = lease_reference (lp, lt, file, line);	lease_dereference (&lt, MDL);	return status == ISC_R_SUCCESS;}/* Release the specified lease and re-hash it as appropriate. */void release_lease (lease, packet)	struct lease *lease;	struct packet *packet;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产婷婷色一区二区三区在线| 亚洲精品日日夜夜| 久久久精品2019中文字幕之3| 国产偷v国产偷v亚洲高清| 国产亚洲欧美日韩日本| 欧美高清在线视频| 亚洲一区二区精品久久av| 一区二区三区美女视频| 亚洲国产精品一区二区久久恐怖片| 亚洲欧洲国产日韩| 亚洲综合一二三区| 奇米影视在线99精品| 亚洲综合在线免费观看| 看电影不卡的网站| 99久久精品国产网站| 在线日韩av片| 久久精品男人天堂av| 亚洲精品日韩专区silk| 日韩激情av在线| 丁香六月久久综合狠狠色| 色天天综合久久久久综合片| 91精品国产一区二区三区香蕉| 国产亚洲欧美激情| 亚洲国产精品自拍| 国产一区二区三区不卡在线观看 | 亚洲福中文字幕伊人影院| 青青草原综合久久大伊人精品优势| 成人h版在线观看| 欧美女孩性生活视频| 精品日韩成人av| 性做久久久久久久免费看| 精品亚洲成a人| 在线观看免费视频综合| 久久久久亚洲蜜桃| 亚洲图片欧美一区| 久久99国产精品久久99 | 久久综合色综合88| 亚洲欧美日韩久久| 激情六月婷婷久久| 色吧成人激情小说| 久久久99免费| 婷婷国产在线综合| 91女神在线视频| 精品国产电影一区二区| 一区二区三区在线不卡| 国产·精品毛片| 51精品国自产在线| 亚洲欧美在线视频| 国产精品自拍av| 在线不卡中文字幕播放| 国产精品久久久久一区| 午夜国产精品一区| 欧美在线你懂得| 亚洲欧洲日本在线| 老司机午夜精品| 欧美日韩国产一二三| 亚洲欧美综合网| 国产在线一区二区综合免费视频| 91精品啪在线观看国产60岁| 一区二区三区中文字幕精品精品| 国产乱码精品一区二区三区av| 日韩欧美区一区二| 亚洲成av人片观看| 91老司机福利 在线| 亚洲日本一区二区三区| 欧美日韩国产一级二级| 麻豆视频一区二区| 国产精品网站在线观看| 热久久国产精品| 色哟哟亚洲精品| 中文字幕日韩精品一区 | 日韩高清国产一区在线| 日韩精品专区在线影院观看| 欧美三级蜜桃2在线观看| 亚洲色图都市小说| 国产一区二区三区精品欧美日韩一区二区三区| 欧美日韩亚洲国产综合| 亚洲欧美日韩在线播放| 91免费看片在线观看| 国产精品伦理一区二区| 国产一区二区伦理片| 337p粉嫩大胆噜噜噜噜噜91av| 麻豆91在线播放| 91精品啪在线观看国产60岁| 麻豆精品一二三| 欧美一级日韩一级| 美女一区二区在线观看| 久久美女高清视频| 激情偷乱视频一区二区三区| 精品va天堂亚洲国产| 国产精品中文字幕一区二区三区| 日韩美女主播在线视频一区二区三区| 久久国产精品99精品国产| 久久精品男人天堂av| 成人深夜在线观看| 国产精品国模大尺度视频| 97se狠狠狠综合亚洲狠狠| 亚洲福中文字幕伊人影院| 制服.丝袜.亚洲.中文.综合| 日韩vs国产vs欧美| 国产视频一区二区在线观看| av资源网一区| 亚洲人被黑人高潮完整版| 99久精品国产| 亚洲综合清纯丝袜自拍| 欧美视频在线一区| 国产精品区一区二区三区| 欧美三级一区二区| 日韩电影免费在线看| 欧美一区二区久久久| 美日韩一区二区三区| 国产欧美一区二区精品忘忧草| 99精品国产视频| 亚洲精品在线免费观看视频| 欧美日韩国产免费一区二区| 欧美在线三级电影| 欧美视频一区二区三区四区| 国产伦精品一区二区三区在线观看| 亚洲黄色小视频| 国产精品久久久久久久久久久免费看 | 成人性生交大片免费 | 色综合久久精品| 亚洲国产中文字幕在线视频综合| 欧美影院午夜播放| 精品亚洲国产成人av制服丝袜| 国产精品午夜免费| 欧美日韩视频在线观看一区二区三区 | 色欧美乱欧美15图片| 午夜精品福利一区二区蜜股av | 亚洲欧美日韩国产综合| 欧美日韩国产另类一区| 麻豆成人在线观看| 亚洲精品高清在线| 亚洲精品在线一区二区| 99天天综合性| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品国产自产拍高清av王其| 91黄色小视频| 丁香另类激情小说| 日韩电影在线观看电影| 国产精品久久三区| 欧美精品一区二区三区高清aⅴ| 色综合天天综合色综合av| 免费高清在线视频一区·| 亚洲人成在线观看一区二区| 欧美日韩国产首页在线观看| 欧美精选午夜久久久乱码6080| 国产一区二区不卡在线 | 欧美日韩激情一区二区三区| 欧美日韩日日摸| 亚洲午夜在线电影| 麻豆精品在线看| 成人精品鲁一区一区二区| 色av一区二区| 久久九九全国免费| 亚洲成人激情自拍| 国产最新精品免费| 在线亚洲免费视频| 久久久亚洲午夜电影| 丝袜亚洲精品中文字幕一区| 岛国精品在线播放| 久久亚洲综合色一区二区三区 | 成人黄色电影在线| 麻豆91在线播放| 亚洲午夜一二三区视频| 中文字幕va一区二区三区| 国产夜色精品一区二区av| 精品处破学生在线二十三| 欧美成人精品二区三区99精品| 欧美女孩性生活视频| 欧美日韩国产欧美日美国产精品| 欧美在线一区二区三区| 色综合久久六月婷婷中文字幕| 99热在这里有精品免费| 国产成人亚洲综合色影视| 国产成人精品免费网站| 国产成人精品亚洲午夜麻豆| 国产精品一区二区黑丝| 国产乱码一区二区三区| 国产精品99久久久久久久vr| 国产伦精品一区二区三区免费迷 | 久久只精品国产| 久久亚洲一级片| 精品国产乱码久久久久久图片| 精品成人在线观看| 日韩精彩视频在线观看| 天堂成人免费av电影一区| 午夜视黄欧洲亚洲| 日本va欧美va瓶| 久热成人在线视频| 国产资源在线一区| 成人黄色片在线观看| 91视视频在线直接观看在线看网页在线看 | 91精品国产综合久久精品性色| 欧美日韩一区二区三区视频 | 国内精品写真在线观看| 狠狠狠色丁香婷婷综合久久五月| 国产黄人亚洲片| 91免费视频网| 91精品蜜臀在线一区尤物|