mistserver/lib/url.h
Thulinma 9c0b0e28d8 Added HTTP::URL::getBase() and HTTP::URL::getLinkFrom() functions
Change-Id: I87dcefb4287e8c5c22a4ae59898cb97371c441de
2023-01-24 01:40:41 +01:00

38 lines
1.3 KiB
C++

/// \file url.h
/// Holds all headers for the HTTP::URL class.
#pragma once
#include <stdlib.h>
#include <string>
#include <inttypes.h>
/// Holds all HTTP processing related code.
namespace HTTP{
/// URL parsing class. Parses full URL into its subcomponents
class URL{
public:
URL(const std::string &url = "");
uint16_t getPort() const;
uint16_t getDefaultPort() const;
std::string getExt() const;
std::string getUrl() const;
std::string getFilePath() const;
std::string getBase() const;
std::string getBareUrl() const;
std::string getProxyUrl() const;
std::string getLinkFrom(const URL &) const;
bool isLocalPath() const;
std::string host; ///< Hostname or IP address of URL
std::string protocol; ///< Protocol of URL
std::string port; ///< Port of URL
std::string path; ///< Path after the first slash (not inclusive) but before any question mark
std::string args; ///< Everything after the question mark in the path, if it was present
std::string frag; ///< Everything after the # in the path, if it was present
std::string user; ///< Username, if it was present
std::string pass; ///< Password, if it was present
URL link(const std::string &l) const;
bool IPv6Addr;
};
}// namespace HTTP