summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorjhendersonHDF <jhenderson@hdfgroup.org>2023-04-24 15:21:12 (GMT)
committerGitHub <noreply@github.com>2023-04-24 15:21:12 (GMT)
commite6db9b25d3753a1e39cad02f3bc0451da3640d1f (patch)
treea5028c0845abd92ac32a6c1aad2a7d467b36d6c2 /tools
parent3f5842cdd201ec73ffe9746cb9ea1d384754c968 (diff)
downloadhdf5-e6db9b25d3753a1e39cad02f3bc0451da3640d1f.zip
hdf5-e6db9b25d3753a1e39cad02f3bc0451da3640d1f.tar.gz
hdf5-e6db9b25d3753a1e39cad02f3bc0451da3640d1f.tar.bz2
Fix ROS3 VFD anonymous credential usage with h5dump and h5ls (#2798)
Diffstat (limited to 'tools')
-rw-r--r--tools/src/h5dump/h5dump.c13
-rw-r--r--tools/src/h5ls/h5ls.c18
2 files changed, 27 insertions, 4 deletions
diff --git a/tools/src/h5dump/h5dump.c b/tools/src/h5dump/h5dump.c
index 6c1556a..2a5eeb7 100644
--- a/tools/src/h5dump/h5dump.c
+++ b/tools/src/h5dump/h5dump.c
@@ -862,8 +862,19 @@ parse_start:
case 'f':
vfd_info_g.type = VFD_BY_NAME;
vfd_info_g.u.name = H5_optarg;
- vfd_info_g.info = NULL;
use_custom_vfd_g = TRUE;
+
+#ifdef H5_HAVE_ROS3_VFD
+ if (0 == HDstrcmp(vfd_info_g.u.name, drivernames[ROS3_VFD_IDX]))
+ if (!vfd_info_g.info)
+ vfd_info_g.info = &ros3_fa_g;
+#endif
+#ifdef H5_HAVE_LIBHDFS
+ if (0 == HDstrcmp(vfd_info_g.u.name, drivernames[HDFS_VFD_IDX]))
+ if (!vfd_info_g.info)
+ vfd_info_g.info = &hdfs_fa_g;
+#endif
+
break;
case 'g':
dump_opts.display_all = 0;
diff --git a/tools/src/h5ls/h5ls.c b/tools/src/h5ls/h5ls.c
index 4e7298c..5d9e184 100644
--- a/tools/src/h5ls/h5ls.c
+++ b/tools/src/h5ls/h5ls.c
@@ -2651,8 +2651,8 @@ main(int argc, char *argv[])
hid_t fapl_id = H5P_DEFAULT;
hbool_t custom_vol_fapl = FALSE;
hbool_t custom_vfd_fapl = FALSE;
- h5tools_vol_info_t vol_info;
- h5tools_vfd_info_t vfd_info;
+ h5tools_vol_info_t vol_info = {0};
+ h5tools_vfd_info_t vfd_info = {0};
#ifdef H5_HAVE_ROS3_VFD
/* Default "anonymous" S3 configuration */
@@ -2763,7 +2763,6 @@ main(int argc, char *argv[])
else if (!HDstrncmp(argv[argno], "--vfd=", (size_t)6)) {
vfd_info.type = VFD_BY_NAME;
vfd_info.u.name = argv[argno] + 6;
- vfd_info.info = NULL;
custom_vfd_fapl = TRUE;
}
else if (!HDstrncmp(argv[argno], "--vfd-value=", (size_t)12)) {
@@ -2980,6 +2979,19 @@ main(int argc, char *argv[])
/* Setup a custom fapl for file accesses */
if (custom_vol_fapl || custom_vfd_fapl) {
+#ifdef H5_HAVE_ROS3_VFD
+ if (custom_vfd_fapl && (0 == HDstrcmp(vfd_info.u.name, drivernames[ROS3_VFD_IDX]))) {
+ if (!vfd_info.info)
+ vfd_info.info = &ros3_fa;
+ }
+#endif
+#ifdef H5_HAVE_LIBHDFS
+ if (custom_vfd_fapl && (0 == HDstrcmp(vfd_info.u.name, drivernames[HDFS_VFD_IDX]))) {
+ if (!vfd_info.info)
+ vfd_info.info = &hdfs_fa;
+ }
+#endif
+
if ((fapl_id = h5tools_get_fapl(H5P_DEFAULT, custom_vol_fapl ? &vol_info : NULL,
custom_vfd_fapl ? &vfd_info : NULL)) < 0) {
error_msg("failed to setup file access property list (fapl) for file\n");