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

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

?? reg_util.c

?? samba-3.0.22.tar.gz 編譯smb服務器的源碼
?? C
字號:
/*  *  Unix SMB/CIFS implementation. *  Virtual Windows Registry Layer (utility functions) *  Copyright (C) Gerald Carter                     2002-2005 * *  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., 675 Mass Ave, Cambridge, MA 02139, USA. *//* Implementation of registry frontend view functions. */#include "includes.h"#undef DBGC_CLASS#define DBGC_CLASS DBGC_RPC_SRV/*********************************************************************** Utility function for splitting the base path of a registry path off by setting base and new_path to the apprapriate offsets withing the path.  WARNING!!  Does modify the original string! ***********************************************************************/BOOL reg_split_path( char *path, char **base, char **new_path ){	char *p;		*new_path = *base = NULL;		if ( !path)		return False;		*base = path;		p = strchr( path, '\\' );		if ( p ) {		*p = '\0';		*new_path = p+1;	}		return True;}/*********************************************************************** Utility function for splitting the base path of a registry path off by setting base and new_path to the appropriate offsets withing the path.  WARNING!!  Does modify the original string! ***********************************************************************/BOOL reg_split_key( char *path, char **base, char **key ){	char *p;		*key = *base = NULL;		if ( !path)		return False;		*base = path;		p = strrchr( path, '\\' );		if ( p ) {		*p = '\0';		*key = p+1;	}		return True;}/********************************************************************** The full path to the registry key is used as database after the  \'s are converted to /'s.  Key string is also normalized to UPPER case. **********************************************************************/void normalize_reg_path( pstring keyname ){	pstring_sub( keyname, "\\", "/" );	strupper_m( keyname  );}/********************************************************************** move to next non-delimter character*********************************************************************/char* reg_remaining_path( const char *key ){	static pstring new_path;	char *p;		if ( !key || !*key )		return NULL;	pstrcpy( new_path, key );	/* normalize_reg_path( new_path ); */		if ( !(p = strchr( new_path, '\\' )) ) 	{		if ( !(p = strchr( new_path, '/' )) )			p = new_path;		else 			p++;	}	else		p++;			return p;}/*******************************************************************************************************************************************/int regval_convert_multi_sz( uint16 *multi_string, size_t byte_len, char ***values ){	char **sz;	int i;	int num_strings = 0;	fstring buffer;	uint16 *wp;	size_t multi_len = byte_len / 2;		if ( !multi_string || !values )		return 0;	*values = NULL;	/* just count the NULLs */		for ( i=0; (i<multi_len-1) && !(multi_string[i]==0x0 && multi_string[i+1]==0x0); i++ ) {		/* peek ahead */		if ( multi_string[i+1] == 0x0 )			num_strings++;	}	if ( num_strings == 0 )		return 0;		if ( !(sz = TALLOC_ARRAY( NULL, char*, num_strings+1 )) ) {		DEBUG(0,("reg_convert_multi_sz: talloc() failed!\n"));		return -1;	}	wp = multi_string;		for ( i=0; i<num_strings; i++ ) {		rpcstr_pull( buffer, wp, sizeof(buffer), -1, STR_TERMINATE );		sz[i] = talloc_strdup( sz, buffer );				/* skip to the next string NULL and then one more */		while ( *wp )			wp++;		wp++;	}		/* tag the array off with an empty string */	sz[i] = '\0';		*values = sz;		return num_strings;}/********************************************************************** Returns number of bytes, not number of unicode characters*********************************************************************/size_t regval_build_multi_sz( char **values, uint16 **buffer ){	int i;	size_t buf_size = 0;	uint16 *buf, *b;	UNISTR2 sz;	if ( !values || !buffer )		return 0;		/* go ahead and alloc some space */		if ( !(buf = TALLOC_ARRAY( NULL, uint16, 2 )) ) {		DEBUG(0,("regval_build_multi_sz: talloc() failed!\n"));		return 0;	}		for ( i=0; values[i]; i++ ) {		ZERO_STRUCT( sz );		/* DEBUG(0,("regval_build_multi_sz: building [%s]\n",values[i])); */		init_unistr2( &sz, values[i], UNI_STR_TERMINATE );				/* Alloc some more memory.  Always add one one to account for the 		   double NULL termination */		   		b = TALLOC_REALLOC_ARRAY( NULL, buf, uint16, buf_size+sz.uni_str_len+1 );		if ( !b ) {			DEBUG(0,("regval_build_multi_sz: talloc() reallocation error!\n"));			TALLOC_FREE( buffer );			return 0;		}		buf = b;		/* copy the unistring2 buffer and increment the size */			/* dump_data(1,sz.buffer,sz.uni_str_len*2); */		memcpy( buf+buf_size, sz.buffer, sz.uni_str_len*2 );		buf_size += sz.uni_str_len;				/* cleanup rather than leaving memory hanging around */		TALLOC_FREE( sz.buffer );	}		buf[buf_size++] = 0x0;	*buffer = buf;	/* return number of bytes */	return buf_size*2;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国内片67194| 在线观看亚洲a| 一区二区在线观看免费| 欧美乱妇15p| 国产九九视频一区二区三区| 中文字幕一区二区5566日韩| 欧美人狂配大交3d怪物一区| 国产一区91精品张津瑜| 亚洲激情在线播放| 精品国产免费一区二区三区香蕉 | 婷婷久久综合九色综合伊人色| 久久精品视频一区| 欧美一区午夜精品| 欧美三级日韩在线| 91免费视频观看| 成人永久免费视频| 国产精品99久久不卡二区| 免费在线观看精品| 天堂在线亚洲视频| 亚洲一区自拍偷拍| 国产成人亚洲综合a∨婷婷图片| 亚洲成人在线观看视频| 亚洲精品乱码久久久久久| 国产精品乱码一区二三区小蝌蚪| 欧美精品一区二区三区一线天视频| 欧美日韩精品福利| 欧美网站大全在线观看| 99精品视频在线免费观看| 懂色av一区二区夜夜嗨| 国产黄色精品网站| 国产a久久麻豆| 国产精品1024| 福利91精品一区二区三区| 国产精品2024| 丁香啪啪综合成人亚洲小说| 国产成人亚洲综合色影视| 国产精品66部| 成人影视亚洲图片在线| www.性欧美| 97久久超碰国产精品电影| eeuss鲁一区二区三区| 成人av动漫在线| 成人av影院在线| aaa国产一区| 91在线视频免费91| 欧美最新大片在线看| 91一区二区三区在线观看| 色国产精品一区在线观看| 在线观看成人小视频| 欧美男生操女生| 日韩午夜在线播放| 欧美一级精品大片| 久久婷婷色综合| 国产三级欧美三级日产三级99| 久久蜜桃av一区精品变态类天堂 | 欧美精品一级二级| 在线成人av影院| 精品免费国产一区二区三区四区| 久久男人中文字幕资源站| 香蕉成人伊视频在线观看| 亚洲一区二区在线免费观看视频| 亚洲一区二区三区中文字幕在线| 首页综合国产亚洲丝袜| 国产在线国偷精品免费看| 成人午夜免费av| 欧美日韩在线一区二区| 欧美大片一区二区| 欧美国产欧美亚州国产日韩mv天天看完整 | 欧美激情一区二区三区在线| 亚洲欧美一区二区三区久本道91| 亚洲国产欧美在线| 激情欧美一区二区| 99久久精品国产毛片| 欧美美女一区二区| 国产午夜精品福利| 伊人开心综合网| 激情综合网激情| 色悠久久久久综合欧美99| 日韩午夜在线观看| 亚洲欧美日韩中文字幕一区二区三区| 亚洲成a人片在线不卡一二三区| 经典三级一区二区| 色哟哟一区二区在线观看| 欧美成人免费网站| 一区二区高清视频在线观看| 蜜臀av一区二区三区| 91蜜桃网址入口| 欧美成人aa大片| 亚洲综合网站在线观看| 国产麻豆成人精品| 欧美日韩一区二区电影| 久久免费视频一区| 午夜伦理一区二区| 99精品黄色片免费大全| 欧美岛国在线观看| 亚洲电影激情视频网站| 99热精品国产| 久久这里只有精品6| 亚洲高清免费在线| 99re热视频这里只精品| 久久久久国色av免费看影院| 婷婷国产在线综合| 一本久道久久综合中文字幕| 久久精品一二三| 蜜桃精品视频在线| 欧美日韩一区二区在线观看视频| 欧美激情综合五月色丁香| 日韩精品电影在线观看| 欧美视频中文一区二区三区在线观看| 日本一区二区三区久久久久久久久不 | 视频一区二区三区中文字幕| 成人一区二区三区中文字幕| 日韩亚洲欧美在线| 五月天丁香久久| caoporn国产精品| 久久男人中文字幕资源站| 蜜桃91丨九色丨蝌蚪91桃色| 欧美三区免费完整视频在线观看| 亚洲天堂精品在线观看| 国产91精品一区二区| 亚洲精品一区二区三区香蕉| 日韩av在线发布| 91精品国产91久久久久久一区二区 | 国产亚洲一区二区三区| 精品一区二区三区免费| 日韩免费一区二区| 老色鬼精品视频在线观看播放| 欧美肥妇bbw| 日本免费新一区视频| 欧美精品久久99| 婷婷综合在线观看| 欧美乱熟臀69xxxxxx| 亚洲h在线观看| 欧美日韩国产经典色站一区二区三区 | 国产日韩欧美精品综合| 黄色精品一二区| 国产亚洲精品aa午夜观看| 国产激情精品久久久第一区二区 | 亚洲欧美日韩综合aⅴ视频| 91麻豆国产精品久久| 一区二区三区四区不卡在线 | 国产欧美精品一区二区色综合朱莉 | 亚洲综合在线电影| 在线观看欧美日本| 亚洲午夜免费视频| 91精品蜜臀在线一区尤物| 久久精品免费观看| 久久网站最新地址| 成人国产在线观看| 一区二区三区在线观看视频| 欧美日韩五月天| 青青草91视频| 久久久99精品免费观看不卡| 成人综合在线观看| 一区二区三区在线看| 777精品伊人久久久久大香线蕉| 麻豆91在线观看| 久久久一区二区三区| 99久久久国产精品| 午夜欧美视频在线观看| 精品国产不卡一区二区三区| 懂色av中文字幕一区二区三区 | 精品不卡在线视频| 岛国一区二区三区| 亚洲一区在线观看网站| 日韩欧美国产综合一区| 成人精品视频一区二区三区| 亚洲青青青在线视频| 欧美一级一区二区| 成人性生交大片免费看视频在线| 亚洲伦理在线精品| 日韩视频一区二区三区在线播放| 国产激情视频一区二区在线观看 | 色综合久久久久久久久| 日本午夜一区二区| 中文字幕一区二区在线播放| 欧美日韩国产一二三| 国产盗摄一区二区三区| 亚洲高清久久久| 久久精子c满五个校花| 欧美日韩国产在线观看| 粉嫩av一区二区三区粉嫩| 午夜精品一区在线观看| 国产欧美一二三区| 69p69国产精品| 99久久精品国产毛片| 免费在线观看不卡| 亚洲欧美色图小说| 国产视频不卡一区| 5月丁香婷婷综合| 97久久精品人人做人人爽| 欧美aaa在线| 亚洲精品中文在线影院| 久久嫩草精品久久久精品一| 欧美视频一区在线| 成人av在线播放网址| 久久99精品国产.久久久久| 一区二区三区在线视频免费| 国产午夜久久久久| 精品国产百合女同互慰|