Exemplo n.º 1
0
/*********************** DNS_Queryer ************************************/
void HTTP_Requester::Handle_DNS_Response( const char * szDomain,const char ** ppIPList,unsigned int nIPNum)
{
	if ( nIPNum==0 || ppIPList==0 )
		return ;

    REQUEST_LIST & request_list = m_DNSQueryingList[szDomain];

	REQUEST_LIST::iterator it = request_list.begin();
	for ( ;it!=request_list.end();++it )
	{
		REQUEST & request = *it;
		request.m_ServerIP = ppIPList[0];

	    SendHTTPRequest(*it);
	}

	m_DNSQueryingList.erase(szDomain);
}
Exemplo n.º 2
0
/* Update item value */
void updateItemValue(ButtonSettings *buttonSettings, char *data) {
	/* update only if the lenght of all fields if larger than zero */
	if (strlen((char *)&buttonSettings->itemUpdateHost) == 0
		|| strlen((char *)&buttonSettings->itemUpdatePort) == 0
		|| strlen((char *)&buttonSettings->itemUpdateMethod) == 0
		|| strlen((char *)&buttonSettings->itemUpdateUrl) == 0)
		return;
	
	/* create a new HTTP Request object */
	HTTPRequest httpRequest;
	strcpypgm2ram((char *)&httpRequest.data, data);
	strcpy((char *)&httpRequest.method, (char *)&buttonSettings->itemUpdateMethod);
	strcpy((char *)&httpRequest.host, (char *)&buttonSettings->itemUpdateHost);
	strcpy((char *)&httpRequest.port, (char *)&buttonSettings->itemUpdatePort);
	strcpy((char *)&httpRequest.itemUrl, (char *)&buttonSettings->itemUpdateUrl);
	
	/* Add the HTTP Request to the queue */
	SendHTTPRequest(&httpRequest, &itemUpdateQueue);
}
Exemplo n.º 3
0
bool HTTP_Requester::Request( const std::string & url,HTTP_VERSION httpver,__int64 range_begin,__int64 range_end,handle handler)
{
	 std::string host;
	 std::string trim_url;
	 unsigned short port = 0;

	 if ( !GetURLHostName(url,host,port,trim_url))
	 {
		 ErrorLn("Get host name from url failed! Please ensure format of the url is valid!" << url);
		 return false;
	 }

	 REQUEST request;
	 request.m_szURL   = trim_url;
	 request.m_Version = httpver;
	 request.m_RangeBegin = range_begin;
	 request.m_RangeEnd = range_end;
	 request.m_ServerPort = port;
     request.m_pHandler = handler;
     request.m_ServerHost=host;

	 // 是域名
     if ( isalpha(host.at(0)))
	 {
		 m_DNSQueryingList[host].push_back(request);

		 if ( m_DNSQueryingList[host].size()==1 )
			 DNS_Resolver::getInstance().DNS_Query(host,this);
	 }else
	 {
		 request.m_ServerIP = host;
		 if ( inet_addr(request.m_ServerIP.c_str())==INADDR_NONE)
		 {
			 ErrorLn("Get host name from url failed! Please ensure format of the url is valid!" << url);
			 return false;
		 }

         SendHTTPRequest(request);
	 }

	 return true;
}