- add persistent cURL handle support
[m6w6/ext-http] / php_http_info_api.h
index 6d36a64501d5507ce839831c9a451bc9f2950781..4b6868ef4b053347370f51699c5125a5abf254f0 100644 (file)
 
 #define HTTP_INFO(ptr) (ptr)->http.info
 
-typedef struct {
+#define HTTP_INFO_REQUEST_FMT_ARGS(_http_ptr, _EOL) "%s %s HTTP/%1.1f" _EOL, \
+                               (_http_ptr)->info.request.method?(_http_ptr)->info.request.method:"UNKNOWN", \
+                               (_http_ptr)->info.request.url?(_http_ptr)->info.request.url:"/", \
+                               (_http_ptr)->version>0.0?(_http_ptr)->version:1.1
+
+#define HTTP_INFO_RESPONSE_FMT_ARGS(_http_ptr, _EOL) "HTTP/%1.1f %d%s%s" _EOL, \
+                               (_http_ptr)->version>0.0?(_http_ptr)->version:1.1, \
+                               (_http_ptr)->info.response.code?(_http_ptr)->info.response.code:200, \
+                               (_http_ptr)->info.response.status&&*(_http_ptr)->info.response.status ? " ":"", \
+                               STR_PTR((_http_ptr)->info.response.status)
+
+typedef struct _http_request_info_t {
        char *method;
        char *url;
 } http_request_info;
 
-typedef struct {
+typedef struct _http_response_info_t {
        int code;
        char *status;
 } http_response_info;
 
-typedef union {
+typedef union _http_info_union_t {
        http_request_info request;
        http_response_info response;
-} http_info_t;
+} http_info_union;
 
 struct http_info {
-       http_info_t info;
+       http_info_union info;
        double version;
 };
 
-typedef struct {
+typedef struct _http_info_t {
        struct http_info http;
        int type;
 } http_info;