cvs: php-src(PHP_5_3) /ext/standard dns.c dns_win32.c

From: Date: Sun, 11 Jan 2009 18:47:17 +0000
Subject: cvs: php-src(PHP_5_3) /ext/standard dns.c dns_win32.c
Groups: php.cvs php.doc 
Request: Send a blank email to php-cvs+get-55542@lists.php.net to get a copy of this message
felipe Sun Jan 11 18:47:17 2009 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/standard dns.c dns_win32.c Log: MFH: - Improved fix for #47035 (win32 part by Henrique M. Decaria) [DOC] The TXT part needs be returned as an array of strings. (dns_get_record()) http://cvs.php.net/viewvc.cgi/php-src/ext/standard/dns.c?r1=1.70.2.7.2.5.2.17&r2=1.70.2.7.2.5.2.18&diff_format=u Index: php-src/ext/standard/dns.c diff -u php-src/ext/standard/dns.c:1.70.2.7.2.5.2.17 php-src/ext/standard/dns.c:1.70.2.7.2.5.2.18 --- php-src/ext/standard/dns.c:1.70.2.7.2.5.2.17 Thu Jan 8 17:19:50 2009 +++ php-src/ext/standard/dns.c Sun Jan 11 18:47:17 2009 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: dns.c,v 1.70.2.7.2.5.2.17 2009/01/08 17:19:50 felipe Exp $ */ +/* $Id: dns.c,v 1.70.2.7.2.5.2.18 2009/01/11 18:47:17 felipe Exp $ */ /* {{{ includes */ #include "php.h" @@ -456,20 +456,29 @@ break; case DNS_T_TXT: { + zval *txtarray = NULL; int ll = 0; + char *txt = NULL; add_assoc_string(*subarray, "type", "TXT", 1); tp = emalloc(dlen + 1); + MAKE_STD_ZVAL(txtarray); + array_init(txtarray); + while (ll < dlen) { + txt = tp + ll; n = cp[ll]; - memcpy(tp + ll , cp + ll + 1, n); + memcpy(txt, cp + ll + 1, n); ll = ll + n + 1; + tp[ll] = '\0'; + add_next_index_stringl(txtarray, txt, n, 1); } - tp[dlen] = '\0'; + cp += dlen; - add_assoc_stringl(*subarray, "txt", tp, dlen - 1, 0); + add_assoc_zval(*subarray, "txt", txtarray); + efree(tp); } break; case DNS_T_SOA: http://cvs.php.net/viewvc.cgi/php-src/ext/standard/dns_win32.c?r1=1.1.2.4&r2=1.1.2.5&diff_format=u Index: php-src/ext/standard/dns_win32.c diff -u php-src/ext/standard/dns_win32.c:1.1.2.4 php-src/ext/standard/dns_win32.c:1.1.2.5 --- php-src/ext/standard/dns_win32.c:1.1.2.4 Wed Jan 7 01:35:36 2009 +++ php-src/ext/standard/dns_win32.c Sun Jan 11 18:47:17 2009 @@ -194,25 +194,24 @@ int i = 0; DNS_TXT_DATA *data_txt = &pRec->Data.TXT; DWORD count = data_txt->dwStringCount; - char *txt, *txt_dst; + char *txt; long txt_len; + zval *txtarray; - add_assoc_string(*subarray, "type", "TXT", 1); + MAKE_STD_ZVAL(txtarray); + array_init(txtarray); - txt_len = 0; - for (i = 0; i < count; i++) { - txt_len += strlen(data_txt->pStringArray[i]) + 1; - } + add_assoc_string(*subarray, "type", "TXT", 1); - txt = ecalloc(txt_len * 2, 1); - txt_dst = txt; for (i = 0; i < count; i++) { - int len = strlen(data_txt->pStringArray[i]); - memcpy(txt_dst, data_txt->pStringArray[i], len); - txt_dst += len; + txt_len = strlen(data_txt->pStringArray[i]); + txt = emalloc(txt_len + 1); + memcpy(txt, data_txt->pStringArray[i], txt_len); + txt[txt_len] = '\0'; + add_next_index_stringl(txtarray, txt, txt_len, 0); } - add_assoc_string(*subarray, "txt", txt, 0); + add_assoc_zval(*subarray, "txt", txtarray); } break;

« previous php.cvs (#55542) next »