summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2010-10-30 14:58:32 +0200
committerMarcel Holtmann <marcel@holtmann.org>2010-10-30 14:58:32 +0200
commit3f06a3d031f45bc45033f9088ebca9d0a5e9d45a (patch)
tree7ff7e2a2b88dcf494180724e4f9db98cb979f232
parenta95f2716f609c2b1dbf49a11830535d88177dffd (diff)
downloadconnman-3f06a3d031f45bc45033f9088ebca9d0a5e9d45a.tar.gz
connman-3f06a3d031f45bc45033f9088ebca9d0a5e9d45a.tar.bz2
connman-3f06a3d031f45bc45033f9088ebca9d0a5e9d45a.zip
Add basic update for GWeb request API
-rw-r--r--gweb/gweb.c15
-rw-r--r--gweb/gweb.h5
-rw-r--r--tools/web-test.c2
3 files changed, 15 insertions, 7 deletions
diff --git a/gweb/gweb.c b/gweb/gweb.c
index 39f8ecfb..3a61353f 100644
--- a/gweb/gweb.c
+++ b/gweb/gweb.c
@@ -35,6 +35,9 @@
#include "gresolv.h"
#include "gweb.h"
+struct _GWebResult {
+};
+
struct web_session {
GWeb *web;
@@ -49,6 +52,8 @@ struct web_session {
guint resolv_action;
char *request;
+ GWebResult *result;
+
GWebResultFunc result_func;
gpointer result_data;
};
@@ -201,7 +206,7 @@ static gboolean received_data(GIOChannel *channel, GIOCondition cond,
if (cond & (G_IO_NVAL | G_IO_ERR | G_IO_HUP)) {
session->transport_watch = 0;
if (session->result_func != NULL)
- session->result_func(400, session->result_data);
+ session->result_func(400, NULL, session->result_data);
return FALSE;
}
@@ -213,7 +218,7 @@ static gboolean received_data(GIOChannel *channel, GIOCondition cond,
if (len == 0) {
session->transport_watch = 0;
if (session->result_func != NULL)
- session->result_func(200, session->result_data);
+ session->result_func(200, NULL, session->result_data);
return FALSE;
}
printf("%s", buf);
@@ -339,7 +344,7 @@ static void resolv_result(GResolvResultStatus status,
if (results == NULL || results[0] == NULL) {
if (session->result_func != NULL)
- session->result_func(404, session->result_data);
+ session->result_func(404, NULL, session->result_data);
return;
}
@@ -347,7 +352,7 @@ static void resolv_result(GResolvResultStatus status,
if (inet_aton(results[0], NULL) == 0) {
if (session->result_func != NULL)
- session->result_func(400, session->result_data);
+ session->result_func(400, NULL, session->result_data);
return;
}
@@ -355,7 +360,7 @@ static void resolv_result(GResolvResultStatus status,
if (connect_session_transport(session) < 0) {
if (session->result_func != NULL)
- session->result_func(409, session->result_data);
+ session->result_func(409, NULL, session->result_data);
return;
}
diff --git a/gweb/gweb.h b/gweb/gweb.h
index 1ab2a9ff..e32a8968 100644
--- a/gweb/gweb.h
+++ b/gweb/gweb.h
@@ -31,14 +31,17 @@ extern "C" {
#endif
struct _GWeb;
+struct _GWebResult;
typedef struct _GWeb GWeb;
+typedef struct _GWebResult GWebResult;
typedef enum {
G_WEB_METHOD_GET,
} GWebMethod;
-typedef void (*GWebResultFunc)(uint16_t status, gpointer user_data);
+typedef void (*GWebResultFunc)(guint16 status, GWebResult *result,
+ gpointer user_data);
typedef void (*GWebDebugFunc)(const char *str, gpointer user_data);
diff --git a/tools/web-test.c b/tools/web-test.c
index 253948f1..0d0e363d 100644
--- a/tools/web-test.c
+++ b/tools/web-test.c
@@ -44,7 +44,7 @@ static void sig_term(int sig)
g_main_loop_quit(main_loop);
}
-static void web_result(uint16_t status, gpointer user_data)
+static void web_result(guint16 status, GWebResult *result, gpointer user_data)
{
gdouble elapsed;