62 lines
1.9 KiB
Diff
62 lines
1.9 KiB
Diff
From dbb1ed70eca25d57da3c12534c241cd38134627b Mon Sep 17 00:00:00 2001
|
|
From: Alexandre Rostovtsev <tetromino@gentoo.org>
|
|
Date: Wed, 1 Feb 2012 05:51:20 -0500
|
|
Subject: [PATCH] gentoo: provide net and use inactive status when not
|
|
connected
|
|
|
|
The status will be reset to started via a dispatcher script on up/down
|
|
events. See https://bugs.gentoo.org/show_bug.cgi?id=252137
|
|
---
|
|
initscript/Gentoo/NetworkManager.in | 24 +++++++++++++++++++++++-
|
|
1 files changed, 23 insertions(+), 1 deletions(-)
|
|
|
|
diff --git a/initscript/Gentoo/NetworkManager.in b/initscript/Gentoo/NetworkManager.in
|
|
index 7db410b..d26996d 100755
|
|
--- a/initscript/Gentoo/NetworkManager.in
|
|
+++ b/initscript/Gentoo/NetworkManager.in
|
|
@@ -3,18 +3,40 @@
|
|
# Distributed under the terms of the GNU General Purpose License v2
|
|
# $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/files/networkmanager-0.9.2.0-init-provide-net.patch,v 1.1 2012/02/02 00:34:59 tetromino Exp $
|
|
|
|
+description="NetworkManager daemon. The service is marked as started only \
|
|
+when a network connection is established."
|
|
+
|
|
depend() {
|
|
need dbus
|
|
+ provide net
|
|
+}
|
|
+
|
|
+_is_connected() {
|
|
+ [ "x$(LC_ALL=C nmcli -t -f state nm 2> /dev/null)" = "xconnected" ]
|
|
+ return $?
|
|
}
|
|
|
|
start() {
|
|
+ if yesno "${IN_BACKGROUND}"; then
|
|
+ _is_connected && mark_service_started
|
|
+ return
|
|
+ fi
|
|
ebegin "Starting NetworkManager"
|
|
start-stop-daemon --start --quiet --pidfile /var/run/NetworkManager.pid \
|
|
--exec /usr/sbin/NetworkManager -- --pid-file /var/run/NetworkManager.pid
|
|
- eend $?
|
|
+ local _retval=$?
|
|
+ eend "${_retval}"
|
|
+ if [ "x${_retval}" = 'x0' ]; then
|
|
+ _is_connected || mark_service_inactive
|
|
+ fi
|
|
+ return "${_retval}"
|
|
}
|
|
|
|
stop() {
|
|
+ if yesno "${IN_BACKGROUND}"; then
|
|
+ _is_connected || mark_service_inactive
|
|
+ return
|
|
+ fi
|
|
ebegin "Stopping NetworkManager"
|
|
start-stop-daemon --stop --quiet --pidfile /var/run/NetworkManager.pid
|
|
eend $?
|
|
--
|
|
1.7.8.4
|
|
|