forked from sailfishos/ofono
Compare commits
5 Commits
master
...
upgrade-2.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c572e83247 | ||
|
|
dd21e34a86 | ||
|
|
8de5892827 | ||
|
|
8b2ef760c7 | ||
|
|
0ee292e0f6 |
@@ -153,6 +153,7 @@ struct pb_data {
|
||||
struct ofono_sim *sim;
|
||||
struct ofono_sim_context *sim_context;
|
||||
const unsigned char *df_path;
|
||||
guint register_id;
|
||||
size_t df_size;
|
||||
};
|
||||
|
||||
@@ -1017,7 +1018,9 @@ static void ril_export_entries(struct ofono_phonebook *pb,
|
||||
static gboolean ril_delayed_register(gpointer user_data)
|
||||
{
|
||||
struct ofono_phonebook *pb = user_data;
|
||||
struct pb_data *pbd = ofono_phonebook_get_data(pb);
|
||||
|
||||
pbd->register_id = 0;
|
||||
ofono_phonebook_register(pb);
|
||||
return FALSE;
|
||||
}
|
||||
@@ -1040,7 +1043,7 @@ static int ril_phonebook_probe(struct ofono_phonebook *pb,
|
||||
|
||||
ofono_phonebook_set_data(pb, pd);
|
||||
|
||||
g_idle_add(ril_delayed_register, pb);
|
||||
pd->register_id = g_idle_add(ril_delayed_register, pb);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1049,6 +1052,10 @@ static void ril_phonebook_remove(struct ofono_phonebook *pb)
|
||||
{
|
||||
struct pb_data *pbd = ofono_phonebook_get_data(pb);
|
||||
|
||||
if (pbd->register_id) {
|
||||
g_source_remove(pbd->register_id);
|
||||
}
|
||||
|
||||
ofono_phonebook_set_data(pb, NULL);
|
||||
ofono_sim_context_free(pbd->sim_context);
|
||||
|
||||
|
||||
@@ -518,8 +518,9 @@ static void ril_plugin_update_ready(struct ril_plugin_priv *plugin)
|
||||
}
|
||||
|
||||
if (plugin->pub.ready != ready) {
|
||||
DBG("%sready", ready ? "" : "not ");
|
||||
plugin->pub.ready = ready;
|
||||
ril_plugin_dbus_block_imei_requests(plugin->dbus, !ready);
|
||||
DBG("%sready", ready ? "" : "not ");
|
||||
ril_plugin_dbus_signal(plugin->dbus, RIL_PLUGIN_SIGNAL_READY);
|
||||
}
|
||||
}
|
||||
@@ -827,16 +828,13 @@ static void ril_plugin_imei_cb(GRilIoChannel *io, int status,
|
||||
const void *data, guint len, void *user_data)
|
||||
{
|
||||
struct ril_slot *slot = user_data;
|
||||
struct ril_plugin_priv *plugin = slot->plugin;
|
||||
gboolean all_done = TRUE;
|
||||
GSList *link;
|
||||
char *imei = NULL;
|
||||
|
||||
GASSERT(slot->imei_req_id);
|
||||
slot->imei_req_id = 0;
|
||||
|
||||
if (status == RIL_E_SUCCESS) {
|
||||
GRilIoParser rilp;
|
||||
char *imei;
|
||||
|
||||
grilio_parser_init(&rilp, data, len);
|
||||
imei = grilio_parser_get_utf8(&rilp);
|
||||
@@ -849,26 +847,16 @@ static void ril_plugin_imei_cb(GRilIoChannel *io, int status,
|
||||
* IMEI (if rild crashed and we have reconnected)
|
||||
*/
|
||||
GASSERT(!slot->imei || !g_strcmp0(slot->imei, imei));
|
||||
g_free(slot->imei);
|
||||
slot->pub.imei = slot->imei = imei;
|
||||
|
||||
ril_plugin_check_modem(slot);
|
||||
ril_plugin_update_ready(plugin);
|
||||
} else {
|
||||
ofono_error("Slot %u IMEI query error: %s", slot->config.slot,
|
||||
ril_error_to_string(status));
|
||||
}
|
||||
|
||||
for (link = plugin->slots; link && all_done; link = link->next) {
|
||||
if (((struct ril_slot *)link->data)->imei_req_id) {
|
||||
all_done = FALSE;
|
||||
}
|
||||
}
|
||||
g_free(slot->imei);
|
||||
slot->pub.imei = slot->imei = (imei ? imei : g_strdup("ERROR"));
|
||||
|
||||
if (all_done) {
|
||||
DBG("all done");
|
||||
ril_plugin_dbus_block_imei_requests(plugin->dbus, FALSE);
|
||||
}
|
||||
ril_plugin_check_modem(slot);
|
||||
ril_plugin_update_ready(slot->plugin);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -44,6 +44,16 @@
|
||||
|
||||
#include "mbpi.h"
|
||||
|
||||
const char *mbpi_database = MBPI_DATABASE;
|
||||
|
||||
/*
|
||||
* Use IPv4 for MMS contexts because gprs.c assumes that MMS proxy
|
||||
* address is IPv4.
|
||||
*/
|
||||
enum ofono_gprs_proto mbpi_default_internet_proto = OFONO_GPRS_PROTO_IPV4V6;
|
||||
enum ofono_gprs_proto mbpi_default_mms_proto = OFONO_GPRS_PROTO_IP;
|
||||
enum ofono_gprs_proto mbpi_default_proto = OFONO_GPRS_PROTO_IP;
|
||||
|
||||
#define _(x) case x: return (#x)
|
||||
|
||||
enum MBPI_ERROR {
|
||||
@@ -111,7 +121,7 @@ static void mbpi_g_set_error(GMarkupParseContext *context, GError **error,
|
||||
|
||||
va_end(ap);
|
||||
|
||||
g_prefix_error(error, "%s:%d ", MBPI_DATABASE, line_number);
|
||||
g_prefix_error(error, "%s:%d ", mbpi_database, line_number);
|
||||
}
|
||||
|
||||
static void text_handler(GMarkupParseContext *context,
|
||||
@@ -166,7 +176,7 @@ static void authentication_start(GMarkupParseContext *context,
|
||||
static void usage_start(GMarkupParseContext *context,
|
||||
const gchar **attribute_names,
|
||||
const gchar **attribute_values,
|
||||
enum ofono_gprs_context_type *type, GError **error)
|
||||
struct ofono_gprs_provision_data *apn, GError **error)
|
||||
{
|
||||
const char *text = NULL;
|
||||
int i;
|
||||
@@ -182,12 +192,14 @@ static void usage_start(GMarkupParseContext *context,
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(text, "internet") == 0)
|
||||
*type = OFONO_GPRS_CONTEXT_TYPE_INTERNET;
|
||||
else if (strcmp(text, "mms") == 0)
|
||||
*type = OFONO_GPRS_CONTEXT_TYPE_MMS;
|
||||
else if (strcmp(text, "wap") == 0)
|
||||
*type = OFONO_GPRS_CONTEXT_TYPE_WAP;
|
||||
if (strcmp(text, "internet") == 0) {
|
||||
apn->type = OFONO_GPRS_CONTEXT_TYPE_INTERNET;
|
||||
apn->proto = mbpi_default_internet_proto;
|
||||
} else if (strcmp(text, "mms") == 0) {
|
||||
apn->type = OFONO_GPRS_CONTEXT_TYPE_MMS;
|
||||
apn->proto = mbpi_default_mms_proto;
|
||||
} else if (strcmp(text, "wap") == 0)
|
||||
apn->type = OFONO_GPRS_CONTEXT_TYPE_WAP;
|
||||
else
|
||||
mbpi_g_set_error(context, error, G_MARKUP_ERROR,
|
||||
G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
|
||||
@@ -220,7 +232,7 @@ static void apn_start(GMarkupParseContext *context, const gchar *element_name,
|
||||
&apn->message_proxy);
|
||||
else if (g_str_equal(element_name, "usage"))
|
||||
usage_start(context, attribute_names, attribute_values,
|
||||
&apn->type, error);
|
||||
apn, error);
|
||||
}
|
||||
|
||||
static void apn_end(GMarkupParseContext *context, const gchar *element_name,
|
||||
@@ -331,7 +343,7 @@ static void apn_handler(GMarkupParseContext *context, struct gsm_data *gsm,
|
||||
|
||||
ap->apn = g_strdup(apn);
|
||||
ap->type = OFONO_GPRS_CONTEXT_TYPE_INTERNET;
|
||||
ap->proto = OFONO_GPRS_PROTO_IP;
|
||||
ap->proto = mbpi_default_proto;
|
||||
ap->auth_method = OFONO_GPRS_AUTH_METHOD_CHAP;
|
||||
|
||||
g_markup_parse_context_push(context, &apn_parser, ap);
|
||||
@@ -611,11 +623,11 @@ static gboolean mbpi_parse(const GMarkupParser *parser, gpointer userdata,
|
||||
GMarkupParseContext *context;
|
||||
gboolean ret;
|
||||
|
||||
fd = open(MBPI_DATABASE, O_RDONLY);
|
||||
fd = open(mbpi_database, O_RDONLY);
|
||||
if (fd < 0) {
|
||||
g_set_error(error, G_FILE_ERROR,
|
||||
g_file_error_from_errno(errno),
|
||||
"open(%s) failed: %s", MBPI_DATABASE,
|
||||
"open(%s) failed: %s", mbpi_database,
|
||||
g_strerror(errno));
|
||||
return FALSE;
|
||||
}
|
||||
@@ -624,7 +636,7 @@ static gboolean mbpi_parse(const GMarkupParser *parser, gpointer userdata,
|
||||
close(fd);
|
||||
g_set_error(error, G_FILE_ERROR,
|
||||
g_file_error_from_errno(errno),
|
||||
"fstat(%s) failed: %s", MBPI_DATABASE,
|
||||
"fstat(%s) failed: %s", mbpi_database,
|
||||
g_strerror(errno));
|
||||
return FALSE;
|
||||
}
|
||||
@@ -634,7 +646,7 @@ static gboolean mbpi_parse(const GMarkupParser *parser, gpointer userdata,
|
||||
close(fd);
|
||||
g_set_error(error, G_FILE_ERROR,
|
||||
g_file_error_from_errno(errno),
|
||||
"mmap(%s) failed: %s", MBPI_DATABASE,
|
||||
"mmap(%s) failed: %s", mbpi_database,
|
||||
g_strerror(errno));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -19,6 +19,11 @@
|
||||
*
|
||||
*/
|
||||
|
||||
extern const char *mbpi_database;
|
||||
extern enum ofono_gprs_proto mbpi_default_internet_proto;
|
||||
extern enum ofono_gprs_proto mbpi_default_mms_proto;
|
||||
extern enum ofono_gprs_proto mbpi_default_proto;
|
||||
|
||||
const char *mbpi_ap_type(enum ofono_gprs_context_type type);
|
||||
|
||||
void mbpi_ap_free(struct ofono_gprs_provision_data *data);
|
||||
|
||||
Reference in New Issue
Block a user