| 99 | } |
| 100 | |
| 101 | QSharedPointer<CRemoteFileSystem> CChannelSFTP::GetFileNode( |
| 102 | const QString& szPath, sftp_attributes attributes) |
| 103 | { |
| 104 | if(!attributes) return nullptr; |
| 105 | /* |
| 106 | qDebug(log) << szPath << "name:" << attributes->name |
| 107 | << "size:" << attributes->size << "type:" << attributes->type;//*/ |
| 108 | QString szName = QString::fromUtf8(attributes->name); |
| 109 | if("." == szName || ".." == szName) |
| 110 | return nullptr; |
| 111 | CRemoteFileSystem::TYPE type = CRemoteFileSystem::TYPE::NO; |
| 112 | switch(attributes->type) { |
| 113 | case SSH_FILEXFER_TYPE_DIRECTORY: |
| 114 | type = CRemoteFileSystem::TYPE::DIR; |
| 115 | break; |
| 116 | case SSH_FILEXFER_TYPE_SYMLINK: |
| 117 | type = CRemoteFileSystem::TYPE::SYMLINK; |
| 118 | break; |
| 119 | case SSH_FILEXFER_TYPE_REGULAR: |
| 120 | type = CRemoteFileSystem::TYPE::FILE; |
| 121 | break; |
| 122 | case SSH_FILEXFER_TYPE_SPECIAL: |
| 123 | type = CRemoteFileSystem::TYPE::SPECIAL; |
| 124 | break; |
| 125 | default: |
| 126 | qWarning(log) << "Unsupported type:" << attributes->type; |
| 127 | return nullptr; |
| 128 | break; |
| 129 | } |
| 130 | if(szPath.right(1) == '/') |
| 131 | szName = szPath + szName; |
| 132 | else |
| 133 | szName = szPath + "/" + szName; |
| 134 | QSharedPointer<CRemoteFileSystem> p(new CRemoteFileSystem(szName, type)); |
| 135 | p->SetSize(attributes->size); |
| 136 | p->SetPermissions((QFileDevice::Permissions)attributes->permissions); |
| 137 | p->SetLastModified(QDateTime::fromSecsSinceEpoch(attributes->mtime)); |
| 138 | p->SetCreateTime(QDateTime::fromSecsSinceEpoch(attributes->createtime)); |
| 139 | return p; |
| 140 | } |
| 141 | |
| 142 | int CChannelSFTP::GetDir(CRemoteFileSystem* p) |
| 143 | { |
nothing calls this directly
no test coverage detected