Ignore:
Timestamp:
May 27, 2009, 9:09:42 AM (16 years ago)
Author:
Herwig Bauernfeind
Message:

Update 3.2 branch to 3.2.8

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/samba-3.2.x/source/libsmb/libsmb_server.c

    r228 r232  
    246246        int port_try_first;
    247247        int port_try_next;
     248        int is_ipc = (share != NULL && strcmp(share, "IPC$") == 0);
     249        uint32 fs_attrs = 0;
    248250        const char *username_used;
    249251        NTSTATUS status;
     
    311313                        }
    312314                       
     315                        /* Determine if this share supports case sensitivity */
     316                        if (is_ipc) {
     317                                DEBUG(4,
     318                                      ("IPC$ so ignore case sensitivity\n"));
     319                        } else if (!cli_get_fs_attr_info(c, &fs_attrs)) {
     320                                DEBUG(4, ("Could not retrieve "
     321                                          "case sensitivity flag: %s.\n",
     322                                          cli_errstr(c)));
     323
     324                                /*
     325                                 * We can't determine the case sensitivity of
     326                                 * the share. We have no choice but to use the
     327                                 * user-specified case sensitivity setting.
     328                                 */
     329                                if (smbc_getOptionCaseSensitive(context)) {
     330                                        cli_set_case_sensitive(c, True);
     331                                } else {
     332                                        cli_set_case_sensitive(c, False);
     333                                }
     334                        } else {
     335                                DEBUG(4,
     336                                      ("Case sensitive: %s\n",
     337                                       (fs_attrs & FILE_CASE_SENSITIVE_SEARCH
     338                                        ? "True"
     339                                        : "False")));
     340                                cli_set_case_sensitive(
     341                                        c,
     342                                        (fs_attrs & FILE_CASE_SENSITIVE_SEARCH
     343                                         ? True
     344                                         : False));
     345                        }
     346
    313347                        /*
    314348                         * Regenerate the dev value since it's based on both
     
    356390                return NULL;
    357391        }
    358        
     392
    359393        if (smbc_getOptionUseKerberos(context)) {
    360394                c->use_kerberos = True;
     
    371405         * null, so browse lists can work
    372406         */
    373         if (share == NULL || *share == '\0' || strcmp(share, "IPC$") == 0) {
     407        if (share == NULL || *share == '\0' || is_ipc) {
    374408                port_try_first = 139;
    375409                port_try_next = 445;
     
    475509        DEBUG(4,(" tconx ok\n"));
    476510       
     511        /* Determine if this share supports case sensitivity */
     512        if (is_ipc) {
     513                DEBUG(4, ("IPC$ so ignore case sensitivity\n"));
     514        } else if (!cli_get_fs_attr_info(c, &fs_attrs)) {
     515                DEBUG(4, ("Could not retrieve case sensitivity flag: %s.\n",
     516                          cli_errstr(c)));
     517
     518                /*
     519                 * We can't determine the case sensitivity of the share. We
     520                 * have no choice but to use the user-specified case
     521                 * sensitivity setting.
     522                 */
     523                if (smbc_getOptionCaseSensitive(context)) {
     524                        cli_set_case_sensitive(c, True);
     525                } else {
     526                        cli_set_case_sensitive(c, False);
     527                }
     528        } else {
     529                DEBUG(4, ("Case sensitive: %s\n",
     530                          (fs_attrs & FILE_CASE_SENSITIVE_SEARCH
     531                           ? "True"
     532                           : "False")));
     533                cli_set_case_sensitive(c,
     534                                       (fs_attrs & FILE_CASE_SENSITIVE_SEARCH
     535                                        ? True
     536                                        : False));
     537        }
     538
    477539        if (context->internal->smb_encryption_level) {
    478540                /* Attempt UNIX smb encryption. */
Note: See TracChangeset for help on using the changeset viewer.