Преглед изворни кода

Cpp implementation for mg_get_cookie().
The user can pass standard strings for cookie name get back the corresponding value.
The method returns the size of the cookie string read.

HariKamath пре 12 година
родитељ
комит
b28f41fc9f
2 измењених фајлова са 20 додато и 0 уклоњено
  1. 10 0
      include/CivetServer.h
  2. 10 0
      src/CivetServer.cpp

+ 10 - 0
include/CivetServer.h

@@ -151,6 +151,16 @@ public:
      * @returns the handler that matches the requested URI or 0 if none were found.
      */
     CivetHandler *getHandler(const char *uri, unsigned urilen) const;
+	
+	/**
+	 * getCookie(const std::string &_cookieName, std::string &_cookieValue)
+	 * @param conn - the 
+	 * @param _cookieName - cookie name to h=get the value from
+	 * @param _cookieValue - cookie value is returned using thiis reference
+	 * @puts the cookie value string that matches the cookie name in the _cookieValue string.
+	 * @returns the size of the cookie value string read.
+	*/
+	int getCookie(struct mg_connection *conn, const std::string &cookieName, std::string &cookieValue);
 
 protected:
 

+ 10 - 0
src/CivetServer.cpp

@@ -153,3 +153,13 @@ void CivetServer::close() {
     uris.clear();
 
 }
+
+int CivetServer::getCookie(struct mg_connection *conn, const std::string &cookieName, std::string &cookieValue)
+{
+	//Maximum cookie length as per microsoft is 4096. http://msdn.microsoft.com/en-us/library/ms178194.aspx
+	char _cookieValue[4096];
+	const char *cookie = mg_get_header(conn, "Cookie");
+	int lRead = mg_get_cookie(cookie, cookieName.c_str(), _cookieValue, sizeof(_cookieValue));
+	cookieValue = std::string(_cookieValue);
+	return lRead;
+}