/* ZazouMiniWebServer Copyright (C) 2003-2009 Xavier Garreau This file is part of ZazouMiniWebServer. ZazouMiniWebServer is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. ZazouMiniWebServer is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with ZazouMiniWebServer; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ // ZazouMiniWebServerDll.cpp : définit le point d'entrée pour l'application DLL. // #include "stdafx.h" #include "ZazouMiniWebServerDll.h" #include #include static ZMWS theServer = ZMWS::GetInstance(); BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } extern "C" { ZMWS_EXPORT int __cdecl zmws_easy_start () { return theServer.StartServer (0, NULL); } ZMWS_EXPORT int __cdecl zmws_get_port () { CBaseZMWSConfig aConfig; int port; theServer.GetConfig (&aConfig); port = aConfig.port; theServer.FreeConfig(&aConfig); return port; } ZMWS_EXPORT int __cdecl zmws_start (int argc, char** argv) { return theServer.StartServer (argc, argv); } ZMWS_EXPORT int __cdecl zmws_start_with_config_file (const char* config_file_path) { int res; int argc; char** argv; argc = 3; argv = (char**)malloc(argc*sizeof(char*)); if (!argv) return 0; argv[0] = NULL; argv[1] = strdup("-conf"); if (!argv[1]) return 0; argv[2] = strdup(config_file_path); if (!argv[2]) return 0; res = theServer.StartServer (argc, argv); free(argv[1]); free(argv[2]); free(argv); return res; } ZMWS_EXPORT void __cdecl zmws_wait () { theServer.WaitForShutDown (); } ZMWS_EXPORT void __cdecl zmws_stop () { theServer.StopServer (); print_dbg (NULL, OPER_DELETE); } ZMWS_EXPORT void __cdecl zmws_stop_and_wait () { theServer.StopServer (); theServer.WaitForShutDown (); print_dbg (NULL, OPER_DELETE); } ZMWS_EXPORT void __cdecl zmws_get_config (CBaseZMWSConfig* base_config) { theServer.GetConfig (base_config); } ZMWS_EXPORT void __cdecl zmws_free_config (CBaseZMWSConfig* base_config) { theServer.FreeConfig (base_config); } ZMWS_EXPORT void __cdecl zmws_browse () { theServer.BrowseNow (); } ZMWS_EXPORT const char* __cdecl zmws_get_version () { return theServer.GetVersion (); } ZMWS_EXPORT const char* __cdecl zmws_get_ips () { return theServer.GetIPs (); } ZMWS_EXPORT BOOL __cdecl zmws_configure () { return theServer.Configure (NULL); } ZMWS_EXPORT BOOL __cdecl zmws_configure_with_config_file (const char* config_file_path) { return theServer.Configure (config_file_path); } ZMWS_EXPORT void __cdecl zmws_sapi_data_cleanup (void* data) { ZMWSSAPI::DataCleanup((ZMWSSAPI_DATA*)data); } // Dangerous !!! // if var is an invalid pointer ==> crash ZMWS_EXPORT const int __cdecl zmws_strlen (const char* var) { if (!var) { return 0; } return strlen (var); } }