| Return Type | Function name | Arguments |
|---|---|---|
| hzString | hzUrl::Filename | (void) |
Declared in file: hzUrl.h
Defined in file : hzUrl.cpp
Function Logic:
Function body:
hzString hzUrl::Filename (void)
{
_hzfunc("hzUrl::Filename") ;
hzChain Z ;
_url_space* thisCtl ;
uchar* i ;
hzString S ;
uint32_t val ;
char buf [4];
if (!m_addr)
return S ;
thisCtl = (_url_space*) g_ssrInet.Xlate(m_addr) ;
i = (uchar*) thisCtl->m_data ;
if (!memcmp(i, "http", 4))
{
if (!memcmp(i + 4,"://", 3))
{ i += 7; Z << "h:" ; }
if (!memcmp(i + 4,"s://", 4))
{ i += 8; Z << "s:" ; }
}
for (; *i ; i++)
{
if (*i >&eq; ''A''&&*i <&eq; ''Z'')
{ Z.AddByte(conv2lower(*i)) ; continue ; }
if (*i >&eq; ''a''&&*i <&eq; ''z''){Z.AddByte(*i) ; continue ; }
if (*i >&eq; ''0''&&*i <&eq; ''9''){Z.AddByte(*i) ; continue ; }
if (*i == CHAR_FWSLASH) { Z.AddByte(CHAR_AT) ; continue ; }
if (*i == CHAR_AMPSAND) { Z.AddByte(CHAR_COLON) ; continue ; }
if (*i == CHAR_USCORE || *i == CHAR_PERIOD || *i == CHAR_PERCENT || *i == CHAR_EQUAL || *i == CHAR_QUERY || *i == CHAR_PLUS ||
*i == CHAR_MINUS)
{
Z.AddByte(*i) ;
continue ;
}
Z.AddByte(CHAR_PERCENT) ;
val = (uchar) *i ;
sprintf(buf, "%02x", val) ;
Z.AddByte(buf[0]);
Z.AddByte(buf[1]);
}
S = Z ;
return S ;
}