*
* Web service library with GLib integration
*
- * Copyright (C) 2009-2010 Intel Corporation. All rights reserved.
+ * Copyright (C) 2009-2012 Intel Corporation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
gpointer debug_data;
};
-static inline void debug(GWeb *web, const char *format, ...)
+#define debug(web, format, arg...) \
+ _debug(web, __FILE__, __func__, format, ## arg)
+
+static void _debug(GWeb *web, const char *file, const char *caller,
+ const char *format, ...)
{
char str[256];
va_list ap;
+ int len;
if (web->debug_func == NULL)
return;
va_start(ap, format);
- if (vsnprintf(str, sizeof(str), format, ap) > 0)
- web->debug_func(str, web->debug_data);
+ if ((len = snprintf(str, sizeof(str), "%s:%s() web %p ",
+ file, caller, web)) > 0) {
+ if (vsnprintf(str + len, sizeof(str) - len, format, ap) > 0)
+ web->debug_func(str, web->debug_data);
+ }
va_end(ap);
}
g_free(web);
}
+gboolean g_web_supports_tls(void)
+{
+ return g_io_channel_supports_tls();
+}
+
void g_web_set_debug(GWeb *web, GWebDebugFunc func, gpointer user_data)
{
if (web == NULL)
static inline void call_result_func(struct web_session *session, guint16 status)
{
- gboolean result;
if (session->result_func == NULL)
return;
if (status != 0)
session->result.status = status;
- result = session->result_func(&session->result, session->user_data);
+ session->result_func(&session->result, session->user_data);
- debug(session->web, "[result function] %s",
- result == TRUE ? "continue" : "stop");
}
static inline void call_route_func(struct web_session *session)