X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=plugins%2Fl2tp.c;h=5a655e630533f24d35214aa8dbf10c1c57ef9f91;hb=8beabba8c702d04e7de5ad04d6ecbcf5b91e24ce;hp=fce8902bf80336857e8cee328ce96a7a484fcf42;hpb=4d86c7c957ef7ec254e1452e55186f045f0d80ff;p=framework%2Fconnectivity%2Fconnman.git diff --git a/plugins/l2tp.c b/plugins/l2tp.c index fce8902..5a655e6 100644 --- a/plugins/l2tp.c +++ b/plugins/l2tp.c @@ -3,7 +3,7 @@ * Connection Manager * * Copyright (C) 2010 BMW Car IT GmbH. All rights reserved. - * Copyright (C) 2011 Intel Corporation. All rights reserved. + * Copyright (C) 2012 Intel Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -158,6 +158,9 @@ static int l2tp_notify(DBusMessage *msg, struct connman_provider *provider) return VPN_STATE_FAILURE; } + if (strcmp(reason, "auth failed") == 0) + return VPN_STATE_AUTH_FAILURE; + if (strcmp(reason, "connect")) return VPN_STATE_DISCONNECT; @@ -237,6 +240,26 @@ static int l2tp_notify(DBusMessage *msg, struct connman_provider *provider) return VPN_STATE_CONNECT; } +static int l2tp_save(struct connman_provider *provider, GKeyFile *keyfile) +{ + const char *option; + int i; + + for (i = 0; i < (int)ARRAY_SIZE(pppd_options); i++) { + if (strncmp(pppd_options[i].cm_opt, "L2TP.", 5) == 0) { + option = connman_provider_get_string(provider, + pppd_options[i].cm_opt); + if (option == NULL) + continue; + + g_key_file_set_string(keyfile, + connman_provider_get_save_group(provider), + pppd_options[i].cm_opt, option); + } + } + return 0; +} + static ssize_t full_write(int fd, const void *buf, size_t len) { ssize_t byte_write; @@ -473,12 +496,9 @@ static int l2tp_connect(struct connman_provider *provider, static int l2tp_error_code(int exit_code) { - switch (exit_code) { case 1: return CONNMAN_PROVIDER_ERROR_CONNECT_FAILED; - case 2: - return CONNMAN_PROVIDER_ERROR_LOGIN_FAILED; default: return CONNMAN_PROVIDER_ERROR_UNKNOWN; } @@ -489,6 +509,7 @@ static struct vpn_driver vpn_driver = { .notify = l2tp_notify, .connect = l2tp_connect, .error_code = l2tp_error_code, + .save = l2tp_save, }; static int l2tp_init(void)