Loading include/sysutils/SocketClient.h +3 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,9 @@ public: void incRef(); bool decRef(); // returns true at 0 (but note: SocketClient already deleted) // return a new string in quotes with '\\' and '\"' escaped for "my arg" transmissions static char *quoteArg(const char *arg); private: // Send null-terminated C strings int sendMsg(const char *msg); Loading libsysutils/src/SocketClient.cpp +23 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,29 @@ int SocketClient::sendCode(int code) { return sendData(buf, sizeof(buf)); } char *SocketClient::quoteArg(const char *arg) { int len = strlen(arg); char *result = (char *)malloc(len * 2 + 3); char *current = result; const char *end = arg + len; *(current++) = '"'; while (arg < end) { switch (*arg) { case '\\': case '"': *(current++) = '\\'; // fallthrough default: *(current++) = *(arg++); } } *(current++) = '"'; *(current++) = '\0'; result = (char *)realloc(result, current-result); return result; } int SocketClient::sendMsg(const char *msg) { if (mSocket < 0) { errno = EHOSTUNREACH; Loading Loading
include/sysutils/SocketClient.h +3 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,9 @@ public: void incRef(); bool decRef(); // returns true at 0 (but note: SocketClient already deleted) // return a new string in quotes with '\\' and '\"' escaped for "my arg" transmissions static char *quoteArg(const char *arg); private: // Send null-terminated C strings int sendMsg(const char *msg); Loading
libsysutils/src/SocketClient.cpp +23 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,29 @@ int SocketClient::sendCode(int code) { return sendData(buf, sizeof(buf)); } char *SocketClient::quoteArg(const char *arg) { int len = strlen(arg); char *result = (char *)malloc(len * 2 + 3); char *current = result; const char *end = arg + len; *(current++) = '"'; while (arg < end) { switch (*arg) { case '\\': case '"': *(current++) = '\\'; // fallthrough default: *(current++) = *(arg++); } } *(current++) = '"'; *(current++) = '\0'; result = (char *)realloc(result, current-result); return result; } int SocketClient::sendMsg(const char *msg) { if (mSocket < 0) { errno = EHOSTUNREACH; Loading