#include "jpeg.h"
#include "image_png.h"
-static cvar_t cl_curl_maxdownloads = {CVAR_SAVE, "cl_curl_maxdownloads","1", "maximum number of concurrent HTTP/FTP downloads"};
-static cvar_t cl_curl_maxspeed = {CVAR_SAVE, "cl_curl_maxspeed","300", "maximum download speed (KiB/s)"};
-static cvar_t sv_curl_defaulturl = {CVAR_SAVE, "sv_curl_defaulturl","", "default autodownload source URL"};
-static cvar_t sv_curl_serverpackages = {CVAR_SAVE, "sv_curl_serverpackages","", "list of required files for the clients, separated by spaces"};
-static cvar_t sv_curl_maxspeed = {CVAR_SAVE, "sv_curl_maxspeed","0", "maximum download speed for clients downloading from sv_curl_defaulturl (KiB/s)"};
-static cvar_t cl_curl_enabled = {CVAR_SAVE, "cl_curl_enabled","1", "whether client's download support is enabled"};
-static cvar_t cl_curl_useragent = {0, "cl_curl_useragent","1", "send the User-Agent string (note: turning this off may break stuff)"};
-static cvar_t cl_curl_useragent_append = {0, "cl_curl_useragent_append","", "a string to append to the User-Agent string (useful for name and version number of your mod)"};
+static cvar_t cl_curl_maxdownloads = {CVAR_CLIENT | CVAR_SAVE, "cl_curl_maxdownloads","1", "maximum number of concurrent HTTP/FTP downloads"};
+static cvar_t cl_curl_maxspeed = {CVAR_CLIENT | CVAR_SAVE, "cl_curl_maxspeed","300", "maximum download speed (KiB/s)"};
+static cvar_t sv_curl_defaulturl = {CVAR_SERVER | CVAR_SAVE, "sv_curl_defaulturl","", "default autodownload source URL"};
+static cvar_t sv_curl_serverpackages = {CVAR_SERVER | CVAR_SAVE, "sv_curl_serverpackages","", "list of required files for the clients, separated by spaces"};
+static cvar_t sv_curl_maxspeed = {CVAR_SERVER | CVAR_SAVE, "sv_curl_maxspeed","0", "maximum download speed for clients downloading from sv_curl_defaulturl (KiB/s)"};
+static cvar_t cl_curl_enabled = {CVAR_CLIENT | CVAR_SAVE, "cl_curl_enabled","1", "whether client's download support is enabled"};
+static cvar_t cl_curl_useragent = {CVAR_CLIENT, "cl_curl_useragent","1", "send the User-Agent string (note: turning this off may break stuff)"};
+static cvar_t cl_curl_useragent_append = {CVAR_CLIENT, "cl_curl_useragent_append","", "a string to append to the User-Agent string (useful for name and version number of your mod)"};
/*
=================================================================
static downloadinfo *downloads = NULL;
static int numdownloads = 0;
-static qboolean noclear = FALSE;
+static qboolean noclear = false;
static int numdownloads_fail = 0;
static int numdownloads_success = 0;
if(numdownloads_fail == 0)
{
Con_DPrintf("cURL downloads occurred, executing %s\n", command_when_done);
- Cbuf_AddText("\n");
- Cbuf_AddText(command_when_done);
- Cbuf_AddText("\n");
+ Cbuf_AddText(&cmd_client, "\n");
+ Cbuf_AddText(&cmd_client, command_when_done);
+ Cbuf_AddText(&cmd_client, "\n");
}
else
{
Con_DPrintf("cURL downloads FAILED, executing %s\n", command_when_error);
- Cbuf_AddText("\n");
- Cbuf_AddText(command_when_error);
- Cbuf_AddText("\n");
+ Cbuf_AddText(&cmd_client, "\n");
+ Cbuf_AddText(&cmd_client, command_when_error);
+ Cbuf_AddText(&cmd_client, "\n");
}
Curl_Clear_forthismap();
}
double maxspeed;
downloadinfo *di;
- noclear = FALSE;
+ noclear = false;
if(!cl_curl_enabled.integer)
return;
return;
}
- if(realtime < curltime) // throttle
+ if(host.realtime < curltime) // throttle
{
if (curl_mutex) Thread_UnlockMutex(curl_mutex);
return;
if(maxspeed > 0)
{
double bytes = bytes_sent + bytes_received; // maybe smoothen a bit?
- curltime = realtime + bytes / (maxspeed * 1024.0);
+ curltime = host.realtime + bytes / (maxspeed * 1024.0);
bytes_sent = 0;
bytes_received = 0;
}
else
- curltime = realtime;
+ curltime = host.realtime;
if (curl_mutex) Thread_UnlockMutex(curl_mutex);
}
====================
*/
// TODO rewrite using Curl_GetDownloadInfo?
-static void Curl_Info_f(void)
+static void Curl_Info_f(cmd_state_t *cmd)
{
downloadinfo *di;
char urlbuf[1024];
once the last download completes successfully, reconnect to the current server
====================
*/
-static void Curl_Curl_f(void)
+static void Curl_Curl_f(cmd_state_t *cmd)
{
double maxspeed = 0;
int i;
return;
}
- if(Cmd_Argc() < 2)
+ if(Cmd_Argc(cmd) < 2)
{
Con_Print("usage:\ncurl --info, curl --cancel [filename], curl url\n");
return;
}
- url = Cmd_Argv(Cmd_Argc() - 1);
- end = Cmd_Argc();
+ url = Cmd_Argv(cmd, Cmd_Argc(cmd) - 1);
+ end = Cmd_Argc(cmd);
for(i = 1; i != end; ++i)
{
- const char *a = Cmd_Argv(i);
+ const char *a = Cmd_Argv(cmd, i);
if(!strcmp(a, "--info"))
{
- Curl_Info_f();
+ Curl_Info_f(cmd);
return;
}
else if(!strcmp(a, "--cancel"))
{
for(i = i + 1; i != end - 1; ++i)
{
- if(!FS_FileExists(Cmd_Argv(i)))
+ if(!FS_FileExists(Cmd_Argv(cmd, i)))
goto needthefile; // why can't I have a "double break"?
}
// if we get here, we have all the files...
if(i < end - 1)
{
++i;
- name = Cmd_Argv(i);
+ name = Cmd_Argv(cmd, i);
}
}
else if(!strcmp(a, "--clear_autodownload"))
{
dpsnprintf(donecommand, sizeof(donecommand), "connect %s", cls.netcon->address);
Curl_CommandWhenDone(donecommand);
- noclear = TRUE;
+ noclear = true;
CL_Disconnect();
- noclear = FALSE;
+ noclear = false;
Curl_CheckCommandWhenDone();
}
else
Z_Free(buffer);
}
-void Curl_CurlCat_f(void)
+void Curl_CurlCat_f(cmd_state_t *cmd)
{
unsigned char *buf;
- const char *url = Cmd_Argv(1);
+ const char *url = Cmd_Argv(cmd, 1);
buf = Z_Malloc(16384);
Curl_Begin_ToMemory(url, buf, 16384, curl_curlcat_callback, NULL);
}
Cvar_RegisterVariable (&sv_curl_maxspeed);
Cvar_RegisterVariable (&cl_curl_useragent);
Cvar_RegisterVariable (&cl_curl_useragent_append);
- Cmd_AddCommand ("curl", Curl_Curl_f, "download data from an URL and add to search path");
- //Cmd_AddCommand ("curlcat", Curl_CurlCat_f, "display data from an URL (debugging command)");
+ Cmd_AddCommand(CMD_CLIENT | CMD_CLIENT_FROM_SERVER, "curl", Curl_Curl_f, "download data from an URL and add to search path");
+ //Cmd_AddCommand(&cmd_client, "curlcat", Curl_CurlCat_f, "display data from an URL (debugging command)");
}
/*
strlcat(sendbuffer, "curl --finish_autodownload\n", sizeof(sendbuffer));
if(strlen(sendbuffer) + 1 < sizeof(sendbuffer))
- Host_ClientCommands("%s", sendbuffer);
+ SV_ClientCommands("%s", sendbuffer);
else
Con_Printf("Could not initiate autodownload due to URL buffer overflow\n");
}