summaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-01-24 20:19:19 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-01-24 20:19:19 (GMT)
commit97b35bc47059315d4138c8e0827842d2c03de152 (patch)
treefeaf7a8c018982ba9d7ca1b8e6e15294abfdfc84 /src/client
parent04488081d3fa0cd3dfb2939e5d902bc894df150d (diff)
downloadpowder-97b35bc47059315d4138c8e0827842d2c03de152.zip
powder-97b35bc47059315d4138c8e0827842d2c03de152.tar.gz
Various
Diffstat (limited to 'src/client')
-rw-r--r--src/client/Client.cpp37
-rw-r--r--src/client/Client.h6
2 files changed, 42 insertions, 1 deletions
diff --git a/src/client/Client.cpp b/src/client/Client.cpp
index c2e82ea..94c3dbc 100644
--- a/src/client/Client.cpp
+++ b/src/client/Client.cpp
@@ -20,7 +20,7 @@
Client::Client()
{
int i = 0;
- http_init(NULL);
+ http_init("wwwcache.lancs.ac.uk:8080");
for(i = 0; i < THUMB_CACHE_SIZE; i++)
{
thumbnailCache[i] = NULL;
@@ -39,6 +39,41 @@ Client::~Client()
http_done();
}
+LoginStatus Client::Login(string username, string password)
+{
+ std::stringstream urlStream;
+ char * data;
+ int dataStatus, dataLength;
+ data = http_auth_get("http://" SERVER "/Login.json", (char*)username.c_str(), (char*)password.c_str(), NULL, &dataStatus, &dataLength);
+ std::cout << data << std::endl;
+ if(dataStatus == 200 && data)
+ {
+ std::istringstream dataStream(data);
+ json::Object objDocument;
+ json::Reader::Read(objDocument, dataStream);
+ json::Number tempStatus = objDocument["Status"];
+
+ free(data);
+ if(tempStatus.Value() == 1)
+ {
+ return LoginOkay;
+ }
+ else if(tempStatus.Value() == 0)
+ {
+ return LoginPasswordInvalid;
+ }
+ else
+ {
+ return LoginError;
+ }
+ }
+ if(data)
+ {
+ free(data);
+ }
+ return LoginError;
+}
+
Save * Client::GetSave(int saveID, int saveDate)
{
lastError = "";
diff --git a/src/client/Client.h b/src/client/Client.h
index c974524..644fb06 100644
--- a/src/client/Client.h
+++ b/src/client/Client.h
@@ -10,6 +10,11 @@
#include "search/Save.h"
#include "Singleton.h"
+enum LoginStatus
+{
+ LoginPasswordInvalid, LoginUsernameInvalid, LoginOkay, LoginBanned, LoginError
+};
+
class Client: public Singleton<Client>
{
private:
@@ -23,6 +28,7 @@ private:
public:
Client();
~Client();
+ LoginStatus Login(string username, string password);
void ClearThumbnailRequests();
std::vector<Save*> * SearchSaves(int start, int count, string query, string sort, int & resultCount);
Thumbnail * GetPreview(int saveID, int saveDate);