Fix ROS3 VFD anonymous credential usage with h5dump and h5ls (#2798)

This commit is contained in:
jhendersonHDF 2023-04-24 10:21:12 -05:00 committed by GitHub
parent 3f5842cdd2
commit e6db9b25d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 4 deletions

View File

@ -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;

View File

@ -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");