gweb: Add user_agent_profile field in http header
authorSébastien Bianti <sebastien.bianti@linux.intel.com>
Wed, 2 Mar 2011 10:21:21 +0000 (11:21 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Fri, 11 Mar 2011 20:17:59 +0000 (21:17 +0100)
gweb/gweb.c
gweb/gweb.h

index 7387e7c..f3c8a7e 100644 (file)
@@ -106,6 +106,7 @@ struct _GWeb {
        char *proxy;
        char *accept_option;
        char *user_agent;
+       char *user_agent_profile;
        char *http_version;
        gboolean close_connection;
 
@@ -239,6 +240,7 @@ void g_web_unref(GWeb *web)
 
        g_free(web->accept_option);
        g_free(web->user_agent);
+       g_free(web->user_agent_profile);
        g_free(web->http_version);
 
        g_free(web);
@@ -343,6 +345,19 @@ gboolean g_web_set_user_agent(GWeb *web, const char *format, ...)
        return result;
 }
 
+gboolean g_web_set_ua_profile(GWeb *web, const char *profile)
+{
+       if (web == NULL)
+               return FALSE;
+
+       g_free(web->user_agent_profile);
+
+       web->user_agent_profile = g_strdup(profile);
+       debug(web, "setting user agent profile %s", web->user_agent);
+
+       return TRUE;
+}
+
 gboolean g_web_set_http_version(GWeb *web, const char *version)
 {
        if (web == NULL)
@@ -355,7 +370,7 @@ gboolean g_web_set_http_version(GWeb *web, const char *version)
                debug(web, "clearing HTTP version");
        } else {
                web->http_version = g_strdup(version);
-                debug(web, "setting HTTP version %s", web->http_version);
+               debug(web, "setting HTTP version %s", web->http_version);
        }
 
        return TRUE;
@@ -479,6 +494,11 @@ static void start_request(struct web_session *session)
                g_string_append_printf(buf, "User-Agent: %s\r\n",
                                                session->web->user_agent);
 
+       if (session->web->user_agent_profile != NULL) {
+               g_string_append_printf(buf, "x-wap-profile: %s\r\n",
+                                      session->web->user_agent_profile);
+       }
+
        if (session->web->accept_option != NULL)
                g_string_append_printf(buf, "Accept: %s\r\n",
                                                session->web->accept_option);
index 2979db5..3a76778 100644 (file)
@@ -60,6 +60,8 @@ gboolean g_web_set_accept(GWeb *web, const char *format, ...)
                                __attribute__((format(printf, 2, 3)));
 gboolean g_web_set_user_agent(GWeb *web, const char *format, ...)
                                __attribute__((format(printf, 2, 3)));
+gboolean g_web_set_ua_profile(GWeb *web, const char *profile);
+
 gboolean g_web_set_http_version(GWeb *web, const char *version);
 
 void g_web_set_close_connection(GWeb *web, gboolean enabled);