Changeset 2847 in MondoRescue


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)
Location:
branches/2.2.9
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.9/mindi/mindi

    r2842 r2847  
    957957    AddFileToCfgIfExists $MINDI_TMP/NETFS-CLIENT-DEFGW  netfs-client-defgw  $outfile
    958958    AddFileToCfgIfExists $MINDI_TMP/NETFS-SERVER-MOUNT  netfs-server-mount  $outfile
     959    AddFileToCfgIfExists $MINDI_TMP/NETFS-SERVER-USER  netfs-server-user  $outfile
    959960    AddFileToCfgIfExists $MINDI_TMP/NETFS-SERVER-PATH   netfs-server-path   $outfile
    960961    AddFileToCfgIfExists $MINDI_TMP/NETFS-DEV           netfs-dev           $outfile
     
    10661067            # 1st try, findfs - the RHEL way of finding labels and their partitions
    10671068            if [ -x "/sbin/findfs" ]; then
    1068                 actual_dev=`/sbin/findfs LABEL=${redhat_label} 2> /dev/null`
     1069                actual_dev=`/sbin/findfs LABEL="${redhat_label}" 2> /dev/null`
    10691070            fi
    10701071   
  • branches/2.2.9/mondo/src/common/libmondo-archive.c

    r2697 r2847  
    32773277 * - @c manual_cd_tray
    32783278 * - @c media_size
    3279  * - @c netfs_mount
    32803279 * - @c netfs_remote_dir
    32813280 * - @c scratchdir
  • branches/2.2.9/mondo/src/common/libmondo-cli.c

    r2772 r2847  
    531531        if (strlen(bkpinfo->isodir) < 3) {
    532532            log_to_screen("Network share is not mounted. Trying to mount it for you.\n");
    533             if (strstr(bkpinfo->netfs_proto, "sshfs")) {
    534                 sprintf(tmp, "sshfs %s", bkpinfo->netfs_mount);
    535             } else if (strstr(bkpinfo->netfs_proto, "nfs")) {
    536                 sprintf(tmp, "mount %s", bkpinfo->netfs_mount);
     533            if (bkpinfo->netfs_user) {
     534                if (strstr(bkpinfo->netfs_proto, "sshfs")) {
     535                    sprintf(tmp, "sshfs %s@%s", bkpinfo->netfs_user, bkpinfo->netfs_mount);
     536                } else if (strstr(bkpinfo->netfs_proto, "nfs")) {
     537                    sprintf(tmp, "mount %s@%s", bkpinfo->netfs_user, bkpinfo->netfs_mount);
     538                } else {
     539                    log_to_screen("Protocol %s not supported yet for network backups.\n", bkpinfo->netfs_proto);
     540                    fatal_error("Bad Protocol\n");
     541                }
    537542            } else {
    538                 log_to_screen("Protocol %s not supported yet for network backups.\n", bkpinfo->netfs_proto);
    539                 fatal_error("Bad Protocol\n");
     543                if (strstr(bkpinfo->netfs_proto, "sshfs")) {
     544                    sprintf(tmp, "sshfs %s", bkpinfo->netfs_mount);
     545                } else if (strstr(bkpinfo->netfs_proto, "nfs")) {
     546                    sprintf(tmp, "mount %s", bkpinfo->netfs_mount);
     547                } else {
     548                    log_to_screen("Protocol %s not supported yet for network backups.\n", bkpinfo->netfs_proto);
     549                    fatal_error("Bad Protocol\n");
     550                }
    540551            }
    541552            if (system(tmp)) {
     
    543554                retval++;
    544555            } else {
    545                 sprintf(tmp, "mount | grep -E \"^[%s@]*%s[/]* .*\" | cut -d' ' -f3", bkpinfo->netfs_user,
    546                     bkpinfo->netfs_mount);
     556                if (bkpinfo->netfs_user) {
     557                    sprintf(tmp, "mount | grep -E \"^[%s@]*%s[/]* .*\" | cut -d' ' -f3", bkpinfo->netfs_user,
     558                        bkpinfo->netfs_mount);
     559                } else {
     560                    sprintf(tmp, "mount | grep -E \"^%s[/]* .*\" | cut -d' ' -f3", bkpinfo->netfs_mount);
     561                }
    547562                strncpy(bkpinfo->isodir,
    548563                        call_program_and_get_last_line_of_output(tmp),
  • 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);
  • branches/2.2.9/mondo/src/common/libmondo-files.c

    r2547 r2847  
    11921192    sprintf(tmp, "%s/NETFS-SERVER-MOUNT", bkpinfo->tmpdir);
    11931193    write_one_liner_data_file(tmp, bkpinfo->netfs_mount);
     1194    if (bkpinfo->netfs_user) {
     1195        sprintf(tmp, "%s/NETFS-SERVER-USER", bkpinfo->tmpdir);
     1196        write_one_liner_data_file(tmp, bkpinfo->netfs_user);
     1197    }
    11941198    sprintf(tmp, "%s/NETFS-SERVER-PATH", bkpinfo->tmpdir);
    11951199    write_one_liner_data_file(tmp, bkpinfo->netfs_remote_dir);
  • branches/2.2.9/mondo/src/common/libmondo-tools.c

    r2824 r2847  
    632632
    633633            *colon = '\0';
    634             hent = gethostbyname(hostname);
     634            colon = strchr(hostname, '@');
     635            if (colon) {
     636                *colon = '\0';
     637                colon++;
     638                hent = gethostbyname(colon);
     639                mr_asprintf(bkpinfo->netfs_user,"%s", hostname);
     640            } else {
     641                hent = gethostbyname(hostname);
     642            }
    635643            if (!hent) {
    636644                log_it("Can't resolve Network mount (%s): %s", hostname,
  • branches/2.2.9/mondo/src/mondorestore/mondo-rstr-tools.c

    r2770 r2847  
    701701        mr_asprintf(&(bkpinfo->netfs_proto), "nfs");
    702702    }
     703    if (read_cfg_var(cfg_file, "netfs-server-user", value) == 0) {
     704        mr_asprintf(&(bkpinfo->netfs_user),"%s", value);
     705    }
    703706    if (read_cfg_var(cfg_file, "iso-prefix", value) == 0) {
    704707            strcpy(bkpinfo->prefix,value);
     
    868871        log_msg(2, "netfs_mount is %s", bkpinfo->netfs_mount);
    869872        log_msg(2, "netfs_proto is %s", bkpinfo->netfs_proto);
     873        if (bkpinfo->netfs_user) {
     874            log_msg(2, "netfs_user is %s", bkpinfo->netfs_user);
     875        }
    870876        log_msg(2, "netfs_remote_dir is %s", bkpinfo->netfs_remote_dir);
    871877    }
  • branches/2.2.9/mondo/src/mondorestore/mondorestore.c

    r2837 r2847  
    31293129                run_program_and_log_output("mkdir -p /tmp/isodir", 5);
    31303130                if (strstr(bkpinfo->netfs_proto, "sshfs")) {
    3131                     sprintf(tmp, "sshfs -o ro %s /tmp/isodir",
    3132                         bkpinfo->netfs_mount);
     3131                    if (bkpinfo->netfs_user) {
     3132                        sprintf(tmp, "sshfs -o ro %s@%s /tmp/isodir",
     3133                            bkpinfo->netfs_user,bkpinfo->netfs_mount);
     3134                    } else {
     3135                        sprintf(tmp, "sshfs -o ro %s /tmp/isodir",
     3136                            bkpinfo->netfs_mount);
     3137                    }
    31333138                } else {
    3134                     sprintf(tmp, "mount %s -o nolock,ro /tmp/isodir",
    3135                         bkpinfo->netfs_mount);
     3139                    if (bkpinfo->netfs_user) {
     3140                        sprintf(tmp, "mount %s@%s -o nolock,ro /tmp/isodir",
     3141                            bkpinfo->netfs_user,bkpinfo->netfs_mount);
     3142                    } else {
     3143                        sprintf(tmp, "mount %s -o nolock,ro /tmp/isodir",
     3144                            bkpinfo->netfs_mount);
     3145                    }
    31363146                }
    31373147                run_program_and_log_output(tmp, 1);
Note: See TracChangeset for help on using the changeset viewer.