public inbox for lvm2-cvs@sourceware.org
help / color / mirror / Atom feed
* LVM2/daemons/common daemon-shared.c
@ 2012-01-19 15:59 zkabelac
  0 siblings, 0 replies; 3+ messages in thread
From: zkabelac @ 2012-01-19 15:59 UTC (permalink / raw)
  To: lvm-devel, lvm2-cvs

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	zkabelac@sourceware.org	2012-01-19 15:59:52

Modified files:
	daemons/common : daemon-shared.c 

Log message:
	Drop unused variable

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/common/daemon-shared.c.diff?cvsroot=lvm2&r1=1.8&r2=1.9

--- LVM2/daemons/common/daemon-shared.c	2012/01/16 05:09:16	1.8
+++ LVM2/daemons/common/daemon-shared.c	2012/01/19 15:59:51	1.9
@@ -18,7 +18,6 @@
 	int bytes = 0;
 	int buffersize = 32;
 	char *new;
-	char *end;
 	*buffer = malloc(buffersize + 1);
 
 	while (1) {


^ permalink raw reply	[flat|nested] 3+ messages in thread
* LVM2/daemons/common daemon-shared.c
@ 2012-01-16  5:09 mornfall
  0 siblings, 0 replies; 3+ messages in thread
From: mornfall @ 2012-01-16  5:09 UTC (permalink / raw)
  To: lvm-devel, lvm2-cvs

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	mornfall@sourceware.org	2012-01-16 05:09:16

Modified files:
	daemons/common : daemon-shared.c 

Log message:
	Fix a boundary condition in read_buffer in daemon-shared.c.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/common/daemon-shared.c.diff?cvsroot=lvm2&r1=1.7&r2=1.8

--- LVM2/daemons/common/daemon-shared.c	2012/01/15 11:17:16	1.7
+++ LVM2/daemons/common/daemon-shared.c	2012/01/16 05:09:16	1.8
@@ -30,20 +30,19 @@
 		if (result < 0 && errno != EAGAIN && errno != EWOULDBLOCK)
 			goto fail;
 
+		if ((!strncmp((*buffer) + bytes - 4, "\n##\n", 4))) {
+			*(*buffer + bytes - 4) = 0;
+			break; /* success, we have the full message now */
+		}
+
 		if (bytes == buffersize) {
 			buffersize += 1024;
 			if (!(new = realloc(*buffer, buffersize + 1)))
 				goto fail;
 
 			*buffer = new;
-		} else {
-			(*buffer)[bytes] = 0;
-			if ((end = strstr((*buffer) + bytes - 4, "\n##\n"))) {
-				*end = 0;
-				break; /* success, we have the full message now */
-			}
-			/* TODO call select here if we encountered EAGAIN/EWOULDBLOCK */
 		}
+		/* TODO call select here if we encountered EAGAIN/EWOULDBLOCK */
 	}
 	return 1;
 fail:


^ permalink raw reply	[flat|nested] 3+ messages in thread
* LVM2/daemons/common daemon-shared.c
@ 2011-07-18 14:42 mornfall
  0 siblings, 0 replies; 3+ messages in thread
From: mornfall @ 2011-07-18 14:42 UTC (permalink / raw)
  To: lvm-devel, lvm2-cvs

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	mornfall@sourceware.org	2011-07-18 14:42:44

Modified files:
	daemons/common : daemon-shared.c 

Log message:
	Improve format_buffer in daemon-shared.c, adding block formatting in addition
	to string/integer (this propagates to the *simple* family of request/response
	functionality).

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/common/daemon-shared.c.diff?cvsroot=lvm2&r1=1.3&r2=1.4

--- LVM2/daemons/common/daemon-shared.c	2011/06/29 22:20:14	1.3
+++ LVM2/daemons/common/daemon-shared.c	2011/07/18 14:42:44	1.4
@@ -2,6 +2,7 @@
 #include <stdio.h>
 #include <malloc.h>
 #include <string.h>
+#include <assert.h>
 #include "daemon-shared.h"
 
 /*
@@ -74,30 +75,34 @@
 {
 	char *buffer, *old;
 	char *next;
-	char *format;
+	int keylen;
 
 	dm_asprintf(&buffer, "%s = \"%s\"\n", what, id);
 	if (!buffer) goto fail;
 
 	while (next = va_arg(ap, char *)) {
 		old = buffer;
-		if (strstr(next, "%d") || strstr(next, "%s")) {
-			dm_asprintf(&format, "%%s%s\n", next);
-			if (!format) goto fail;
-
-			if (strstr(format, "%d"))
-				dm_asprintf(&buffer, format, buffer, va_arg(ap, int));
-			else
-				dm_asprintf(&buffer, format, buffer, va_arg(ap, char *));
-
-			dm_free(format);
+		assert(strchr(next, '='));
+		keylen = strchr(next, '=') - next;
+		if (strstr(next, "%d")) {
+			int value = va_arg(ap, int);
+			dm_asprintf(&buffer, "%s%.*s= %d\n", buffer, keylen, next, value);
+			dm_free(old);
+		} else if (strstr(next, "%s")) {
+			char *value = va_arg(ap, char *);
+			dm_asprintf(&buffer, "%s%.*s= \"%s\"\n", buffer, keylen, next, value);
+			dm_free(old);
+		} else if (strstr(next, "%b")) {
+			char *block = va_arg(ap, char *);
+			if (!block)
+				continue;
+			dm_asprintf(&buffer, "%s%.*s%s", buffer, keylen, next, block);
 			dm_free(old);
-			if (!buffer) goto fail;
 		} else {
 			dm_asprintf(&buffer, "%s%s", buffer, next);
 			dm_free(old);
-			if (!buffer) goto fail;
 		}
+		if (!buffer) goto fail;
 	}
 
 	old = buffer;


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-01-19 15:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-01-19 15:59 LVM2/daemons/common daemon-shared.c zkabelac
  -- strict thread matches above, loose matches on Subject: below --
2012-01-16  5:09 mornfall
2011-07-18 14:42 mornfall

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).