Print this page
NEX-19025 CIFS gets confused with filenames containing enhanced Unicode
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
and: (fix build, check-rtime)
NEX-2460 libfksmbd should not link with libsmb
SMB-65 SMB server in non-global zones (data structure changes)
Many things move to the smb_server_t object, and
many functions gain an sv arg (which server).
*** 172,183 ****
/*
* Convert individual characters to their uppercase equivalent value.
* If the specified character is lowercase, the uppercase value will
* be returned. Otherwise the original value will be returned.
*/
! int
! smb_toupper(int c)
{
uint16_t mask = is_unicode ? 0xffff : 0xff;
return (current_codepage[c & mask].upper);
}
--- 172,183 ----
/*
* Convert individual characters to their uppercase equivalent value.
* If the specified character is lowercase, the uppercase value will
* be returned. Otherwise the original value will be returned.
*/
! uint32_t
! smb_toupper(uint32_t c)
{
uint16_t mask = is_unicode ? 0xffff : 0xff;
return (current_codepage[c & mask].upper);
}
*** 185,196 ****
/*
* Convert individual characters to their lowercase equivalent value.
* If the specified character is uppercase, the lowercase value will
* be returned. Otherwise the original value will be returned.
*/
! int
! smb_tolower(int c)
{
uint16_t mask = is_unicode ? 0xffff : 0xff;
return (current_codepage[c & mask].lower);
}
--- 185,196 ----
/*
* Convert individual characters to their lowercase equivalent value.
* If the specified character is uppercase, the lowercase value will
* be returned. Otherwise the original value will be returned.
*/
! uint32_t
! smb_tolower(uint32_t c)
{
uint16_t mask = is_unicode ? 0xffff : 0xff;
return (current_codepage[c & mask].lower);
}
*** 202,212 ****
* always result encode to the same length.
*/
char *
smb_strupr(char *s)
{
! smb_wchar_t c;
char *p = s;
while (*p) {
if (smb_isascii(*p)) {
*p = smb_toupper(*p);
--- 202,212 ----
* always result encode to the same length.
*/
char *
smb_strupr(char *s)
{
! uint32_t c;
char *p = s;
while (*p) {
if (smb_isascii(*p)) {
*p = smb_toupper(*p);
*** 233,243 ****
* always result encode to the same length.
*/
char *
smb_strlwr(char *s)
{
! smb_wchar_t c;
char *p = s;
while (*p) {
if (smb_isascii(*p)) {
*p = smb_tolower(*p);
--- 233,243 ----
* always result encode to the same length.
*/
char *
smb_strlwr(char *s)
{
! uint32_t c;
char *p = s;
while (*p) {
if (smb_isascii(*p)) {
*p = smb_tolower(*p);
*** 262,272 ****
* -1 is returned if "s" is not a valid multi-byte string.
*/
int
smb_isstrlwr(const char *s)
{
! smb_wchar_t c;
int n;
const char *p = s;
while (*p) {
if (smb_isascii(*p) && smb_isupper(*p))
--- 262,272 ----
* -1 is returned if "s" is not a valid multi-byte string.
*/
int
smb_isstrlwr(const char *s)
{
! uint32_t c;
int n;
const char *p = s;
while (*p) {
if (smb_isascii(*p) && smb_isupper(*p))
*** 293,303 ****
* -1 is returned if "s" is not a valid multi-byte string.
*/
int
smb_isstrupr(const char *s)
{
! smb_wchar_t c;
int n;
const char *p = s;
while (*p) {
if (smb_isascii(*p) && smb_islower(*p))
--- 293,303 ----
* -1 is returned if "s" is not a valid multi-byte string.
*/
int
smb_isstrupr(const char *s)
{
! uint32_t c;
int n;
const char *p = s;
while (*p) {
if (smb_isascii(*p) && smb_islower(*p))