X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fupdate_checker.cc;h=3897b81d8876e2a7a8c7f2a06a37d5c9ce9482c3;hb=67cc6717aeb5f3b96448b206d1b85d68cbb26767;hp=3bc02b50af7a5116cebfdad1f854912fbfa908ed;hpb=16e560c3815b52609de103b45c1d5d2cbf155b97;p=dcpomatic.git diff --git a/src/lib/update_checker.cc b/src/lib/update_checker.cc index 3bc02b50a..3897b81d8 100644 --- a/src/lib/update_checker.cc +++ b/src/lib/update_checker.cc @@ -57,7 +57,7 @@ write_callback_wrapper (void* data, size_t size, size_t nmemb, void* user) * do the work. */ UpdateChecker::UpdateChecker () - : _buffer (new char[BUFFER_SIZE]) + : _buffer (BUFFER_SIZE) , _state (State::NOT_RUN) { _curl = curl_easy_init (); @@ -66,6 +66,7 @@ UpdateChecker::UpdateChecker () curl_easy_setopt (_curl, CURLOPT_WRITEFUNCTION, write_callback_wrapper); curl_easy_setopt (_curl, CURLOPT_WRITEDATA, this); curl_easy_setopt (_curl, CURLOPT_TIMEOUT, 20); + curl_easy_setopt (_curl, CURLOPT_NOSIGNAL, 1L); string const agent = "dcpomatic/" + string (dcpomatic_version); curl_easy_setopt (_curl, CURLOPT_USERAGENT, agent.c_str ()); @@ -97,7 +98,6 @@ UpdateChecker::~UpdateChecker () } catch (...) {} curl_easy_cleanup (_curl); - delete[] _buffer; } @@ -142,7 +142,7 @@ UpdateChecker::thread () /* Parse the reply */ _buffer[_offset] = '\0'; - string s (_buffer); + string s (_buffer.data()); cxml::Document doc ("Update"); doc.read_string (s); @@ -181,7 +181,7 @@ size_t UpdateChecker::write_callback (void* data, size_t size, size_t nmemb) { size_t const t = min (size * nmemb, size_t (BUFFER_SIZE - _offset - 1)); - memcpy (_buffer + _offset, data, t); + memcpy (_buffer.data() + _offset, data, t); _offset += t; return t; }