diff --git a/examples/embedded_cpp/embedded_cpp.cpp b/examples/embedded_cpp/embedded_cpp.cpp index 2ed0437c..3ea822e1 100644 --- a/examples/embedded_cpp/embedded_cpp.cpp +++ b/examples/embedded_cpp/embedded_cpp.cpp @@ -251,11 +251,16 @@ class FooHandler : public CivetHandler int main(int argc, char *argv[]) { - const char *options[] = { "document_root", DOCUMENT_ROOT, "listening_ports", PORT, 0}; + + std::vector cpp_options; + for (int i=0; i<(sizeof(options)/sizeof(options[0])-1); i++) { + cpp_options.push_back(options[i]); + } - CivetServer server(options); + // CivetServer server(options); // <-- C style start + CivetServer server(cpp_options); // <-- C++ style start ExampleHandler h_ex; server.addHandler(EXAMPLE_URI, h_ex); diff --git a/src/CivetServer.cpp b/src/CivetServer.cpp index 84d5f9eb..8e7ef986 100644 --- a/src/CivetServer.cpp +++ b/src/CivetServer.cpp @@ -282,6 +282,7 @@ CivetServer::CivetServer(const char **options, throw CivetException("null context when constructing CivetServer. " "Possible problem binding to port."); } + CivetServer::CivetServer(std::vector options, const struct mg_callbacks *_callbacks) : context(0) @@ -299,7 +300,7 @@ CivetServer::CivetServer(std::vector options, std::vector pointers(options.size()); for (size_t i = 0; i < options.size(); i++) { - pointers.push_back(options[i].c_str()); + pointers[i] = (options[i].c_str()); } pointers.push_back(0);