From 20c78657aa1be1d9379d55cf0ff958c14040142d Mon Sep 17 00:00:00 2001 From: Lucio Zambon <lucio.zambon@elettra.eu> Date: Wed, 30 Sep 2020 09:22:49 +0200 Subject: [PATCH] update version message --- src/acs.cpp | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/src/acs.cpp b/src/acs.cpp index 509ac0b..ab83679 100644 --- a/src/acs.cpp +++ b/src/acs.cpp @@ -55,22 +55,29 @@ size_t write_data(char *ptr, size_t size, size_t nmemb, void *userdata) { return size * nmemb; } void acs::web_read(char *url, const char *data) { + if (strlen(data)==0) return; + unsigned idata=0; + while (data[idata]==' ') { + idata++; + if (idata == strlen(data)) return; + } CURL *curl; CURLcode res; - curl = curl_easy_init(); + curl = curl_easy_init(); if(curl) { char *output = curl_easy_escape(curl, (strlen(data)>0)? data: "", 0); strcat(url, output); - // cout << "curl_easy_escape(): " << url << endl; + cout << "curl_easy_escape(): " << url << endl; curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &write_data); // Perform the request, res will get the return code res = curl_easy_perform(curl); + cout << "res: " << res << ", web_data: " << web_data << endl; if (res == CURLE_OK && !web_data.compare("NOK")) { QMessageBox::information(this, "REGISTRAZIONE MANCANTE", "ATTENZIONE, badge non presente nel registro elettronico degli accessi\nEffettuare al piu' presto la registrazione", QMessageBox::Ok); } else if (res != CURLE_OK || web_data.compare("OK")) { - QMessageBox::information(this, "REGISTRAZIONE ACCESSO", "ATTENZIONE, non e' stato possibile contattare il registro elettronico degli accessi\nSi prega di verificare con cura che sia presente una registrazione", QMessageBox::Ok); + QMessageBox::information(this, "REGISTRAZIONE ACCESSO", "ATTENZIONE, non e' stato possibile contattare il registro elettronico degli accessi\nSi prega di verificare con cura che sia presente una registrazione", QMessageBox::Ok); } web_data.clear(); // clean escaped url string @@ -2763,17 +2770,36 @@ void acs::open_register() { register_process->start("/usr/local/firefox/firefox http://fcsproxy.elettra.eu/docs/pss/register.php"); } +std::string myexec(const char* cmd) { + char buffer[128]; + std::string result = ""; + FILE* pipe = popen(cmd, "r"); + if (!pipe) throw std::runtime_error("popen() failed!"); + try { + while (fgets(buffer, sizeof buffer, pipe) != NULL) { + result += buffer; + } + } catch (...) { + pclose(pipe); + throw; + } + pclose(pipe); + return result; +} void acs::open_version_panel() { vector<bool> stat; - string strstat; + string strstat, panelVersion; + panelVersion = myexec("/usr/bin/curl \"https://gitlab.elettra.eu/cs/gui/acs/-/tags\" -H \"Accept: text/html\" -s | grep Release | head -2 | tail -1"); + cout << "panelVersion: " << panelVersion.c_str() << endl; // set PLC status if (myReadAttribute("Version")) { myAttribute >> strstat; // strstat += "pan_ver: 1.30"; strstat += "pan_ver: "; - strstat += myversion.length()>17? myversion.substr(15,2): myversion; + // strstat += myversion.length()>17? myversion.substr(15,2): myversion; + strstat += panelVersion; // open procedure try { QMessageBox::question(this, "Versione", strstat.c_str(), "Esci"); -- GitLab