aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaeseung Ha <ipknhama@gmail.com>2017-09-18 00:44:36 +0900
committerGitHub <noreply@github.com>2017-09-18 00:44:36 +0900
commit6da6579ce94a06f5389db62340b762fcb56f7c39 (patch)
tree77aa4aa0f2cbfd139dc3194a3cf113ed2100454f
parent194a9ef6812e3d5476419e33be2756ab69fc0696 (diff)
parent08acc7c0bedc24bf5b8c6cc01f1701b0d45e141e (diff)
downloadcrow-6da6579ce94a06f5389db62340b762fcb56f7c39.tar.gz
crow-6da6579ce94a06f5389db62340b762fcb56f7c39.zip
Merge pull request #171 from yorickdewid/master
Set cast type without dereferencing pointer
-rw-r--r--CMakeLists.txt44
-rw-r--r--examples/CMakeLists.txt46
-rw-r--r--examples/example_chat.cpp2
-rw-r--r--include/crow/http_response.h6
-rw-r--r--include/crow/http_server.h2
-rw-r--r--include/crow/websocket.h2
6 files changed, 54 insertions, 48 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2f0eb3f..4afc7cf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,11 +7,13 @@ conan_basic_setup()
endif()
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
+
find_package(Tcmalloc)
find_package(Threads)
find_package(OpenSSL)
+
if(OPENSSL_FOUND)
- include_directories(${OPENSSL_INCLUDE_DIR})
+ include_directories(${OPENSSL_INCLUDE_DIR})
endif()
find_program(CCACHE_FOUND ccache)
@@ -24,23 +26,22 @@ if(CCACHE_FOUND)
endif(CCACHE_FOUND)
if (NOT CMAKE_BUILD_TYPE)
- message(STATUS "No build type selected, default to Release")
- set(CMAKE_BUILD_TYPE "Release")
+ message(STATUS "No build type selected, default to Release")
+ set(CMAKE_BUILD_TYPE "Release")
endif()
-
if (MSVC)
-set(Boost_USE_STATIC_LIBS "On")
-find_package( Boost 1.52 COMPONENTS system thread regex REQUIRED )
+ set(Boost_USE_STATIC_LIBS "On")
+ find_package( Boost 1.52 COMPONENTS system thread regex REQUIRED )
else()
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++1y -pedantic -Wextra")
-find_package( Boost 1.52 COMPONENTS system thread REQUIRED )
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++1y -pedantic -Wextra")
+ find_package( Boost 1.52 COMPONENTS system thread REQUIRED )
endif()
include_directories( ${Boost_INCLUDE_DIR} )
set(PROJECT_INCLUDE_DIR
-${PROJECT_SOURCE_DIR}/include
+ ${PROJECT_SOURCE_DIR}/include
)
include_directories("${PROJECT_INCLUDE_DIR}")
@@ -48,22 +49,23 @@ include_directories("${PROJECT_SOURCE_DIR}")
#add_subdirectory(src)
add_subdirectory(examples)
+
if (MSVC)
else()
-add_subdirectory(tests)
+ add_subdirectory(tests)
-enable_testing()
-add_test(NAME crow_test COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tests/unittest)
-add_test(NAME template_test COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tests/template/test.py WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests/template)
+ enable_testing()
+ add_test(NAME crow_test COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tests/unittest)
+ add_test(NAME template_test COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tests/template/test.py WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tests/template)
-file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/amalgamate)
+ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/amalgamate)
-add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/amalgamate/crow_all.h
- COMMAND python ${PROJECT_SOURCE_DIR}/amalgamate/merge_all.py ${PROJECT_SOURCE_DIR}/include
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/amalgamate/crow_all.h ${PROJECT_SOURCE_DIR}/amalgamate
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/amalgamate
- DEPENDS ${PROJECT_SOURCE_DIR}/include/*.h
- )
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/amalgamate/crow_all.h
+ COMMAND python ${PROJECT_SOURCE_DIR}/amalgamate/merge_all.py ${PROJECT_SOURCE_DIR}/include
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/amalgamate/crow_all.h ${PROJECT_SOURCE_DIR}/amalgamate
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/amalgamate
+ DEPENDS ${PROJECT_SOURCE_DIR}/include/*.h
+ )
-add_custom_target(amalgamation ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/amalgamate/crow_all.h)
+ add_custom_target(amalgamation ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/amalgamate/crow_all.h)
endif()
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 3c9b0b0..b92539e 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -2,29 +2,28 @@ cmake_minimum_required(VERSION 2.8)
project (crow_examples)
if (MSVC)
-add_executable(example_vs example_vs.cpp)
-target_link_libraries(example_vs ${Boost_LIBRARIES})
-target_link_libraries(example_vs ${CMAKE_THREAD_LIBS_INIT})
+ add_executable(example_vs example_vs.cpp)
+ target_link_libraries(example_vs ${Boost_LIBRARIES})
+ target_link_libraries(example_vs ${CMAKE_THREAD_LIBS_INIT})
else ()
-
-add_executable(helloworld helloworld.cpp)
-target_link_libraries(helloworld ${Boost_LIBRARIES})
-target_link_libraries(helloworld ${CMAKE_THREAD_LIBS_INIT})
+ add_executable(helloworld helloworld.cpp)
+ target_link_libraries(helloworld ${Boost_LIBRARIES})
+ target_link_libraries(helloworld ${CMAKE_THREAD_LIBS_INIT})
if (OPENSSL_FOUND)
-add_executable(example_ssl ssl/example_ssl.cpp)
-target_link_libraries(example_ssl ${Boost_LIBRARIES})
-target_link_libraries(example_ssl ${CMAKE_THREAD_LIBS_INIT} ${OPENSSL_LIBRARIES})
+ add_executable(example_ssl ssl/example_ssl.cpp)
+ target_link_libraries(example_ssl ${Boost_LIBRARIES})
+ target_link_libraries(example_ssl ${CMAKE_THREAD_LIBS_INIT} ${OPENSSL_LIBRARIES})
endif()
add_executable(example_websocket websocket/example_ws.cpp)
target_link_libraries(example_websocket ${Boost_LIBRARIES})
target_link_libraries(example_websocket ${CMAKE_THREAD_LIBS_INIT} ${OPENSSL_LIBRARIES})
add_custom_command(OUTPUT ws.html
- COMMAND ${CMAKE_COMMAND} -E
- copy ${PROJECT_SOURCE_DIR}/websocket/templates/ws.html ${CMAKE_CURRENT_BINARY_DIR}/templates/ws.html
- DEPENDS ${PROJECT_SOURCE_DIR}/websocket/templates/ws.html
- )
+ COMMAND ${CMAKE_COMMAND} -E
+ copy ${PROJECT_SOURCE_DIR}/websocket/templates/ws.html ${CMAKE_CURRENT_BINARY_DIR}/templates/ws.html
+ DEPENDS ${PROJECT_SOURCE_DIR}/websocket/templates/ws.html
+)
add_custom_target(example_ws_copy ALL DEPENDS ws.html)
add_executable(example example.cpp)
@@ -33,7 +32,7 @@ target_link_libraries(example ${Boost_LIBRARIES})
target_link_libraries(example ${CMAKE_THREAD_LIBS_INIT})
if (Tcmalloc_FOUND)
-target_link_libraries(example ${Tcmalloc_LIBRARIES})
+ target_link_libraries(example ${Tcmalloc_LIBRARIES})
endif(Tcmalloc_FOUND)
add_executable(example_with_all example_with_all.cpp)
@@ -42,21 +41,20 @@ target_link_libraries(example_with_all ${Boost_LIBRARIES})
target_link_libraries(example_with_all ${CMAKE_THREAD_LIBS_INIT})
add_custom_command(OUTPUT example_test.py
- COMMAND ${CMAKE_COMMAND} -E
- copy ${PROJECT_SOURCE_DIR}/example_test.py ${CMAKE_CURRENT_BINARY_DIR}/example_test.py
- DEPENDS ${PROJECT_SOURCE_DIR}/example_test.py
- )
+ COMMAND ${CMAKE_COMMAND} -E
+ copy ${PROJECT_SOURCE_DIR}/example_test.py ${CMAKE_CURRENT_BINARY_DIR}/example_test.py
+ DEPENDS ${PROJECT_SOURCE_DIR}/example_test.py
+)
add_custom_target(example_copy ALL DEPENDS example_test.py)
add_executable(example_chat example_chat.cpp)
-#target_link_libraries(example_chat crow)
target_link_libraries(example_chat ${Boost_LIBRARIES})
target_link_libraries(example_chat ${CMAKE_THREAD_LIBS_INIT})
add_custom_command(OUTPUT example_chat.html
- COMMAND ${CMAKE_COMMAND} -E
- copy ${PROJECT_SOURCE_DIR}/example_chat.html ${CMAKE_CURRENT_BINARY_DIR}/example_chat.html
- DEPENDS ${PROJECT_SOURCE_DIR}/example_chat.html
- )
+ COMMAND ${CMAKE_COMMAND} -E
+ copy ${PROJECT_SOURCE_DIR}/example_chat.html ${CMAKE_CURRENT_BINARY_DIR}/example_chat.html
+ DEPENDS ${PROJECT_SOURCE_DIR}/example_chat.html
+)
add_custom_target(example_chat_copy ALL DEPENDS example_chat.html)
#SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -pg" )
diff --git a/examples/example_chat.cpp b/examples/example_chat.cpp
index d187f51..c510bb0 100644
--- a/examples/example_chat.cpp
+++ b/examples/example_chat.cpp
@@ -15,7 +15,7 @@ void broadcast(const string& msg)
x["msgs"][0] = msgs.back();
x["last"] = msgs.size();
string body = crow::json::dump(x);
- for(auto p:ress)
+ for(auto p : ress)
{
auto* res = p.first;
CROW_LOG_DEBUG << res << " replied: " << body;
diff --git a/include/crow/http_response.h b/include/crow/http_response.h
index f5e03b4..7940174 100644
--- a/include/crow/http_response.h
+++ b/include/crow/http_response.h
@@ -86,6 +86,12 @@ namespace crow
completed_ = false;
}
+ void redirect(const std::string& location)
+ {
+ code = 301;
+ set_header("Location", location);
+ }
+
void write(const std::string& body_part)
{
body += body_part;
diff --git a/include/crow/http_server.h b/include/crow/http_server.h
index 787fdb8..f190739 100644
--- a/include/crow/http_server.h
+++ b/include/crow/http_server.h
@@ -148,7 +148,7 @@ namespace crow
});
}
- CROW_LOG_INFO << server_name_ << " server is running on port " << port_
+ CROW_LOG_INFO << server_name_ << " server is running at " << bindaddr_ <<":" << port_
<< " using " << concurrency_ << " threads";
signals_.async_wait(
diff --git a/include/crow/websocket.h b/include/crow/websocket.h
index d21d7e9..c0e8c3f 100644
--- a/include/crow/websocket.h
+++ b/include/crow/websocket.h
@@ -226,7 +226,7 @@ namespace crow
case WebSocketReadState::Len16:
{
remaining_length_ = 0;
- uint16_t remaining_length16_ = 0;
+ uint16_t remaining_length16_ = 0;
boost::asio::async_read(adaptor_.socket(), boost::asio::buffer(&remaining_length16_, 2),
[this,&remaining_length16_](const boost::system::error_code& ec, std::size_t bytes_transferred)
{