48 #ifndef XRDHTTPUTILS_HH
49 #define XRDHTTPUTILS_HH
55 int parseURL(
char *url,
char *host,
int &port,
char **path);
58 std::string
itos(
long i);
82 bool Fromhexdigest(
const unsigned char *input,
int length,
unsigned char *out);
84 void Tobase64(
const unsigned char *input,
int length,
char *out);
87 char *
quote(
const char *str);
100 size_t strLength = str.length();
102 std::unique_ptr<char[]> buf(
new char[strLength + 1]);
103 std::memcpy(buf.get(), str.c_str(), strLength + 1);
115 return quote(str.c_str());
126 std::string encoded { encodedRaw };
139 std::string decoded { decodedRaw };
151 std::ostringstream output;
152 std::vector<std::string> allKeyValues;
155 for(
auto & kv: allKeyValues) {
156 size_t equal = kv.find(
'=');
157 if(equal != std::string::npos) {
158 std::string key = kv.substr(0, equal);
159 std::string value = kv.substr(equal + 1);
int parseURL(char *url, char *host, int &port, char **path)
void Tobase64(const unsigned char *input, int length, char *out)
int compareHash(const char *h1, const char *h2)
char * unquote(char *str)
bool Fromhexdigest(const unsigned char *input, int length, unsigned char *out)
char * encode_raw(const std::string &str)
std::string encode_opaque(const std::string &opaque)
char * decode_raw(const std::string &str)
void calcHashes(char *hash, const char *fn, kXR_int16 req, XrdSecEntity *secent, time_t tim, const char *key)
std::string encode_str(const std::string &str)
std::vector< XrdOucIOVec2 > XrdHttpIOList
char * escapeXML(const char *str)
std::string decode_str(const std::string &str)
char * mystrchrnul(const char *s, int c)
char * quote(const char *str)
static void splitString(Container &result, const std::string &input, const std::string &delimiter)
Split a string.