6 "show davix cmd timing info");
13 p12Path(
'\0',
parPrefix +
"X509credP12",
"path to X509 cert in .p12 format"),
14 privKeyPath(
'\0',
parPrefix +
"X509privKey",
"path to X509 key in .pem format"),
15 credentialPath(
'\0',
parPrefix +
"X509credPem",
"path to X509 cert in .pem format"),
16 proxy(
'\0',
parPrefix +
"X509Proxy",
"path to proxy credential") {
41 accessConfigDone =
true;
48 accessConfigDone =
true;
59 "set the request protocol (ex : Webdav, Http, S3) ",
60 &Davix::RequestParams::setProtocol, {
61 {
"Auto", Davix::RequestProtocol::Protocol::Auto},
62 {
"Http", Davix::RequestProtocol::Protocol::Http},
63 {
"Webdav", Davix::RequestProtocol::Protocol::Webdav},
64 {
"AwsS3", Davix::RequestProtocol::Protocol::AwsS3},
65 #ifdef DAVIX_API_VERSION
66 #if DAVIX_API_VERSION >= 20160621
67 {
"Azure", Davix::RequestProtocol::Protocol::Azure},
68 {
"Gcloud", Davix::RequestProtocol::Protocol::Gcloud},
74 CertificateAuthorityPath(
parPrefix,
"CertificateAuthorityPath",
75 "add to path list for CA directories",
76 &Davix::RequestParams::addCertificateAuthorityPath),
78 "disable the certificate authority validity check for the https request",
79 &Davix::RequestParams::setSSLCAcheck,
81 OperationRetry(
parPrefix,
"OperationRetry",
82 "set number of retries",
83 &Davix::RequestParams::setOperationRetry),
84 OperationTimeout(
parPrefix,
"OperationTimeout",
85 "set the operation timeout",
86 &Davix::RequestParams::setOperationTimeout),
87 ConnectionTimeout(
parPrefix,
"ConnectionTimeout",
88 "set the connection timeout",
89 &Davix::RequestParams::setConnectionTimeout),
91 accessConfigDone(
false) {
117 const Davix::SessionInfo & ,
119 std::string & password,
121 Davix::DavixError** ) {
128 struct termios old_term, new_term;
131 new_term.c_lflag &= ~ECHO;
133 std::cin >> password;
139 std::string & password,
143 std::cerr <<
"Basic authentication - server is asking for username and password:\n";
146 std::cerr <<
"Authentication failure, try again:\n";
151 std::cerr <<
"Login: ";
155 login = getenv(
"USER");
156 std::cerr <<
"using '" << login <<
"' as login name\n";
176 Davix::StatInfo statBuf;
177 if (
posix.stat64(&
params, path, &statBuf, report)) {
178 if (report->getStatus() == Davix::StatusCode::FileNotFound) {
188 Davix::StatInfo statBuf;
189 if (
posix.stat64(&
params, path, &statBuf, report)) {
193 auto prePathPart = path.find(
"//");
194 if (prePathPart != std::remove_reference<decltype(path)>::type::npos) {
195 prePathPart = path.find(
"/", prePathPart + 2);
197 stat->device = std::hash<std::string> {}(path.substr(0, prePathPart));
198 stat->size = statBuf.size;
199 stat->sizeOnDisk = statBuf.size;
200 stat->blksize = 16 * 1024 * 1024;
201 stat->aTime = genericStat::clock_type::time_point(std::chrono::seconds(statBuf.atime));
202 stat->mTime = genericStat::clock_type::time_point(std::chrono::seconds(statBuf.mtime));
203 stat->timeResolution = std::chrono::seconds(1);
204 stat->mode = statBuf.mode;
205 #ifdef DAVIX_API_VERSION
206 #if DAVIX_API_VERSION >= 20160621
207 stat->ownerUid = statBuf.owner;
208 stat->ownerGid = statBuf.group;
211 return std::unique_ptr<const genericStat>(stat);