updated codes to support C++20
This commit is contained in:
parent
18d4c312e5
commit
82b6b346dd
@ -37,21 +37,21 @@ namespace hgl
|
|||||||
int64 filelength;
|
int64 filelength;
|
||||||
|
|
||||||
uint response_code; //HTTP响应代码
|
uint response_code; //HTTP响应代码
|
||||||
UTF8String response_info; //HTTP响应信息
|
AnsiString response_info; //HTTP响应信息
|
||||||
|
|
||||||
UTF8PAttribSet response_list; //响应信息
|
AnsiPAttribSet response_list; //响应信息
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
HTTPInputStream();
|
HTTPInputStream();
|
||||||
~HTTPInputStream();
|
~HTTPInputStream();
|
||||||
|
|
||||||
bool Open(IPAddress *,const UTF8String &,const UTF8String &); ///<打开一个网址
|
bool Open(IPAddress *,const AnsiString &,const AnsiString &); ///<打开一个网址
|
||||||
void Close() override; ///<
|
void Close() override; ///<
|
||||||
|
|
||||||
uint GetResponseCode()const{return response_code;} ///<返回HTTP响应代码
|
uint GetResponseCode()const{return response_code;} ///<返回HTTP响应代码
|
||||||
const UTF8String & GetResponseInfo()const{return response_info;} ///<返回HTTP响应信息
|
const AnsiString & GetResponseInfo()const{return response_info;} ///<返回HTTP响应信息
|
||||||
const UTF8PAttribSet & GetResponseList()const{return response_list;} ///<返回HTTP响应信息列表
|
const AnsiPAttribSet & GetResponseList()const{return response_list;} ///<返回HTTP响应信息列表
|
||||||
|
|
||||||
int64 Read(void *,int64) override; ///<读取数据
|
int64 Read(void *,int64) override; ///<读取数据
|
||||||
int64 Peek(void *,int64) override{return 0;} ///<预览数据
|
int64 Peek(void *,int64) override{return 0;} ///<预览数据
|
||||||
|
@ -215,7 +215,7 @@ namespace hgl
|
|||||||
/**
|
/**
|
||||||
* 获取当前地址的主机名称
|
* 获取当前地址的主机名称
|
||||||
*/
|
*/
|
||||||
virtual bool GetHostname(UTF8String &)const=0;
|
virtual bool GetHostname(AnsiString &)const=0;
|
||||||
|
|
||||||
virtual sockaddr *GetSockAddr()=0;
|
virtual sockaddr *GetSockAddr()=0;
|
||||||
|
|
||||||
@ -234,15 +234,15 @@ namespace hgl
|
|||||||
/**
|
/**
|
||||||
* 转换当前地址到一个可视字符串,字符串所需长度请使用GetIPStringMaxSize()获取
|
* 转换当前地址到一个可视字符串,字符串所需长度请使用GetIPStringMaxSize()获取
|
||||||
*/
|
*/
|
||||||
virtual void ToString(u8char *,int)const=0;
|
virtual void ToString(char *,int)const=0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建一个可视字符串地址,需自行delete[]
|
* 创建一个可视字符串地址,需自行delete[]
|
||||||
*/
|
*/
|
||||||
virtual u8char *CreateString()const
|
virtual char *CreateString()const
|
||||||
{
|
{
|
||||||
const int max_size=GetIPStringMaxSize();
|
const int max_size=GetIPStringMaxSize();
|
||||||
u8char *ipstr=new u8char[max_size+1];
|
char *ipstr=new char[max_size+1];
|
||||||
|
|
||||||
ToString(ipstr,max_size);
|
ToString(ipstr,max_size);
|
||||||
|
|
||||||
@ -314,7 +314,7 @@ namespace hgl
|
|||||||
}
|
}
|
||||||
void Set(ushort port) override;
|
void Set(ushort port) override;
|
||||||
bool Bind(int ThisSocket,int reuse=1)const override;
|
bool Bind(int ThisSocket,int reuse=1)const override;
|
||||||
bool GetHostname(UTF8String &)const override;
|
bool GetHostname(AnsiString &)const override;
|
||||||
|
|
||||||
sockaddr *GetSockAddr()override{return (sockaddr *)&addr;}
|
sockaddr *GetSockAddr()override{return (sockaddr *)&addr;}
|
||||||
|
|
||||||
@ -324,9 +324,9 @@ namespace hgl
|
|||||||
const uint32 GetInt32IP()const{return addr.sin_addr.s_addr;}
|
const uint32 GetInt32IP()const{return addr.sin_addr.s_addr;}
|
||||||
const ushort GetPort()const override;
|
const ushort GetPort()const override;
|
||||||
|
|
||||||
static void ToString(u8char *str,const int,const in_addr *);
|
static void ToString(char *str,const int,const in_addr *);
|
||||||
static void ToString(u8char *str,const int,const sockaddr_in *);
|
static void ToString(char *str,const int,const sockaddr_in *);
|
||||||
void ToString(u8char *str,const int)const override;
|
void ToString(char *str,const int)const override;
|
||||||
|
|
||||||
static int GetDomainIPList(List<in_addr> &addr_list,const char *domain,int _socktype,int _protocol); ///<取得当指定域名的IPv4地址列表
|
static int GetDomainIPList(List<in_addr> &addr_list,const char *domain,int _socktype,int _protocol); ///<取得当指定域名的IPv4地址列表
|
||||||
static int GetLocalIPList(List<in_addr> &addr_list,int _socktype,int _protocol); ///<取得本机的IPv4地址列表
|
static int GetLocalIPList(List<in_addr> &addr_list,int _socktype,int _protocol); ///<取得本机的IPv4地址列表
|
||||||
@ -383,7 +383,7 @@ namespace hgl
|
|||||||
bool Set(const char *name,ushort port,int _socktype,int _protocol) override;
|
bool Set(const char *name,ushort port,int _socktype,int _protocol) override;
|
||||||
void Set(ushort port) override;
|
void Set(ushort port) override;
|
||||||
bool Bind(int ThisSocket,int reuse=1)const override;
|
bool Bind(int ThisSocket,int reuse=1)const override;
|
||||||
bool GetHostname(UTF8String &)const override;
|
bool GetHostname(AnsiString &)const override;
|
||||||
|
|
||||||
sockaddr *GetSockAddr() override{return (sockaddr *)&addr;}
|
sockaddr *GetSockAddr() override{return (sockaddr *)&addr;}
|
||||||
|
|
||||||
@ -392,9 +392,9 @@ namespace hgl
|
|||||||
|
|
||||||
const ushort GetPort()const override;
|
const ushort GetPort()const override;
|
||||||
|
|
||||||
static void ToString(u8char *str,const int,const in6_addr *);
|
static void ToString(char *str,const int,const in6_addr *);
|
||||||
static void ToString(u8char *str,const int,const sockaddr_in6 *);
|
static void ToString(char *str,const int,const sockaddr_in6 *);
|
||||||
void ToString(u8char *str,const int)const override;
|
void ToString(char *str,const int)const override;
|
||||||
|
|
||||||
static int GetDomainIPList(List<in6_addr> &addr_list,const char *domain,int _socktype,int _protocol); ///<取得指定域名的IPv6地址列表
|
static int GetDomainIPList(List<in6_addr> &addr_list,const char *domain,int _socktype,int _protocol); ///<取得指定域名的IPv6地址列表
|
||||||
static int GetLocalIPList(List<in6_addr> &addr_list,int _socktype,int _protocol); ///<取得本机的IPv6地址列表
|
static int GetLocalIPList(List<in6_addr> &addr_list,int _socktype,int _protocol); ///<取得本机的IPv6地址列表
|
||||||
|
@ -50,7 +50,7 @@ namespace hgl
|
|||||||
* @param filename 路径及文件名 /download/hgl.rar 之类
|
* @param filename 路径及文件名 /download/hgl.rar 之类
|
||||||
* @return 打开文件是否成功
|
* @return 打开文件是否成功
|
||||||
*/
|
*/
|
||||||
bool HTTPInputStream::Open(IPAddress *host_ip,const UTF8String &host_name,const UTF8String &filename)
|
bool HTTPInputStream::Open(IPAddress *host_ip,const AnsiString &host_name,const AnsiString &filename)
|
||||||
{
|
{
|
||||||
Close();
|
Close();
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ namespace hgl
|
|||||||
|
|
||||||
if(!tcp)
|
if(!tcp)
|
||||||
{
|
{
|
||||||
LOG_ERROR(U8_TEXT("Connect to HTTPServer failed: ")+UTF8String(host_ip_str));
|
LOG_ERROR("Connect to HTTPServer failed: "+AnsiString(host_ip_str));
|
||||||
RETURN_FALSE;
|
RETURN_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ namespace hgl
|
|||||||
|
|
||||||
if(tcp_os->WriteFully(http_header,len)!=len)
|
if(tcp_os->WriteFully(http_header,len)!=len)
|
||||||
{
|
{
|
||||||
LOG_ERROR(U8_TEXT("Send HTTP Get Info failed:")+UTF8String(host_ip_str));
|
LOG_ERROR("Send HTTP Get Info failed:"+AnsiString(host_ip_str));
|
||||||
delete tcp;
|
delete tcp;
|
||||||
tcp=nullptr;
|
tcp=nullptr;
|
||||||
RETURN_FALSE;
|
RETURN_FALSE;
|
||||||
@ -147,8 +147,8 @@ namespace hgl
|
|||||||
|
|
||||||
if(!second)break;
|
if(!second)break;
|
||||||
|
|
||||||
UTF8String key;
|
AnsiString key;
|
||||||
UTF8String value;
|
AnsiString value;
|
||||||
|
|
||||||
key.SetString(first,second-first);
|
key.SetString(first,second-first);
|
||||||
|
|
||||||
@ -160,7 +160,7 @@ namespace hgl
|
|||||||
value.SetString(first,second-first);
|
value.SetString(first,second-first);
|
||||||
offset=second;
|
offset=second;
|
||||||
|
|
||||||
response_list.Add(key,value);
|
response_list.CreateStringAttrib(key,value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -203,7 +203,7 @@ namespace hgl
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LOG_ERROR(U8_TEXT("HTTPServer error info: ")+UTF8String(http_header));
|
LOG_ERROR("HTTPServer error info: "+AnsiString(http_header));
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ namespace hgl
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GetHostname(UTF8String &name,const sockaddr *addr)
|
bool GetHostname(AnsiString &name,const sockaddr *addr)
|
||||||
{
|
{
|
||||||
char hostname[NI_MAXHOST];
|
char hostname[NI_MAXHOST];
|
||||||
char server_info[NI_MAXSERV];
|
char server_info[NI_MAXSERV];
|
||||||
@ -94,7 +94,7 @@ namespace hgl
|
|||||||
if(getnameinfo(addr,sizeof(struct sockaddr),hostname,NI_MAXHOST,server_info,NI_MAXSERV,NI_NUMERICSERV))
|
if(getnameinfo(addr,sizeof(struct sockaddr),hostname,NI_MAXHOST,server_info,NI_MAXSERV,NI_NUMERICSERV))
|
||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
name=(u8char *)hostname;
|
name=hostname;
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -276,7 +276,7 @@ namespace hgl
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool IPv4Address::Bind(int ThisSocket,int reuse)const{return BindAddr<sockaddr,sockaddr_in>(ThisSocket,addr,reuse);}
|
bool IPv4Address::Bind(int ThisSocket,int reuse)const{return BindAddr<sockaddr,sockaddr_in>(ThisSocket,addr,reuse);}
|
||||||
bool IPv4Address::GetHostname(UTF8String &name)const{return hgl::network::GetHostname(name,(sockaddr *)&addr);}
|
bool IPv4Address::GetHostname(AnsiString &name)const{return hgl::network::GetHostname(name,(sockaddr *)&addr);}
|
||||||
|
|
||||||
const ushort IPv4Address::GetPort()const{return addr.sin_port;}
|
const ushort IPv4Address::GetPort()const{return addr.sin_port;}
|
||||||
|
|
||||||
@ -366,7 +366,7 @@ namespace hgl
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool IPv6Address::Bind(int ThisSocket,int reuse)const{return BindAddr<sockaddr,sockaddr_in6>(ThisSocket,addr,reuse);}
|
bool IPv6Address::Bind(int ThisSocket,int reuse)const{return BindAddr<sockaddr,sockaddr_in6>(ThisSocket,addr,reuse);}
|
||||||
bool IPv6Address::GetHostname(UTF8String &name)const{return hgl::network::GetHostname(name,(sockaddr *)&addr);}
|
bool IPv6Address::GetHostname(AnsiString &name)const{return hgl::network::GetHostname(name,(sockaddr *)&addr);}
|
||||||
|
|
||||||
const ushort IPv6Address::GetPort()const{return addr.sin6_port;}
|
const ushort IPv6Address::GetPort()const{return addr.sin6_port;}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user