summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-02-24 18:02:49 +0100
committerCarl Hetherington <cth@carlh.net>2021-02-24 18:02:49 +0100
commitde795b3e103309210dac9e331d45aacf0f0d884c (patch)
treecb1679edba6f292665bfa10f673f2aed6efb4986 /src/lib
parentc003df64136806705d7662a885ada028a2ba3032 (diff)
Fix config.xml corruption when it contains multi-byte UTF8 characters.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/config.cc2
-rw-r--r--src/lib/dcp_video.cc2
-rw-r--r--src/lib/encode_server.cc8
3 files changed, 6 insertions, 6 deletions
diff --git a/src/lib/config.cc b/src/lib/config.cc
index d38256673..cc9bd6ffd 100644
--- a/src/lib/config.cc
+++ b/src/lib/config.cc
@@ -984,7 +984,7 @@ Config::write_config () const
if (!f) {
throw FileError (_("Could not open file for writing"), tmp);
}
- checked_fwrite (s.c_str(), s.length(), f, tmp);
+ checked_fwrite (s.c_str(), s.bytes(), f, tmp);
fclose (f);
boost::filesystem::remove (config_file());
boost::filesystem::rename (tmp, config_file());
diff --git a/src/lib/dcp_video.cc b/src/lib/dcp_video.cc
index 153f4997e..ed68299bb 100644
--- a/src/lib/dcp_video.cc
+++ b/src/lib/dcp_video.cc
@@ -226,7 +226,7 @@ DCPVideo::encode_remotely (EncodeServerDescription serv, int timeout)
/* Send XML metadata */
auto xml = doc.write_to_string ("UTF-8");
socket->write (xml.length() + 1);
- socket->write ((uint8_t *) xml.c_str(), xml.length() + 1);
+ socket->write ((uint8_t *) xml.c_str(), xml.bytes() + 1);
/* Send binary data */
LOG_TIMING("start-remote-send thread=%1", thread_id ());
diff --git a/src/lib/encode_server.cc b/src/lib/encode_server.cc
index 92589c573..891b8caac 100644
--- a/src/lib/encode_server.cc
+++ b/src/lib/encode_server.cc
@@ -295,8 +295,8 @@ EncodeServer::broadcast_received ()
try {
auto socket = make_shared<Socket>();
socket->connect (boost::asio::ip::tcp::endpoint (_broadcast.send_endpoint.address(), MAIN_SERVER_PRESENCE_PORT));
- socket->write (xml.length() + 1);
- socket->write ((uint8_t *) xml.c_str(), xml.length() + 1);
+ socket->write (xml.bytes() + 1);
+ socket->write ((uint8_t *) xml.c_str(), xml.bytes() + 1);
} catch (...) {
}
@@ -304,8 +304,8 @@ EncodeServer::broadcast_received ()
try {
auto socket = make_shared<Socket>();
socket->connect (boost::asio::ip::tcp::endpoint (_broadcast.send_endpoint.address(), BATCH_SERVER_PRESENCE_PORT));
- socket->write (xml.length() + 1);
- socket->write ((uint8_t *) xml.c_str(), xml.length() + 1);
+ socket->write (xml.bytes() + 1);
+ socket->write ((uint8_t *) xml.c_str(), xml.bytes() + 1);
} catch (...) {
}