aboutsummaryrefslogtreecommitdiffstats
path: root/libsysutils
diff options
context:
space:
mode:
Diffstat (limited to 'libsysutils')
-rw-r--r--libsysutils/src/SocketClient.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/libsysutils/src/SocketClient.cpp b/libsysutils/src/SocketClient.cpp
index 15331207..4a1227f4 100644
--- a/libsysutils/src/SocketClient.cpp
+++ b/libsysutils/src/SocketClient.cpp
@@ -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;