summaryrefslogtreecommitdiff
path: root/MySpace/server_con.cpp
diff options
context:
space:
mode:
authorsje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2007-07-06 06:36:19 +0000
committersje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2007-07-06 06:36:19 +0000
commita5a2935911aae732e11d584f8adca39543429155 (patch)
tree19461c299b2dfe4cffe226973b8f71ea67fec26e /MySpace/server_con.cpp
parentcb0da06f1bf5a44f4841a6a3fb210373efe954f3 (diff)
implemented list parsing (think i got rid of all encoded chars)
git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@255 4f64403b-2f21-0410-a795-97e2b3489a10
Diffstat (limited to 'MySpace/server_con.cpp')
-rw-r--r--MySpace/server_con.cpp40
1 files changed, 21 insertions, 19 deletions
diff --git a/MySpace/server_con.cpp b/MySpace/server_con.cpp
index e5f9ccd..e81db37 100644
--- a/MySpace/server_con.cpp
+++ b/MySpace/server_con.cpp
@@ -219,6 +219,8 @@ void try_login(NetMessage &msg, HANDLE connection) {
strcpy(email, options.email);
MultiByteToWideChar(code_page, 0, options.pw, -1, wpw, 10);
#endif
+ // and make it lower case!?!?
+ _wcslwr(wpw);
sha1.sha1_hash((mir_sha1_byte_t*)wpw, wcslen(wpw) * sizeof(wchar_t), pw_hash);
@@ -254,16 +256,16 @@ void try_login(NetMessage &msg, HANDLE connection) {
}
}
-void ParseStatusMessage(HANDLE hContact, char *smsg) {
- int stat = stat_myspace_to_mir(smsg[3] - '0');
+void ParseStatusMessage(HANDLE hContact, PipedStringList &l) {
+ int stat = stat_myspace_to_mir(l.get_int(1));
if(stat == ID_STATUS_IDLE) {
- DBWriteContactSettingWord(hContact, MODULE, "IdleTS", (DWORD)time(0));
+ DBWriteContactSettingDword(hContact, MODULE, "IdleTS", (DWORD)time(0));
} else {
DBWriteContactSettingWord(hContact, MODULE, "Status", stat);
+ DBWriteContactSettingDword(hContact, MODULE, "IdleTS", 0);
}
- smsg += 8;
- char *end = strstr(smsg, "|");
- if(end) *end = 0;
+ char smsg[512];
+ l.get_string(3, smsg, 512);
DBWriteContactSettingStringUtf(hContact, MODULE, "StatusMsg", smsg);
}
@@ -347,7 +349,7 @@ void __cdecl ServerThreadFunc(void*) {
}
NetMessage msg;
- msg.parse(pbuff, bytes);
+ msg.parse(pbuff, end - pbuff);
if(msg.exists(NMString("error"))) {
char errmsg[256];
if(msg.get_string("errmsg", errmsg, 256)) {
@@ -429,13 +431,11 @@ void __cdecl ServerThreadFunc(void*) {
if(uid) {
HANDLE hContact = FindContact(uid);
if(!hContact) {
- hContact = CreateContact(uid, 0, 0, true);
+ hContact = CreateContact(uid, 0, 0, false);
LookupUID(uid);
}
- char smsg[1024];
- if(msg.get_string("msg", smsg, 1024)) {
- ParseStatusMessage(hContact, smsg);
- }
+ PipedStringList l = msg.get_list("msg");
+ ParseStatusMessage(hContact, l);
}
} else if(msg.get_int("bm") == 121) { // action message
int uid = msg.get_int("f");
@@ -472,7 +472,7 @@ void __cdecl ServerThreadFunc(void*) {
strip_tags(text);
decode_smileys(text);
- unentitize_msg(text);
+ unentitize_xml(text);
PROTORECVEVENT pre = {0};
pre.flags = PREF_UTF;
@@ -505,10 +505,8 @@ void __cdecl ServerThreadFunc(void*) {
MYPROTOSEARCHRESULT mpsr = {sizeof(mpsr)};
if(body.get_string("UserName", nick, 256)) {
- unentitize_nick(nick);
mpsr.psr.nick = nick;
} else if(body.get_string("DisplayName", nick, 256)) {
- unentitize_nick(nick);
mpsr.psr.nick = nick;
}
if(body.get_string("Email", email, 256))
@@ -533,10 +531,8 @@ void __cdecl ServerThreadFunc(void*) {
MYPROTOSEARCHRESULT mpsr = {sizeof(mpsr)};
if(body.get_string("DisplayName", nick, 256)) {
- unentitize_nick(nick);
mpsr.psr.nick = nick;
} else if(body.get_string("UserName", nick, 256)) {
- unentitize_nick(nick);
mpsr.psr.nick = nick;
}
@@ -633,7 +629,6 @@ void __cdecl ServerThreadFunc(void*) {
int uid = body.get_int("ContactID");
if(uid != 0) {
if(body.get_string("NickName", nick, 256)) {
- unentitize_nick(nick);
DBWriteContactSettingStringUtf(0, MODULE, "Nick", nick);
}
}
@@ -721,10 +716,17 @@ void CALLBACK sttMainThreadStatusMessageCallback( ULONG dwParam ) {
if(status != ID_STATUS_OFFLINE) {
if(myspace_server_running && sesskey) {
// set status
+
ClientNetMessage msg_status;
msg_status.add_int("status", stat_mir_to_myspace(status));
msg_status.add_int("sesskey", sesskey);
- msg_status.add_string("statstring", msg ? msg : "");
+ if(msg && msg[0]) {
+ char buff[512];
+ strncpy(buff, msg, 512);
+ msg_status.add_string("statstring", buff);
+ } else {
+ msg_status.add_string("statstring", "");
+ }
msg_status.add_string("locstring", "");
SendMessage(msg_status);
} else {