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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mdb.c

?? open source dhcp server client etc...
?? C
?? 第 1 頁 / 共 5 頁
字號:
	    log_info ("Wrote %d new dynamic host decls to leases file.",		      num_written);	}#if defined (FAILOVER_PROTOCOL)	/* Write all the failover states. */	if (!dhcp_failover_write_all_states ())		return 0;#endif	/* Write all the leases. */	num_written = 0;	for (s = shared_networks; s; s = s -> next) {	    for (p = s -> pools; p; p = p -> next) {		lptr [FREE_LEASES] = &p -> free;		lptr [ACTIVE_LEASES] = &p -> active;		lptr [EXPIRED_LEASES] = &p -> expired;		lptr [ABANDONED_LEASES] = &p -> abandoned;		lptr [BACKUP_LEASES] = &p -> backup;		for (i = FREE_LEASES; i <= BACKUP_LEASES; i++) {		    for (l = *(lptr [i]); l; l = l -> next) {			if (l -> hardware_addr.hlen ||			    l -> uid_len ||			    (l -> binding_state != FTS_FREE)) {			    if (!write_lease (l))				    return 0;			    num_written++;			}		    }		}	    }	}	log_info ("Wrote %d leases to leases file.", num_written);	if (!commit_leases ())		return 0;	return 1;}int lease_enqueue (struct lease *comp){	struct lease **lq, *prev, *lp;	/* No queue to put it on? */	if (!comp -> pool)		return 0;	/* Figure out which queue it's going to. */	switch (comp -> binding_state) {	      case FTS_FREE:		lq = &comp -> pool -> free;		comp -> pool -> free_leases++;		comp -> sort_time = comp -> ends;		break;	      case FTS_ACTIVE:	      case FTS_RESERVED:	      case FTS_BOOTP:		lq = &comp -> pool -> active;		comp -> sort_time = comp -> ends;		break;	      case FTS_EXPIRED:	      case FTS_RELEASED:	      case FTS_RESET:		lq = &comp -> pool -> expired;		comp -> sort_time = comp -> ends;		break;	      case FTS_ABANDONED:		lq = &comp -> pool -> abandoned;		comp -> sort_time = comp -> ends;		break;	      case FTS_BACKUP:		lq = &comp -> pool -> backup;		comp -> pool -> backup_leases++;		comp -> sort_time = comp -> ends;		break;	      default:		log_error ("Lease with bogus binding state: %d",			   comp -> binding_state);#if defined (BINDING_STATE_DEBUG)		abort ();#endif		return 0;	}	/* Insertion sort the lease onto the appropriate queue. */	prev = (struct lease *)0;	for (lp = *lq; lp; lp = lp -> next) {		if (lp -> sort_time >= comp -> sort_time)			break;		prev = lp;	}	if (prev) {		if (prev -> next) {			lease_reference (&comp -> next, prev -> next, MDL);			lease_dereference (&prev -> next, MDL);		}		lease_reference (&prev -> next, comp, MDL);	} else {		if (*lq) {			lease_reference (&comp -> next, *lq, MDL);			lease_dereference (lq, MDL);		}		lease_reference (lq, comp, MDL);	}	return 1;}/* For a given lease, sort it onto the right list in its pool and put it   in each appropriate hash, understanding that it's already by definition   in lease_ip_addr_hash. */void lease_instantiate (const unsigned char *val, unsigned len,			struct lease *lease){	struct class *class;	/* XXX If the lease doesn't have a pool at this point, it's an	   XXX orphan, which we *should* keep around until it expires,	   XXX but which right now we just forget. */	if (!lease -> pool) {		lease_hash_delete (lease_ip_addr_hash,				   lease -> ip_addr.iabuf,				   lease -> ip_addr.len, MDL);		return;	}			/* Put the lease on the right queue. */	lease_enqueue (lease);	/* Record the lease in the uid hash if possible. */	if (lease -> uid) {		uid_hash_add (lease);	}		/* Record it in the hardware address hash if possible. */	if (lease -> hardware_addr.hlen) {		hw_hash_add (lease);	}		/* If the lease has a billing class, set up the billing. */	if (lease -> billing_class) {		class = (struct class *)0;		class_reference (&class, lease -> billing_class, MDL);		class_dereference (&lease -> billing_class, MDL);		/* If the lease is available for allocation, the billing		   is invalid, so we don't keep it. */		if (lease -> binding_state == FTS_ACTIVE ||		    lease -> binding_state == FTS_EXPIRED ||		    lease -> binding_state == FTS_RELEASED ||		    lease -> binding_state == FTS_RESET ||		    lease -> binding_state == FTS_RESERVED ||		    lease -> binding_state == FTS_BOOTP)			bill_class (lease, class);		class_dereference (&class, MDL);	}	return;}/* Run expiry events on every pool.   This is called on startup so that   any expiry events that occurred after the server stopped and before it   was restarted can be run.   At the same time, if failover support is   compiled in, we compute the balance of leases for the pool. */void expire_all_pools (){	struct shared_network *s;	struct pool *p;	struct hash_bucket *hb;	int i;	struct lease *l;	struct lease **lptr [5];	/* First, go over the hash list and actually put all the leases	   on the appropriate lists. */	lease_hash_foreach (lease_ip_addr_hash, lease_instantiate);	/* Loop through each pool in each shared network and call the	   expiry routine on the pool. */	for (s = shared_networks; s; s = s -> next) {	    for (p = s -> pools; p; p = p -> next) {		pool_timer (p);		p -> lease_count = 0;		p -> free_leases = 0;		p -> backup_leases = 0;				lptr [FREE_LEASES] = &p -> free;		lptr [ACTIVE_LEASES] = &p -> active;		lptr [EXPIRED_LEASES] = &p -> expired;		lptr [ABANDONED_LEASES] = &p -> abandoned;		lptr [BACKUP_LEASES] = &p -> backup;		for (i = FREE_LEASES; i <= BACKUP_LEASES; i++) {		    for (l = *(lptr [i]); l; l = l -> next) {			p -> lease_count++;			if (l -> ends <= cur_time) {				if (l -> binding_state == FTS_FREE)					p -> free_leases++;				else if (l -> binding_state == FTS_BACKUP)					p -> backup_leases++;			}#if defined (FAILOVER_PROTOCOL)			if (p -> failover_peer &&			    l -> tstp > l -> tsfp &&			    !(l -> flags & ON_UPDATE_QUEUE))				dhcp_failover_queue_update (l, 1);#endif		    }		}	    }	}}void dump_subnets (){	struct lease *l;	struct shared_network *s;	struct subnet *n;	struct pool *p;	struct lease **lptr [5];	int i;	log_info ("Subnets:");	for (n = subnets; n; n = n -> next_subnet) {		log_debug ("  Subnet %s", piaddr (n -> net));		log_debug ("     netmask %s",		       piaddr (n -> netmask));	}	log_info ("Shared networks:");	for (s = shared_networks; s; s = s -> next) {	    log_info ("  %s", s -> name);	    for (p = s -> pools; p; p = p -> next) {		lptr [FREE_LEASES] = &p -> free;		lptr [ACTIVE_LEASES] = &p -> active;		lptr [EXPIRED_LEASES] = &p -> expired;		lptr [ABANDONED_LEASES] = &p -> abandoned;		lptr [BACKUP_LEASES] = &p -> backup;		for (i = FREE_LEASES; i <= BACKUP_LEASES; i++) {		    for (l = *(lptr [i]); l; l = l -> next) {			    print_lease (l);		    }		}	    }	}}HASH_FUNCTIONS (lease, const unsigned char *, struct lease)HASH_FUNCTIONS (host, const unsigned char *, struct host_decl)HASH_FUNCTIONS (class, const char *, struct class)#if defined (DEBUG_MEMORY_LEAKAGE) || \		defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT)extern struct hash_table *dns_zone_hash;extern struct interface_info **interface_vector;extern int interface_count;dhcp_control_object_t *dhcp_control_object;extern struct hash_table *auth_key_hash;struct hash_table *universe_hash;struct universe **universes;int universe_count, universe_max;extern int end;#if defined (COMPACT_LEASES)extern struct lease *lease_hunks;#endifvoid free_everything (){	struct subnet *sc = (struct subnet *)0, *sn = (struct subnet *)0;	struct shared_network *nc = (struct shared_network *)0,		*nn = (struct shared_network *)0;	struct pool *pc = (struct pool *)0, *pn = (struct pool *)0;	struct lease *lc = (struct lease *)0, *ln = (struct lease *)0;	struct interface_info *ic = (struct interface_info *)0,		*in = (struct interface_info *)0;	struct class *cc = (struct class *)0, *cn = (struct class *)0;	struct collection *lp;	void *st = (shared_networks		    ? (shared_networks -> next		       ? shared_networks -> next -> next : 0) : 0);	int i;	/* Get rid of all the hash tables. */	if (host_hw_addr_hash)		free_hash_table (host_hw_addr_hash, MDL);	host_hw_addr_hash = 0;	if (host_uid_hash)		free_hash_table (host_uid_hash, MDL);	host_uid_hash = 0;	if (lease_uid_hash)		free_hash_table (lease_uid_hash, MDL);	lease_uid_hash = 0;	if (lease_ip_addr_hash)		free_hash_table (lease_ip_addr_hash, MDL);	lease_ip_addr_hash = 0;	if (lease_hw_addr_hash)		free_hash_table (lease_hw_addr_hash, MDL);	lease_hw_addr_hash = 0;	if (host_name_hash)		free_hash_table (host_name_hash, MDL);	host_name_hash = 0;	if (dns_zone_hash)		free_hash_table (dns_zone_hash, MDL);	dns_zone_hash = 0;	if (auth_key_hash)		free_hash_table (auth_key_hash, MDL);	auth_key_hash = 0;	omapi_object_dereference ((omapi_object_t **)&dhcp_control_object,				  MDL);	for (lp = collections; lp; lp = lp -> next) {	    if (lp -> classes) {		class_reference (&cn, lp -> classes, MDL);		do {		    if (cn) {			class_reference (&cc, cn, MDL);			class_dereference (&cn, MDL);		    }		    if (cc -> nic) {			class_reference (&cn, cc -> nic, MDL);			class_dereference (&cc -> nic, MDL);		    }		    group_dereference (&cc -> group, MDL);		    if (cc -> hash) {			    free_hash_table (cc -> hash, MDL);			    cc -> hash = (struct hash_table *)0;		    }		    class_dereference (&cc, MDL);		} while (cn);		class_dereference (&lp -> classes, MDL);	    }	}	if (interface_vector) {	    for (i = 0; i < interface_count; i++) {		if (interface_vector [i])		    interface_dereference (&interface_vector [i], MDL);	    }	    dfree (interface_vector, MDL);	    interface_vector = 0;	}	if (interfaces) {	    interface_reference (&in, interfaces, MDL);	    do {		if (in) {		    interface_reference (&ic, in, MDL);		    interface_dereference (&in, MDL);		}		if (ic -> next) {		    interface_reference (&in, ic -> next, MDL);		    interface_dereference (&ic -> next, MDL);		}		omapi_unregister_io_object ((omapi_object_t *)ic);		if (ic -> shared_network) {		    if (ic -> shared_network -> interface)			interface_dereference				(&ic -> shared_network -> interface, MDL);		    shared_network_dereference (&ic -> shared_network, MDL);		}		interface_dereference (&ic, MDL);	    } while (in);	    interface_dereference (&interfaces, MDL);	}	/* Subnets are complicated because of the extra links. */	if (subnets) {	    subnet_reference (&sn, subnets, MDL);	    do {		if (sn) {		    subnet_reference (&sc, sn, MDL);		    subnet_dereference (&sn, MDL);		}		if (sc -> next_subnet) {		    subnet_reference (&sn, sc -> next_subnet, MDL);		    subnet_dereference (&sc -> next_subnet, MDL);		}		if (sc -> next_sibling)		    subnet_dereference (&sc -> next_sibling, MDL);		if (sc -> shared_network)		    shared_network_dereference (&sc -> shared_network, MDL);		group_dereference (&sc -> group, MDL);		if (sc -> interface)		    interface_dereference (&sc -> interface, MDL);		subnet_dereference (&sc, MDL);	    } while (sn);	    subnet_dereference (&subnets, MDL);	}	/* So are shared networks. */	if (shared_networks) {	    shared_network_reference (&nn, shared_networks, MDL);	    do {		if (nn) {		    shared_network_reference (&nc, nn, MDL);		    shared_network_dereference (&nn, MDL);		}		if (nc -> next) {		    shared_network_reference (&nn, nc -> next, MDL);		    shared_network_dereference (&nc -> next, MDL);		}		/* As are pools. */		if (nc -> pools) {		    pool_reference (&pn, nc -> pools, MDL);		    do {			struct lease **lptr [5];						if (pn) {			    pool_reference (&pc, pn, MDL);			    pool_dereference (&pn, MDL);			}			if (pc -> next) {			    pool_reference (&pn, pc -> next, MDL);			    pool_dereference (&pc -> next, MDL);			}						lptr [FREE_LEASES] = &pc -> free;			lptr [ACTIVE_LEASES] = &pc -> active;			lptr [EXPIRED_LEASES] = &pc -> expired;			lptr [ABANDONED_LEASES] = &pc -> abandoned;			lptr [BACKUP_LEASES] = &pc -> backup;			/* As (sigh) are leases. */			for (i = 0; i < 5; i++) {			    if (*lptr [i]) {				lease_reference (&ln, *lptr [i], MDL);				do {				    if (ln) {					lease_reference (&lc, ln, MDL);					lease_dereference (&ln, MDL);				    }				    if (lc -> next) {					lease_reference (&ln, lc -> next, MDL);					lease_dereference (&lc -> next, MDL);				    }				    if (lc -> billing_class)				       class_dereference (&lc -> bill

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美国产成人一区二区| 99re6这里只有精品视频在线观看| 国产精品色噜噜| 在线看日本不卡| 国产一区二区看久久| 亚洲男人的天堂av| 亚洲四区在线观看| 欧美精品aⅴ在线视频| 亚洲图片另类小说| 久久午夜电影网| 亚洲精品一区二区三区福利| 精品国产凹凸成av人导航| 日韩一区二区三区高清免费看看| 欧美电影一区二区三区| 91精品在线观看入口| 欧美一区二区精品| 日韩精品一区二区三区在线| 久久久久久久久97黄色工厂| 中文字幕精品综合| 国产精品视频一区二区三区不卡| 中文字幕日韩欧美一区二区三区| 亚洲欧美在线另类| 一区二区三区影院| 亚洲第一成年网| 奇米精品一区二区三区四区| 韩日av一区二区| 成人性视频网站| 午夜视频久久久久久| 日本午夜一区二区| 国产98色在线|日韩| 国产精品系列在线观看| 国产一区二区三区精品视频 | 老司机精品视频在线| 婷婷综合久久一区二区三区| 香蕉影视欧美成人| 亚洲成人av免费| 精品乱人伦小说| 在线免费观看视频一区| 91精品国产福利| 久久久亚洲高清| 中文字幕亚洲一区二区va在线| 亚洲国产日日夜夜| 精品一区二区三区免费视频| 成人不卡免费av| 欧美美女一区二区在线观看| 欧美大胆人体bbbb| 17c精品麻豆一区二区免费| 亚洲一区二三区| 国产精品亚洲第一区在线暖暖韩国| 成人在线综合网站| 在线观看视频91| 26uuu色噜噜精品一区二区| 中文字幕一区二区三区视频 | 国产高清成人在线| 色系网站成人免费| 日韩欧美综合一区| 综合精品久久久| 久久精品av麻豆的观看方式| 99国产精品视频免费观看| 欧美一区二区三区精品| 中文字幕制服丝袜一区二区三区 | 色综合久久综合网欧美综合网| 在线91免费看| 亚洲欧洲日韩在线| 另类小说视频一区二区| 日本韩国一区二区三区视频| 亚洲精品一区二区三区香蕉| 亚洲电影一区二区| 成人在线综合网站| 精品福利二区三区| 亚洲成人免费av| av激情综合网| 久久综合久久综合亚洲| 午夜视频一区在线观看| 99精品视频免费在线观看| 日韩免费一区二区三区在线播放| 一个色综合av| 99久久精品费精品国产一区二区| 精品国产一区二区三区久久影院 | 欧美亚日韩国产aⅴ精品中极品| 国产欧美一区二区在线| 麻豆国产精品官网| 精品视频在线免费| 亚洲欧洲中文日韩久久av乱码| 国产91富婆露脸刺激对白| 精品久久人人做人人爽| 午夜精品国产更新| 欧美主播一区二区三区美女| 国产精品乱人伦中文| 国产原创一区二区三区| 91精品国产免费| 亚洲欧美色一区| 亚洲人成7777| 精品国产乱码久久久久久蜜臀| 韩国精品久久久| 欧美日本韩国一区二区三区视频| 一区二区三区欧美久久| 九九九精品视频| 尤物av一区二区| 中文字幕免费一区| 这里只有精品免费| 麻豆成人综合网| 国产日韩精品久久久| 91色porny在线视频| 亚洲精品国产品国语在线app| 国产成人aaaa| 91精品国产综合久久精品app| 成人免费视频视频| 日韩不卡免费视频| 亚洲精品免费在线播放| 精品第一国产综合精品aⅴ| 在线观看日产精品| 波多野结衣中文字幕一区 | 国产精品入口麻豆原神| 日韩一区二区在线看| 欧美日韩国产免费一区二区| 成人污污视频在线观看| 久久精品国产精品亚洲综合| 日一区二区三区| 亚洲国产一区二区三区| 国产精品久久久久永久免费观看 | 日韩亚洲欧美中文三级| 日韩欧美国产小视频| 久久精品国产99| 一区二区视频在线| 一区二区三区小说| 亚洲欧美日韩国产成人精品影院| 国产精品国产三级国产普通话99 | 18涩涩午夜精品.www| 亚洲男同性视频| 麻豆精品在线视频| av成人老司机| 精品99一区二区| 亚洲午夜在线观看视频在线| 国产乱子伦视频一区二区三区 | 成人精品电影在线观看| 色婷婷亚洲一区二区三区| 日韩一区二区三区电影| 欧美r级电影在线观看| 国产午夜亚洲精品午夜鲁丝片| 国产日韩亚洲欧美综合| 亚洲第一福利一区| 国产精品77777| 欧美福利视频一区| 国产精品你懂的| 久久se精品一区二区| 欧美少妇xxx| 国产网站一区二区三区| 亚洲午夜av在线| 欧美视频一区二区三区| 久久久亚洲精品一区二区三区| 亚洲精品免费播放| 成人综合在线观看| 日韩免费性生活视频播放| 亚洲va欧美va人人爽| 懂色av中文一区二区三区| www国产成人免费观看视频 深夜成人网| 天堂一区二区在线| 91小视频在线观看| 亚洲综合精品自拍| 欧美精品在线观看一区二区| 日韩在线播放一区二区| 国产三级三级三级精品8ⅰ区| 韩国成人精品a∨在线观看| 国产色爱av资源综合区| 国产成人在线视频网站| 欧美mv日韩mv国产网站app| 久久丁香综合五月国产三级网站| 3d动漫精品啪啪| 久久精品国产第一区二区三区| 欧美精品国产精品| 国产乱对白刺激视频不卡| 91美女视频网站| 午夜日韩在线电影| 欧美精品一区二区久久婷婷| 日韩专区中文字幕一区二区| 成人高清视频免费观看| 中文久久乱码一区二区| 国产91对白在线观看九色| 国产精品麻豆网站| 91偷拍与自偷拍精品| 国产精品大尺度| 色女孩综合影院| 午夜精品成人在线| 欧美成人国产一区二区| 国产成人亚洲综合色影视| 欧美激情综合五月色丁香小说| 国产成人精品影院| 一区二区三区欧美日| 欧美性猛片aaaaaaa做受| 五月激情综合婷婷| 久久久国产午夜精品| 波多野结衣一区二区三区| 亚洲一区二区在线免费观看视频 | 国产精品中文字幕日韩精品| 国产精品―色哟哟| 欧美日韩不卡一区| 国产福利精品一区二区| 一区二区三区国产豹纹内裤在线| 欧美麻豆精品久久久久久|