Esempio n. 1
0
std::string URL::userInfo() const
{
    if (hasUserInfo())
        return _buf.substr(_parser.field_data[UF_USERINFO].off,
                           _parser.field_data[UF_USERINFO].len);
    return std::string();
}
Esempio n. 2
0
void URL::updateUserInfo(const std::string& info)
{
    if (!hasUserInfo())
        throw std::runtime_error("Cannot update invalid URL");        

    std::string tmp(str());
    util::replaceInPlace(tmp, this->userInfo(), info);
    parse(tmp);
}
Esempio n. 3
0
std::string URL::authority() const
{
    std::string res;    
    if (hasUserInfo()) {
        res.append(userInfo());
        res.append("@");
    }
    res.append(host());
    if (hasPort()) {
        res.append(":");
        res.append(util::itostr<std::uint16_t>(port()));
    }
    return res;
}