- /* Windows Backup data stream */
- case STREAM_WIN32_DATA:
- if (!is_win32_backup()) {
- if (!non_support_data) {
- Jmsg(jcr, M_ERROR, 0, _("Win32 backup data not supported on this Client.\n"));
- }
- extract = FALSE;
- non_support_data++;
- return;
+ attr->data_stream = decode_stat(attr->attr, &attr->statp, &attr->LinkFI);
+ if (!is_restore_stream_supported(attr->data_stream)) {
+ if (!non_support_data++) {
+ Jmsg(jcr, M_ERROR, 0, _("%s stream not supported on this Client.\n"),
+ stream_to_ascii(attr->data_stream));
+ }
+ extract = false;
+ return true;
+ }
+
+ build_attr_output_fnames(jcr, attr);
+
+ if (attr->type == FT_DELETED) { /* TODO: choose the right fname/ofname */
+ Jmsg(jcr, M_INFO, 0, _("%s was deleted.\n"), attr->fname);
+ extract = false;
+ return true;
+ }
+
+ extract = false;
+ stat = create_file(jcr, attr, &bfd, REPLACE_ALWAYS);
+ switch (stat) {
+ case CF_ERROR:
+ case CF_SKIP:
+ break;
+ case CF_EXTRACT:
+ extract = true;
+ print_ls_output(jcr, attr);
+ num_files++;
+ fileAddr = 0;
+ break;
+ case CF_CREATED:
+ set_attributes(jcr, attr, &bfd);
+ print_ls_output(jcr, attr);
+ num_files++;
+ fileAddr = 0;
+ break;
+ }