summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2011-02-15 15:46:24 -0600
committerDenis Kenzior <denkenz@gmail.com>2011-02-15 15:47:32 -0600
commita6f910e27cdae6f44b767767dae6190a0affe438 (patch)
treef4df31736c123d3ba697b2dcc6afcfc1e38d7880
parenta0cca0a970fb46fe2a3ee2615271da7d8a60c071 (diff)
downloadofono-a6f910e27cdae6f44b767767dae6190a0affe438.tar.bz2
gatserver: Change callback signature
Provide the originating GAtServer to the callback
-rw-r--r--gatchat/gatserver.c72
-rw-r--r--gatchat/gatserver.h3
-rw-r--r--gatchat/test-server.c116
3 files changed, 86 insertions, 105 deletions
diff --git a/gatchat/gatserver.c b/gatchat/gatserver.c
index b18e888e..4ccea86d 100644
--- a/gatchat/gatserver.c
+++ b/gatchat/gatserver.c
@@ -319,24 +319,21 @@ static void s_template_cb(GAtServerRequestType type, GAtResult *result,
}
}
-static void at_s3_cb(GAtServerRequestType type, GAtResult *result,
- gpointer user_data)
+static void at_s3_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *result, gpointer user_data)
{
- GAtServer *server = user_data;
s_template_cb(type, result, server, &server->v250.s3, "S3", 0, 127);
}
-static void at_s4_cb(GAtServerRequestType type, GAtResult *result,
- gpointer user_data)
+static void at_s4_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *result, gpointer user_data)
{
- GAtServer *server = user_data;
s_template_cb(type, result, server, &server->v250.s4, "S4", 0, 127);
}
-static void at_s5_cb(GAtServerRequestType type, GAtResult *result,
- gpointer user_data)
+static void at_s5_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *result, gpointer user_data)
{
- GAtServer *server = user_data;
s_template_cb(type, result, server, &server->v250.s5, "S5", 0, 127);
}
@@ -384,53 +381,46 @@ static void at_template_cb(GAtServerRequestType type, GAtResult *result,
}
}
-static void at_e_cb(GAtServerRequestType type, GAtResult *result,
- gpointer user_data)
+static void at_e_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *result, gpointer user_data)
{
- GAtServer *server = user_data;
at_template_cb(type, result, server, &server->v250.echo, "E", 0, 1, 1);
}
-static void at_q_cb(GAtServerRequestType type, GAtResult *result,
- gpointer user_data)
+static void at_q_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *result, gpointer user_data)
{
- GAtServer *server = user_data;
at_template_cb(type, result, server, &server->v250.quiet, "Q", 0, 1, 0);
}
-static void at_v_cb(GAtServerRequestType type, GAtResult *result,
- gpointer user_data)
+static void at_v_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *result, gpointer user_data)
{
- GAtServer *server = user_data;
at_template_cb(type, result, server, &server->v250.is_v1, "V", 0, 1, 1);
}
-static void at_x_cb(GAtServerRequestType type, GAtResult *result,
- gpointer user_data)
+static void at_x_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *result, gpointer user_data)
{
- GAtServer *server = user_data;
at_template_cb(type, result, server, &server->v250.res_format,
"X", 0, 4, 4);
}
-static void at_s6_cb(GAtServerRequestType type, GAtResult *result,
- gpointer user_data)
+static void at_s6_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *result, gpointer user_data)
{
- GAtServer *server = user_data;
at_template_cb(type, result, server, &server->v250.s6, "S6", 0, 1, 1);
}
-static void at_c109_cb(GAtServerRequestType type, GAtResult *result,
- gpointer user_data)
+static void at_c109_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *result, gpointer user_data)
{
- GAtServer *server = user_data;
at_template_cb(type, result, server, &server->v250.c109, "&C", 0, 1, 1);
}
-static void at_c108_cb(GAtServerRequestType type, GAtResult *result,
- gpointer user_data)
+static void at_c108_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *result, gpointer user_data)
{
- GAtServer *server = user_data;
at_template_cb(type, result, server, &server->v250.c108, "&D", 0, 2, 2);
}
@@ -463,7 +453,7 @@ static void at_command_notify(GAtServer *server, char *command,
result.lines = g_slist_prepend(NULL, command);
result.final_or_pdu = 0;
- node->notify(type, &result, node->user_data);
+ node->notify(server, type, &result, node->user_data);
g_slist_free(result.lines);
}
@@ -1078,16 +1068,16 @@ static void at_notify_node_destroy(gpointer data)
static void basic_command_register(GAtServer *server)
{
- g_at_server_register(server, "S3", at_s3_cb, server, NULL);
- g_at_server_register(server, "S4", at_s4_cb, server, NULL);
- g_at_server_register(server, "S5", at_s5_cb, server, NULL);
- g_at_server_register(server, "E", at_e_cb, server, NULL);
- g_at_server_register(server, "Q", at_q_cb, server, NULL);
- g_at_server_register(server, "V", at_v_cb, server, NULL);
- g_at_server_register(server, "X", at_x_cb, server, NULL);
- g_at_server_register(server, "S6", at_s6_cb, server, NULL);
- g_at_server_register(server, "&C", at_c109_cb, server, NULL);
- g_at_server_register(server, "&D", at_c108_cb, server, NULL);
+ g_at_server_register(server, "S3", at_s3_cb, NULL, NULL);
+ g_at_server_register(server, "S4", at_s4_cb, NULL, NULL);
+ g_at_server_register(server, "S5", at_s5_cb, NULL, NULL);
+ g_at_server_register(server, "E", at_e_cb, NULL, NULL);
+ g_at_server_register(server, "Q", at_q_cb, NULL, NULL);
+ g_at_server_register(server, "V", at_v_cb, NULL, NULL);
+ g_at_server_register(server, "X", at_x_cb, NULL, NULL);
+ g_at_server_register(server, "S6", at_s6_cb, NULL, NULL);
+ g_at_server_register(server, "&C", at_c109_cb, NULL, NULL);
+ g_at_server_register(server, "&D", at_c108_cb, NULL, NULL);
}
GAtServer *g_at_server_new(GIOChannel *io)
diff --git a/gatchat/gatserver.h b/gatchat/gatserver.h
index f0c19da4..5e663b75 100644
--- a/gatchat/gatserver.h
+++ b/gatchat/gatserver.h
@@ -65,7 +65,8 @@ enum _GAtServerRequestType {
typedef enum _GAtServerRequestType GAtServerRequestType;
-typedef void (*GAtServerNotifyFunc)(GAtServerRequestType type,
+typedef void (*GAtServerNotifyFunc)(GAtServer *server,
+ GAtServerRequestType type,
GAtResult *result, gpointer user_data);
GAtServer *g_at_server_new(GIOChannel *io);
diff --git a/gatchat/test-server.c b/gatchat/test-server.c
index b37bdda5..d024e64a 100644
--- a/gatchat/test-server.c
+++ b/gatchat/test-server.c
@@ -187,10 +187,9 @@ static gboolean setup_ppp(gpointer user)
return FALSE;
}
-static void cgmi_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void cgmi_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
-
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_COMMAND_ONLY:
g_at_server_send_info(server, "oFono", TRUE);
@@ -204,10 +203,9 @@ static void cgmi_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
};
}
-static void cgmm_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void cgmm_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
-
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_COMMAND_ONLY:
g_at_server_send_info(server, "oFono pre-1.0", TRUE);
@@ -221,9 +219,9 @@ static void cgmm_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
};
}
-static void cgmr_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void cgmr_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
char buf[256];
switch (type) {
@@ -240,10 +238,9 @@ static void cgmr_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
};
}
-static void cgsn_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void cgsn_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
-
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_COMMAND_ONLY:
g_at_server_send_info(server, "123456789", TRUE);
@@ -266,9 +263,9 @@ static gboolean send_ok(gpointer user)
return FALSE;
}
-static void cfun_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void cfun_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
char buf[12];
switch (type) {
@@ -314,10 +311,9 @@ error:
g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
}
-static void cpin_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void cpin_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
-
if (modem_mode == 0) {
g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
return;
@@ -359,10 +355,9 @@ static gboolean do_netreg(gpointer user)
return FALSE;
}
-static void cops_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void cops_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
-
if (modem_mode == 0) {
g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
return;
@@ -403,9 +398,9 @@ static void cops_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
}
}
-static void creg_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void creg_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
char buf[20];
if (modem_mode == 0) {
@@ -452,9 +447,9 @@ error:
g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
}
-static void cgreg_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void cgreg_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
char buf[20];
if (modem_mode == 0) {
@@ -501,9 +496,9 @@ error:
g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
}
-static void cgatt_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void cgatt_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
char buf[12];
if (modem_mode == 0) {
@@ -554,10 +549,9 @@ error:
g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
}
-static void cgdata_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void cgdata_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
-
if (modem_mode == 0) {
g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
return;
@@ -580,10 +574,9 @@ static void cgdata_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
}
}
-static void cgdcont_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void cgdcont_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
-
if (modem_mode == 0) {
g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR);
return;
@@ -605,10 +598,9 @@ static void cgdcont_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
}
}
-static void cimi_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void cimi_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
-
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_COMMAND_ONLY:
g_at_server_send_info(server, "246813579", TRUE);
@@ -623,10 +615,9 @@ static void cimi_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
}
}
-static void csms_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void csms_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
-
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_SET:
g_at_server_send_final(server, G_AT_SERVER_RESULT_OK);
@@ -645,10 +636,9 @@ static void csms_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
}
}
-static void cmgf_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void cmgf_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
-
switch (type) {
case G_AT_SERVER_REQUEST_TYPE_SET:
g_at_server_send_final(server, G_AT_SERVER_RESULT_OK);
@@ -667,9 +657,9 @@ static void cmgf_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
}
}
-static void cpms_cb(GAtServerRequestType type, GAtResult *cmd, gpointer user)
+static void cpms_cb(GAtServer *server, GAtServerRequestType type,
+ GAtResult *cmd, gpointer user)
{
- GAtServer *server = user;
char buf[2048];
switch (type) {
@@ -812,27 +802,27 @@ static void add_handler(GAtServer *server)
{
g_at_server_set_debug(server, server_debug, "Server");
- g_at_server_register(server, "+CGMI", cgmi_cb, server, NULL);
- g_at_server_register(server, "+CGMM", cgmm_cb, server, NULL);
- g_at_server_register(server, "+CGMR", cgmr_cb, server, NULL);
- g_at_server_register(server, "+CGSN", cgsn_cb, server, NULL);
- g_at_server_register(server, "+CFUN", cfun_cb, server, NULL);
- g_at_server_register(server, "+CPIN", cpin_cb, server, NULL);
- g_at_server_register(server, "+COPS", cops_cb, server, NULL);
- g_at_server_register(server, "+CREG", creg_cb, server, NULL);
- g_at_server_register(server, "+CGREG", cgreg_cb, server, NULL);
- g_at_server_register(server, "+CGATT", cgatt_cb, server, NULL);
- g_at_server_register(server, "+CGDATA", cgdata_cb, server, NULL);
- g_at_server_register(server, "+CGDCONT", cgdcont_cb, server, NULL);
- g_at_server_register(server, "+CIMI", cimi_cb, server, NULL);
- g_at_server_register(server, "+CSMS", csms_cb, server, NULL);
- g_at_server_register(server, "+CMGF", cmgf_cb, server, NULL);
- g_at_server_register(server, "+CPMS", cpms_cb, server, NULL);
- g_at_server_register(server, "+CNMI", cnmi_cb, server, NULL);
- g_at_server_register(server, "+CSCS", cscs_cb, server, NULL);
- g_at_server_register(server, "+CMGL", cmgl_cb, server, NULL);
- g_at_server_register(server, "+CPBS", cpbs_cb, server, NULL);
- g_at_server_register(server, "D", dial_cb, server, NULL);
+ g_at_server_register(server, "+CGMI", cgmi_cb, NULL, NULL);
+ g_at_server_register(server, "+CGMM", cgmm_cb, NULL, NULL);
+ g_at_server_register(server, "+CGMR", cgmr_cb, NULL, NULL);
+ g_at_server_register(server, "+CGSN", cgsn_cb, NULL, NULL);
+ g_at_server_register(server, "+CFUN", cfun_cb, NULL, NULL);
+ g_at_server_register(server, "+CPIN", cpin_cb, NULL, NULL);
+ g_at_server_register(server, "+COPS", cops_cb, NULL, NULL);
+ g_at_server_register(server, "+CREG", creg_cb, NULL, NULL);
+ g_at_server_register(server, "+CGREG", cgreg_cb, NULL, NULL);
+ g_at_server_register(server, "+CGATT", cgatt_cb, NULL, NULL);
+ g_at_server_register(server, "+CGDATA", cgdata_cb, NULL, NULL);
+ g_at_server_register(server, "+CGDCONT", cgdcont_cb, NULL, NULL);
+ g_at_server_register(server, "+CIMI", cimi_cb, NULL, NULL);
+ g_at_server_register(server, "+CSMS", csms_cb, NULL, NULL);
+ g_at_server_register(server, "+CMGF", cmgf_cb, NULL, NULL);
+ g_at_server_register(server, "+CPMS", cpms_cb, NULL, NULL);
+ g_at_server_register(server, "+CNMI", cnmi_cb, NULL, NULL);
+ g_at_server_register(server, "+CSCS", cscs_cb, NULL, NULL);
+ g_at_server_register(server, "+CMGL", cmgl_cb, NULL, NULL);
+ g_at_server_register(server, "+CPBS", cpbs_cb, NULL, NULL);
+ g_at_server_register(server, "D", dial_cb, NULL, NULL);
}
static void server_destroy(gpointer user)