#include "iface.h"
#include "stg_client.h"
+#include "radlog.h"
#include <cstring>
pthread_mutex_t mutex;
pthread_cond_t cond;
RESULT result;
+ bool status;
- static bool callback(void* data, const RESULT& res)
+ static bool callback(void* data, const RESULT& result, bool status)
{
Response& resp = *static_cast<Response*>(data);
pthread_mutex_lock(&resp.mutex);
- resp.result = res;
+ resp.result = result;
+ resp.status = status;
resp.done = true;
pthread_cond_signal(&resp.cond);
pthread_mutex_unlock(&resp.mutex);
bzero(pairs[pos].value, sizeof(STG_PAIR::value));
strncpy(pairs[pos].key, source[pos].first.c_str(), sizeof(STG_PAIR::key));
strncpy(pairs[pos].value, source[pos].second.c_str(), sizeof(STG_PAIR::value));
- ++pos;
}
bzero(pairs[source.size()].key, sizeof(STG_PAIR::key));
bzero(pairs[source.size()].value, sizeof(STG_PAIR::value));
{
STG_CLIENT* client = STG_CLIENT::get();
if (client == NULL) {
- // TODO: log "Not configured"
+ RadLog("Client is not configured.");
return emptyResult();
}
try {
+ response.done = false;
client->request(type, toString(userName), toString(password), fromSTGPairs(pairs));
pthread_mutex_lock(&response.mutex);
while (!response.done)
pthread_cond_wait(&response.cond, &response.mutex);
pthread_mutex_unlock(&response.mutex);
+ if (!response.status)
+ return emptyResult();
return toResult(response.result);
} catch (const STG_CLIENT::Error& ex) {
- // TODO: log error
+ RadLog("Error: '%s'.", ex.what());
return emptyResult();
}
}