felipe          Mon Jan 12 20:07:28 2009 UTC

  Modified files:              (Branch: PHP_5_3)
    /php-src/ext/standard       dns.c dns_win32.c 
  Log:
  - Reverted my previous commit to avoid unnecessary BC.
    
  [DOC] Added new entry to the array returned by dns_get_record(), 'entries', 
which contains the separated value from TXT value. (so 'txt' kept the 
concatenated version) (Pierre)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/dns.c?r1=1.70.2.7.2.5.2.19&r2=1.70.2.7.2.5.2.20&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.19 
php-src/ext/standard/dns.c:1.70.2.7.2.5.2.20
--- php-src/ext/standard/dns.c:1.70.2.7.2.5.2.19        Sun Jan 11 23:37:16 2009
+++ php-src/ext/standard/dns.c  Mon Jan 12 20:07:28 2009
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: dns.c,v 1.70.2.7.2.5.2.19 2009/01/11 23:37:16 scottmac Exp $ */
+/* $Id: dns.c,v 1.70.2.7.2.5.2.20 2009/01/12 20:07:28 felipe Exp $ */
 
 /* {{{ includes */
 #include "php.h"
@@ -456,29 +456,26 @@
                        break;
                case DNS_T_TXT:
                        {
-                               zval *txtarray = NULL;
                                int ll = 0;
-                               char *txt = NULL;
+                               zval *entries = NULL;
 
                                add_assoc_string(*subarray, "type", "TXT", 1);
                                tp = emalloc(dlen + 1);
                                
-                               MAKE_STD_ZVAL(txtarray);
-                               array_init(txtarray);
+                               MAKE_STD_ZVAL(entries);
+                               array_init(entries);
                                
                                while (ll < dlen) {
-                                       txt = tp + ll;
                                        n = cp[ll];
-                                       memcpy(txt, cp + ll + 1, n);
+                                       memcpy(tp + ll , cp + ll + 1, n);
+                                       add_next_index_stringl(entries, cp + ll 
+ 1, n, 1);
                                        ll = ll + n + 1;
-                                       tp[ll] = '\0';
-                                       add_next_index_stringl(txtarray, txt, 
n, 1);    
                                }
-
+                               tp[dlen] = '\0';
                                cp += dlen;
 
-                               add_assoc_zval(*subarray, "txt", txtarray);
-                               efree(tp);
+                               add_assoc_stringl(*subarray, "txt", tp, dlen - 
1, 0);
+                               add_assoc_zval(*subarray, "entries", entries);
                        }
                        break;
                case DNS_T_SOA:
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/dns_win32.c?r1=1.1.2.5&r2=1.1.2.6&diff_format=u
Index: php-src/ext/standard/dns_win32.c
diff -u php-src/ext/standard/dns_win32.c:1.1.2.5 
php-src/ext/standard/dns_win32.c:1.1.2.6
--- php-src/ext/standard/dns_win32.c:1.1.2.5    Sun Jan 11 18:47:17 2009
+++ php-src/ext/standard/dns_win32.c    Mon Jan 12 20:07:28 2009
@@ -194,24 +194,30 @@
                                int i = 0;
                                DNS_TXT_DATA *data_txt = &pRec->Data.TXT;
                                DWORD count = data_txt->dwStringCount;
-                               char *txt;
-                               long txt_len;
-                               zval *txtarray;
-
-                               MAKE_STD_ZVAL(txtarray);
-                               array_init(txtarray);
+                               char *txt, *txt_dst;
+                               long txt_len = 0;
+                               zval *entries;
 
                                add_assoc_string(*subarray, "type", "TXT", 1);
+                               
+                               ALLOC_INIT_ZVAL(entries);
+                               array_init(entries);
+                               
+                               for (i = 0; i < count; i++) {
+                                       txt_len += 
strlen(data_txt->pStringArray[i]) + 1;
+                               }
 
+                               txt = ecalloc(txt_len * 2, 1);
+                               txt_dst = txt;
                                for (i = 0; i < count; i++) {
-                                       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);
+                                       int len = 
strlen(data_txt->pStringArray[i]);
+                                       memcpy(txt_dst, 
data_txt->pStringArray[i], len);
+                                       add_next_index_stringl(entries, 
data_txt->pStringArray[i], len, 1);
+                                       txt_dst += len;
                                }
 
-                               add_assoc_zval(*subarray, "txt", txtarray);
+                               add_assoc_string(*subarray, "txt", txt, 0);
+                               add_assoc_zval(*subarray, "entries", entries);
                        }
                        break;
 



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to