summaryrefslogtreecommitdiff
path: root/updater/socket.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'updater/socket.cpp')
-rw-r--r--updater/socket.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/updater/socket.cpp b/updater/socket.cpp
index d066a9d..7e5db53 100644
--- a/updater/socket.cpp
+++ b/updater/socket.cpp
@@ -81,6 +81,28 @@ bool GetFile(char *url, TCHAR *temp_folder, char *plugin_name, char *version, bo
ext = ".zip";
}
+ // replace version text in URL
+ char tmp_url[1024];
+ if (version != NULL) {
+ char *p;
+ size_t pos = 0;
+ size_t version_len = strlen(version);
+ while ((p = strstr(url, "%VERSION%")) != NULL && (p - url + version_len < sizeof(tmp_url) - 1)) {
+ strncpy(&tmp_url[pos], url, p - url);
+ pos += p - url;
+ strcpy(&tmp_url[pos], version);
+ pos += version_len;
+ url += p - url + 9; // 9 == strlen("%VERSION%")
+ }
+ if (strlen(url) < sizeof(tmp_url) - 1) {
+ strcpy(&tmp_url[pos], url);
+ pos += strlen(url);
+ }
+ tmp_url[pos] = 0;
+ url = tmp_url;
+ }
+
+
NETLIBHTTPREQUEST req = {0};
req.cbSize = sizeof(req);