diff options
| author | Michael Biebl <biebl@debian.org> | 2011-05-04 21:35:57 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2011-05-04 21:35:57 +0200 |
| commit | 3241555aff5c969104e492501097f4cb8837bcca (patch) | |
| tree | 6d15a02d02a9f1bfcda6075ae2b8c71537d8038d /src/ppp-manager | |
| parent | e1b66c145e71e7bc6a06845dd17788fb7b8e158e (diff) | |
| parent | 9f806e97a24bba61417ae312fcc0da40914266fb (diff) | |
Merge commit 'upstream/0.8.999' into experimental
Diffstat (limited to 'src/ppp-manager')
| -rw-r--r-- | src/ppp-manager/Makefile.in | 7 | ||||
| -rw-r--r-- | src/ppp-manager/nm-ppp-manager.c | 33 | ||||
| -rw-r--r-- | src/ppp-manager/nm-ppp-manager.h | 2 | ||||
| -rw-r--r-- | src/ppp-manager/nm-pppd-plugin.c | 4 |
4 files changed, 33 insertions, 13 deletions
diff --git a/src/ppp-manager/Makefile.in b/src/ppp-manager/Makefile.in index 897a5033..13c60b41 100644 --- a/src/ppp-manager/Makefile.in +++ b/src/ppp-manager/Makefile.in @@ -146,6 +146,10 @@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DBUS_CFLAGS = @DBUS_CFLAGS@ @@ -263,6 +267,8 @@ POLKIT_CFLAGS = @POLKIT_CFLAGS@ POLKIT_LIBS = @POLKIT_LIBS@ POSUB = @POSUB@ PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@ +QT_CFLAGS = @QT_CFLAGS@ +QT_LIBS = @QT_LIBS@ RANLIB = @RANLIB@ RESOLVCONF_PATH = @RESOLVCONF_PATH@ SED = @SED@ @@ -284,6 +290,7 @@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ diff --git a/src/ppp-manager/nm-ppp-manager.c b/src/ppp-manager/nm-ppp-manager.c index 41b5ef1a..767b9315 100644 --- a/src/ppp-manager/nm-ppp-manager.c +++ b/src/ppp-manager/nm-ppp-manager.c @@ -66,10 +66,14 @@ static gboolean impl_ppp_manager_set_ip4_config (NMPPPManager *manager, #include "nm-ppp-manager-glue.h" +static void _ppp_cleanup (NMPPPManager *manager); + #define NM_PPPD_PLUGIN PLUGINDIR "/nm-pppd-plugin.so" #define PPP_MANAGER_SECRET_TRIES "ppp-manager-secret-tries" typedef struct { + gboolean disposed; + GPid pid; NMDBusManager *dbus_manager; char *dbus_path; @@ -164,11 +168,19 @@ dispose (GObject *object) { NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (object); - nm_ppp_manager_stop (NM_PPP_MANAGER (object)); + if (priv->disposed == FALSE) { + priv->disposed = TRUE; + + _ppp_cleanup (NM_PPP_MANAGER (object)); + + if (priv->act_req) { + g_object_unref (priv->act_req); + priv->act_req = NULL; + } - if (priv->act_req) - g_object_unref (priv->act_req); - g_object_unref (priv->dbus_manager); + g_object_unref (priv->dbus_manager); + priv->dbus_manager = NULL; + } G_OBJECT_CLASS (nm_ppp_manager_parent_class)->dispose (object); } @@ -315,9 +327,12 @@ monitor_stats (NMPPPManager *manager) NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (manager); priv->monitor_fd = socket (AF_INET, SOCK_DGRAM, 0); - if (priv->monitor_fd > 0) + if (priv->monitor_fd > 0) { + g_warn_if_fail (priv->monitor_id == 0); + if (priv->monitor_id) + g_source_remove (priv->monitor_id); priv->monitor_id = g_timeout_add_seconds (5, monitor_cb, manager); - else + } else nm_log_warn (LOGD_PPP, "could not monitor PPP stats: %s", strerror (errno)); } @@ -766,7 +781,7 @@ pppd_timed_out (gpointer data) NMPPPManager *manager = NM_PPP_MANAGER (data); nm_log_warn (LOGD_PPP, "pppd timed out or didn't initialize our dbus module"); - nm_ppp_manager_stop (manager); + _ppp_cleanup (manager); g_signal_emit (manager, signals[STATE_CHANGED], 0, NM_PPP_STATUS_DEAD); @@ -1043,8 +1058,8 @@ ensure_killed (gpointer data) return FALSE; } -void -nm_ppp_manager_stop (NMPPPManager *manager) +static void +_ppp_cleanup (NMPPPManager *manager) { NMPPPManagerPrivate *priv; diff --git a/src/ppp-manager/nm-ppp-manager.h b/src/ppp-manager/nm-ppp-manager.h index 5a8c73e4..c38602fc 100644 --- a/src/ppp-manager/nm-ppp-manager.h +++ b/src/ppp-manager/nm-ppp-manager.h @@ -63,8 +63,6 @@ gboolean nm_ppp_manager_start (NMPPPManager *manager, guint32 timeout_secs, GError **err); -void nm_ppp_manager_stop (NMPPPManager *manager); - #define NM_PPP_MANAGER_ERROR nm_ppp_manager_error_quark() #define NM_TYPE_PPP_MANAGER_ERROR (nm_ppp_manager_error_get_type ()) diff --git a/src/ppp-manager/nm-pppd-plugin.c b/src/ppp-manager/nm-pppd-plugin.c index c64bb87f..e2e5c709 100644 --- a/src/ppp-manager/nm-pppd-plugin.c +++ b/src/ppp-manager/nm-pppd-plugin.c @@ -240,13 +240,13 @@ nm_ip_up (void *data, int arg) } static int -get_chap_check() +get_chap_check (void) { return 1; } static int -get_pap_check() +get_pap_check (void) { return 1; } |