Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 May 2011 17:29:03 +0000 (UTC)
From:      Mikolaj Golub <trociny@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r222138 - stable/8/sbin/hastd
Message-ID:  <201105201729.p4KHT3Hv093851@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: trociny
Date: Fri May 20 17:29:03 2011
New Revision: 222138
URL: http://svn.freebsd.org/changeset/base/222138

Log:
  MFC r221632, r221643:
  
  r221632:
  
  Fix isitme(), which is used to check if node-specific configuration
  belongs to our node, and was returning false positive if the first
  part of a node name matches short hostname.
  
  r221643 (pjd):
  
  Allow to specify remote as 'none' again which was broken by r219351, where
  'none' was defined as a value for checksum.
  
  Reported by:    trasz
  
  Approved by:	pjd (mentor)

Modified:
  stable/8/sbin/hastd/parse.y
Directory Properties:
  stable/8/sbin/hastd/   (props changed)

Modified: stable/8/sbin/hastd/parse.y
==============================================================================
--- stable/8/sbin/hastd/parse.y	Fri May 20 17:28:00 2011	(r222137)
+++ stable/8/sbin/hastd/parse.y	Fri May 20 17:29:03 2011	(r222138)
@@ -92,8 +92,10 @@ isitme(const char *name)
 	 * Now check if it matches first part of the host name.
 	 */
 	pos = strchr(buf, '.');
-	if (pos != NULL && pos != buf && strncmp(buf, name, pos - buf) == 0)
+	if (pos != NULL && (size_t)(pos - buf) == strlen(name) &&
+	    strncmp(buf, name, pos - buf) == 0) {
 		return (1);
+	}
 
 	/*
 	 * At the end check if name is equal to our host's UUID.
@@ -287,6 +289,7 @@ yy_config_free(struct hastd_config *conf
 %token FULLSYNC MEMSYNC ASYNC NONE CRC32 SHA256 HOLE LZF
 %token NUM STR OB CB
 
+%type <str> remote_str
 %type <num> replication_type
 %type <num> checksum_type
 %type <num> compression_type
@@ -794,7 +797,7 @@ resource_node_entry:
 	source_statement
 	;
 
-remote_statement:	REMOTE STR
+remote_statement:	REMOTE remote_str
 	{
 		assert(depth == 2);
 		if (mynode) {
@@ -811,6 +814,12 @@ remote_statement:	REMOTE STR
 	}
 	;
 
+remote_str:
+	NONE		{ $$ = strdup("none"); }
+	|
+	STR		{ }
+	;
+
 source_statement:	SOURCE STR
 	{
 		assert(depth == 2);



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