1/*
2   Unix SMB/CIFS implementation.
3   Samba Version functions
4
5   Copyright (C) Stefan Metzmacher	2003
6
7   This program is free software; you can redistribute it and/or modify
8   it under the terms of the GNU General Public License as published by
9   the Free Software Foundation; either version 2 of the License, or
10   (at your option) any later version.
11
12   This program is distributed in the hope that it will be useful,
13   but WITHOUT ANY WARRANTY; without even the implied warranty of
14   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   GNU General Public License for more details.
16
17   You should have received a copy of the GNU General Public License
18   along with this program; if not, write to the Free Software
19   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20*/
21
22#include "includes.h"
23
24const char *samba_version_string(void)
25{
26#ifndef SAMBA_VERSION_VENDOR_SUFFIX
27	return SAMBA_VERSION_OFFICIAL_STRING;
28#else
29	static fstring samba_version;
30	fstring tmp_version;
31	static BOOL init_samba_version;
32	size_t remaining;
33
34	if (init_samba_version)
35		return samba_version;
36
37	snprintf(samba_version,sizeof(samba_version),"%s-%s",
38		SAMBA_VERSION_OFFICIAL_STRING,
39		SAMBA_VERSION_VENDOR_SUFFIX);
40
41#ifdef SAMBA_VENDOR_PATCH
42	remaining = sizeof(samba_version)-strlen(samba_version);
43	snprintf( tmp_version, sizeof(tmp_version),  "-%d", SAMBA_VENDOR_PATCH );
44	strlcat( samba_version, tmp_version, remaining-1 );
45#endif
46
47	init_samba_version = True;
48	return samba_version;
49#endif
50}
51