Переглянути джерело

HEAD request handler for C++ interface

Philipp Hasper 9 роки тому
батько
коміт
36ef459a78
2 змінених файлів з 19 додано та 0 видалено
  1. 9 0
      include/CivetServer.h
  2. 10 0
      src/CivetServer.cpp

+ 9 - 0
include/CivetServer.h

@@ -61,6 +61,15 @@ class CIVETWEB_API CivetHandler
 	virtual bool handlePost(CivetServer *server, struct mg_connection *conn);
 	virtual bool handlePost(CivetServer *server, struct mg_connection *conn);
 
 
 	/**
 	/**
+	 * Callback method for HEAD request.
+	 *
+	 * @param server - the calling server
+	 * @param conn - the connection information
+	 * @returns true if implemented, false otherwise
+	 */
+	virtual bool handleHead(CivetServer *server, struct mg_connection *conn);
+
+	/**
 	 * Callback method for PUT request.
 	 * Callback method for PUT request.
 	 *
 	 *
 	 * @param server - the calling server
 	 * @param server - the calling server

+ 10 - 0
src/CivetServer.cpp

@@ -32,6 +32,14 @@ CivetHandler::handlePost(CivetServer *server, struct mg_connection *conn)
 }
 }
 
 
 bool
 bool
+CivetHandler::handleHead(CivetServer *server, struct mg_connection *conn)
+{
+	UNUSED_PARAMETER(server);
+	UNUSED_PARAMETER(conn);
+	return false;
+}
+
+bool
 CivetHandler::handlePut(CivetServer *server, struct mg_connection *conn)
 CivetHandler::handlePut(CivetServer *server, struct mg_connection *conn)
 {
 {
 	UNUSED_PARAMETER(server);
 	UNUSED_PARAMETER(server);
@@ -128,6 +136,8 @@ CivetServer::requestHandler(struct mg_connection *conn, void *cbdata)
 			return handler->handleGet(me, conn) ? 1 : 0;
 			return handler->handleGet(me, conn) ? 1 : 0;
 		} else if (strcmp(request_info->request_method, "POST") == 0) {
 		} else if (strcmp(request_info->request_method, "POST") == 0) {
 			return handler->handlePost(me, conn) ? 1 : 0;
 			return handler->handlePost(me, conn) ? 1 : 0;
+		} else if (strcmp(request_info->request_method, "HEAD") == 0) {
+			return handler->handleHead(me, conn) ? 1 : 0;
 		} else if (strcmp(request_info->request_method, "PUT") == 0) {
 		} else if (strcmp(request_info->request_method, "PUT") == 0) {
 			return handler->handlePut(me, conn) ? 1 : 0;
 			return handler->handlePut(me, conn) ? 1 : 0;
 		} else if (strcmp(request_info->request_method, "DELETE") == 0) {
 		} else if (strcmp(request_info->request_method, "DELETE") == 0) {