branch off v1 as R_1_7
[m6w6/ext-http] / http_request_info.c
index f686d470553dab9201802fb1ef7cbab5ef4f2a64..b817841e84174297544f6d89621b758f812b0352 100644 (file)
@@ -6,7 +6,7 @@
     | modification, are permitted provided that the conditions mentioned |
     | in the accompanying LICENSE file are met.                          |
     +--------------------------------------------------------------------+
     | modification, are permitted provided that the conditions mentioned |
     | in the accompanying LICENSE file are met.                          |
     +--------------------------------------------------------------------+
-    | Copyright (c) 2004-2007, Michael Wallner <mike@php.net>            |
+    | Copyright (c) 2004-2010, Michael Wallner <mike@php.net>            |
     +--------------------------------------------------------------------+
 */
 
     +--------------------------------------------------------------------+
 */
 
@@ -148,6 +148,21 @@ PHP_HTTP_API void _http_request_info(http_request *request, HashTable *info)
                add_assoc_long_ex(&array, "condition_unmet", sizeof("condition_unmet"), l);
        }
 #endif
                add_assoc_long_ex(&array, "condition_unmet", sizeof("condition_unmet"), l);
        }
 #endif
+#if HTTP_CURL_VERSION(7,21,0)
+       if (CURLE_OK == curl_easy_getinfo(request->ch, CURLINFO_PRIMARY_PORT, &l)) {
+               add_assoc_long_ex(&array, "primary_port", sizeof("primary_port"), l);
+       }
+#endif
+#if HTTP_CURL_VERSION(7,21,0)
+       if (CURLE_OK == curl_easy_getinfo(request->ch, CURLINFO_LOCAL_IP, &c)) {
+               add_assoc_string_ex(&array, "local_ip", sizeof("local_ip"), c ? c : "", 1);
+       }
+#endif
+#if HTTP_CURL_VERSION(7,21,0)
+       if (CURLE_OK == curl_easy_getinfo(request->ch, CURLINFO_LOCAL_PORT, &l)) {
+               add_assoc_long_ex(&array, "local_port", sizeof("local_port"), l);
+       }
+#endif
 /* END */
 #if HTTP_CURL_VERSION(7,19,1) && defined(HTTP_HAVE_OPENSSL)
        {
 /* END */
 #if HTTP_CURL_VERSION(7,19,1) && defined(HTTP_HAVE_OPENSSL)
        {
@@ -177,7 +192,6 @@ PHP_HTTP_API void _http_request_info(http_request *request, HashTable *info)
                                        }
                                }
                                add_next_index_zval(ci_array, subarray);
                                        }
                                }
                                add_next_index_zval(ci_array, subarray);
-                               curl_slist_free_all(s);
                        }
                        add_assoc_zval_ex(&array, "certinfo", sizeof("certinfo"), ci_array);
                }
                        }
                        add_assoc_zval_ex(&array, "certinfo", sizeof("certinfo"), ci_array);
                }