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 ; }