From 99f50b43bada3c69794e54bfb8f09f6f24da607c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Bianti?= Date: Wed, 2 Mar 2011 11:21:21 +0100 Subject: gweb: Add user_agent_profile field in http header --- gweb/gweb.c | 22 +++++++++++++++++++++- gweb/gweb.h | 2 ++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/gweb/gweb.c b/gweb/gweb.c index 7387e7c3..f3c8a7e0 100644 --- a/gweb/gweb.c +++ b/gweb/gweb.c @@ -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); diff --git a/gweb/gweb.h b/gweb/gweb.h index 2979db52..3a76778d 100644 --- a/gweb/gweb.h +++ b/gweb/gweb.h @@ -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); -- cgit v1.2.3