#include "gresolv.h"
#include "gweb.h"
+struct _GWebResult {
+};
+
struct web_session {
GWeb *web;
guint resolv_action;
char *request;
+ GWebResult *result;
+
GWebResultFunc result_func;
gpointer result_data;
};
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;
}
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);
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;
}
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;
}
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;
}
#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);