You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

186 lines
4.0 KiB

---
libmultipath/parser.c | 103 +++-----------------------------------------------
libmultipath/parser.h | 6 --
2 files changed, 8 insertions(+), 101 deletions(-)
Index: multipath-tools-130222/libmultipath/parser.c
===================================================================
--- multipath-tools-130222.orig/libmultipath/parser.c
+++ multipath-tools-130222/libmultipath/parser.c
@@ -280,8 +280,8 @@ out:
return NULL;
}
-int
-read_line(char *buf, int size)
+static int
+read_line(FILE *stream, char *buf, int size)
{
int ch;
int count = 0;
@@ -297,95 +297,6 @@ read_line(char *buf, int size)
return (ch == EOF) ? 0 : 1;
}
-vector
-read_value_block(void)
-{
- char *buf;
- int i;
- char *str = NULL;
- char *dup;
- vector vec = NULL;
- vector elements = vector_alloc();
-
- if (!elements)
- return NULL;
-
- buf = (char *) MALLOC(MAXBUF);
-
- if (!buf) {
- vector_free(elements);
- return NULL;
- }
-
- while (read_line(buf, MAXBUF)) {
- vec = alloc_strvec(buf);
- if (vec) {
- str = VECTOR_SLOT(vec, 0);
- if (!strcmp(str, EOB)) {
- free_strvec(vec);
- break;
- }
-
- for (i = 0; i < VECTOR_SIZE(vec); i++) {
- str = VECTOR_SLOT(vec, i);
- dup = (char *) MALLOC(strlen(str) + 1);
- if (!dup)
- goto out;
- memcpy(dup, str, strlen(str));
-
- if (!vector_alloc_slot(elements)) {
- free_strvec(vec);
- goto out1;
- }
-
- vector_set_slot(elements, dup);
- }
- free_strvec(vec);
- }
- memset(buf, 0, MAXBUF);
- }
- FREE(buf);
- return elements;
-out1:
- FREE(dup);
-out:
- FREE(buf);
- vector_free(elements);
- return NULL;
-}
-
-int
-alloc_value_block(vector strvec, void (*alloc_func) (vector))
-{
- char *buf;
- char *str = NULL;
- vector vec = NULL;
-
- buf = (char *) MALLOC(MAXBUF);
-
- if (!buf)
- return 1;
-
- while (read_line(buf, MAXBUF)) {
- vec = alloc_strvec(buf);
- if (vec) {
- str = VECTOR_SLOT(vec, 0);
- if (!strcmp(str, EOB)) {
- free_strvec(vec);
- break;
- }
-
- if (VECTOR_SIZE(vec))
- (*alloc_func) (vec);
-
- free_strvec(vec);
- }
- memset(buf, 0, MAXBUF);
- }
- FREE(buf);
- return 0;
-}
-
void *
set_value(vector strvec)
{
@@ -561,7 +472,7 @@ validate_config_strvec(vector strvec, ch
}
static int
-process_stream(vector keywords, char *file)
+process_stream(FILE *stream, vector keywords, char *file)
{
int i;
int r = 0;
@@ -582,7 +493,7 @@ process_stream(vector keywords, char *fi
return 1;
}
- while (read_line(buf, MAXBUF)) {
+ while (read_line(stream, buf, MAXBUF)) {
line_nr++;
strvec = alloc_strvec(buf);
memset(buf,0, MAXBUF);
@@ -621,7 +532,8 @@ process_stream(vector keywords, char *fi
if (keyword->sub) {
kw_level++;
- r += process_stream(keyword->sub, file);
+ r += process_stream(stream,
+ keyword->sub, file);
kw_level--;
}
break;
@@ -656,6 +568,7 @@ int
process_file(char *file)
{
int r;
+ FILE *stream;
if (!keywords) {
condlog(0, "No keywords alocated");
@@ -670,7 +583,7 @@ process_file(char *file)
/* Stream handling */
line_nr = 0;
- r = process_stream(keywords, file);
+ r = process_stream(stream, keywords, file);
fclose(stream);
//free_keywords(keywords);
Index: multipath-tools-130222/libmultipath/parser.h
===================================================================
--- multipath-tools-130222.orig/libmultipath/parser.h
+++ multipath-tools-130222/libmultipath/parser.h
@@ -47,9 +47,6 @@ struct keyword {
int unique;
};
-/* global var exported */
-FILE *stream;
-
/* Reloading helpers */
#define SET_RELOAD (reload = 1)
#define UNSET_RELOAD (reload = 0)
@@ -72,9 +69,6 @@ extern int _install_keyword(char *string
extern void dump_keywords(vector keydump, int level);
extern void free_keywords(vector keywords);
extern vector alloc_strvec(char *string);
-extern int read_line(char *buf, int size);
-extern vector read_value_block(void);
-extern int alloc_value_block(vector strvec, void (*alloc_func) (vector));
extern void *set_value(vector strvec);
extern int alloc_keywords(void);
extern int process_file(char *conf_file);