Ignore:
Timestamp:
Jul 5, 2011, 3:26:49 AM (13 years ago)
Author:
Bruno Cornec
Message:
  • Try to handle netfs_user better in all cases (NFS and SSHFS)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.9/mondo/src/common/libmondo-devices.c

    r2836 r2847  
    21702170    char *tmp1 = NULL;
    21712171    char *mds = NULL;
     2172    char *q = NULL;
    21722173    char p[8*MAX_STR_LEN];
    21732174    char *sz_size;
     
    24752476            if (bkpinfo->netfs_mount[strlen(bkpinfo->netfs_mount) - 1] == '/')
    24762477                bkpinfo->netfs_mount[strlen(bkpinfo->netfs_mount) - 1] = '\0';
     2478            q = strchr(bkpinfo->netfs_mount, '@');
     2479            if (q != NULL) {
     2480                /* User found. Store the 2 values */
     2481                q++;
     2482                /* new netfs mount */
     2483                strcpy(tmp,q);
     2484            } else {
     2485                strcpy(tmp,bkpinfo->netfs_mount);
     2486            }
    24772487            sprintf(command, "mount | grep \"%s \" | cut -d' ' -f3",
    2478                     bkpinfo->netfs_mount);
     2488                    tmp);
    24792489            strcpy(bkpinfo->isodir,
    24802490                   call_program_and_get_last_line_of_output(command));
     
    25232533        }
    25242534
     2535        if (bkpinfo->netfs_user) {
     2536            strcpy(tmp1, bkpinfo->netfs_user);
     2537        } else {
     2538            strcpy(tmp1, "");
     2539        }
     2540        if (!popup_and_get_string
     2541            ("Network user", "Which user should I use if any ?",
     2542             tmp1, MAX_STR_LEN)) {
     2543            log_to_screen("User has chosen not to backup the PC");
     2544            finish(1);
     2545        }
     2546        mr_free(bkpinfo->netfs_user);
     2547        if (strcmp(tmp1, "") != 0) {
     2548            mr_asprintf(&(bkpinfo->netfs_user), "%s", tmp1);
     2549        }
     2550   
    25252551        /* Initiate bkpinfo isodir path from running environment if mount already done */
    25262552        if (is_this_device_mounted(bkpinfo->netfs_mount)) {
     
    25342560            if (bkpinfo->restore_data) {
    25352561                if (strstr(bkpinfo->netfs_proto, "sshfs")) {
    2536                     mr_asprintf(&tmp, "sshfs -o ro %s %s", bkpinfo->netfs_mount, bkpinfo->isodir);
     2562                    mr_asprintf(&tmp, "sshfs -o ro");
    25372563                } else {
    2538                     mr_asprintf(&tmp, "mount -t %s -o nolock,ro %s %s", bkpinfo->netfs_proto, bkpinfo->netfs_mount, bkpinfo->isodir);
     2564                    mr_asprintf(&tmp, "mount -t %s -o nolock,ro", bkpinfo->netfs_proto);
    25392565                }
    25402566            } else {
    25412567                if (strstr(bkpinfo->netfs_proto, "sshfs")) {
    2542                     mr_asprintf(&tmp, "sshfs %s %s", bkpinfo->netfs_mount, bkpinfo->isodir);
     2568                    mr_asprintf(&tmp, "sshfs");
    25432569                } else {
    2544                     mr_asprintf(&tmp, "mount -t %s -o nolock %s %s", bkpinfo->netfs_proto, bkpinfo->netfs_mount, bkpinfo->isodir);
     2570                    mr_asprintf(&tmp, "mount -t %s -o nolock", bkpinfo->netfs_proto);
    25452571                }
    25462572            }
     2573            if (bkpinfo->netfs_user) {
     2574                mr_strcat(tmp, "%s@", bkpinfo->netfs_user);
     2575            }
     2576            mr_strcat(tmp, "%s %s", bkpinfo->netfs_mount, bkpinfo->isodir);
    25472577            run_program_and_log_output(tmp, 3);
    25482578            mr_free(tmp);
Note: See TracChangeset for help on using the changeset viewer.