X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fpingback.cc;h=10a48232d0ad17af214af543ff14b2babd6021e5;hb=96a9bf988f12a27d6921704e456f0e2ebc9dd3d6;hp=62d9191daf09c3983579d69656aaedd1b71b424f;hpb=3020b224fa2d6e1b6b8a576e8e8e211e0585f2a2;p=ardour.git diff --git a/gtk2_ardour/pingback.cc b/gtk2_ardour/pingback.cc index 62d9191daf..10a48232d0 100644 --- a/gtk2_ardour/pingback.cc +++ b/gtk2_ardour/pingback.cc @@ -42,6 +42,7 @@ 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) { @@ -61,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; @@ -73,16 +75,9 @@ struct ping_call { static void* _pingback (void *arg) { -#ifndef PLATFORM_WINDOWS ping_call* cm = static_cast (arg); CURL* c; - struct utsname utb; string return_str; - - if (uname (&utb)) { - return 0; - } - //initialize curl curl_global_init (CURL_GLOBAL_NOTHING); @@ -97,15 +92,30 @@ _pingback (void *arg) #ifdef __APPLE__ url = Config->get_osx_pingback_url (); +#elif defined PLATFORM_WINDOWS + url = Config->get_windows_pingback_url (); #else url = Config->get_linux_pingback_url (); #endif + if (url.compare (0, 4, "http") != 0) { + delete cm; + return 0; + } + char* v = curl_easy_escape (c, cm->version.c_str(), cm->version.length()); url += v; url += '?'; free (v); +#ifndef PLATFORM_WINDOWS + struct utsname utb; + + if (uname (&utb)) { + delete cm; + return 0; + } + string uts = string_compose ("%1 %2 %3 %4", utb.sysname, utb.release, utb.version, utb.machine); string s; char* query; @@ -126,6 +136,14 @@ _pingback (void *arg) s = string_compose ("m=%1", query); url += s; free (query); +#else + // this is hilarious: https://msdn.microsoft.com/en-us/library/windows/desktop/ms724429%28v=vs.85%29.aspx +# if ( defined(__x86_64__) || defined(_M_X64) ) + url += "a=64"; +# else + url += "a=32"; +# endif +#endif /* PLATFORM_WINDOWS */ curl_easy_setopt (c, CURLOPT_URL, url.c_str()); @@ -161,9 +179,6 @@ _pingback (void *arg) curl_easy_cleanup (c); delete cm; - -#endif /* PLATFORM_WINDOWS */ - return 0; }