Changeset 956 in MondoRescue for trunk/mondo/src/common/libmondo-archive.c


Ignore:
Timestamp:
Nov 21, 2006, 1:42:46 AM (17 years ago)
Author:
Bruno Cornec
Message:

merge -r938:954 $SVN_M/branches/stable

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/mondo/src/common/libmondo-archive.c

    r914 r956  
    7575extern bool g_cd_recovery;
    7676extern char *g_serial_string;
     77
     78extern char *g_getfacl;
     79extern char *g_getfattr;
     80
     81
    7782
    7883/**
     
    538543    /*@ buffer ************************************************************ */
    539544    char *tmp = NULL;
     545    char *tmp1 = NULL;
    540546    char *command = NULL;
    541547    char *use_lzo_sz = NULL;
     
    552558    char *value = NULL;
    553559    char *bootdev = NULL;
    554 
    555560
    556561
     
    802807    }
    803808    mr_free(tmp);
     809
     810    if (g_getfattr) {
     811        asprintf(&tmp1, "%s/XATTR", bkpinfo->tmpdir);
     812        if (write_one_liner_data_file(tmp1, "TRUE")) {
     813            log_msg(1, "%ld: Unable to write one-liner XATTR",
     814                __LINE__);
     815        }
     816        paranoid_free(tmp1);
     817    }
     818    if (g_getfacl) {
     819        asprintf(&tmp1, "%s/ACL", bkpinfo->tmpdir);
     820        if (write_one_liner_data_file(tmp1, "TRUE")) {
     821            log_msg(1, "%ld: Unable to write one-liner ACL",
     822                __LINE__);
     823        }
     824        paranoid_free(tmp1);
     825    }
    804826
    805827    estimated_total_noof_slices =
     
    975997    char *archiving_filelist_fname;
    976998    char *archiving_afioball_fname;
    977     char *curr_xattr_list_fname;
     999    char *curr_xattr_list_fname = NULL;
    9781000    char *curr_acl_list_fname;
    9791001
     
    10461068        log_msg(4, "%s[%d:%d] - EXATing %d...", FORTY_SPACES, getpid(),
    10471069                this_thread_no, archiving_set_no);
    1048         mr_asprintf(&curr_xattr_list_fname, XATTR_LIST_FNAME_RAW_SZ,
    1049                  bkpinfo->tmpdir, archiving_set_no);
    1050         mr_asprintf(&curr_acl_list_fname, ACL_LIST_FNAME_RAW_SZ,
    1051                  bkpinfo->tmpdir, archiving_set_no);
    1052         get_fattr_list(archiving_filelist_fname, curr_xattr_list_fname);
    1053         mr_free(curr_xattr_list_fname);
    1054         get_acl_list(archiving_filelist_fname, curr_acl_list_fname);
    1055         mr_free(curr_acl_list_fname);
     1070        if (g_getfattr) {
     1071            mr_asprintf(&curr_xattr_list_fname, XATTR_LIST_FNAME_RAW_SZ,
     1072                bkpinfo->tmpdir, archiving_set_no);
     1073            get_fattr_list(archiving_filelist_fname, curr_xattr_list_fname);
     1074            mr_free(curr_xattr_list_fname);
     1075        }
     1076        if (g_getfacl) {
     1077            mr_asprintf(&curr_acl_list_fname, ACL_LIST_FNAME_RAW_SZ,
     1078                bkpinfo->tmpdir, archiving_set_no);
     1079            get_acl_list(archiving_filelist_fname, curr_acl_list_fname);
     1080            mr_free(curr_acl_list_fname);
     1081        }
    10561082
    10571083        log_msg(4, "%s[%d:%d] - archiving %d...", FORTY_SPACES, getpid(),
     
    14321458    int noof_threads;
    14331459    int i;
    1434     char *curr_xattr_list_fname;
     1460    char *curr_xattr_list_fname = NULL;
    14351461    char *curr_acl_list_fname;
    14361462    int misc_counter_that_is_not_important = 0;
     
    15151541            // store set N
    15161542            mr_asprintf(&storing_filelist_fname, FILELIST_FNAME_RAW_SZ,
    1517                      bkpinfo->tmpdir, storing_set_no);
     1543                    bkpinfo->tmpdir, storing_set_no);
    15181544            mr_asprintf(&storing_afioball_fname, AFIOBALL_FNAME_RAW_SZ,
    1519                      bkpinfo->tmpdir, storing_set_no, bkpinfo->zip_suffix);
    1520             mr_asprintf(&curr_xattr_list_fname, XATTR_LIST_FNAME_RAW_SZ,
    1521                      bkpinfo->tmpdir, storing_set_no);
    1522             mr_asprintf(&curr_acl_list_fname, ACL_LIST_FNAME_RAW_SZ,
    1523                      bkpinfo->tmpdir, storing_set_no);
     1545                    bkpinfo->tmpdir, storing_set_no, bkpinfo->zip_suffix);
     1546            if (g_getfattr) {
     1547                mr_asprintf(&curr_xattr_list_fname, XATTR_LIST_FNAME_RAW_SZ,
     1548                    bkpinfo->tmpdir, storing_set_no);
     1549            }
     1550            if (g_getfacl) {
     1551                mr_asprintf(&curr_acl_list_fname, ACL_LIST_FNAME_RAW_SZ,
     1552                    bkpinfo->tmpdir, storing_set_no);
     1553            }
    15241554
    15251555            log_msg(2, "Storing set %d", storing_set_no);
     
    15491579                                         NULL);
    15501580            } else {
    1551                 res =
    1552                     move_files_to_cd(bkpinfo, storing_filelist_fname,
     1581                if (g_getfacl) {
     1582                    if (g_getfattr) {
     1583                        res = move_files_to_cd(bkpinfo, storing_filelist_fname,
    15531584                                     curr_xattr_list_fname,
    15541585                                     curr_acl_list_fname,
    15551586                                     storing_afioball_fname, NULL);
     1587                    } else {
     1588                        res = move_files_to_cd(bkpinfo, storing_filelist_fname,
     1589                                    curr_acl_list_fname,
     1590                                    storing_afioball_fname, NULL);
     1591                    }
     1592                } else {
     1593                    if (g_getfattr) {
     1594                            res = move_files_to_cd(bkpinfo, storing_filelist_fname,
     1595                                    curr_xattr_list_fname,
     1596                                    storing_afioball_fname, NULL);
     1597                    } else {
     1598                            res = move_files_to_cd(bkpinfo, storing_filelist_fname,
     1599                                    storing_afioball_fname, NULL);
     1600                    }
     1601                }
    15561602            }
    15571603            mr_free(storing_filelist_fname);
     
    21652211
    21662212        log_msg(1, "EXAT'g set %ld", curr_set_no);
    2167         mr_asprintf(&curr_xattr_list_fname, XATTR_LIST_FNAME_RAW_SZ,
    2168                  bkpinfo->tmpdir, curr_set_no);
    2169         mr_asprintf(&curr_acl_list_fname, ACL_LIST_FNAME_RAW_SZ,
    2170                  bkpinfo->tmpdir, curr_set_no);
    2171         get_fattr_list(curr_filelist_fname, curr_xattr_list_fname);
    2172         get_acl_list(curr_filelist_fname, curr_acl_list_fname);
     2213        if (g_getfattr) {
     2214            mr_asprintf(&curr_xattr_list_fname, XATTR_LIST_FNAME_RAW_SZ,
     2215                bkpinfo->tmpdir, curr_set_no);
     2216            get_fattr_list(curr_filelist_fname, curr_xattr_list_fname);
     2217        }
     2218        if (g_getfacl) {
     2219            mr_asprintf(&curr_acl_list_fname, ACL_LIST_FNAME_RAW_SZ,
     2220                bkpinfo->tmpdir, curr_set_no);
     2221            get_acl_list(curr_filelist_fname, curr_acl_list_fname);
     2222        }
    21732223
    21742224        log_msg(1, "Archiving set %ld", curr_set_no);
     
    22002250            res = move_files_to_stream(bkpinfo, curr_afioball_fname, NULL);
    22012251        } else {
    2202             res =
    2203                 move_files_to_cd(bkpinfo, curr_filelist_fname,
    2204                                  curr_xattr_list_fname,
    2205                                  curr_acl_list_fname, curr_afioball_fname,
    2206                                  NULL);
     2252                if (g_getfacl) {
     2253                    if (g_getfattr) {
     2254                        res = move_files_to_cd(bkpinfo, curr_filelist_fname,
     2255                                     curr_xattr_list_fname,
     2256                                     curr_acl_list_fname,
     2257                                     curr_afioball_fname, NULL);
     2258                    } else {
     2259                        res = move_files_to_cd(bkpinfo, curr_filelist_fname,
     2260                                    curr_acl_list_fname,
     2261                                    curr_afioball_fname, NULL);
     2262                    }
     2263                } else {
     2264                    if (g_getfattr) {
     2265                            res = move_files_to_cd(bkpinfo, curr_filelist_fname,
     2266                                    curr_xattr_list_fname,
     2267                                    curr_afioball_fname, NULL);
     2268                    } else {
     2269                            res = move_files_to_cd(bkpinfo, curr_filelist_fname,
     2270                                    curr_afioball_fname, NULL);
     2271                    }
     2272                }
    22072273        }
    22082274        retval += res;
     
    23152381    mr_asprintf(&biggielist, "%s/archives/biggielist.txt",
    23162382             bkpinfo->scratchdir);
    2317     mr_asprintf(&xattr_fname, XATTR_BIGGLST_FNAME_RAW_SZ, bkpinfo->tmpdir);
    2318     mr_asprintf(&acl_fname, ACL_BIGGLST_FNAME_RAW_SZ, bkpinfo->tmpdir);
     2383    if (g_getfattr) {
     2384        mr_asprintf(&xattr_fname, XATTR_BIGGLST_FNAME_RAW_SZ, bkpinfo->tmpdir);
     2385    }
     2386    if (g_getfacl) {
     2387        mr_asprintf(&acl_fname, ACL_BIGGLST_FNAME_RAW_SZ, bkpinfo->tmpdir);
     2388    }
    23192389
    23202390    mr_asprintf(&command, "cp %s/biggielist.txt %s", bkpinfo->tmpdir,
     
    23312401    }
    23322402
    2333     get_fattr_list(biggielist, xattr_fname);
    2334     get_acl_list(biggielist, acl_fname);
    2335     mr_asprintf(&command, "cp %s %s/archives/", xattr_fname,
     2403    if (g_getfattr) {
     2404        get_fattr_list(biggielist, xattr_fname);
     2405        mr_asprintf(&command, "cp %s %s/archives/", xattr_fname,
     2406            bkpinfo->scratchdir);
     2407        paranoid_system(command);
     2408        mr_free(command);
     2409    }
     2410    if (g_getfacl) {
     2411        get_acl_list(biggielist, acl_fname);
     2412        mr_asprintf(&command, "cp %s %s/archives/", acl_fname,
    23362413             bkpinfo->scratchdir);
    2337     paranoid_system(command);
    2338     mr_free(command);
    2339 
    2340     mr_asprintf(&command, "cp %s %s/archives/", acl_fname,
    2341              bkpinfo->scratchdir);
    2342     paranoid_system(command);
    2343     mr_free(command);
     2414        paranoid_system(command);
     2415        mr_free(command);
     2416    }
    23442417
    23452418    if (IS_THIS_A_STREAMING_BACKUP(bkpinfo->backup_media_type)) {
     
    23492422        mr_free(blah);
    23502423    }
    2351     mr_free(xattr_fname);
    2352     mr_free(acl_fname);
     2424    if (g_getfattr) {
     2425        mr_free(xattr_fname);
     2426    }
     2427    if (g_getfacl) {
     2428        mr_free(acl_fname);
     2429    }
    23532430
    23542431    res = make_slices_and_images(bkpinfo, biggielist);
Note: See TracChangeset for help on using the changeset viewer.