- Fixed build on php-trunk
[m6w6/ext-http] / php_http_info_api.h
index d30cead87674380c13be27a2c3b61bedc8334ca8..a6c2fe83490bdface95a477ec304bdf52c3cd9d6 100644 (file)
@@ -6,7 +6,7 @@
     | modification, are permitted provided that the conditions mentioned |
     | in the accompanying LICENSE file are met.                          |
     +--------------------------------------------------------------------+
-    | Copyright (c) 2004-2005, Michael Wallner <mike@php.net>            |
+    | Copyright (c) 2004-2010, Michael Wallner <mike@php.net>            |
     +--------------------------------------------------------------------+
 */
 
 
 #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;