2 Unix SMB/CIFS implementation.
3 Samba Version functions
5 Copyright (C) Stefan Metzmacher 2003
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 3 of the License, or
10 (at your option) any later version.
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.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
24 const char *samba_version_string(void)
26 #ifndef SAMBA_VERSION_VENDOR_SUFFIX
27 return SAMBA_VERSION_OFFICIAL_STRING
;
29 static char *samba_version
;
31 #ifdef SAMBA_VERSION_VENDOR_PATCH
35 if (samba_version
!= NULL
)
38 res
= asprintf(&samba_version
, "%s-%s",
39 SAMBA_VERSION_OFFICIAL_STRING
,
40 SAMBA_VERSION_VENDOR_SUFFIX
);
42 * Can't use smb_panic here due to dependencies
46 #ifdef SAMBA_VERSION_VENDOR_PATCH
47 res
= asprintf(&tmp_version
, "%s-%d", samba_version
,
48 SAMBA_VERSION_VENDOR_PATCH
);
50 * Can't use smb_panic here due to dependencies
54 SAFE_FREE(samba_version
);
56 samba_version
= tmp_version
;
63 void samba_extended_info_version(struct smb_extended_info
*extended_info
)
65 assert(extended_info
!= NULL
);
67 extended_info
->samba_magic
= SAMBA_EXTENDED_INFO_MAGIC
;
68 extended_info
->samba_version
= ((SAMBA_VERSION_MAJOR
& 0xff) << 24)
69 | ((SAMBA_VERSION_MINOR
& 0xff) << 16)
70 | ((SAMBA_VERSION_RELEASE
& 0xff) << 8);
71 #ifdef SAMBA_VERSION_REVISION
72 extended_info
->samba_version
|= (tolower(*SAMBA_VERSION_REVISION
) - 'a' + 1) & 0xff;
74 #ifdef SAMBA_VERSION_RC_RELEASE
75 extended_info
->samba_subversion
|= (SAMBA_VERSION_RC_RELEASE
& 0xff) << 24;
77 #ifdef SAMBA_VERSION_PRE_RELEASE
78 extended_info
->samba_subversion
|= (SAMBA_VERSION_PRE_RELEASE
& 0xff) << 16;
81 #ifdef SAMBA_VERSION_VENDOR_PATCH
82 extended_info
->samba_subversion
|= (SAMBA_VERSION_VENDOR_PATCH
& 0xffff);
84 /* FIXME: samba_gitcommitdate should contain the git commit date. */
85 unix_to_nt_time(&extended_info
->samba_gitcommitdate
, time(NULL
));
87 memset(extended_info
->samba_version_string
, 0,
88 sizeof(extended_info
->samba_version_string
));
90 snprintf (extended_info
->samba_version_string
,
91 sizeof(extended_info
->samba_version_string
),
92 "%s", samba_version_string());