[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-test-1833-g92a9c6c

Kai Blin kai at samba.org
Mon Feb 4 16:43:11 GMT 2008


The branch, v3-2-test has been updated
       via  92a9c6c56fa90aead3b7f4a07bf4f3973ba23555 (commit)
      from  be57475cd1d5db60481e74000dc7d65002742376 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 92a9c6c56fa90aead3b7f4a07bf4f3973ba23555
Author: Kai Blin <kai at samba.org>
Date:   Mon Feb 4 16:16:59 2008 +0100

    popt: Use SMB_CONF_PATH environment var if no other configfile is set.
    
    Now --configfile (or -s) will have precedence, if that's not given
    SMB_CONF_PATH is checked, otherwise the $(CONFIGDIR)/smb.conf default
    value is used.
    
    Thanks to Michael for his comments.

-----------------------------------------------------------------------

Summary of changes:
 source/dynconfig.c         |    5 +++++
 source/include/dynconfig.h |   16 ++++++++++++++++
 source/lib/popt_common.c   |   15 ++++++++++++---
 3 files changed, 33 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/dynconfig.c b/source/dynconfig.c
index ab0dd48..57008ec 100644
--- a/source/dynconfig.c
+++ b/source/dynconfig.c
@@ -64,6 +64,11 @@ static char *dyn_##name; \
 	}\
 	dyn_##name = SMB_STRDUP(newpath);\
 	return dyn_##name;\
+}\
+\
+ bool is_default_dyn_##name(void) \
+{\
+	return (dyn_##name == NULL);\
 }
 
 DEFINE_DYN_CONFIG_PARAM(SBINDIR)
diff --git a/source/include/dynconfig.h b/source/include/dynconfig.h
index bb7e2c2..cba7164 100644
--- a/source/include/dynconfig.h
+++ b/source/include/dynconfig.h
@@ -41,42 +41,58 @@ extern char dyn_PRIVATE_DIR[1024];
 
 const char *get_dyn_SBINDIR(void);
 const char *set_dyn_SBINDIR(const char *newpath);
+bool is_default_dyn_SBINDIR(void);
 
 const char *get_dyn_BINDIR(void);
 const char *set_dyn_BINDIR(const char *newpath);
+bool is_default_dyn_BINDIR(void);
 
 const char *get_dyn_SWATDIR(void);
 const char *set_dyn_SWATDIR(const char *newpath);
+bool is_default_dyn_SWATDIR(void);
 
 const char *get_dyn_CONFIGFILE(void);
 const char *set_dyn_CONFIGFILE(const char *newpath);
+bool is_default_dyn_CONFIGFILE(void);
 
 const char *get_dyn_dyn_LOGFILEBASE(void);
 const char *set_dyn_dyn_LOGFILEBASE(const char *newpath);
+bool is_default_dyn_LOGFILEBASE(void);
 
 const char *get_dyn_LMHOSTSFILE(void);
 const char *set_dyn_LMHOSTSFILE(const char *newpath);
+bool is_default_dyn_LOGFILEBASE(void);
 
 const char *get_dyn_CODEPAGEDIR(void);
 const char *set_dyn_CODEPAGEDIR(const char *newpath);
+bool is_default_dyn_CODEPAGEDIR(void);
 
 const char *get_dyn_LIBDIR(void);
 const char *set_dyn_LIBDIR(const char *newpath);
+bool is_default_dyn_LIBDIR(void);
 
 const char *get_dyn_SHLIBEXT(void);
 const char *set_dyn_SHLIBEXT(const char *newpath);
+bool is_default_dyn_SHLIBEXT(void);
 
 const char *get_dyn_LOCKDIR(void);
 const char *set_dyn_LOCKDIR(const char *newpath);
+bool is_default_dyn_LOCKDIR(void);
 
 const char *get_dyn_PIDDIR(void);
 const char *set_dyn_PIDDIR(const char *newpath);
+bool is_default_dyn_PIDDIR(void);
 
 const char *get_dyn_SMB_PASSWD_FILE(void);
 const char *set_dyn_SMB_PASSWD_FILE(const char *newpath);
+bool is_default_dyn_SMB_PASSWD_FILE(void);
 
 const char *get_dyn_PRIVATE_DIR(void);
 const char *set_dyn_PRIVATE_DIR(const char *newpath);
+bool is_default_dyn_PRIVATE_DIR(void);
 
 const char *get_dyn_STATEDIR(void);
+bool is_default_dyn_STATEDIR(void);
+
 const char *get_dyn_CACHEDIR(void);
+bool is_default_dyn_CACHEDIR(bool);
diff --git a/source/lib/popt_common.c b/source/lib/popt_common.c
index 5a9d39d..7f7d23f 100644
--- a/source/lib/popt_common.c
+++ b/source/lib/popt_common.c
@@ -71,10 +71,19 @@ static void popt_common_callback(poptContext con,
 	}
 
 	if (reason == POPT_CALLBACK_REASON_POST) {
-		if (!PrintSambaVersionString) return;
 
-		printf( "Version %s\n", SAMBA_VERSION_STRING);
-		exit(0);
+		if (PrintSambaVersionString) {
+			printf( "Version %s\n", SAMBA_VERSION_STRING);
+			exit(0);
+		}
+
+		if (is_default_dyn_CONFIGFILE()) {
+			if(getenv("SMB_CONF_PATH")) {
+				set_dyn_CONFIGFILE(getenv("SMB_CONF_PATH"));
+			}
+		}
+
+		/* Further 'every Samba program must do this' hooks here. */
 		return;
 	}
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list