Refactor: Allow persisent modem names

This commit is contained in:
Denis Kenzior 2010-01-06 15:50:25 -06:00
parent 45f2f9315f
commit 1b5c314f9a
2 changed files with 12 additions and 5 deletions

View File

@ -43,7 +43,7 @@ const char *ofono_modem_get_path(struct ofono_modem *modem);
void ofono_modem_set_data(struct ofono_modem *modem, void *data);
void *ofono_modem_get_data(struct ofono_modem *modem);
struct ofono_modem *ofono_modem_create(const char *type);
struct ofono_modem *ofono_modem_create(const char *name, const char *type);
int ofono_modem_register(struct ofono_modem *modem);
void ofono_modem_remove(struct ofono_modem *modem);

View File

@ -1035,17 +1035,23 @@ bool ofono_modem_get_boolean(struct ofono_modem *modem, const char *key)
return value;
}
struct ofono_modem *ofono_modem_create(const char *type)
struct ofono_modem *ofono_modem_create(const char *name, const char *type)
{
struct ofono_modem *modem;
char path[128];
DBG("%s", type);
DBG("name: %s, type: %s", name, type);
if (strlen(type) > 16)
return NULL;
snprintf(path, sizeof(path), "/%s%d", type, next_modem_id);
if (name && strlen(name) > 64)
return NULL;
if (name == NULL)
snprintf(path, sizeof(path), "/%s%d", type, next_modem_id);
else
snprintf(path, sizeof(path), "/%s", name);
if (__ofono_dbus_valid_object_path(path) == FALSE)
return NULL;
@ -1062,7 +1068,8 @@ struct ofono_modem *ofono_modem_create(const char *type)
g_modem_list = g_slist_prepend(g_modem_list, modem);
next_modem_id += 1;
if (name == NULL)
next_modem_id += 1;
return modem;
}