static void notify_callback(GAtResult *result, gpointer user_data) { GAtResultIter iter; g_at_result_iter_init(&iter, result); if (g_at_result_iter_next(&iter, NULL) == TRUE) printf("%s\n", g_at_result_iter_raw_line(&iter)); printf("==> %s\n", g_at_result_final_response(result)); }
static void generic_callback(gboolean ok, GAtResult *result, gpointer user_data) { GAtResultIter iter; g_at_result_iter_init(&iter, result); if (g_at_result_iter_next(&iter, NULL) == TRUE) printf("%s\n", g_at_result_iter_raw_line(&iter)); printf("==> %s (%d)\n", g_at_result_final_response(result), ok); }
static void dial_cb(GAtServer *server, GAtServerRequestType type, GAtResult *cmd, gpointer user) { GAtResultIter iter; const char *dial_str; char c; if (type != G_AT_SERVER_REQUEST_TYPE_SET) goto error; g_at_result_iter_init(&iter, cmd); g_at_result_iter_next(&iter, ""); dial_str = g_at_result_iter_raw_line(&iter); if (dial_str == NULL) goto error; g_print("dial call %s\n", dial_str); c = *dial_str; if (c == '*' || c == '#' || c == 'T' || c == 't') { GAtIO *io = g_at_server_get_io(server); if (setup_ppp(server) == FALSE) goto error; g_at_server_send_intermediate(server, "CONNECT"); data_mode = TRUE; g_at_io_set_write_done(io, open_ppp, server); } return; error: g_at_server_send_final(server, G_AT_SERVER_RESULT_ERROR); }
static void ste_eppsd_up_cb(gboolean ok, GAtResult *result, gpointer user_data) { struct cb_data *cbd = user_data; ofono_gprs_context_up_cb_t cb = cbd->cb; struct ofono_gprs_context *gc = cbd->user; struct gprs_context_data *gcd = ofono_gprs_context_get_data(gc); struct conn_info *conn = NULL; GAtResultIter iter; GSList *l; int i; gsize length; char *res_string; const char *dns[MAX_DNS + 1]; struct eppsd_response rsp; GMarkupParseContext *context = NULL; l = g_slist_find_custom(g_caif_devices, GUINT_TO_POINTER(gcd->active_context), conn_compare_by_cid); if (!l) { DBG("Did not find data (device and channel id)" "for connection with cid; %d", gcd->active_context); goto error; } conn = l->data; if (!ok) goto error; rsp.current = NULL; context = g_markup_parse_context_new(&parser, 0, &rsp, NULL); memset(&rsp, 0, sizeof(rsp)); g_at_result_iter_init(&iter, result); for (i = 0; i < g_at_result_num_response_lines(result); i++) { g_at_result_iter_next(&iter, NULL); res_string = strdup(g_at_result_iter_raw_line(&iter)); length = strlen(res_string); if (!g_markup_parse_context_parse(context, res_string, length, NULL)) goto error; } if (!g_markup_parse_context_end_parse(context, NULL)) goto error; g_markup_parse_context_free(context); dns[0] = rsp.dns_server1; dns[1] = rsp.dns_server2; dns[2] = NULL; sprintf(conn->interface, "caif%u", conn->device); if (!caif_if_create(conn->interface, conn->channel_id)) { ofono_error("Failed to create caif interface %s.", conn->interface); CALLBACK_WITH_SUCCESS(cb, NULL, FALSE, rsp.ip_address, rsp.subnet_mask, rsp.default_gateway, dns, cbd->data); } else { CALLBACK_WITH_SUCCESS(cb, conn->interface, FALSE, rsp.ip_address, rsp.subnet_mask, rsp.default_gateway, dns, cbd->data); } return; error: DBG("ste_eppsd_up_cb error"); if (context) g_markup_parse_context_free(context); if (conn) conn->cid = 0; CALLBACK_WITH_FAILURE(cb, NULL, 0, NULL, NULL, NULL, NULL, cbd->data); }