commit b9369337199bf857a4e61bdad526d3ff763d6e5d
parent 6234123172e67b055cd162e0ce37735f6c8445b7
Author: Kyle Milz <kyle@0x30.net>
Date: Fri, 5 Aug 2016 17:45:41 -0600
src: use a common read_string() function
Diffstat:
3 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/src/af_unix.cc b/src/af_unix.cc
@@ -132,6 +132,16 @@ af_unix::write_all(uint8_t *buf, size_t bytes_total)
return bytes_wrote;
}
+void
+af_unix::read_string(std::string &str)
+{
+ uint16_t sz;
+
+ read_all(sz);
+ str.resize(sz);
+ read_all((uint8_t *)&str[0], sz);
+}
+
int
af_unix::read_all(uint8_t *buf, size_t bytes_total)
{
diff --git a/src/af_unix.h b/src/af_unix.h
@@ -21,6 +21,7 @@ public:
return read_all((uint8_t *)&buf, sizeof(T));
};
+ void read_string(std::string &);
int read_all(uint8_t *, size_t);
int write_all(uint8_t *, size_t);
private:
diff --git a/src/runtime.cc b/src/runtime.cc
@@ -24,7 +24,6 @@ RuntimeProcess::RuntimeProcess(af_unix &sock) :
m_socket(sock),
m_tus_with_execs(0)
{
- uint16_t sz;
assert(sizeof(pid_t) == 4);
// Protocol defined in lib/runtime.c send_static().
@@ -37,20 +36,12 @@ RuntimeProcess::RuntimeProcess(af_unix &sock) :
m_socket.read_all(m_pid);
m_socket.read_all(m_ppid);
m_socket.read_all(m_pgrp);
-
- m_socket.read_all(sz);
- m_progname.resize(sz);
- m_socket.read_all((uint8_t *)&m_progname[0], sz);
-
- m_socket.read_all(sz);
- m_cwd.resize(sz);
- m_socket.read_all((uint8_t *)&m_cwd[0], sz);
+ m_socket.read_string(m_progname);
+ m_socket.read_string(m_cwd);
m_tus.resize(m_num_tus);
for (auto &t : m_tus) {
- m_socket.read_all(sz);
- t.file_name.resize(sz);
- m_socket.read_all((uint8_t *)&t.file_name[0], sz);
+ m_socket.read_string(t.file_name);
m_socket.read_all(t.num_lines);
m_socket.read_all(t.inst_sites);