/* 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 */