diff options
author | Denis Kenzior <denkenz@gmail.com> | 2011-05-22 07:47:56 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2011-05-24 12:11:01 -0500 |
commit | 831e5ac4ec018903ec092787a0129348f2d48dba (patch) | |
tree | 378d9499f1bf9338047507867407f1bba2c4ce97 /src/emulator.c | |
parent | 5021c1ee460ed31306c14821a33a4ea490e41ba4 (diff) | |
download | ofono-831e5ac4ec018903ec092787a0129348f2d48dba.tar.bz2 |
emulator: optimize request_private_network_cb flow
Diffstat (limited to 'src/emulator.c')
-rw-r--r-- | src/emulator.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/emulator.c b/src/emulator.c index a852b7be..62f09293 100644 --- a/src/emulator.c +++ b/src/emulator.c @@ -174,20 +174,13 @@ static void request_private_network_cb( { struct ofono_emulator *em = data; - if (pns == NULL) { - __ofono_private_network_release(em->pns_id); - em->pns_id = 0; - g_at_server_send_final(em->server, G_AT_SERVER_RESULT_ERROR); - return; - } + if (pns == NULL) + goto error; em->local_pns = g_try_new0(struct ofono_private_network_settings, 1); if (em->local_pns == NULL) { close(pns->fd); - __ofono_private_network_release(em->pns_id); - em->pns_id = 0; - g_at_server_send_final(em->server, G_AT_SERVER_RESULT_ERROR); - return; + goto error; } em->local_pns->fd = pns->fd; @@ -200,6 +193,11 @@ static void request_private_network_cb( em->source = g_idle_add(setup_ppp, em); return; + +error: + __ofono_private_network_release(em->pns_id); + em->pns_id = 0; + g_at_server_send_final(em->server, G_AT_SERVER_RESULT_ERROR); } static gboolean dial_call(struct ofono_emulator *em, const char *dial_str) |