more transport button caironizing.
[ardour.git] / gtk2_ardour / pingback.cc
index e986b8e260f1139a35c533d94217837cd0040bcd..8e4a32628d546585ec29896e9ea2b6832c67b32e 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;
 
+#ifndef PLATFORM_WINDOWS // no pingback for windows, so far
 static size_t
 curl_write_data (char *bufptr, size_t size, size_t nitems, void *ptr)
 {
@@ -55,6 +62,7 @@ curl_write_data (char *bufptr, size_t size, size_t nitems, void *ptr)
 
         return size * nitems;
 }
+#endif
 
 struct ping_call {
     std::string version;
@@ -67,6 +75,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 +89,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 +129,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 +157,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;
 }