Merge branch 'plugin-automation'
[ardour.git] / gtk2_ardour / pingback.cc
index e986b8e260f1139a35c533d94217837cd0040bcd..62d9191daf09c3983579d69656aaedd1b71b424f 100644 (file)
 #include <fstream>
 #include <cstring>
 
+#ifndef PLATFORM_WINDOWS
 #include <sys/utsname.h>
+#endif
+
 #include <curl/curl.h>
 
 #include <glibmm/miscutils.h>
 
 #include "pbd/compose.h"
 #include "pbd/pthread_utils.h"
+
 #include "ardour/filesystem_paths.h"
+#include "ardour/rc_configuration.h"
 
 #include "pingback.h"
 
 using std::string;
+using namespace ARDOUR;
 
 static size_t
 curl_write_data (char *bufptr, size_t size, size_t nitems, void *ptr)
@@ -67,6 +73,7 @@ struct ping_call {
 static void*
 _pingback (void *arg)
 {
+#ifndef PLATFORM_WINDOWS
        ping_call* cm = static_cast<ping_call*> (arg);
        CURL* c;
        struct utsname utb;
@@ -80,21 +87,18 @@ _pingback (void *arg)
 
        curl_global_init (CURL_GLOBAL_NOTHING);
        c = curl_easy_init ();
-
-       curl_easy_setopt(c, CURLOPT_WRITEFUNCTION, curl_write_data); 
-       curl_easy_setopt(c, CURLOPT_WRITEDATA, &return_str); 
+       
+       curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, curl_write_data); 
+       curl_easy_setopt (c, CURLOPT_WRITEDATA, &return_str); 
        char errbuf[CURL_ERROR_SIZE];
-       curl_easy_setopt(c, CURLOPT_ERRORBUFFER, errbuf); 
-
-       //get announcements from our server
-       std::cerr << "Checking for Announcements from ardour.org  ...\n";
+       curl_easy_setopt (c, CURLOPT_ERRORBUFFER, errbuf); 
 
        string url;
 
 #ifdef __APPLE__
-       url = "https://community.ardour.org/pingback/osx/";
+       url = Config->get_osx_pingback_url ();
 #else
-       url = "https://community.ardour.org/pingback/linux/";
+       url = Config->get_linux_pingback_url ();
 #endif
 
        char* v = curl_easy_escape (c, cm->version.c_str(), cm->version.length());
@@ -123,14 +127,12 @@ _pingback (void *arg)
        url += s;
        free (query);
 
-       std::cerr << "ping using " << url << std::endl;
-
        curl_easy_setopt (c, CURLOPT_URL, url.c_str());
 
        return_str = "";
 
        if (curl_easy_perform (c) == 0) {
-               int http_status; 
+               long http_status; 
 
                curl_easy_getinfo (c, CURLINFO_RESPONSE_CODE, &http_status);
 
@@ -153,11 +155,15 @@ _pingback (void *arg)
                                annc_file << return_str;
                        }
                }
+       } else {
+               std::cerr << "curl failed: " << errbuf << std::endl;
        }
 
        curl_easy_cleanup (c);
        delete cm;
 
+#endif /* PLATFORM_WINDOWS */
+
        return 0;
 }