From 38f52db2a1dc4d797f031b2167947018a1e94467 Mon Sep 17 00:00:00 2001 From: Jukka Rissanen Date: Tue, 15 Nov 2011 13:06:23 +0200 Subject: scripts: Report authentication error to connman The ppp plugin now checks ppp authentication error and report it to correct connman plugin. --- scripts/libppp-plugin.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/libppp-plugin.c b/scripts/libppp-plugin.c index ba79db07..911551cf 100644 --- a/scripts/libppp-plugin.c +++ b/scripts/libppp-plugin.c @@ -45,6 +45,7 @@ static char *interface; static char *path; static DBusConnection *connection; +static int prev_phase; char pppd_version[] = VERSION; @@ -238,11 +239,18 @@ static void ppp_phase_change(void *data, int arg) { const char *reason = "disconnect"; DBusMessage *msg; + int send_msg = 0; if (connection == NULL) return; - if (arg == PHASE_DEAD || arg == PHASE_DISCONNECT) { + if (prev_phase == PHASE_AUTHENTICATE && + arg == PHASE_TERMINATE) { + reason = "auth failed"; + send_msg = 1; + } + + if (send_msg > 0 || arg == PHASE_DEAD || arg == PHASE_DISCONNECT) { msg = dbus_message_new_method_call(busname, path, interface, "notify"); if (msg == NULL) @@ -259,6 +267,8 @@ static void ppp_phase_change(void *data, int arg) dbus_message_unref(msg); } + + prev_phase = arg; } int plugin_init(void) -- cgit v1.2.3