public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in net-misc/networkmanager/files: networkmanager-0.9.2.0-init-provide-net.patch 10-openrc-status
@ 2012-02-02  0:34 Alexandre Rostovtsev (tetromino)
  0 siblings, 0 replies; only message in thread
From: Alexandre Rostovtsev (tetromino) @ 2012-02-02  0:34 UTC (permalink / raw
  To: gentoo-commits

tetromino    12/02/02 00:34:59

  Added:                networkmanager-0.9.2.0-init-provide-net.patch
                        10-openrc-status
  Log:
  Change the NetworkManager OpenRC service to provide net; the service's status is set to 'inactive' when NetworkManager is running but has no connections up, and to 'started' when NetworkManager is connected (bug #252137, thanks to Xake). Do not keepdir /var/run/NetworkManager, it's not needed in Gentoo (bug #401019, thanks to Maxim Kammerer). Correctly parse single-quoted hostnames in /etc/conf.d/hostname.
  
  (Portage version: 2.2.0_alpha84/cvs/Linux x86_64)

Revision  Changes    Path
1.1                  net-misc/networkmanager/files/networkmanager-0.9.2.0-init-provide-net.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-misc/networkmanager/files/networkmanager-0.9.2.0-init-provide-net.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-misc/networkmanager/files/networkmanager-0.9.2.0-init-provide-net.patch?rev=1.1&content-type=text/plain

Index: networkmanager-0.9.2.0-init-provide-net.patch
===================================================================
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




1.1                  net-misc/networkmanager/files/10-openrc-status

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-misc/networkmanager/files/10-openrc-status?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-misc/networkmanager/files/10-openrc-status?rev=1.1&content-type=text/plain

Index: 10-openrc-status
===================================================================
#!/bin/sh
# Copyright (c) 2012 Alexandre Rostovtsev
# Released under the 2-clause BSD license.

# Ensures that the NetworkManager OpenRC service is marked as started and
# providing net only when it has a successful connection.

# Exit if no valid interface name given
if [ -z "$1" -o "x$1" = "xnone" ]; then
    exit
fi

# Ensure rc-service is in PATH
PATH="${PATH}:@EPREFIX@/sbin:@EPREFIX@/usr/sbin"

# Exit if the NetworkManager OpenRC service is not running
rc-service NetworkManager status 2>&1 | grep -Eq "status: (starting|started|inactive|stopping)" || exit 0

# Call rc-service in background mode so that the start/stop functions update
# NetworkManager service status to started or inactive instead of actually
# starting or stopping the daemon
export IN_BACKGROUND=YES

case "$2" in
    up|vpn-up) exec rc-service NetworkManager start ;;
    down|vpn-down) exec rc-service NetworkManager stop ;;
esac






^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2012-02-02  0:35 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-02  0:34 [gentoo-commits] gentoo-x86 commit in net-misc/networkmanager/files: networkmanager-0.9.2.0-init-provide-net.patch 10-openrc-status Alexandre Rostovtsev (tetromino)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox