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