diff --git a/lab03.cbp b/lab03.cbp
index b9ee886..e33d55d 100644
--- a/lab03.cbp
+++ b/lab03.cbp
@@ -13,7 +13,12 @@
+
+
+
+
+
diff --git a/main.cpp b/main.cpp
index bc5e81a..d67a073 100644
--- a/main.cpp
+++ b/main.cpp
@@ -39,15 +39,18 @@ size_t write_data(void* items, size_t item_size, size_t item_count, void* ctx) {
return data_size;
}
-Input download(const string& address) {
+Input download(const string& address, bool verbose) { //добавлен параметр 'verbose'
stringstream buffer;
CURL* curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, address.c_str());
-
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);
+ if (verbose){ //добавлено включение подробного вывода, если задан флаг
+ curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
+ }
+
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
cerr << "cURL error: " << curl_easy_strerror(res) << endl;
@@ -65,10 +68,35 @@ Input download(const string& address) {
int main(int argc, char* argv[])
{
+ //добавлена переменная-флаг и URL
+ bool verbose = false;
+ string url;
+
+ //добавлен разбор аргументов
+ for(int i=1; i" << endl;
+ return 1;
+ }
+ else{
+ url = arg;
+ }
+ }
+
Input inn;
- if (argc > 1) {
- inn = download(argv[1]);
+ // изменен вызов на verbose download
+ //if (argc > 1) {
+ // inn = download(argv[1]);
+ //}
+ if (!url.empty()){
+ inn = download(url, verbose);
}
+
else {
inn = input_data(cin, true);
}
@@ -78,3 +106,8 @@ int main(int argc, char* argv[])
return 0;
}
+
+// Защита вариант 10
+// Добавьте программе опцию -verbose, при указании которой нужно включать отладочный вывод
+// cURL с помощью CURLOPT_VERBOSE. Опция может стоять до или после URL:
+// lab34.exe -verbose http://... или lab04.exe http://... -verbose