⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bind-9.3.0-patch

📁 bind 9.3结合mysql数据库
💻 0-PATCH
📖 第 1 页 / 共 3 页
字号:
RCS file: /proj/cvs/prod/bind9/bin/dig/dig.1,vretrieving revision 1.14.2.4.2.6diff -U2 -r1.14.2.4.2.6 dig.1--- bin/dig/dig.1	23 Jun 2004 09:11:01 -0000	1.14.2.4.2.6+++ bin/dig/dig.1	1 Sep 2004 07:49:54 -0000@@ -386,4 +386,15 @@ will not print the initial query when it looks up the NS records for isc.org.+.SH "IDN SUPPORT"+.PP+If \fBdig\fR has been built with IDN (internationalized+domain name) support, it can accept and display non-ASCII domain names.+\fBdig\fR appropriately converts character encoding of+domain name before sending a request to DNS server or displaying a+reply from the server.+If you'd like to turn off the IDN support for some reason, defines+the \fBIDN_DISABLE\fR environment variable.+The IDN support is disabled if the the variable is set when +\fBdig\fR runs. .SH "FILES" .PPIndex: bin/dig/dig.docbook===================================================================RCS file: /proj/cvs/prod/bind9/bin/dig/dig.docbook,vretrieving revision 1.4.2.7.4.9diff -U2 -r1.4.2.7.4.9 dig.docbook--- bin/dig/dig.docbook	23 Jun 2004 04:19:41 -0000	1.4.2.7.4.9+++ bin/dig/dig.docbook	1 Sep 2004 07:49:57 -0000@@ -578,4 +578,19 @@  <refsect1>+<title>IDN SUPPORT</title>+<para>+If <command>dig</command> has been built with IDN (internationalized+domain name) support, it can accept and display non-ASCII domain names.+<command>dig</command> appropriately converts character encoding of+domain name before sending a request to DNS server or displaying a+reply from the server.+If you'd like to turn off the IDN support for some reason, defines+the <envar>IDN_DISABLE</envar> environment variable.+The IDN support is disabled if the the variable is set when +<command>dig</command> runs.+</para>+</refsect1>++<refsect1> <title>FILES</title> <para>Index: bin/dig/dighost.c===================================================================RCS file: /proj/cvs/prod/bind9/bin/dig/dighost.c,vretrieving revision 1.221.2.19.2.14diff -U2 -r1.221.2.19.2.14 dighost.c--- bin/dig/dighost.c	30 Jun 2004 23:57:52 -0000	1.221.2.19.2.14+++ bin/dig/dighost.c	1 Sep 2004 07:50:24 -0000@@ -33,4 +33,15 @@ #include <limits.h> +#ifdef HAVE_LOCALE_H+#include <locale.h>+#endif++#ifdef WITH_IDN+#include <idn/result.h>+#include <idn/log.h>+#include <idn/resconf.h>+#include <idn/api.h>+#endif+ #include <dns/byaddr.h> #ifdef DIG_SIGCHASE@@ -120,4 +131,16 @@ int lookup_counter = 0; +#ifdef WITH_IDN+static void	      initialize_idn(void);+static isc_result_t   output_filter(isc_buffer_t *buffer,+				    unsigned int used_org,+				    isc_boolean_t absolute);+static idn_result_t   append_textname(char *name, const char *origin,+				      size_t namesize);+static void	      idn_check_result(idn_result_t r, const char *msg);++#define MAXDLEN               256+#endif+ /*  * Exit Codes:@@ -956,4 +979,8 @@ 		copy_server_list(lwconf, &server_list); +#ifdef WITH_IDN+	initialize_idn();+#endif+ 	if (keyfile[0] != 0) 		setup_file_key();@@ -1568,4 +1595,12 @@ 	dns_compress_t cctx; 	char store[MXNAME];+#ifdef WITH_IDN+	idn_result_t mr;+	char utf8_textname[MXNAME], utf8_origin[MXNAME], idn_textname[MXNAME];+#endif++#ifdef WITH_IDN+	dns_name_settotextfilter(output_filter);+#endif  	REQUIRE(lookup != NULL);@@ -1596,4 +1631,15 @@ 			sizeof(lookup->onamespace)); +#ifdef WITH_IDN+	/*+	 * We cannot convert `textname' and `origin' separately.+	 * `textname' doesn't contain TLD, but local mapping needs+	 * TLD.+	 */+	mr = idn_encodename(IDN_LOCALCONV | IDN_DELIMMAP, lookup->textname,+			    utf8_textname, sizeof(utf8_textname));+	idn_check_result(mr, "convert textname to UTF-8");+#endif+ 	/* 	 * If the name has too many dots, force the origin to be NULL@@ -1604,4 +1650,11 @@ 	 */ 	/* XXX New search here? */+#ifdef WITH_IDN+	if ((count_dots(utf8_textname) >= ndots) || !usesearch)+		lookup->origin = NULL; /* Force abs lookup */+	else if (lookup->origin == NULL && lookup->new_search && usesearch) {+		lookup->origin = ISC_LIST_HEAD(search_list);+	}+#else 	if ((count_dots(lookup->textname) >= ndots) || !usesearch) 		lookup->origin = NULL; /* Force abs lookup */@@ -1609,5 +1662,27 @@ 		lookup->origin = ISC_LIST_HEAD(search_list); 	}+#endif++#ifdef WITH_IDN+	if (lookup->origin != NULL) {+		mr = idn_encodename(IDN_LOCALCONV | IDN_DELIMMAP,+				    lookup->origin->origin, utf8_origin,+				    sizeof(utf8_origin));+		idn_check_result(mr, "convert origin to UTF-8");+		mr = append_textname(utf8_textname, utf8_origin,+				     sizeof(utf8_textname));+		idn_check_result(mr, "append origin to textname");+	}+	mr = idn_encodename(IDN_LOCALMAP | IDN_NAMEPREP | IDN_ASCCHECK |+			    IDN_IDNCONV | IDN_LENCHECK, utf8_textname,+			    idn_textname, sizeof(idn_textname));+	idn_check_result(mr, "convert UTF-8 textname to IDN encoding");+#endif++#ifdef WITH_IDN+	if (0) {+#else 	if (lookup->origin != NULL) {+#endif 		debug("trying origin %s", lookup->origin->origin); 		result = dns_message_gettempname(lookup->sendmsg,@@ -1654,4 +1729,13 @@ 			dns_name_clone(dns_rootname, lookup->name); 		else {+#ifdef WITH_IDN+			len = strlen(idn_textname);+			isc_buffer_init(&b, idn_textname, len);+			isc_buffer_add(&b, len);+			result = dns_name_fromtext(lookup->name, &b,+						   dns_rootname,+						   ISC_FALSE,+						   &lookup->namebuf);+#else 			len = strlen(lookup->textname); 			isc_buffer_init(&b, lookup->textname, len);@@ -1661,4 +1745,5 @@ 						   ISC_FALSE, 						   &lookup->namebuf);+#endif 		} 		if (result != ISC_R_SUCCESS) {@@ -3165,4 +3250,102 @@ 		isc_mem_destroy(&mctx); }++#ifdef WITH_IDN+static void+initialize_idn(void) {+	idn_result_t r;++#ifdef HAVE_SETLOCALE+	/* Set locale */+	(void)setlocale(LC_ALL, "");+#endif+	/* Create configuration context. */+	r = idn_nameinit(1);+	if (r != idn_success)+		fatal("idn api initialization failed: %s",+		      idn_result_tostring(r));++	/* Set domain name -> text post-conversion filter. */+	dns_name_settotextfilter(output_filter);+}++static isc_result_t+output_filter(isc_buffer_t *buffer, unsigned int used_org,+	      isc_boolean_t absolute)+{+	char tmp1[MAXDLEN], tmp2[MAXDLEN];+	size_t fromlen, tolen;+	isc_boolean_t end_with_dot;++	/*+	 * Copy contents of 'buffer' to 'tmp1', supply trailing dot+	 * if 'absolute' is true, and terminate with NUL.+	 */+	fromlen = isc_buffer_usedlength(buffer) - used_org;+	if (fromlen >= MAXDLEN)+		return (ISC_R_SUCCESS);+	memcpy(tmp1, (char *)isc_buffer_base(buffer) + used_org, fromlen);+	end_with_dot = (tmp1[fromlen - 1] == '.') ? ISC_TRUE : ISC_FALSE;+	if (absolute && !end_with_dot) {+		fromlen++;+		if (fromlen >= MAXDLEN)+			return (ISC_R_SUCCESS);+		tmp1[fromlen - 1] = '.';+	}+	tmp1[fromlen] = '\0';++	/*+	 * Convert contents of 'tmp1' to local encoding.+	 */+	if (idn_decodename(IDN_DECODE_APP, tmp1, tmp2, MAXDLEN) != idn_success)+		return (ISC_R_SUCCESS);+	strcpy(tmp1, tmp2);++	/*+	 * Copy the converted contents in 'tmp1' back to 'buffer'.+	 * If we have appended trailing dot, remove it.+	 */+	tolen = strlen(tmp1);+	if (absolute && !end_with_dot && tmp1[tolen - 1] == '.')+		tolen--;++	if (isc_buffer_length(buffer) < used_org + tolen)+		return (ISC_R_NOSPACE);++	isc_buffer_subtract(buffer, isc_buffer_usedlength(buffer) - used_org);+	memcpy(isc_buffer_used(buffer), tmp1, tolen);+	isc_buffer_add(buffer, tolen);++	return (ISC_R_SUCCESS);+}++static idn_result_t+append_textname(char *name, const char *origin, size_t namesize) {+	size_t namelen = strlen(name);+	size_t originlen = strlen(origin);++	/* Already absolute? */+	if (namelen > 0 && name[namelen - 1] == '.')+		return idn_success;++	/* Append dot and origin */++	if (namelen + 1 + originlen >= namesize)+		return idn_buffer_overflow;++	name[namelen++] = '.';+	(void)strcpy(name + namelen, origin);+	return idn_success;+}++static void+idn_check_result(idn_result_t r, const char *msg) {+	if (r != idn_success) {+		exitcode = 1;+		fatal("%s: %s", msg, idn_result_tostring(r));+	}+}++#endif /* WITH_IDN */   Index: bin/dig/host.1===================================================================RCS file: /proj/cvs/prod/bind9/bin/dig/host.1,vretrieving revision 1.11.2.1.4.4diff -U2 -r1.11.2.1.4.4 host.1--- bin/dig/host.1	13 Apr 2004 04:11:03 -0000	1.11.2.1.4.4+++ bin/dig/host.1	1 Sep 2004 07:50:24 -0000@@ -128,4 +128,15 @@ will be set to the number of seconds given by the hardware's maximum value for an integer quantity.+.SH "IDN SUPPORT"+.PP+If \fBhost\fR has been built with IDN (internationalized+domain name) support, it can accept and display non-ASCII domain names.+\fBhost\fR appropriately converts character encoding of+domain name before sending a request to DNS server or displaying a+reply from the server.+If you'd like to turn off the IDN support for some reason, defines+the \fBIDN_DISABLE\fR environment variable.+The IDN support is disabled if the the variable is set when+\fBhost\fR runs. .SH "FILES" .PPIndex: bin/dig/host.docbook===================================================================RCS file: /proj/cvs/prod/bind9/bin/dig/host.docbook,vretrieving revision 1.2.2.2.4.5diff -U2 -r1.2.2.2.4.5 host.docbook--- bin/dig/host.docbook	13 Apr 2004 01:26:26 -0000	1.2.2.2.4.5+++ bin/dig/host.docbook	1 Sep 2004 07:50:27 -0000@@ -192,4 +192,19 @@  <refsect1>+<title>IDN SUPPORT</title>+<para>+If <command>host</command> has been built with IDN (internationalized+domain name) support, it can accept and display non-ASCII domain names.+<command>host</command> appropriately converts character encoding of+domain name before sending a request to DNS server or displaying a+reply from the server.+If you'd like to turn off the IDN support for some reason, defines+the <envar>IDN_DISABLE</envar> environment variable.+The IDN support is disabled if the the variable is set when+<command>host</command> runs.+</para>+</refsect1>++<refsect1> <title>FILES</title> <para>Index: lib/dns/name.c===================================================================RCS file: /proj/cvs/prod/bind9/lib/dns/name.c,vretrieving revision 1.127.2.7.2.11diff -U2 -r1.127.2.7.2.11 name.c--- lib/dns/name.c	1 Sep 2004 05:19:59 -0000	1.127.2.7.2.11+++ lib/dns/name.c	1 Sep 2004 07:50:35 -0000@@ -183,4 +183,11 @@ dns_fullname_hash(dns_name_t *name, isc_boolean_t case_sensitive); +#ifdef WITH_IDN+/*+ * dns_name_t to text post-conversion procedure.+ */+static dns_name_totextfilter_t totext_filter_proc = NULL;+#endif+ static void set_offsets(const dns_name_t *name, unsigned char *offsets,@@ -1208,4 +1215,7 @@ 	unsigned int labels; 	isc_boolean_t saw_root = ISC_FALSE;+#ifdef WITH_IDN+	unsigned int oused = target->used;+#endif  	/*@@ -1346,4 +1356,9 @@ 	isc_buffer_add(target, tlen - trem); +#ifdef WITH_IDN+	if (totext_filter_proc != NULL)+		return ((*totext_filter_proc)(target, oused, saw_root));+#endif+ 	return (ISC_R_SUCCESS); }@@ -2201,2 +2216,8 @@ } +#ifdef WITH_IDN+void+dns_name_settotextfilter(dns_name_totextfilter_t proc) {+	totext_filter_proc = proc;+}+#endifIndex: lib/dns/include/dns/name.h===================================================================RCS file: /proj/cvs/prod/bind9/lib/dns/include/dns/name.h,vretrieving revision 1.95.2.3.2.11diff -U2 -r1.95.2.3.2.11 name.h--- lib/dns/include/dns/name.h	1 Sep 2004 05:19:59 -0000	1.95.2.3.2.11+++ lib/dns/include/dns/name.h	1 Sep 2004 07:50:41 -0000@@ -156,4 +156,15 @@ #define DNS_NAME_MAXWIRE 255 +#ifdef WITH_IDN+/*+ * Text output filter procedure.+ * 'target' is the buffer to be converted.  The region to be converted+ * is from 'buffer'->base + 'used_org' to the end of the used region.+ */+typedef isc_result_t (*dns_name_totextfilter_t)(isc_buffer_t *target,+						unsigned int used_org,+						isc_boolean_t absolute);+#endif+ /***  *** Initialization@@ -1115,4 +1126,12 @@  *  */++#ifdef WITH_IDN+void+dns_name_settotextfilter(dns_name_totextfilter_t proc);+/*+ * Call 'proc' at the end of dns_name_totext.+ */+#endif /* WITH_IDN */  #define DNS_NAME_FORMATSIZE (DNS_NAME_MAXTEXT + 1)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -