Add debug helper functions to caldav backend.
authorHarish Krishnaswamy <kharish@novell.com>
Sun, 22 Jan 2006 06:47:58 +0000 (06:47 +0000)
committerHarish Krishnaswamy <kharish@src.gnome.org>
Sun, 22 Jan 2006 06:47:58 +0000 (06:47 +0000)
2006-01-22  Harish Krishnaswamy  <kharish@novell.com>

* backends/caldav/e-cal-backend-caldav.c (print_header),
(debug_handler), (setup_debug), (caldav_server_open_calendar),
(caldav_server_list_objects): Add debug helper functions to
caldav backend.

calendar/ChangeLog
calendar/backends/caldav/e-cal-backend-caldav.c

index 3dde806..018d79c 100644 (file)
@@ -1,3 +1,10 @@
+2006-01-22  Harish Krishnaswamy  <kharish@novell.com>
+
+       * backends/caldav/e-cal-backend-caldav.c (print_header),
+       (debug_handler), (setup_debug), (caldav_server_open_calendar),
+       (caldav_server_list_objects): Add debug helper functions to
+       caldav backend.
+
 2006-01-19  Chenthill Palanisamy  <pchenthill@novell.com>
 
        Fixes #322951
index ffd071b..5215d16 100644 (file)
@@ -44,6 +44,8 @@
 /* LibSoup includes */
 #include <libsoup/soup.h>
 #include <libsoup/soup-headers.h>
+#include <libsoup/soup-uri.h>
+#include <libsoup/soup-soap-message.h>
 
 #include "e-cal-backend-caldav.h"
 
@@ -111,6 +113,51 @@ struct _ECalBackendCalDAVPrivate {
        gboolean disposed;
 };
 
+#if 0
+static void
+print_header (gpointer name, gpointer value, gpointer data)
+{
+       g_print ("%s: %s\n", (char *) name, (char *) value);
+}
+
+static void
+debug_handler (SoupMessage *msg, gpointer user_data)
+{
+       g_print ("%d %s\nMessage-Debug: %p @ %lu\n",
+                msg->status_code, msg->reason_phrase,
+                msg, time (0));
+
+       /* print headers */
+       soup_message_foreach_header (msg->response_headers, print_header, NULL);
+
+       /* print response */
+       if (msg->response.length) {
+               fputc ('\n', stdout);
+               fwrite (msg->response.body, 1, msg->response.length, stdout);
+               fputc ('\n', stdout);
+       }
+}
+
+static void
+setup_debug (SoupMessage *msg)
+{
+       const SoupUri *suri;
+
+       suri = soup_message_get_uri (msg);
+       g_print ("%s %s%s%s HTTP/1.1\nSOAP-Debug: %p @ %lu\n",
+                SOUP_MESSAGE (msg)->method, suri->path,
+                suri->query ? "?" : "",
+                suri->query ? suri->query : "",
+                msg, (unsigned long) time (0));
+
+       /* print message headers */
+       print_header ("Host", suri->host, NULL);
+       soup_message_foreach_header (SOUP_MESSAGE (msg)->request_headers, print_header, NULL);
+
+       soup_message_add_handler (SOUP_MESSAGE (msg), SOUP_HANDLER_POST_BODY, debug_handler, NULL);
+}
+#endif
+
 #define d(x)
 
 static ECalBackendSyncClass *parent_class = NULL;
@@ -725,9 +772,11 @@ caldav_server_open_calendar (ECalBackendCalDAV *cbdav)
        soup_message_add_header (message->request_headers, 
                                 "User-Agent", "Evolution/" VERSION);
 
+       d(setup_debug (message);)
        soup_session_send_message (priv->session, message);
        
        if (! SOUP_STATUS_IS_SUCCESSFUL (message->status_code)) {
+               d(setup_debug (message);)
                g_object_unref (message);
 
                return status_code_to_result (message->status_code);
@@ -836,6 +885,7 @@ caldav_server_list_objects (ECalBackendCalDAV *cbdav, CalDAVObject **objs, int *
                                  (char *) buf->buffer->content,
                                  buf->buffer->use);
 
+       d(setup_debug (message);)
        /* Send the request now */
        soup_session_send_message (priv->session, message);
        
@@ -851,7 +901,8 @@ caldav_server_list_objects (ECalBackendCalDAV *cbdav, CalDAVObject **objs, int *
        
        /* Parse the response body */
        result = parse_report_response (message, objs, len);
-       
+       d(setup_debug (message);)
+
        g_object_unref (message);
        return result;
 }