瀏覽代碼

Fix some missing casts for compiling with C++ (see comment on #504)

bel2125 7 年之前
父節點
當前提交
0d1453d3a8
共有 3 個文件被更改,包括 23 次插入16 次删除
  1. 21 14
      src/civetweb.c
  2. 1 1
      src/handle_form.inl
  3. 1 1
      src/mod_lua.inl

+ 21 - 14
src/civetweb.c

@@ -6786,7 +6786,7 @@ interpret_uri(struct mg_connection *conn, /* in/out: request (must be valid) */
 	/* Step 10: Script resources may handle sub-resources */
 	/* Support PATH_INFO for CGI scripts. */
 	tmp_str_len = strlen(filename);
-	tmp_str = mg_malloc_ctx(tmp_str_len + PATH_MAX + 1, conn->ctx);
+	tmp_str = (char *)mg_malloc_ctx(tmp_str_len + PATH_MAX + 1, conn->ctx);
 	if (!tmp_str) {
 		/* Out of memory */
 		goto interpret_cleanup;
@@ -8147,7 +8147,7 @@ print_dir_entry(struct de *de)
 	struct tm *tm;
 
 	hrefsize = PATH_MAX * 3; /* worst case */
-	href = mg_malloc(hrefsize);
+	href = (char *)mg_malloc(hrefsize);
 	if (href == NULL) {
 		return -1;
 	}
@@ -10851,7 +10851,7 @@ print_dav_dir_entry(struct de *de, void *data)
 		char *href_encoded;
 
 		href_encoded_size = PATH_MAX * 3; /* worst case */
-		href_encoded = mg_malloc(href_encoded_size);
+		href_encoded = (char *)mg_malloc(href_encoded_size);
 		if (href_encoded == NULL) {
 			return -1;
 		}
@@ -12855,7 +12855,7 @@ parse_port_string(const struct vec *vec, struct socket *so, int *ip_version)
 {
 	unsigned int a, b, c, d, port;
 	int ch, len;
-	char *cb;
+	const char *cb;
 #if defined(USE_IPV6)
 	char buf[100] = {0};
 #endif
@@ -12921,7 +12921,10 @@ parse_port_string(const struct vec *vec, struct socket *so, int *ip_version)
 		 * digits and hyphen ('-'). Newer specs may allow
 		 * more, but this is not guaranteed here, since it
 		 * may interfere with rules for port option lists. */
-		*cb = 0;
+
+		*(char *)cb = 0; /* Use a const cast here and modify the string.
+		                  * We are going to restore the string later. */
+
 		if (mg_inet_pton(
 		        AF_INET, vec->ptr, &so->lsa.sin, sizeof(so->lsa.sin))) {
 			if (sscanf(cb + 1, "%u%n", &port, &len) == 1) {
@@ -12949,7 +12952,9 @@ parse_port_string(const struct vec *vec, struct socket *so, int *ip_version)
 			}
 #endif
 		}
-		*cb = ':';
+
+		*(char *)cb = ':'; /* restore the string */
+
 	} else {
 		/* Parsing failure. */
 	}
@@ -13679,14 +13684,14 @@ ssl_get_client_cert_info(struct mg_connection *conn)
 
 		/* ASN1_digest is deprecated. Do the calculation manually,
 		 * using EVP_Digest. */
-		ilen = i2d_X509((void *)cert, NULL);
+		ilen = i2d_X509(cert, NULL);
 		tmp_buf =
 		    (ilen > 0)
 		        ? (unsigned char *)mg_malloc_ctx((unsigned)ilen + 1, conn->ctx)
 		        : NULL;
 		if (tmp_buf) {
 			tmp_p = tmp_buf;
-			(void)i2d_X509((void *)cert, &tmp_p);
+			(void)i2d_X509(cert, &tmp_p);
 			if (!EVP_Digest(
 			        tmp_buf, (unsigned)ilen, buf, &ulen, digest, NULL)) {
 				ulen = 0;
@@ -16606,9 +16611,10 @@ mg_start(const struct mg_callbacks *callbacks,
 
 
 #if defined(ALTERNATIVE_QUEUE)
-	ctx->client_wait_events = mg_calloc_ctx(sizeof(ctx->client_wait_events[0]),
-	                                        ctx->cfg_worker_threads,
-	                                        ctx);
+	ctx->client_wait_events =
+	    (void **)mg_calloc_ctx(sizeof(ctx->client_wait_events[0]),
+	                           ctx->cfg_worker_threads,
+	                           ctx);
 	if (ctx->client_wait_events == NULL) {
 		mg_cry(fc(ctx), "Not enough memory for worker event array");
 		mg_free(ctx->worker_threadids);
@@ -16617,9 +16623,10 @@ mg_start(const struct mg_callbacks *callbacks,
 		return NULL;
 	}
 
-	ctx->client_socks = mg_calloc_ctx(sizeof(ctx->client_socks[0]),
-	                                  ctx->cfg_worker_threads,
-	                                  ctx);
+	ctx->client_socks =
+	    (struct socket *)mg_calloc_ctx(sizeof(ctx->client_socks[0]),
+	                                   ctx->cfg_worker_threads,
+	                                   ctx);
 	if (ctx->client_wait_events == NULL) {
 		mg_cry(fc(ctx), "Not enough memory for worker socket array");
 		mg_free(ctx->client_socks);

+ 1 - 1
src/handle_form.inl

@@ -543,7 +543,7 @@ mg_handle_form_request(struct mg_connection *conn,
 		/* Copy boundary string to variable "boundary" */
 		fbeg = content_type + bl + 9;
 		bl = strlen(fbeg);
-		boundary = mg_malloc(bl + 1);
+		boundary = (char *)mg_malloc(bl + 1);
 		if (!boundary) {
 			/* Out of memory */
 			mg_cry(conn,

+ 1 - 1
src/mod_lua.inl

@@ -85,7 +85,7 @@ reg_llstring(struct lua_State *L,
 {
 	if (buffer1 != NULL && buffer2 != NULL) {
 		lua_pushlstring(L, (const char *)buffer1, buflen1);
-        lua_pushlstring(L, (const char *)buffer2, buflen2);
+		lua_pushlstring(L, (const char *)buffer2, buflen2);
 		lua_rawset(L, -3);
 	}
 }