mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-24 00:49:46 +02:00
Added support for a 'Priority' attribute on cookies.
This commit is contained in:
@@ -140,9 +140,15 @@ public:
|
|||||||
void setPath(const std::string& path);
|
void setPath(const std::string& path);
|
||||||
/// Sets the path for the cookie.
|
/// Sets the path for the cookie.
|
||||||
|
|
||||||
|
void setPriority(const std::string& priority);
|
||||||
|
/// Sets the priority for the cookie.
|
||||||
|
|
||||||
const std::string& getPath() const;
|
const std::string& getPath() const;
|
||||||
/// Returns the path for the cookie.
|
/// Returns the path for the cookie.
|
||||||
|
|
||||||
|
const std::string& getPriority() const;
|
||||||
|
/// Returns the priority for the cookie.
|
||||||
|
|
||||||
void setSecure(bool secure);
|
void setSecure(bool secure);
|
||||||
/// Sets the value of the secure flag for
|
/// Sets the value of the secure flag for
|
||||||
/// the cookie.
|
/// the cookie.
|
||||||
@@ -210,6 +216,7 @@ private:
|
|||||||
std::string _comment;
|
std::string _comment;
|
||||||
std::string _domain;
|
std::string _domain;
|
||||||
std::string _path;
|
std::string _path;
|
||||||
|
std::string _priority;
|
||||||
bool _secure;
|
bool _secure;
|
||||||
int _maxAge;
|
int _maxAge;
|
||||||
bool _httpOnly;
|
bool _httpOnly;
|
||||||
@@ -254,6 +261,11 @@ inline const std::string& HTTPCookie::getPath() const
|
|||||||
return _path;
|
return _path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline const std::string& HTTPCookie::getPriority() const
|
||||||
|
{
|
||||||
|
return _priority;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
inline bool HTTPCookie::getSecure() const
|
inline bool HTTPCookie::getSecure() const
|
||||||
{
|
{
|
||||||
|
@@ -102,6 +102,10 @@ HTTPCookie::HTTPCookie(const NameValueCollection& nvc):
|
|||||||
{
|
{
|
||||||
setPath(value);
|
setPath(value);
|
||||||
}
|
}
|
||||||
|
else if (icompare(name, "Priority") == 0)
|
||||||
|
{
|
||||||
|
setPriority(value);
|
||||||
|
}
|
||||||
else if (icompare(name, "max-age") == 0)
|
else if (icompare(name, "max-age") == 0)
|
||||||
{
|
{
|
||||||
setMaxAge(NumberParser::parse(value));
|
setMaxAge(NumberParser::parse(value));
|
||||||
@@ -115,7 +119,7 @@ HTTPCookie::HTTPCookie(const NameValueCollection& nvc):
|
|||||||
int tzd;
|
int tzd;
|
||||||
DateTime exp = DateTimeParser::parse(value, tzd);
|
DateTime exp = DateTimeParser::parse(value, tzd);
|
||||||
Timestamp now;
|
Timestamp now;
|
||||||
setMaxAge((int) ((exp.timestamp() - now) / Timestamp::resolution()));
|
setMaxAge((int) ((exp.timestamp() - now)/Timestamp::resolution()));
|
||||||
}
|
}
|
||||||
else if (icompare(name, "version") == 0)
|
else if (icompare(name, "version") == 0)
|
||||||
{
|
{
|
||||||
@@ -152,6 +156,7 @@ HTTPCookie::HTTPCookie(const HTTPCookie& cookie):
|
|||||||
_comment(cookie._comment),
|
_comment(cookie._comment),
|
||||||
_domain(cookie._domain),
|
_domain(cookie._domain),
|
||||||
_path(cookie._path),
|
_path(cookie._path),
|
||||||
|
_priority(cookie._priority),
|
||||||
_secure(cookie._secure),
|
_secure(cookie._secure),
|
||||||
_maxAge(cookie._maxAge),
|
_maxAge(cookie._maxAge),
|
||||||
_httpOnly(cookie._httpOnly)
|
_httpOnly(cookie._httpOnly)
|
||||||
@@ -174,6 +179,7 @@ HTTPCookie& HTTPCookie::operator = (const HTTPCookie& cookie)
|
|||||||
_comment = cookie._comment;
|
_comment = cookie._comment;
|
||||||
_domain = cookie._domain;
|
_domain = cookie._domain;
|
||||||
_path = cookie._path;
|
_path = cookie._path;
|
||||||
|
_priority = cookie._priority;
|
||||||
_secure = cookie._secure;
|
_secure = cookie._secure;
|
||||||
_maxAge = cookie._maxAge;
|
_maxAge = cookie._maxAge;
|
||||||
_httpOnly = cookie._httpOnly;
|
_httpOnly = cookie._httpOnly;
|
||||||
@@ -217,6 +223,11 @@ void HTTPCookie::setPath(const std::string& path)
|
|||||||
_path = path;
|
_path = path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HTTPCookie::setPriority(const std::string& priority)
|
||||||
|
{
|
||||||
|
_priority = priority;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void HTTPCookie::setSecure(bool secure)
|
void HTTPCookie::setSecure(bool secure)
|
||||||
{
|
{
|
||||||
@@ -256,10 +267,15 @@ std::string HTTPCookie::toString() const
|
|||||||
result.append("; path=");
|
result.append("; path=");
|
||||||
result.append(_path);
|
result.append(_path);
|
||||||
}
|
}
|
||||||
|
if (!_priority.empty())
|
||||||
|
{
|
||||||
|
result.append("; Priority=");
|
||||||
|
result.append(_priority);
|
||||||
|
}
|
||||||
if (_maxAge != -1)
|
if (_maxAge != -1)
|
||||||
{
|
{
|
||||||
Timestamp ts;
|
Timestamp ts;
|
||||||
ts += _maxAge * Timestamp::resolution();
|
ts += _maxAge*Timestamp::resolution();
|
||||||
result.append("; expires=");
|
result.append("; expires=");
|
||||||
DateTimeFormatter::append(result, ts, DateTimeFormat::HTTP_FORMAT);
|
DateTimeFormatter::append(result, ts, DateTimeFormat::HTTP_FORMAT);
|
||||||
}
|
}
|
||||||
@@ -296,6 +312,13 @@ std::string HTTPCookie::toString() const
|
|||||||
result.append(_path);
|
result.append(_path);
|
||||||
result.append("\"");
|
result.append("\"");
|
||||||
}
|
}
|
||||||
|
if (!_priority.empty())
|
||||||
|
{
|
||||||
|
result.append("; Priority=\"");
|
||||||
|
result.append(_priority);
|
||||||
|
result.append("\"");
|
||||||
|
}
|
||||||
|
|
||||||
if (_maxAge != -1)
|
if (_maxAge != -1)
|
||||||
{
|
{
|
||||||
result.append("; Max-Age=\"");
|
result.append("; Max-Age=\"");
|
||||||
|
Reference in New Issue
Block a user