Just include rsync.h rather than all the individual headers.
[rsync.git] / loadparm.c
index 0083d1e94cd9376a43f70fa44b130cfb45eb46d7..92b01488324aabd156725ea49e5dc5fdc5c4daa6 100644 (file)
@@ -1,6 +1,11 @@
 /* This is based on loadparm.c from Samba, written by Andrew Tridgell
    and Karl Auer */
 
+/* some fixes
+ *
+ * Copyright (C) 2001 by Martin Pool <mbp@samba.org>
+ */
+
 /* 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -77,8 +82,6 @@ struct parm_struct
        unsigned flags;
 };
 
-static BOOL bLoaded = False;
-
 #ifndef GLOBAL_NAME
 #define GLOBAL_NAME "global"
 #endif
@@ -381,14 +384,23 @@ static void init_service(service *pservice)
        copy_service(pservice,&sDefault);
 }
 
-static void string_set(char **s, char *v)
+
+/**
+ * Assign a copy of @p v to @p *s, freeing any existing values and
+ * handling NULL strings.  @p *v must be initialized when this is
+ * called, either to NULL or a malloc'd string.
+ **/
+static void string_set(char **s, const char *v)
 {
        if (!v) {
                *s = NULL;
                return;
        }
+       if (*s)
+               free(*s);
        *s = strdup(v);
-       if (!*s) exit_cleanup(RERR_MALLOC);
+       if (!*s)
+               exit_cleanup(RERR_MALLOC);
 }
 
 
@@ -734,8 +746,6 @@ BOOL lp_load(char *pszFname, int globals_only)
        iServiceIndex = -1;
        bRetval = pm_process(n2, globals_only?NULL:do_section, do_parameter);
   
-       bLoaded = True;
-
        return (bRetval);
 }