projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
prepare windows pingback
[ardour.git]
/
gtk2_ardour
/
pingback.cc
diff --git
a/gtk2_ardour/pingback.cc
b/gtk2_ardour/pingback.cc
index 62d9191daf09c3983579d69656aaedd1b71b424f..10a48232d0ad17af214af543ff14b2babd6021e5 100644
(file)
--- a/
gtk2_ardour/pingback.cc
+++ b/
gtk2_ardour/pingback.cc
@@
-42,6
+42,7
@@
using std::string;
using namespace ARDOUR;
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)
{
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;
}
return size * nitems;
}
+#endif
struct ping_call {
std::string version;
struct ping_call {
std::string version;
@@
-73,16
+75,9
@@
struct ping_call {
static void*
_pingback (void *arg)
{
static void*
_pingback (void *arg)
{
-#ifndef PLATFORM_WINDOWS
ping_call* cm = static_cast<ping_call*> (arg);
CURL* c;
ping_call* cm = static_cast<ping_call*> (arg);
CURL* c;
- struct utsname utb;
string return_str;
string return_str;
-
- if (uname (&utb)) {
- return 0;
- }
-
//initialize curl
curl_global_init (CURL_GLOBAL_NOTHING);
//initialize curl
curl_global_init (CURL_GLOBAL_NOTHING);
@@
-97,15
+92,30
@@
_pingback (void *arg)
#ifdef __APPLE__
url = Config->get_osx_pingback_url ();
#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
#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);
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;
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);
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());
curl_easy_setopt (c, CURLOPT_URL, url.c_str());
@@
-161,9
+179,6
@@
_pingback (void *arg)
curl_easy_cleanup (c);
delete cm;
curl_easy_cleanup (c);
delete cm;
-
-#endif /* PLATFORM_WINDOWS */
-
return 0;
}
return 0;
}