LINUX.ORG.RU

Сообщения Masha

 

Сбор библиотеки curl c openssl

Добрый день! Хочу собрать библиотеку curl c возможностью поддержки протокола https в Red Hat Linux. ./configure --with-ssl=/usr/local/ssl/fips-2.0 При выполнении make && make install возникает следующая ошибка: http://screeny.ru/534bae9569000fff1f021450 Не подскажете, с чем это может быть связано?

Masha
()

Компиляция с использование DJGPP в MS DOS 6.22

Пытаюсь скомпилировать небольшой пример с использованием компилятора djgpp. Не понимаю, в чем может быть проблема: http://screeny.ru/5346a47c69000fff1f0087da http://screeny.ru/5346a57269000fff1f008874

Masha
()

Поддерживает ли DOS 6.22 и FreeDos кодировку utf-8

Добрый день! Не подскажете, поддерживает ли DOS 6.22 и FreeDOS кодировку UTf_8 (желательно ссылку на авторитетные источники)?Каким образом можно изменить кодировку на кодировку UTF-8?

Masha
()

curl в MS DOS 6.22

Добрый день! На сайте curl http://www.rahul.net/dkaufman/index.html скачала утилиту curl для DOS. Установила пакетный драйвер http://www.georgpotthast.de/sioux/pktdrv/pcnetodi.zip и стек протоколов WATT32. Стек поднялся, DHCP работает, могу пинговать сайты, но утилита curl все рано не работает, не могу понять, в чем дело http://screeny.ru/5343af8bc9a53d341603674e.

Masha
()

Реализация SOAP-запросов в DOS

Добрый день! Мне необходимо написать приложение, выполняющее SOAP-запросы к удаленному серверу(C++/STL). Какие для этого существуют возможности в DOS? Под Linux я использовала для таких задач библиотеки curl и openssl. Есть ли возможность установить данные библиотеки и как это сделать для моего окружения: DOS 6.22, 16bit, компилятор open watcom, сеть организована, доступ в интернет есть.

 , ,

Masha
()

c++ curl Работа с https

Добрый день! Для осуществления SOAP-запросов использую библиотеку curl и следующий метод.

void CurlSoapHandler::DoRequest(const std::string& sRequest, std::string& sResponse)
{
	CURLcode res;
	struct curl_slist *headerlist=NULL;
	headerlist = curl_slist_append(headerlist, "Content-Type:text/xml");
	curl_global_init(CURL_GLOBAL_ALL);
	_CURL = curl_easy_init();
	if(_CURL)
	{
				curl_easy_setopt( _CURL, CURLOPT_URL, GetURL().c_str());
		    				
		std::string sAuthor = GetUserName ()+"@"+GetDomen()+":"+GetUserPassword ();
		curl_easy_setopt( _CURL, CURLOPT_USERPWD, sAuthor.c_str());
		curl_easy_setopt( _CURL, CURLOPT_POSTFIELDS, sRequest.c_str());
		curl_easy_setopt( _CURL, CURLOPT_HTTPHEADER, headerlist);
		curl_easy_setopt(_CURL, CURLOPT_WRITEFUNCTION, CurlSoapHandler::write_data_string);
		curl_easy_setopt(_CURL, CURLOPT_WRITEDATA, &sResponse);
		res = curl_easy_perform(_CURL);
		if(res != CURLE_OK)
		{	
    	    std::cerr<<"CURL message: "<<curl_easy_strerror(res)<<std::endl;
			fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
		}
		curl_easy_cleanup(_CURL);
    }
	else
	{
				
	}
  curl_global_cleanup();
  curl_slist_free_all (headerlist);
 
 }

Проблем не возникает. Когда я меняю URL на адрес c https, возвращается пустой ответ (sResponse) и ошибка «Unsupported protocol»,хотя вроде бы проверка сертификации отключена...Не подскажете, в чем может быть проблема?

