ソースを参照

Merge pull request #7 from HariKamath/master

Cpp implementation for mg_get_cookie().
sunsetbrew 12 年 前
コミット
e9c742f321
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;
+}