+typedef struct {
+ void ***tsrm_ctx;
+ void *data;
+} http_curl_callback_ctx;
+
+#define HTTP_CURL_CALLBACK_DATA(from, type, var) \
+ http_curl_callback_ctx *__CTX = (http_curl_callback_ctx *) (from); \
+ TSRMLS_FETCH_FROM_CTX(__CTX->tsrm_ctx); \
+ type (var) = (type) (__CTX->data)
+
+#define http_curl_callback_data(data) _http_curl_callback_data((data) TSRMLS_CC)
+static http_curl_callback_ctx *_http_curl_callback_data(void *data TSRMLS_DC);
+