void CurlSoapHandler::DoRequest(const std::string& sRequest, std::string& sResponse)
{
	CURLcode res;
	struct curl_slist *headerlist=NULL;
	headerlist = curl_slist_append(headerlist, "Content-Type:text/xml");
	curl_global_init(CURL_GLOBAL_ALL);
	_CURL = curl_easy_init();
	if(_CURL)
	{
				curl_easy_setopt( _CURL, CURLOPT_URL, GetURL().c_str());
		    				
		std::string sAuthor = GetUserName()+"@"+GetDomen()+":"+GetUserPassword();
		curl_easy_setopt( _CURL, CURLOPT_USERPWD, sAuthor.c_str());
		curl_easy_setopt( _CURL, CURLOPT_POSTFIELDS, sRequest.c_str());
		curl_easy_setopt( _CURL, CURLOPT_HTTPHEADER, headerlist);
		curl_easy_setopt( _CURL, CURLOPT_VERIFYPEER, 0L);
	curl_easy_setopt( _CURL, CURLOPT_VERIFYHOST, 0L);
		curl_easy_setopt(_CURL, CURLOPT_WRITEFUNCTION, CurlSoapHandler::write_data_string);
		curl_easy_setopt(_CURL, CURLOPT_WRITEDATA, &sResponse);
		res = curl_easy_perform(_CURL);
		if(res != CURLE_OK)
		{	
    	    std::cerr<<"CURL message: "<<curl_easy_strerror(res)<<std::endl;
			fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
		}
		curl_easy_cleanup(_CURL);
    }
	else
	{
				
	}
  curl_global_cleanup();
  curl_slist_free_all (headerlist);
 
 }

Перемещено Pinkbyte из linux-install

Masha
()

curl для DOS

Добрый день! Не подскажете, как реализовать отправку SOAP-запросов на сервер в DOS? Я использую DOSBox, компилятор openwatcom. Раньше для аналогичных задач я подключала библиотеку curl. Есть ли здесь возможность использовать эту библиотеку в моем окружении? Как в DOSBox работать с сетью? Есть ли физическая возможность иметь доступ к интернету и отправлять на удаленный сервер SOAP-запросы? Команда ping не распознается. http://screeny.ru/5331846bad32b5dc4003be04

Masha
()

С++ /STL для DOS

Добрый день! Не подскажете, есть ли возможность скомпилировать приложение С++/STL под DOS и запустить? Как, например, скомпилировать следующее приложение?

#include <iostream>
#include <vector>

int main()
{
	
	std::vector<int> A;
	A.push_back(1);
	std::cout<<A[0]<<std::endl;
	return 0;
}

Установила DosBox, расшарила папку, подскажите, пожалуйста, следующие шаги? C помощью Turbo С скомпилировать мое приложение не удастся, может, есть какие-то среды и/или компиляторы для С++/STL?

Перемещено mono из general

 

Masha
()

Работа с DOSBox

Добрый день! Собираюсь вести разработку под DOS на С++/STL. Пока только установила DOSBox, пробую примонтировать общую папку. Примонтировать папку удалось, однако перейти в нее почему-то не получается. http://screeny.ru/532c0ab5ad32b5dc4001caf7 Не подскажете, в чем проблема?

 ,

Masha
()

Установка DOS 6.22 + Norton Commander и создание общей папки

Добрый день! Не подскажете, где можно взять DOS 6.22 + Norton Commander (16-разрядный), как его установить и каким образом потом расшарить папку между хостовой и гостевой системой? Сейчас у меня установлена голая консольная версия DOS 6.22 в VirtualBox, работать в которой не слишком удобно. Расшарить папку не получилось, прочитала, что гостевых дополнений для DOS в VirtualBox и VMWare нет, то есть сделать это вообще не удастся...

Masha
()

C++ curl FTP убрать лишний вывод в консоль

Добрый день! При загрузке файла на ftp-сервер присутствует вывод в консоль, который необходимо убрать. Например, при успешной загрузке: «226 Transfer complete». Подскажите, пожалуйста, как это сделать? Вроде бы весь вывод из консоли убран...

static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *stream)
	{
		curl_off_t nread;

		size_t retcode = fread(ptr, size, nmemb, (FILE*)stream);

	    nread = (curl_off_t)retcode;

	 // fprintf(stderr, "*** We read %" CURL_FORMAT_CURL_OFF_T
       //   " bytes from file\n", nread);
		return retcode;
	}

