summaryrefslogtreecommitdiff
path: root/plugins/NotesAndReminders/src/miscutils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/NotesAndReminders/src/miscutils.cpp')
-rw-r--r--plugins/NotesAndReminders/src/miscutils.cpp47
1 files changed, 13 insertions, 34 deletions
diff --git a/plugins/NotesAndReminders/src/miscutils.cpp b/plugins/NotesAndReminders/src/miscutils.cpp
index 8e2197ff55..5f46db337a 100644
--- a/plugins/NotesAndReminders/src/miscutils.cpp
+++ b/plugins/NotesAndReminders/src/miscutils.cpp
@@ -1,28 +1,5 @@
#include "stdafx.h"
-void FreeSettingBlob(WORD pSize, void *pbBlob)
-{
- DBVARIANT dbv = {};
- dbv.type = DBVT_BLOB;
- dbv.cpbVal = pSize;
- dbv.pbVal = (BYTE*)pbBlob;
- db_free(&dbv);
-}
-
-void ReadSettingBlob(MCONTACT hContact, char *ModuleName, char *SettingName, WORD *pSize, void **pbBlob)
-{
- DBVARIANT dbv = { 0 };
- dbv.type = DBVT_BLOB;
- if (db_get(hContact, ModuleName, SettingName, &dbv)) {
- *pSize = 0;
- *pbBlob = nullptr;
- }
- else {
- *pSize = LOWORD(dbv.cpbVal);
- *pbBlob = (int*)dbv.pbVal;
- }
-}
-
/////////////////////////////////////////////////////////////////////
// Email/SMS and WinSock functions
@@ -70,25 +47,27 @@ unsigned long WS_ResolveName(char *name, WORD *port, int defaultPort)
void Send(char *user, char *host, const char *Msg, char *server)
{
- SOCKADDR_IN sockaddr;
- WORD port;
- char *ch = nullptr;
SOCKET S = socket(AF_INET, SOCK_STREAM, 0);
- if (!server) server = host;
- if ((sockaddr.sin_addr.S_un.S_addr = WS_ResolveName(server,
- &port, 25)) == SOCKET_ERROR) return;
+ if (!server)
+ server = host;
+
+ WORD port;
+ SOCKADDR_IN sockaddr;
+ if ((sockaddr.sin_addr.S_un.S_addr = WS_ResolveName(server, &port, 25)) == SOCKET_ERROR)
+ return;
+
sockaddr.sin_port = htons(port);
sockaddr.sin_family = AF_INET;
- if (connect(S, (SOCKADDR*)&sockaddr, sizeof(sockaddr)) == SOCKET_ERROR) return;
- ch = (char*)malloc(mir_strlen(user) + mir_strlen(host) + 16);
- ch = (char*)realloc(ch, sprintf(ch, "rcpt to:%s@%s\r\n", user, host)); //!!!!!!!!!!
+ if (connect(S, (SOCKADDR*)&sockaddr, sizeof(sockaddr)) == SOCKET_ERROR)
+ return;
+
+ CMStringA rcpt(FORMAT, "rcpt to:%s@%s\r\n", user, host);
WS_Send(S, "mail from: \r\n", 13);
- WS_Send(S, ch, (int)mir_strlen(ch));
+ WS_Send(S, rcpt, rcpt.GetLength());
WS_Send(S, "data\r\n", 6);
WS_Send(S, "From:<REM>\r\n\r\n", 14);
WS_Send(S, Msg, (int)mir_strlen(Msg));
WS_Send(S, "\r\n.\r\n", 5);
WS_Send(S, "quit\r\n", 6);
- SAFE_FREE((void**)&ch);
closesocket(S);
}