/*
dload - Dot command for downloading files on the Spectrum Next
Copyright (C) 2025 Ian Cowburn (ianc@noddybox.co.uk)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
--------------------------------------------------------------------------
Main
*/
#include
#include
#include "wifi.h"
/* ---------------------------------------- MACROS
*/
/* ---------------------------------------- VERSION INFO
*/
static const char *dload_usage =
"Version 1.0 development\n"
"\n"
"This program is distributed in\n"
"the hope that it will be useful,\n"
"but WITHOUT ANY WARRANTY;\n"
"without even the implied\n"
"warranty of MERCHANTABILITY or\n"
"FITNESS FOR A PARTICULAR\n"
"PURPOSE. See the GNU General\n"
"Public License (Version 3) for\n"
"more details.\n"
"\n"
"usage:\n"
".dload http_url [dest_file]\n";
/* ---------------------------------------- TYPES
*/
/* ---------------------------------------- GLOBALS
*/
/* ---------------------------------------- PRIVATE FUNCTIONS
*/
static const char *StatusCode(WifiStatus status)
{
switch(status)
{
case eWifiNotAvailable:
return "Wifi not available";
case eWifiNotConnected:
return "Wifi not connected";
case eWifiUnknownHost:
return "Unknown host";
case eWifiFailedToWrite:
return "Failed to write to network";
case eWifiFailedToReceive:
return "Failed to read from network";
case eWifiTimeout:
return "Timeout";
case eWifiInvalidURL:
return "Invalid URL";
case eWifiFailedToSendCommand:
return "Failed to send command to modem";
case eWifiBadHTTPStatusCode:
return "Bad HTTP status code";
case eWifiOK:
return "OK";
default:
return "Error - unknown status code";
}
}
/* ---------------------------------------- MAIN
*/
int main(int argc, char *argv[])
{
WifiStatus status;
if (argc < 2)
{
fprintf(stderr,"%s\n", dload_usage);
return EXIT_FAILURE;
}
if ((status = WifiConnect()) != eWifiOK)
{
fprintf(stderr, "WifiConnect: %s\n", StatusCode(status));
return EXIT_FAILURE;
}
if ((status = ConnectURL(0, argv[1], 0)) != eWifiOK)
{
fprintf(stderr, "ConnectURL: %s\n", StatusCode(status));
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
/*
vim: ai sw=4 ts=8 expandtab
*/