2003-08-13 05:53:07 +04:00
/*
Unix SMB / CIFS implementation .
Copyright ( C ) 2001 by Martin Pool < mbp @ samba . org >
2004-07-28 17:08:08 +04:00
Copyright ( C ) Jim McDonough ( jmcd @ us . ibm . com ) 2003.
2006-02-23 18:52:24 +03:00
Copyright ( C ) Stefan Metzmacher 2003
2003-08-13 05:53:07 +04:00
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
the Free Software Foundation ; either version 2 of the License , or
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program ; if not , write to the Free Software
Foundation , Inc . , 675 Mass Ave , Cambridge , MA 0213 9 , USA .
*/
2006-02-23 18:52:24 +03:00
# include "includes.h"
# include "version.h"
2003-08-13 05:53:07 +04:00
/**
* @ file dynconfig . c
*
* @ brief Global configurations , initialized to configured defaults .
*
* This file should be the only file that depends on path
* configuration ( - - prefix , etc ) , so that if . / configure is re - run ,
* all programs will be appropriately updated . Everything else in
* Samba should import extern variables from here , rather than relying
* on preprocessor macros .
*
* Eventually some of these may become even more variable , so that
* they can for example consistently be set across the whole of Samba
* by command - line parameters , config file entries , or environment
* variables .
*
* @ todo Perhaps eventually these should be merged into the parameter
* table ? There ' s kind of a chicken - and - egg situation there . . .
* */
2005-09-23 04:38:22 +04:00
/** Directory with super-user binaries */
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_SBINDIR = SBINDIR ;
2005-09-23 04:38:22 +04:00
/** Directory with generic binaries */
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_BINDIR = BINDIR ;
2003-08-13 05:53:07 +04:00
2005-09-23 04:38:22 +04:00
/**< Location of smb.conf file. **/
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_CONFIGFILE = CONFIGFILE ;
2003-08-13 05:53:07 +04:00
/** Log file directory. **/
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_LOGFILEBASE = LOGFILEBASE ;
2003-08-13 05:53:07 +04:00
2005-09-23 04:38:22 +04:00
/** Directory for local RPC (ncalrpc: transport) */
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_NCALRPCDIR = NCALRPCDIR ;
2004-10-24 18:57:16 +04:00
2003-08-13 05:53:07 +04:00
/** Statically configured LanMan hosts. **/
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_LMHOSTSFILE = LMHOSTSFILE ;
2003-08-13 05:53:07 +04:00
2005-09-23 04:38:22 +04:00
/** Samba library directory. */
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_LIBDIR = LIBDIR ;
2005-09-23 04:38:22 +04:00
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_MODULESDIR = MODULESDIR ;
2005-12-26 19:46:55 +03:00
2005-09-23 04:38:22 +04:00
/** Shared library extension */
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_SHLIBEXT = SHLIBEXT ;
2003-08-13 05:53:07 +04:00
/**
* @ brief Directory holding lock files .
*
* Not writable , but used to set a default in the parameter table .
* */
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_LOCKDIR = LOCKDIR ;
2005-09-23 04:38:22 +04:00
/** pid file directory */
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_PIDDIR = PIDDIR ;
2003-08-13 05:53:07 +04:00
2005-09-23 04:38:22 +04:00
/** Private data directory; holds ldb files and the like */
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_PRIVATE_DIR = PRIVATE_DIR ;
2005-09-23 04:38:22 +04:00
/** SWAT data file (images, etc) directory */
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_SWATDIR = SWATDIR ;
2006-01-26 13:18:26 +03:00
2006-01-31 03:48:57 +03:00
/** SETUP files (source files used by the provision) */
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_SETUPDIR = SETUPDIR ;
2006-01-26 13:18:26 +03:00
2006-01-31 03:48:57 +03:00
/** EJS Javascript library includes */
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_JSDIR = JSDIR ;
2006-01-31 03:48:57 +03:00
/** Where to find the winbindd socket */
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * dyn_WINBINDD_SOCKET_DIR = WINBINDD_SOCKET_DIR ;
2006-01-31 03:48:57 +03:00
2006-03-07 19:50:51 +03:00
_PUBLIC_ const char * samba_version_string ( void )
2006-02-23 18:52:24 +03:00
{
const char * official_string = SAMBA_VERSION_OFFICIAL_STRING ;
# ifdef SAMBA_VERSION_RELEASE_NICKNAME
const char * release_nickname = SAMBA_VERSION_RELEASE_NICKNAME ;
# else
const char * release_nickname = NULL ;
# endif
# ifdef SAMBA_VERSION_VENDOR_SUFFIX
const char * vendor_suffix = SAMBA_VERSION_VENDOR_SUFFIX ;
# else
const char * vendor_suffix = NULL ;
# endif
# ifdef SAMBA_VERSION_VENDOR_PATCH
const char * vendor_patch = SAMBA_VERSION_VENDOR_PATCH ;
# else
const char * vendor_patch = NULL ;
# endif
static char * samba_version ;
static BOOL init_samba_version ;
if ( init_samba_version ) {
return samba_version ;
}
samba_version = talloc_asprintf ( talloc_autofree_context ( ) ,
" %s%s%s%s%s%s%s%s " ,
official_string ,
( vendor_suffix ? " - " : " " ) ,
( vendor_suffix ? vendor_suffix : " " ) ,
( vendor_patch ? " - " : " " ) ,
( vendor_patch ? vendor_patch : " " ) ,
( release_nickname ? " ( " : " " ) ,
( release_nickname ? release_nickname : " " ) ,
( release_nickname ? " ) " : " " ) ) ;
init_samba_version = True ;
return samba_version ;
}