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))