Working
This commit is contained in:
@ -142,6 +142,75 @@ string getWebRoot(string host) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
string url_decode(string url) {
|
||||
long pos = 0;
|
||||
while ((pos = url.find('+', pos + 1)) != string::npos) {
|
||||
url.replace(pos, 1, 1, ' ');
|
||||
}
|
||||
pos = 0;
|
||||
while ((pos = url.find('%', pos + 1)) != string::npos) {
|
||||
const char *num = url.substr(pos + 1, 2).c_str();
|
||||
auto c = (char) strtol(num, nullptr, 16);
|
||||
url.erase(pos, 3);
|
||||
url.insert(pos, 1, c);
|
||||
}
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
string url_encode(string url) {
|
||||
char buff[4];
|
||||
for (long pos = 0; pos < url.length(); pos++) {
|
||||
auto c = (unsigned char) url[pos];
|
||||
if (c < ' ' || c > '~' || c == ' ' || c == '#' || c == '?' || c == '&' || c == '=' || c == '\\' || c == '%') {
|
||||
sprintf(buff, "%%%02X", c);
|
||||
url.replace(pos, 1, buff);
|
||||
}
|
||||
}
|
||||
return url;
|
||||
}
|
||||
|
||||
string html_decode(string text) {
|
||||
return text;
|
||||
}
|
||||
|
||||
string html_encode(string text) {
|
||||
return text;
|
||||
}
|
||||
|
||||
string cli_encode(string text) {
|
||||
char buff[5];
|
||||
for (long pos = 0; pos < text.length(); pos++) {
|
||||
auto c = (unsigned char) text[pos];
|
||||
if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == ',' || c == '.' || c == '_' || c == '+' || c == ':' || c == '@' || c == '%' || c == '/' || c == '-')) {
|
||||
sprintf(buff, "\\%.1s", &c);
|
||||
text.replace(pos, 1, buff);
|
||||
pos++;
|
||||
}
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
string read_line(FILE* file) {
|
||||
char *line = nullptr;
|
||||
size_t len = 0;
|
||||
ssize_t read;
|
||||
if ((read = getline(&line, &len, file)) < 0) {
|
||||
return "";
|
||||
}
|
||||
string l = string(line);
|
||||
if (l[l.length()-1] == '\n') {
|
||||
l.erase(l.length()-1);
|
||||
}
|
||||
if (l[l.length()-1] == '\r') {
|
||||
l.erase(l.length()-1);
|
||||
}
|
||||
return l;
|
||||
}
|
||||
|
||||
|
||||
#include "procopen.cpp"
|
||||
#include "network/Address.cpp"
|
||||
#include "network/Socket.cpp"
|
||||
#include "URI.cpp"
|
||||
|
Reference in New Issue
Block a user