bool Client::_wrap_name(Inode& diri, std::string& dname, std::string& alternate_name)
{
- ldout(cct, 20) << __func__ << ": (" << dname << " len=" << dname.size() << ", " << alternate_name << ") on " << diri << dendl;
+ ldout(cct, 20) << __func__ << ": (" << binstrprint(dname) << " len=" << dname.size() << ", " << binstrprint(alternate_name) << ") on " << diri << dendl;
ceph_assert(dname.size() > 0);
alternate_name = "";
/* confirm valid utf-8 name */
encoded = boost::locale::conv::to_utf<char>(dname, "UTF-8", boost::locale::conv::stop);
} catch (const boost::locale::conv::conversion_error& e) {
- ldout(cct, 2) << "`" << dname << "' is not valid utf-8: " << e.what() << dendl;
+ ldout(cct, 2) << "`" << binstrprint(dname) << "' is not valid utf-8: " << e.what() << dendl;
return false;
}
} else if (!encoding.empty()) {
std::string folded;
if (is_insensitive) {
if (normalized.empty()) {
- ldout(cct, 2) << __func__ << " normalization is required before case folding: " << dname << dendl;
+ ldout(cct, 2) << __func__ << " normalization is required before case folding: " << binstrprint(dname) << dendl;
return false;
}
try {
std::string Client::_unwrap_name(Inode& diri, const std::string& dname, const std::string& alternate_name)
{
- ldout(cct, 20) << __func__ << ": (" << dname << ", " << alternate_name << ") on " << diri << dendl;
+ ldout(cct, 20) << __func__ << ": (" << binstrprint(dname) << ", " << binstrprint(alternate_name) << ") on " << diri << dendl;
std::string newdname = dname;
std::string newaltn = alternate_name;
/* no reverse of normalization / encoding */
if (is_insensitive) {
- ldout(cct, 25) << __func__ << ": = " << alternate_name << dendl;
+ ldout(cct, 25) << __func__ << ": = " << binstrprint(alternate_name) << dendl;
newdname = newaltn;
}
}
std::string trimmed_path = path.get_trimmed_path();
}
- ldout(cct, 10) << __func__ << ": cur=" << *diri << " path=" << trimmed_path << dendl;
+ ldout(cct, 10) << __func__ << ": cur=" << *diri << " path=" << binstrprint(trimmed_path) << dendl;
if (path.depth() == 0) {
/* diri/dname can also be used as a filepath; or target */
while (i < path.depth() && diri) {
int caps = 0;
dname = path[i];
- ldout(cct, 10) << " " << i << " " << *diri << " " << dname << dendl;
- ldout(cct, 20) << " (path is " << trimmed_path << ")" << dendl;
+ ldout(cct, 10) << " " << i << " " << *diri << " " << binstrprint(dname) << dendl;
+ ldout(cct, 20) << " (path is " << binstrprint(trimmed_path) << ")" << dendl;
InodeRef next;
if (!diri.get()->is_dir()) {
ldout(cct, 20) << diri.get() << " is not a dir inode, name " << dname.c_str() << dendl;
ret = -EPERM;
goto out;
}
+ ldout(cct, 25) << "decrypted symlink is: " << binstrprint(symlink) << dendl;
} else {
symlink = next->symlink;
}
delete req;
return r;
}
+ ldout(cct, 25) << "encrypted symlink is: " << binstrprint(enc_target) << dendl;
req->set_string2(enc_target.c_str());
} else {
req->set_string2(target);