summaryrefslogtreecommitdiff
path: root/gtk2_ardour/pingback.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-07-11 21:45:26 +0200
committerRobin Gareus <robin@gareus.org>2015-07-11 21:46:25 +0200
commit96a9bf988f12a27d6921704e456f0e2ebc9dd3d6 (patch)
treeaa8dc1d394c31efdde5edc88b6a164b37b5a320f /gtk2_ardour/pingback.cc
parentdeedb25ab64d0a4876cfa29da4603b546ea83c0d (diff)
prepare windows pingback
Diffstat (limited to 'gtk2_ardour/pingback.cc')
-rw-r--r--gtk2_ardour/pingback.cc33
1 files changed, 23 insertions, 10 deletions
diff --git a/gtk2_ardour/pingback.cc b/gtk2_ardour/pingback.cc
index 8e4a32628d..10a48232d0 100644
--- a/gtk2_ardour/pingback.cc
+++ b/gtk2_ardour/pingback.cc
@@ -75,16 +75,9 @@ struct ping_call {
static void*
_pingback (void *arg)
{
-#ifndef PLATFORM_WINDOWS
ping_call* cm = static_cast<ping_call*> (arg);
CURL* c;
- struct utsname utb;
string return_str;
-
- if (uname (&utb)) {
- return 0;
- }
-
//initialize curl
curl_global_init (CURL_GLOBAL_NOTHING);
@@ -99,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;
@@ -128,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());
@@ -163,9 +179,6 @@ _pingback (void *arg)
curl_easy_cleanup (c);
delete cm;
-
-#endif /* PLATFORM_WINDOWS */
-
return 0;
}