summaryrefslogtreecommitdiff
path: root/usr/src/lib/smbsrv/libsmb/common
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/smbsrv/libsmb/common')
-rw-r--r--usr/src/lib/smbsrv/libsmb/common/libsmb.h8
-rw-r--r--usr/src/lib/smbsrv/libsmb/common/mapfile-vers44
-rw-r--r--usr/src/lib/smbsrv/libsmb/common/smb_acl.c4
-rw-r--r--usr/src/lib/smbsrv/libsmb/common/smb_auth.c38
-rw-r--r--usr/src/lib/smbsrv/libsmb/common/smb_domain.c9
-rw-r--r--usr/src/lib/smbsrv/libsmb/common/smb_info.c13
-rw-r--r--usr/src/lib/smbsrv/libsmb/common/smb_lgrp.c10
-rw-r--r--usr/src/lib/smbsrv/libsmb/common/smb_privilege.c6
-rw-r--r--usr/src/lib/smbsrv/libsmb/common/smb_sam.c6
-rw-r--r--usr/src/lib/smbsrv/libsmb/common/smb_wksids.c2
10 files changed, 62 insertions, 78 deletions
diff --git a/usr/src/lib/smbsrv/libsmb/common/libsmb.h b/usr/src/lib/smbsrv/libsmb/common/libsmb.h
index 029294f3a7..189bce0021 100644
--- a/usr/src/lib/smbsrv/libsmb/common/libsmb.h
+++ b/usr/src/lib/smbsrv/libsmb/common/libsmb.h
@@ -50,12 +50,8 @@ extern "C" {
#include <smbsrv/ntstatus.h>
#include <smbsrv/smb_door_svc.h>
#include <smbsrv/alloc.h>
-#include <smbsrv/codepage.h>
-#include <smbsrv/ctype.h>
#include <smbsrv/hash_table.h>
#include <smbsrv/msgbuf.h>
-#include <smbsrv/oem.h>
-#include <smbsrv/smb_i18n.h>
#include <smbsrv/wintypes.h>
#include <smbsrv/smb_xdr.h>
#include <smbsrv/smbinfo.h>
@@ -324,7 +320,7 @@ void smb_tracef(const char *fmt, ...);
typedef struct smb_auth_name_entry {
unsigned short nne_type;
unsigned short nne_len;
- mts_wchar_t nne_name[SMB_PI_MAX_DOMAIN * 2];
+ smb_wchar_t nne_name[SMB_PI_MAX_DOMAIN * 2];
} smb_auth_name_entry_t;
/*
@@ -449,7 +445,7 @@ extern int smb_pwd_iteropen(smb_pwditer_t *);
extern smb_luser_t *smb_pwd_iterate(smb_pwditer_t *);
extern void smb_pwd_iterclose(smb_pwditer_t *);
-extern int smb_auth_qnd_unicode(mts_wchar_t *, const char *, int);
+extern int smb_auth_qnd_unicode(smb_wchar_t *, const char *, int);
extern int smb_auth_hmac_md5(unsigned char *, int, unsigned char *, int,
unsigned char *);
diff --git a/usr/src/lib/smbsrv/libsmb/common/mapfile-vers b/usr/src/lib/smbsrv/libsmb/common/mapfile-vers
index 0f895b0654..4191970939 100644
--- a/usr/src/lib/smbsrv/libsmb/common/mapfile-vers
+++ b/usr/src/lib/smbsrv/libsmb/common/mapfile-vers
@@ -39,10 +39,6 @@
SUNWprivate {
global:
bintohex;
- codepage_islower;
- codepage_isupper;
- codepage_tolower;
- codepage_toupper;
hexdump;
hextobin;
ht_add_item;
@@ -74,20 +70,9 @@ SUNWprivate {
list_prev;
list_remove;
list_tail;
- mts_mbstos;
- mts_mbstowcs;
- mts_mbtowc;
- mts_sbequiv_strlen;
- mts_stombs;
- mts_wcequiv_strlen;
- mts_wcstombs;
- mts_wctomb;
netr_client_mkabsolute;
netr_client_xfree;
- oem_get_smb_cpid;
- oem_get_telnet_cpid;
- oem_language_set;
- oemstounicodes;
+ oemtoucs;
rand_hash;
randomize;
smb_account_free;
@@ -109,6 +94,7 @@ SUNWprivate {
smb_auth_validate_lm;
smb_auth_validate_nt;
smb_chk_hostaccess;
+ smb_codepage_init;
smb_config_get;
smb_config_get_fg_flag;
smb_config_get_localsid;
@@ -226,6 +212,10 @@ SUNWprivate {
smb_ipc_rollback;
smb_ipc_get_user;
smb_ipc_get_passwd;
+ smb_islower;
+ smb_isupper;
+ smb_isstrlwr;
+ smb_isstrupr;
smb_kmod_bind;
smb_kmod_enum;
smb_kmod_enum_init;
@@ -275,6 +265,9 @@ SUNWprivate {
smb_match;
smb_match_ci;
smb_match_netlogon_seqnum;
+ smb_mbstos;
+ smb_mbstowcs;
+ smb_mbtowc;
smb_msgbuf_base;
smb_msgbuf_decode;
smb_msgbuf_dword_align;
@@ -335,6 +328,7 @@ SUNWprivate {
smb_sam_grp_cnt;
smb_sam_usr_cnt;
smb_sam_usr_groups;
+ smb_sbequiv_strlen;
smb_sd_get_secinfo;
smb_sd_init;
smb_sd_len;
@@ -358,12 +352,21 @@ SUNWprivate {
smb_sid_type2str;
smb_smf_maintenance_mode;
smb_smf_restart_service;
+ smb_stombs;
+ smb_strcasecmp;
+ smb_strlwr;
+ smb_strupr;
+ smb_tolower;
+ smb_toupper;
smb_token_mkselfrel;
smb_token_query_privilege;
smb_tonetbiosname;
smb_trace;
smb_tracef;
smb_update_netlogon_seqnum;
+ smb_wcequiv_strlen;
+ smb_wcstombs;
+ smb_wctomb;
smb_wka_fini;
smb_wka_get_domain;
smb_wka_get_sid;
@@ -379,14 +382,7 @@ SUNWprivate {
strsubst;
strtrim;
trim_whitespace;
- unicodestooems;
- utf8_isstrascii;
- utf8_isstrlwr;
- utf8_isstrupr;
- utf8_strcasecmp;
- utf8_strlwr;
- utf8_strncasecmp;
- utf8_strupr;
+ ucstooem;
xdr_smb_dr_bytes_t;
xdr_smb_dr_joininfo_t;
xdr_smb_dr_string_t;
diff --git a/usr/src/lib/smbsrv/libsmb/common/smb_acl.c b/usr/src/lib/smbsrv/libsmb/common/smb_acl.c
index 81b544dcd0..9d981ceeb4 100644
--- a/usr/src/lib/smbsrv/libsmb/common/smb_acl.c
+++ b/usr/src/lib/smbsrv/libsmb/common/smb_acl.c
@@ -27,11 +27,9 @@
#include <strings.h>
#include <assert.h>
-#include <smbsrv/ntifs.h>
+#include <smbsrv/smb.h>
#include <smbsrv/smb_sid.h>
#include <smbsrv/smb_idmap.h>
-#include <smbsrv/ntstatus.h>
-#include <smbsrv/ntaccess.h>
#define ACE_ALL_TYPES 0x001F
diff --git a/usr/src/lib/smbsrv/libsmb/common/smb_auth.c b/usr/src/lib/smbsrv/libsmb/common/smb_auth.c
index 161fcd4d27..b53d109ed7 100644
--- a/usr/src/lib/smbsrv/libsmb/common/smb_auth.c
+++ b/usr/src/lib/smbsrv/libsmb/common/smb_auth.c
@@ -25,9 +25,7 @@
#include <strings.h>
#include <stdlib.h>
-#include <smbsrv/codepage.h>
-#include <smbsrv/oem.h>
-#include <smbsrv/ctype.h>
+#include <smbsrv/string.h>
#include <smbsrv/libsmb.h>
extern void randomize(char *data, unsigned len);
@@ -40,24 +38,22 @@ static uint64_t unix_micro_to_nt_time(struct timeval *unix_time);
* Returns the length of dst in bytes.
*/
int
-smb_auth_qnd_unicode(mts_wchar_t *dst, const char *src, int length)
+smb_auth_qnd_unicode(smb_wchar_t *dst, const char *src, int length)
{
int i;
-
- unsigned int cpid = oem_get_telnet_cpid();
unsigned int count;
- mts_wchar_t new_char;
+ smb_wchar_t new_char;
- if ((count = oemstounicodes(dst, src, length, cpid)) == 0) {
+ if ((count = oemtoucs(dst, src, length, OEM_CPG_1252)) == 0) {
for (i = 0; i < length; ++i) {
- new_char = (mts_wchar_t)src[i] & 0xff;
+ new_char = (smb_wchar_t)src[i] & 0xff;
dst[i] = LE_IN16(&new_char);
}
dst[i] = 0;
count = length;
}
- return (count * sizeof (mts_wchar_t));
+ return (count * sizeof (smb_wchar_t));
}
/*
@@ -75,8 +71,8 @@ smb_auth_lmupr(unsigned char *lm_pwd)
int i;
for (i = 0; (*p) && (i < SMBAUTH_LM_PWD_SZ); i++) {
- if (mts_isascii(*p)) {
- *p = codepage_toupper(*p);
+ if (smb_isascii(*p)) {
+ *p = smb_toupper(*p);
p++;
}
}
@@ -148,7 +144,7 @@ smb_auth_lm_response(unsigned char *hash,
int
smb_auth_ntlm_hash(const char *password, unsigned char *hash)
{
- mts_wchar_t *unicode_password;
+ smb_wchar_t *unicode_password;
int length;
int rc;
@@ -156,8 +152,8 @@ smb_auth_ntlm_hash(const char *password, unsigned char *hash)
return (SMBAUTH_FAILURE);
length = strlen(password);
- unicode_password = (mts_wchar_t *)
- malloc((length + 1) * sizeof (mts_wchar_t));
+ unicode_password = (smb_wchar_t *)
+ malloc((length + 1) * sizeof (smb_wchar_t));
if (unicode_password == NULL)
return (SMBAUTH_FAILURE);
@@ -290,7 +286,7 @@ smb_auth_ntlmv2_hash(unsigned char *ntlm_hash,
char *ntdomain,
unsigned char *ntlmv2_hash)
{
- mts_wchar_t *data;
+ smb_wchar_t *data;
int data_len;
unsigned char *buf;
int rc;
@@ -298,7 +294,7 @@ smb_auth_ntlmv2_hash(unsigned char *ntlm_hash,
if (username == NULL || ntdomain == NULL)
return (SMBAUTH_FAILURE);
- (void) utf8_strupr(username);
+ (void) smb_strupr(username);
data_len = strlen(username) + strlen(ntdomain);
buf = (unsigned char *)malloc((data_len + 1) * sizeof (char));
@@ -306,7 +302,7 @@ smb_auth_ntlmv2_hash(unsigned char *ntlm_hash,
return (SMBAUTH_FAILURE);
(void) snprintf((char *)buf, data_len + 1, "%s%s", username, ntdomain);
- data = (mts_wchar_t *)malloc((data_len + 1) * sizeof (mts_wchar_t));
+ data = (smb_wchar_t *)malloc((data_len + 1) * sizeof (smb_wchar_t));
if (data == NULL) {
free(buf);
return (SMBAUTH_FAILURE);
@@ -423,7 +419,7 @@ smb_auth_set_info(char *username,
if ((uppercase_dom = strdup(domain)) == NULL)
return (-1);
- (void) utf8_strupr(uppercase_dom);
+ (void) smb_strupr(uppercase_dom);
if (smb_auth_ntlmv2_hash(auth->hash, username,
uppercase_dom, auth->hash_v2) != SMBAUTH_SUCCESS) {
@@ -570,7 +566,7 @@ smb_ntlmv2_password_ok(
dest[0] = domain;
if ((dest[1] = strdup(domain)) == NULL)
return (B_FALSE);
- (void) utf8_strupr(dest[1]);
+ (void) smb_strupr(dest[1]);
dest[2] = "";
/*
@@ -642,7 +638,7 @@ smb_lmv2_password_ok(
dest[0] = domain;
if ((dest[1] = strdup(domain)) == NULL)
return (B_FALSE);
- (void) utf8_strupr(dest[1]);
+ (void) smb_strupr(dest[1]);
dest[2] = "";
/*
diff --git a/usr/src/lib/smbsrv/libsmb/common/smb_domain.c b/usr/src/lib/smbsrv/libsmb/common/smb_domain.c
index 42ff0657ac..e4660ef447 100644
--- a/usr/src/lib/smbsrv/libsmb/common/smb_domain.c
+++ b/usr/src/lib/smbsrv/libsmb/common/smb_domain.c
@@ -176,8 +176,8 @@ smb_domain_lookup_name(char *name, smb_domain_t *di)
dcnode = list_head(&smb_dcache.dc_cache);
while (dcnode) {
- found = (utf8_strcasecmp(dcnode->di_nbname, name) == 0) ||
- (utf8_strcasecmp(dcnode->di_fqname, name) == 0);
+ found = (smb_strcasecmp(dcnode->di_nbname, name, 0) == 0) ||
+ (smb_strcasecmp(dcnode->di_fqname, name, 0) == 0);
if (found) {
if (di)
@@ -187,7 +187,8 @@ smb_domain_lookup_name(char *name, smb_domain_t *di)
if ((p = strchr(dcnode->di_fqname, '.')) != NULL) {
*p = '\0';
- found = (utf8_strcasecmp(dcnode->di_fqname, name) == 0);
+ found = (smb_strcasecmp(dcnode->di_fqname, name,
+ 0) == 0);
*p = '.';
if (found) {
if (di)
@@ -458,7 +459,7 @@ smb_domain_set_basic_info(char *sid, char *nb_domain, char *fq_domain,
(void) strlcpy(di->di_sid, sid, SMB_SID_STRSZ);
(void) strlcpy(di->di_nbname, nb_domain, NETBIOS_NAME_SZ);
- (void) utf8_strupr(di->di_nbname);
+ (void) smb_strupr(di->di_nbname);
(void) strlcpy(di->di_fqname, fq_domain, MAXHOSTNAMELEN);
di->di_binsid = NULL;
}
diff --git a/usr/src/lib/smbsrv/libsmb/common/smb_info.c b/usr/src/lib/smbsrv/libsmb/common/smb_info.c
index 691d2e99ed..4bc31864d8 100644
--- a/usr/src/lib/smbsrv/libsmb/common/smb_info.c
+++ b/usr/src/lib/smbsrv/libsmb/common/smb_info.c
@@ -166,7 +166,7 @@ smb_gethostname(char *buf, size_t buflen, int upcase)
*p = '\0';
if (upcase)
- (void) utf8_strupr(buf);
+ (void) smb_strupr(buf);
return (0);
}
@@ -517,25 +517,24 @@ void
smb_tonetbiosname(char *name, char *nb_name, char suffix)
{
char tmp_name[NETBIOS_NAME_SZ];
- mts_wchar_t wtmp_name[NETBIOS_NAME_SZ];
- unsigned int cpid;
+ smb_wchar_t wtmp_name[NETBIOS_NAME_SZ];
int len;
size_t rc;
len = 0;
- rc = mts_mbstowcs(wtmp_name, (const char *)name, NETBIOS_NAME_SZ);
+ rc = smb_mbstowcs(wtmp_name, (const char *)name, NETBIOS_NAME_SZ);
if (rc != (size_t)-1) {
wtmp_name[NETBIOS_NAME_SZ - 1] = 0;
- cpid = oem_get_smb_cpid();
- rc = unicodestooems(tmp_name, wtmp_name, NETBIOS_NAME_SZ, cpid);
+ rc = ucstooem(tmp_name, wtmp_name, NETBIOS_NAME_SZ,
+ OEM_CPG_850);
if (rc > 0)
len = strlen(tmp_name);
}
(void) memset(nb_name, ' ', NETBIOS_NAME_SZ - 1);
if (len) {
- (void) utf8_strupr(tmp_name);
+ (void) smb_strupr(tmp_name);
(void) memcpy(nb_name, tmp_name, len);
}
nb_name[NETBIOS_NAME_SZ - 1] = suffix;
diff --git a/usr/src/lib/smbsrv/libsmb/common/smb_lgrp.c b/usr/src/lib/smbsrv/libsmb/common/smb_lgrp.c
index 85ad5209de..d8bc1d69fe 100644
--- a/usr/src/lib/smbsrv/libsmb/common/smb_lgrp.c
+++ b/usr/src/lib/smbsrv/libsmb/common/smb_lgrp.c
@@ -214,7 +214,7 @@ smb_lgrp_add(char *gname, char *cmnt)
return (SMB_LGRP_INVALID_ARG);
bzero(&grp, sizeof (grp));
- grp.sg_name = utf8_strlwr(gname);
+ grp.sg_name = smb_strlwr(gname);
grp.sg_cmnt = cmnt;
wka = smb_wka_lookup_name(gname);
@@ -286,7 +286,7 @@ smb_lgrp_rename(char *gname, char *new_gname)
if (!smb_lgrp_chkname(gname))
return (SMB_LGRP_INVALID_NAME);
- if (utf8_strcasecmp(gname, new_gname) == 0)
+ if (smb_strcasecmp(gname, new_gname, 0) == 0)
return (SMB_LGRP_SUCCESS);
/* Cannot rename well-known groups */
@@ -2161,7 +2161,7 @@ smb_lgrp_chkname(char *name)
if (strchr(invalid_chars, name[i]))
return (B_FALSE);
- (void) utf8_strlwr(name);
+ (void) smb_strlwr(name);
return (B_TRUE);
}
@@ -2173,12 +2173,12 @@ smb_lgrp_chkname(char *name)
static void
smb_lgrp_set_default_privs(smb_group_t *grp)
{
- if (utf8_strcasecmp(grp->sg_name, "Administrators") == 0) {
+ if (smb_strcasecmp(grp->sg_name, "Administrators", 0) == 0) {
smb_privset_enable(grp->sg_privs, SE_TAKE_OWNERSHIP_LUID);
return;
}
- if (utf8_strcasecmp(grp->sg_name, "Backup Operators") == 0) {
+ if (smb_strcasecmp(grp->sg_name, "Backup Operators", 0) == 0) {
smb_privset_enable(grp->sg_privs, SE_BACKUP_LUID);
smb_privset_enable(grp->sg_privs, SE_RESTORE_LUID);
return;
diff --git a/usr/src/lib/smbsrv/libsmb/common/smb_privilege.c b/usr/src/lib/smbsrv/libsmb/common/smb_privilege.c
index be8853f4bc..2b60a8d549 100644
--- a/usr/src/lib/smbsrv/libsmb/common/smb_privilege.c
+++ b/usr/src/lib/smbsrv/libsmb/common/smb_privilege.c
@@ -19,12 +19,10 @@
* CDDL HEADER END
*/
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
/*
* This module provides the interface to the built-in privilege names
* and id's. NT privileges are known on the network using strings. Each
@@ -157,7 +155,7 @@ smb_priv_getbyname(char *name)
for (i = SE_MIN_LUID; i <= SE_MAX_LUID; ++i) {
entry = &priv_table[i];
- if (utf8_strcasecmp(name, entry->name) == 0)
+ if (smb_strcasecmp(name, entry->name, 0) == 0)
return (entry);
}
diff --git a/usr/src/lib/smbsrv/libsmb/common/smb_sam.c b/usr/src/lib/smbsrv/libsmb/common/smb_sam.c
index 9c92ad6a60..82cf1efc26 100644
--- a/usr/src/lib/smbsrv/libsmb/common/smb_sam.c
+++ b/usr/src/lib/smbsrv/libsmb/common/smb_sam.c
@@ -109,14 +109,14 @@ smb_sam_lookup_name(char *domain, char *name, uint16_t type,
return (NT_STATUS_NOT_FOUND);
/* Only Netbios hostname is accepted */
- if (utf8_strcasecmp(domain, di.di_nbname) != 0)
+ if (smb_strcasecmp(domain, di.di_nbname, 0) != 0)
return (NT_STATUS_NONE_MAPPED);
} else {
if (!smb_domain_lookup_type(SMB_DOMAIN_LOCAL, &di))
return (NT_STATUS_CANT_ACCESS_DOMAIN_INFO);
}
- if (utf8_strcasecmp(name, di.di_nbname) == 0) {
+ if (smb_strcasecmp(name, di.di_nbname, 0) == 0) {
/* This is the local domain name */
account->a_type = SidTypeDomain;
account->a_name = strdup("");
@@ -474,7 +474,7 @@ smb_lwka_lookup_name(char *name)
int i;
for (i = 0; i < SMB_LWKA_NUM; i++) {
- if (utf8_strcasecmp(name, lwka_tbl[i].lwka_name) == 0)
+ if (smb_strcasecmp(name, lwka_tbl[i].lwka_name, 0) == 0)
return (&lwka_tbl[i]);
}
diff --git a/usr/src/lib/smbsrv/libsmb/common/smb_wksids.c b/usr/src/lib/smbsrv/libsmb/common/smb_wksids.c
index 7bca2438d8..ef9400b785 100644
--- a/usr/src/lib/smbsrv/libsmb/common/smb_wksids.c
+++ b/usr/src/lib/smbsrv/libsmb/common/smb_wksids.c
@@ -186,7 +186,7 @@ smb_wka_lookup_name(char *name)
(void) rw_rdlock(&wk_rwlock);
for (i = 0; i < SMB_WKA_NUM; ++i) {
entry = &wka_tbl[i];
- if (!utf8_strcasecmp(name, entry->wka_name)) {
+ if (!smb_strcasecmp(name, entry->wka_name, 0)) {
(void) rw_unlock(&wk_rwlock);
return (entry);
}