void CurlSoapHandler::UploadToFtpServer(const std::string& sFilePath)
{
  CURL *curl;
  CURLcode res;
  FILE *hd_src;
  struct stat file_info;
  curl_off_t fsize;

  struct curl_slist *headerlist=NULL;


  
  std::string sURL("fttp://10.10.10.10//file");
  
  /* get the file size of the local file */ 
  if(stat(sFilePath.c_str(), &file_info)) {
    
  }
  fsize = (curl_off_t)file_info.st_size;

 std::string sFileSize(CURL_FORMAT_CURL_OFF_T);
 

  /* get a FILE * of the same file */ 
  hd_src = fopen(sFilePath.c_str(), "rb");

  /* In windows, this will init the winsock stuff */ 
  curl_global_init(CURL_GLOBAL_ALL);

  /* get a curl handle */ 
  curl = curl_easy_init();
  if(curl) {


    /* we want to use our own read function */ 
    curl_easy_setopt(curl, CURLOPT_READFUNCTION, CurlSoapHandler::read_callback);

    /* enable uploading */ 
    curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);

    /* specify target */ 
    curl_easy_setopt(curl,CURLOPT_URL, sURL.c_str());
	
	curl_easy_setopt( curl, CURLOPT_USERPWD, ("user:password");	

    	

    /* pass in that last of FTP commands to run after the transfer */ 
    curl_easy_setopt(curl, CURLOPT_POSTQUOTE, headerlist);

    /* now specify which file to upload */ 
    curl_easy_setopt(curl, CURLOPT_READDATA, hd_src);

    /* Set the size of the file to upload (optional).  If you give a *_LARGE
       option you MUST make sure that the type of the passed-in argument is a
       curl_off_t. If you use CURLOPT_INFILESIZE (without _LARGE) you must
       make sure that to pass in a type 'long' argument. */ 
    curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE,
                     (curl_off_t)fsize);

    /* Now run off and do what you've been told! */ 
    res = curl_easy_perform(curl);
    /* Check for errors */ 
    if(res != CURLE_OK)
	{
		std::string sCurlProblem(curl_easy_strerror(res));
      //fprintf(stderr, "curl_easy_perform() failed: %s\n",
              //curl_easy_strerror(res));

    /* clean up the FTP commands list */
		Logger::Instance(_sFilePath.substr(0, _sFilePath.find_last_of("\/")))->WriteToLog(sCurlProblem);
	}
    curl_slist_free_all (headerlist);

    /* always cleanup */ 
    curl_easy_cleanup(curl);
  }
  fclose(hd_src); /* close the local file */ 

  curl_global_cleanup();         




  // Wait for keystroke
   //getch();
  //return 0;
}

Masha
()

С++ curl загрузка файла на ftp сервер

