Subversion Repositories tpanel

Rev

Rev 119 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 119 Rev 120
Line 75... Line 75...
75
#   include <filesystem>
75
#   include <filesystem>
76
    namespace fs = std::filesystem;
76
    namespace fs = std::filesystem;
77
#  endif
77
#  endif
78
#endif
78
#endif
79
 
79
 
-
 
80
std::function<int (off64_t xfered)> TFsfReader::_progress{nullptr};
-
 
81
 
80
TFsfReader::TFsfReader()
82
TFsfReader::TFsfReader()
81
{
83
{
82
    DECL_TRACER("TFsfReader::TFsfReader()");
84
    DECL_TRACER("TFsfReader::TFsfReader()");
83
 
85
 
84
}
86
}
Line 103... Line 105...
103
    if (TConfig::getFtpPassive())
105
    if (TConfig::getFtpPassive())
104
        mFtpLib->SetConnmode(ftplib::pasv);
106
        mFtpLib->SetConnmode(ftplib::pasv);
105
    else
107
    else
106
        mFtpLib->SetConnmode(ftplib::port);
108
        mFtpLib->SetConnmode(ftplib::port);
107
 
109
 
-
 
110
    mFtpLib->SetCallbackLogFunction(&TFsfReader::callbackLog);      // Print some debugging messages
108
    mFtpLib->SetCallbackLogFunction(&TFsfReader::callbackLog);
111
    mFtpLib->SetCallbackErrorFunction(&TFsfReader::callbackError);  // Print errors or info's
-
 
112
    mFtpLib->SetCallbackXferFunction(&TFsfReader::callbackXfer);    // This is the progress
-
 
113
    mFtpLib->SetCallbackBytes(10000L);                              // This tells the progress to be called every 10KiB
109
    string scon = TConfig::getController() + ":21";
114
    string scon = TConfig::getController() + ":21";
110
    MSG_DEBUG("Trying to connect to " << scon);
115
    MSG_DEBUG("Trying to connect to " << scon);
111
 
116
 
112
    if (!mFtpLib->Connect(scon.c_str()))
117
    if (!mFtpLib->Connect(scon.c_str()))
113
    {
118
    {
Line 161... Line 166...
161
    std::uintmax_t n = fs::remove_all(path);
166
    std::uintmax_t n = fs::remove_all(path);
162
    MSG_TRACE("Deleted " << n << " files/directories from " << path);
167
    MSG_TRACE("Deleted " << n << " files/directories from " << path);
163
    return readtp4.doRead();
168
    return readtp4.doRead();
164
}
169
}
165
 
170
 
166
void TFsfReader::callbackLog(char* str, void* arg, bool out)
171
void TFsfReader::callbackLog(char* str, void*, bool out)
167
{
172
{
168
    DECL_TRACER("TFsfReader::callbackLog(char* str, void* arg, bool out)");
173
    DECL_TRACER("TFsfReader::callbackLog(char* str, void* arg, bool out)");
169
 
174
 
170
    if (!str)
175
    if (!str)
171
        return;
176
        return;
Line 183... Line 188...
183
    else
188
    else
184
    {
189
    {
185
        MSG_DEBUG("Input: " << msg);
190
        MSG_DEBUG("Input: " << msg);
186
    }
191
    }
187
}
192
}
-
 
193
 
-
 
194
void TFsfReader::callbackError(char* msg, void*, int err)
-
 
195
{
-
 
196
    DECL_TRACER("TFsfReader::callbackError(char* msg, void* arg, int err)");
-
 
197
 
-
 
198
    if (!msg)
-
 
199
        return;
-
 
200
 
-
 
201
    if (err)
-
 
202
    {
-
 
203
        MSG_ERROR(msg);
-
 
204
    }
-
 
205
    else if (*msg >= '0' && *msg <= '9')
-
 
206
    {
-
 
207
        MSG_INFO(msg);
-
 
208
    }
-
 
209
    else
-
 
210
    {
-
 
211
        MSG_DEBUG(msg);
-
 
212
    }
-
 
213
}
-
 
214
 
-
 
215
int TFsfReader::callbackXfer(off64_t xfered, void*)
-
 
216
{
-
 
217
    DECL_TRACER("TFsfReader::callbackXfer(off64_t xfered, void*)");
-
 
218
 
-
 
219
    if (_progress)
-
 
220
        return _progress(xfered);
-
 
221
 
-
 
222
    return 1;
-
 
223
}