Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Oct 2011 22:35:15 +0200
From:      "Ronald Klop" <ronald-freebsd8@klop.yi.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, "Hiroki Sato" <hrs@freebsd.org>
Subject:   Re: svn commit: r226775 - in head: etc sbin/devd
Message-ID:  <op.v30141fz8527sy@212-182-167-131.ip.telfort.nl>
In-Reply-To: <201110260211.p9Q2BStn027230@svn.freebsd.org>
References:  <201110260211.p9Q2BStn027230@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

I like this. Do you have plans the commit it on stable/9?

Ronald.

On Wed, 26 Oct 2011 04:11:28 +0200, Hiroki Sato <hrs@freebsd.org> wrote:

> Author: hrs
> Date: Wed Oct 26 02:11:28 2011
> New Revision: 226775
> URL: http://svn.freebsd.org/changeset/base/226775
>
> Log:
>   - Add support for a "!" character in regex matching in devd(8).  It =20
> inverts
>     the logic (true/false) of the matching.
>  - Add "!usbus[0-9]+" to IFNET ATTACH notification handler in the defau=
lt
>     devd.conf to prevent rc.d/netif from running when usbus[0-9]+ is =20
> attached.
>  Reviewed by:	imp
>
> Modified:
>   head/etc/devd.conf
>   head/sbin/devd/devd.cc
>   head/sbin/devd/devd.conf.5
>   head/sbin/devd/devd.hh
>
> Modified: head/etc/devd.conf
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/etc/devd.conf	Wed Oct 26 01:58:36 2011	(r226774)
> +++ head/etc/devd.conf	Wed Oct 26 02:11:28 2011	(r226775)
> @@ -38,6 +38,7 @@ options {
>  #
>  notify 0 {
>  	match "system"		"IFNET";
> +	match "subsystem"	"!usbus[0-9]+";
>  	match "type"		"ATTACH";
>  	action "/etc/pccard_ether $subsystem start";
>  };
>
> Modified: head/sbin/devd/devd.cc
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sbin/devd/devd.cc	Wed Oct 26 01:58:36 2011	(r226774)
> +++ head/sbin/devd/devd.cc	Wed Oct 26 02:11:28 2011	(r226775)
> @@ -251,7 +251,14 @@ match::match(config &c, const char *var,
>  	: _var(var)
>  {
>  	_re =3D "^";
> -	_re.append(c.expand_string(string(re)));
> +	if (!c.expand_string(string(re)).empty() &&
> +	    c.expand_string(string(re)).at(0) =3D=3D '!') {
> +		_re.append(c.expand_string(string(re)).substr(1));
> +		_inv =3D 1;
> +	} else {
> +		_re.append(c.expand_string(string(re)));
> +		_inv =3D 0;
> +	}
>  	_re.append("$");
>  	regcomp(&_regex, _re.c_str(), REG_EXTENDED | REG_NOSUB | REG_ICASE);
>  }
> @@ -268,10 +275,13 @@ match::do_match(config &c)
>  	bool retval;
> 	if (Dflag)
> -		fprintf(stderr, "Testing %s=3D%s against %s\n", _var.c_str(),
> -		    value.c_str(), _re.c_str());
> +		fprintf(stderr, "Testing %s=3D%s against %s, invert=3D%d\n",
> +		    _var.c_str(), value.c_str(), _re.c_str(), _inv);
> 	retval =3D (regexec(&_regex, value.c_str(), 0, NULL, 0) =3D=3D 0);
> +	if (_inv =3D=3D 1)
> +		retval =3D (retval =3D=3D 0) ? 1 : 0;
> +
>  	return retval;
>  }
>
> Modified: head/sbin/devd/devd.conf.5
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sbin/devd/devd.conf.5	Wed Oct 26 01:58:36 2011	(r226774)
> +++ head/sbin/devd/devd.conf.5	Wed Oct 26 02:11:28 2011	(r226775)
> @@ -41,7 +41,7 @@
>  .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANC=
E =20
> OF THIS
>  .\" SOFTWARE.
>  .\"
> -.Dd March 8, 2009
> +.Dd October 25, 2011
>  .Dt DEVD.CONF 5
>  .Os
>  .Sh NAME
> @@ -121,6 +121,10 @@ Creates a regular expression and assigns
>  .Ar regexp-name .
>  The variable is available throughout the rest of
>  the configuration file.
> +If the string begins with
> +.Ql \&! ,
> +it matches if the regular expression formed by the rest of the string
> +does not match.
>  All regular expressions have an implicit
>  .Ql ^$
>  around them.
>
> Modified: head/sbin/devd/devd.hh
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sbin/devd/devd.hh	Wed Oct 26 01:58:36 2011	(r226774)
> +++ head/sbin/devd/devd.hh	Wed Oct 26 02:11:28 2011	(r226775)
> @@ -92,6 +92,7 @@ public:
>  private:
>  	std::string _var;
>  	std::string _re;
> +	bool _inv;
>  	regex_t _regex;
>  };
> _______________________________________________
> svn-src-all@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/svn-src-all
> To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?op.v30141fz8527sy>