Добрый день! Не подскажете, как с помощью библиотеки curl загрузить файл на ftp сервер? Может быть, у кого-то есть под рукой рабочий пример? Собрать примеры (например, http://stackoverflow.com/questions/18268673/curl-easy-perform-failed-failed-f...), найденные в интернете, не удалось.

Masha
()

Передача строки с русским текстом

Добрый день! Есть ПО, которое работает на старом RedHat(3.2.2-5). Клиенту, который работает под этой же ОС, должен предоставляться метод, который возвращает строку с русским текстом. (Строку формирует ПО). Не подскажете, как это реализовать и обойти проблемы с кодировкой?

Masha
()

Проблемы с открытием файла на разных версиях Linux

Добрый день! Запускаю приложение на Ubuntu и RedHat. В первом случае все ОК (g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3), файл открывается, и выполняются необходимые действия, во втором случае (g++ (gcc) 3.2.2 20030222) файл не открывается (is_open() возвращает false), хотя путь к файлу указан верно...RedHat не поддерживает такой способ открытия файла? Нужно включить еще какой-то заголовочный файл?Не подскажете, с чем может быть проблема?

std::fstream _File;
_File.open(sFileName.c_str(), std::ios::in|std::ios::out|std::ios::binary);

Masha
()

c++ Использование библиотеки curl, потеря части ответа от сервера

Добрый день! Отправляю SOAP-запросы и получаю ответы от сервера, используя библиотеку curl (CURLOPT_WRITEFUNCTION). При этом наблюдаю, что иногда часть ответа от сервера теряется (приходит только вторая половина xml-ответа). Не подскажете, с чем это может быть связано? Может быть, можно выставить у себя какую-нибудь опцию, чтобы предотвратить подобное поведение. Можно ли как-то убедиться в том, что сервер, действительно, отправляет ответ полностью?(может быть tcpdump c какими-то параметрами, не подскажете как должна выглядеть команда tcpdump для такой проверки, и как из нее выделить именно xml-ответ, который отправил сервер).

Masha
()

C++, pthread, curl, Curl_raw_nequal() Segmentation fault

Добрый день! Решаю следующую задачу: отправка SOAP-запросов и обработка ответов от сервера. Если сервер не отвечает,запрос записывается в очередь, которая мониторится в параллельном потоке. То есть главный поток отправляет запросы и обрабатывает ответы, если нет ответов складывает в очередь, продолжает отправлять следующие запросы ,обрабатывать ответы и т.д. Параллельный поток раз в определенный промежуток времени просматривает все запросы и отправляет их на сервер, если приходит положительный ответ от сервера, удаляет запросы из очереди. Многопоточность реализую с помощью pthread, отправку SOAP-запросов - библиотеки curl. Приложение падает. Отладка с помощью gdb выдает следующее: Program received SIGSEGV, Segmentation fault 0x000000000043d633 in Curl_raw_nequal()

Понимаю, что так сказать сложно, но, может быть, у кого-то сразу появятся идеи. Постараюсь подготовить адекватный код.

Masha
()

C++ curl (CURLOPT_CONNECTTIMEOUT)

Добрый день! Необходимо уметь задавать таймаут на ожидания ответа от сервера. Пробую устанавливать опцию CURLOPT_CONNECTTIMEOUT. Задавая заведомо неверный URL, получаем ответ от сервера приблизительно через минуту, независимо от значения переданного в curl_easy_setopt c данной опцией:

curl_easy_setopt(_CURL, CURLOPT_CONNECTTIMEOUT, 20)
curl_easy_setopt(_CURL, CURLOPT_CONNECTTIMEOUT, 5)

Masha
()

Установка VMWare tools

Добрый день! Не подскажете, в чем может быть проблема. Устанавливаю VMWare tools, использую ссылку http://www.vmware.com/support/ws45/doc/new_guest_tools_ws.html#1008207

на этапе mount /dev/cdrom /mnt/cdrom возникает проблема...Папку /mnt/cdrom я создала. Вывод команды: special file /dev/cdrom doesn't exist...

Masha
()

С++ Проверка доступа в интернет с помощью библиотеки curl

Добрый день! Не поскажете, какой-нибудь небольшой пример с использованием библиотеи curl для проверки наличия подключения к интернету. Например, можно ли как-то пропинговать ya.ru? Пробую запускать:

#include <string>^M
#include <iostream>
#include "curl/curl.h"

using namespace std;

static char errorBuffer[CURL_ERROR_SIZE];

static string buffer;^M

static int writer(char *data, size_t size, size_t nmemb, string *buffer)
{
 
  int result = 0;
  
  if (buffer != NULL)
  {
    buffer->append(data, size * nmemb);
   
    result = size * nmemb;
  }
  
  return result;
}

int main(void)
{
    CURL *curl;
    CURLcode result;
   
    curl = curl_easy_init();
  
    if (curl)
    {
      curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errorBuffer);
     
      curl_easy_setopt(curl, CURLOPT_URL, "google.com");
    
      curl_easy_setopt(curl, CURLOPT_PROXY, "proxy:8080");
      
      curl_easy_setopt(curl, CURLOPT_HEADER, 1);
     
      curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
     
      curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);
    
      result = curl_easy_perform(curl);
     
      if (result == CURLE_OK)      
        cout << buffer << "\n";             
      else      
        cout << "Error! " << errorBuffer << endl;        
  }
Error! Couldn't resolve proxy 'proxy'

Masha
()

Проблемы с установкой openssl на RedHat

Добрый день! Не подскажете, как правильно установить библиотеку openssl на старый Redhat(консольная версия)? Пробую устанавливать из исходников(./configure затем make&&make install) с сайта http://www.openssl.org/source/, но при запуске мое приложение не компилируются, не находится заголовочный файл openssl/sha.h и соответственно все функции и переменные библиотеки.

Перемещено mono из development

Masha
()

RSS подписка на новые темы