1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00

s3:lib split out global workgroup and netbios name functions.

Having these in their own file allows easier selective inclusion.

Andrew Bartlett

Signed-off-by: Stefan Metzmacher <metze@samba.org>
This commit is contained in:
Andrew Bartlett 2010-05-17 16:25:26 +10:00 committed by Stefan Metzmacher
parent 59422efca9
commit 539ef13bfe
4 changed files with 82 additions and 47 deletions

View File

@ -398,7 +398,8 @@ LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) \
lib/wins_srv.o \
lib/util_str.o lib/clobber.o lib/util_sid.o lib/util_uuid.o \
lib/util_unistr.o lib/util_file.o \
lib/util.o lib/util_sock.o lib/sock_exec.o lib/util_sec.o \
lib/util.o lib/util_names.o \
lib/util_sock.o lib/sock_exec.o lib/util_sec.o \
lib/substitute.o lib/dbwrap_util.o \
lib/ms_fnmatch.o lib/select.o lib/errmap_unix.o \
lib/tallocmsg.o lib/dmallocmsg.o \

View File

@ -1125,15 +1125,18 @@ bool nt_time_is_set(const NTTIME *nt);
char *get_user_home_dir(TALLOC_CTX *mem_ctx, const char *user);
struct passwd *Get_Pwnam_alloc(TALLOC_CTX *mem_ctx, const char *user);
/* The following definitions come from lib/util_names.c */
void gfree_netbios_names(void);
bool set_global_myname(const char *myname);
const char *global_myname(void);
bool set_global_myworkgroup(const char *myworkgroup);
const char *lp_workgroup(void);
/* The following definitions come from lib/util.c */
enum protocol_types get_Protocol(void);
void set_Protocol(enum protocol_types p);
bool all_zero(const uint8_t *ptr, size_t size);
bool set_global_myname(const char *myname);
const char *global_myname(void);
bool set_global_myworkgroup(const char *myworkgroup);
const char *lp_workgroup(void);
bool set_global_scope(const char *scope);
const char *global_scope(void);
void gfree_names(void);

View File

@ -73,50 +73,10 @@ static enum remote_arch_types ra_type = RA_UNKNOWN;
Definitions for all names.
***********************************************************************/
static char *smb_myname;
static char *smb_myworkgroup;
static char *smb_scope;
static int smb_num_netbios_names;
static char **smb_my_netbios_names;
/***********************************************************************
Allocate and set myname. Ensure upper case.
***********************************************************************/
bool set_global_myname(const char *myname)
{
SAFE_FREE(smb_myname);
smb_myname = SMB_STRDUP(myname);
if (!smb_myname)
return False;
strupper_m(smb_myname);
return True;
}
const char *global_myname(void)
{
return smb_myname;
}
/***********************************************************************
Allocate and set myworkgroup. Ensure upper case.
***********************************************************************/
bool set_global_myworkgroup(const char *myworkgroup)
{
SAFE_FREE(smb_myworkgroup);
smb_myworkgroup = SMB_STRDUP(myworkgroup);
if (!smb_myworkgroup)
return False;
strupper_m(smb_myworkgroup);
return True;
}
const char *lp_workgroup(void)
{
return smb_myworkgroup;
}
/***********************************************************************
Allocate and set scope. Ensure upper case.
***********************************************************************/
@ -184,8 +144,7 @@ static bool set_my_netbios_names(const char *name, int i)
void gfree_names(void)
{
SAFE_FREE( smb_myname );
SAFE_FREE( smb_myworkgroup );
gfree_netbios_names();
SAFE_FREE( smb_scope );
free_netbios_names_array();
free_local_machine_name();

72
source3/lib/util_names.c Normal file
View File

@ -0,0 +1,72 @@
/*
Unix SMB/CIFS implementation.
Samba utility functions
Copyright (C) Andrew Tridgell 1992-1998
Copyright (C) Jeremy Allison 2001-2007
Copyright (C) Simo Sorce 2001
Copyright (C) Jim McDonough <jmcd@us.ibm.com> 2003
Copyright (C) James Peach 2006
Copyright (C) Andrew Bartlett 2010
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 3 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, see <http://www.gnu.org/licenses/>.
*/
#include "includes.h"
static char *smb_myname;
static char *smb_myworkgroup;
/***********************************************************************
Allocate and set myname. Ensure upper case.
***********************************************************************/
bool set_global_myname(const char *myname)
{
SAFE_FREE(smb_myname);
smb_myname = SMB_STRDUP(myname);
if (!smb_myname)
return False;
strupper_m(smb_myname);
return True;
}
const char *global_myname(void)
{
return smb_myname;
}
/***********************************************************************
Allocate and set myworkgroup. Ensure upper case.
***********************************************************************/
bool set_global_myworkgroup(const char *myworkgroup)
{
SAFE_FREE(smb_myworkgroup);
smb_myworkgroup = SMB_STRDUP(myworkgroup);
if (!smb_myworkgroup)
return False;
strupper_m(smb_myworkgroup);
return True;
}
const char *lp_workgroup(void)
{
return smb_myworkgroup;
}
void gfree_netbios_names(void)
{
SAFE_FREE( smb_myname );
SAFE_FREE( smb_myworkgroup );
}