Browse Source

submit some modify

lusa 5 năm trước cách đây
mục cha
commit
e163fa2108
2 tập tin đã thay đổi với 448 bổ sung451 xóa
  1. 447 451
      app/goahead-5.1.0/src/goahead.c
  2. 1 0
      app/goahead-5.1.0/src/route.c

+ 447 - 451
app/goahead-5.1.0/src/goahead.c

@@ -1,451 +1,447 @@
-/*
-    goahead.c -- Main program for GoAhead
-
-    Usage: goahead [options] [documents] [IP][:port] ...
-        Options:
-        --auth authFile        # User and role configuration
-        --background           # Run as a Linux daemon
-        --home directory       # Change to directory to run
-        --log logFile:level    # Log to file file at verbosity level
-        --route routeFile      # Route configuration file
-        --verbose              # Same as --log stdout:2
-        --version              # Output version information
-
-    Copyright (c) All Rights Reserved. See details at the end of the file.
- */
-
-/********************************* Includes ***********************************/
-
-#include    "goahead.h"
-#include    "libipmi_struct.h"
-#include    "com_IPMI_App.h"
-#include    "libipmi_IPM.h"
-#include    "com_IPMIDefs.h"
-
-/********************************* Defines ************************************/
-
-static int finished = 0;
-
-/********************************* Forwards ***********************************/
-
-static void initPlatform(void);
-static void logHeader(void);
-static void usage(void);
-
-#if WINDOWS
-static void windowsClose();
-static int windowsInit();
-static LRESULT CALLBACK websWindProc(HWND hwnd, UINT msg, UINT wp, LPARAM lp);
-#endif
-
-#if ME_UNIX_LIKE
-static void sigHandler(int signo);
-#endif
-
-// static void buy(Webs *wp);
-// static void actionTest(Webs *wp);
-// static void personInfoAction(Webs *wp);
-
-
-// static void buy(Webs *wp)
-// {
-//     char    *name, *age;
-//     name = websGetVar(wp, "name", NULL);
-//     age = websGetVar(wp, "age", NULL);
-//      logmsg(2, "---------------------------------------------");
-//     logmsg(2, "name value is : %s", name );
-//      logmsg(2, "age value is : %s", age );
-//     websSetStatus(wp, 200);
-//     websWriteHeaders(wp, 0, 0);
-//     websWriteEndHeaders(wp);
-//     printf("aa");
-//     websWrite(wp, "Name %s", name); 
-//     websWrite(wp,  "Age %s", age);
-//     websFlush(wp, 0);
-//     websDone(wp);
-// }
-
-
-
-// /*
-//     Implement /action/actionTest. Parse the form variables: name, address and echo back.
-//  */
-// static void actionTest(Webs *wp)
-// {
-//     cchar   *name, *address;
-
-//     name = websGetVar(wp, "name", NULL);
-//     address = websGetVar(wp, "address", NULL);
-//     websSetStatus(wp, 200);
-//     websWriteHeaders(wp, -1, 0);
-//     websWriteEndHeaders(wp);
-//     websWrite(wp, "<html><body><h2>name: %s, address: %s</h2></body></html>\n", name, address);
-//     websFlush(wp, 0);
-//     websDone(wp);
-// }
-
-
-
-
-/*********************************** Code *************************************/
-
-MAIN(goahead, int argc, char **argv, char **envp)
-{
-   
-    char    *argp, *home, *documents, *endpoints, *endpoint, *route, *auth, *tok, *lspec;
-    int     argind;
-	logmsg(2, "---> log1\n");
-	error("---> log1\n");
-#if WINDOWS
-    if (windowsInit() < 0) {
-        return 0;
-    }
-#endif
-    route = "route.txt";
-    auth = "auth.txt";
-
-
-/********************* jimbo test code **************************/
-    Webs wp;
-    IPMI20_SESSION_T TestSession;
-    uint8_t resBuf[100];
-    uint32_t resLen;
-
-    LIBIPMI_CreateSession(&wp.ipmi_session, 10);
-
-    getDeviceInfo(&wp);
-    // LIBIPMI_Send_RAW_IPMI2_0_Command(&wp.ipmi_session,
-    //     0x2e<<2, 0x01,
-    //     NULL, 0,
-    //     resBuf, &resLen,
-    //         10);
-
-    LIBIPMI_CloseSession( &wp.ipmi_session );
-
-/********************* jimbo test end **************************/    
-
-	error("---> main enter, argc = %d\n", argc);
-    for (argind = 1; argind < argc; argind++) {
-        argp = argv[argind];
-		error("---> argp = %s\n", argp);
-        if (*argp != '-') {
-            break;
-
-        } else if (smatch(argp, "--auth") || smatch(argp, "-a")) {
-            if (argind >= argc) usage();
-            auth = argv[++argind];
-
-#if ME_UNIX_LIKE && !MACOSX
-        } else if (smatch(argp, "--background") || smatch(argp, "-b")) {
-            websSetBackground(1);
-#endif
-
-        } else if (smatch(argp, "--debugger") || smatch(argp, "-d") || smatch(argp, "-D")) {
-            websSetDebug(1);
-
-        } else if (smatch(argp, "--home")) {
-            if (argind >= argc) usage();
-            home = argv[++argind];
-            if (chdir(home) < 0) {
-                error("Cannot change directory to %s", home);
-                exit(-1);
-            }
-			error("---> get home\n");
-        } else if (smatch(argp, "--log") || smatch(argp, "-l")) {
-            if (argind >= argc) usage();
-            logSetPath(argv[++argind]);
-
-        } else if (smatch(argp, "--verbose") || smatch(argp, "-v")) {
-            logSetPath("stdout:2");
-			error( "---> get -v\n");
-        } else if (smatch(argp, "--route") || smatch(argp, "-r")) {
-            route = argv[++argind];
-
-        } else if (smatch(argp, "--version") || smatch(argp, "-V")) {
-            printf("%s\n", ME_VERSION);
-            exit(0);
-
-        } else if (*argp == '-' && isdigit((uchar) argp[1])) {
-            lspec = sfmt("stdout:%s", &argp[1]);
-            logSetPath(lspec);
-            wfree(lspec);
-
-        } else {
-            usage();
-        }
-    }
-    documents = ME_GOAHEAD_DOCUMENTS;
-    if (argc > argind) {
-        documents = argv[argind++];
-    }
-	error("---> initPlatform\n");
-    initPlatform();
-    if (websOpen(documents, route) < 0) {
-        error("Cannot initialize server. Exiting.");
-        return -1;
-    }
-#if ME_GOAHEAD_AUTH
-	error("---> ME_GOAHEAD_AUTH: %d\n", ME_GOAHEAD_AUTH);
-    if (websLoad(auth) < 0) {
-        error("Cannot load %s", auth);
-        return -1;
-    }
-#endif
-    logHeader();
-	error("---> argind = %d, argc = %d\n", argind, argc);
-    if (argind < argc) {
-        while (argind < argc) {
-            endpoint = argv[argind++];
-            if (websListen(endpoint) < 0) {
-                return -1;
-            }
-        }
-    } else {
-        endpoints = sclone(ME_GOAHEAD_LISTEN);
-        for (endpoint = stok(endpoints, ", \t", &tok); endpoint; endpoint = stok(NULL, ", \t,", &tok)) {
-#if !ME_COM_SSL
-			error("ME_COM_SSL %d\n", ME_COM_SSL);
-            if (strstr(endpoint, "https")) continue;
-#endif
-            if (websListen(endpoint) < 0) {
-                wfree(endpoints);
-                return -1;
-            }
-        }
-        wfree(endpoints);
-    }
-#if ME_ROM && KEEP
-    /*
-        If not using a route/auth config files, then manually create the routes like this:
-        If custom matching is required, use websSetRouteMatch. If authentication is required, use websSetRouteAuth.
-     */
-    websAddRoute("/", "file", 0);
-#endif
-
-//add by lusa start 
-        // websDefineAction("buy", buy);
-        // websDefineAction("test", actionTest);
-        websDefineAction("person", personInfoAction);
-
-
-        
-// add by lusa end 
-#ifdef GOAHEAD_INIT
-    /*
-        Define your init function in main.me goahead.init, or
-        configure with DFLAGS=GOAHEAD_INIT=myInitFunction
-     */
-    {
-        extern int GOAHEAD_INIT();
-
-        if (GOAHEAD_INIT() < 0) {
-            exit(1);
-        }
-    }
-#endif
-#if ME_UNIX_LIKE && !MACOSX
-    /*
-        Service events till terminated
-     */
-    if (websGetBackground()) {
-        if (daemon(0, 0) < 0) {
-            error("Cannot run as daemon");
-            return -1;
-        }
-    }
-#endif
-	error( "---> websServiceEvents\n");
-    websServiceEvents(&finished);
-    logmsg(1, "Instructed to exit");
-    websClose();
-#if WINDOWS
-    windowsClose();
-#endif
-    return 0;
-}
-
-
-static void logHeader(void)
-{
-    char    home[ME_GOAHEAD_LIMIT_STRING];
-
-    getcwd(home, sizeof(home));
-    logmsg(2, "Configuration for %s", ME_TITLE);
-    logmsg(2, "---------------------------------------------");
-    logmsg(2, "Version:            %s", ME_VERSION);
-    logmsg(2, "BuildType:          %s", ME_DEBUG ? "Debug" : "Release");
-    logmsg(2, "CPU:                %s", ME_CPU);
-    logmsg(2, "OS:                 %s", ME_OS);
-    logmsg(2, "Host:               %s", websGetServer());
-    logmsg(2, "Directory:          %s", home);
-    logmsg(2, "Documents:          %s", websGetDocuments());
-    logmsg(2, "Configure:          %s", ME_CONFIG_CMD);
-    logmsg(2, "---------------------------------------------");
-}
-
-static void usage(void) {
-    fprintf(stderr, "\n%s Usage:\n\n"
-        "  %s [options] [documents] [[IPaddress][:port] ...]\n\n"
-        "  Options:\n"
-#if ME_GOAHEAD_AUTH
-        "    --auth authFile        # User and role configuration\n"
-#endif
-#if ME_UNIX_LIKE && !MACOSX
-        "    --background           # Run as a Unix daemon\n"
-#endif
-        "    --debugger             # Run in debug mode\n"
-        "    --home directory       # Change to directory to run\n"
-        "    --log logFile:level    # Log to file file at verbosity level\n"
-        "    --route routeFile      # Route configuration file\n"
-        "    --verbose              # Same as --log stdout:2\n"
-        "    --version              # Output version information\n\n",
-        ME_TITLE, ME_NAME);
-    exit(-1);
-}
-
-
-static void initPlatform(void)
-{
-#if ME_UNIX_LIKE
-	error("---> initPlatform, ME_OS: %s\n", ME_OS);
-    signal(SIGTERM, sigHandler);
-    #ifdef SIGPIPE
-		error("---> define SIGPIPE\n");
-        signal(SIGPIPE, SIG_IGN);
-    #endif
-#elif ME_WIN_LIKE
-    _fmode=_O_BINARY;
-    printf("%s\n", "fff");
-#endif
-}
-
-
-#if ME_UNIX_LIKE
-static void sigHandler(int signo)
-{
-    finished = 1;
-}
-#endif
-
-
-//#if WINDOWS
-///*
-//    Create a taskbar entry. Register the window class and create a window
-// */
-//static int windowsInit()
-//{
-//    HINSTANCE   inst;
-//    WNDCLASS    wc;                     /* Window class */
-//    HMENU       hSysMenu;
-//    HWND        hwnd;
-//
-//    inst = websGetInst();
-//    wc.style         = CS_HREDRAW | CS_VREDRAW;
-//    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
-//    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
-//    wc.cbClsExtra    = 0;
-//    wc.cbWndExtra    = 0;
-//    wc.hInstance     = inst;
-//    wc.hIcon         = NULL;
-//    wc.lpfnWndProc   = (WNDPROC) websWindProc;
-//    wc.lpszMenuName  = wc.lpszClassName = ME_NAME;
-//    if (! RegisterClass(&wc)) {
-//        return -1;
-//    }
-//    /*
-//        Create a window just so we can have a taskbar to close this web server
-//     */
-//    hwnd = CreateWindow(ME_NAME, ME_TITLE, WS_MINIMIZE | WS_POPUPWINDOW, CW_USEDEFAULT,
-//        0, 0, 0, NULL, NULL, inst, NULL);
-//    if (hwnd == NULL) {
-//        return -1;
-//    }
-//
-//    /*
-//        Add the about box menu item to the system menu
-//     */
-//    hSysMenu = GetSystemMenu(hwnd, FALSE);
-//    if (hSysMenu != NULL) {
-//        AppendMenu(hSysMenu, MF_SEPARATOR, 0, NULL);
-//    }
-//    ShowWindow(hwnd, SW_SHOWNORMAL);
-//    UpdateWindow(hwnd);
-//    return 0;
-//}
-//
-//
-//static void windowsClose()
-//{
-//    HINSTANCE   inst;
-//
-//    inst = websGetInst();
-//    UnregisterClass(ME_NAME, inst);
-//}
-//
-//
-///*
-//    Main menu window message handler.
-// */
-//static LRESULT CALLBACK websWindProc(HWND hwnd, UINT msg, UINT wp, LPARAM lp)
-//{
-//    switch (msg) {
-//        case WM_DESTROY:
-//            PostQuitMessage(0);
-//            finished++;
-//            return 0;
-//
-//        case WM_SYSCOMMAND:
-//            break;
-//    }
-//    return DefWindowProc(hwnd, msg, wp, lp);
-//}
-//
-//
-///*
-//    Check for Windows Messages
-// */
-//WPARAM checkWindowsMsgLoop()
-//{
-//    MSG     msg;
-//
-//    if (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) {
-//        if (!GetMessage(&msg, NULL, 0, 0) || msg.message == WM_QUIT) {
-//            return msg.wParam;
-//        }
-//        TranslateMessage(&msg);
-//        DispatchMessage(&msg);
-//    }
-//    return 0;
-//}
-//
-//
-///*
-//    Windows message handler
-// */
-//static LRESULT CALLBACK websAboutProc(HWND hwndDlg, uint msg, uint wp, long lp)
-//{
-//    LRESULT    lResult;
-//
-//    lResult = DefWindowProc(hwndDlg, msg, wp, lp);
-//
-//    switch (msg) {
-//        case WM_CREATE:
-//            break;
-//        case WM_DESTROY:
-//            break;
-//        case WM_COMMAND:
-//            break;
-//    }
-//    return lResult;
-//}
-//
-//#endif
-
-/*
-    Copyright (c) Embedthis Software. All Rights Reserved.
-    This software is distributed under commercial and open source licenses.
-    You may use the Embedthis GoAhead open source license or you may acquire
-    a commercial license from Embedthis Software. You agree to be fully bound
-    by the terms of either license. Consult the LICENSE.md distributed with
-    this software for full details and other copyrights.
- */
+/*
+    goahead.c -- Main program for GoAhead
+
+    Usage: goahead [options] [documents] [IP][:port] ...
+        Options:
+        --auth authFile        # User and role configuration
+        --background           # Run as a Linux daemon
+        --home directory       # Change to directory to run
+        --log logFile:level    # Log to file file at verbosity level
+        --route routeFile      # Route configuration file
+        --verbose              # Same as --log stdout:2
+        --version              # Output version information
+
+    Copyright (c) All Rights Reserved. See details at the end of the file.
+ */
+
+/********************************* Includes ***********************************/
+
+#include    "goahead.h"
+
+/********************************* Defines ************************************/
+
+static int finished = 0;
+
+/********************************* Forwards ***********************************/
+
+static void initPlatform(void);
+static void logHeader(void);
+static void usage(void);
+
+#if WINDOWS
+static void windowsClose();
+static int windowsInit();
+static LRESULT CALLBACK websWindProc(HWND hwnd, UINT msg, UINT wp, LPARAM lp);
+#endif
+
+#if ME_UNIX_LIKE
+static void sigHandler(int signo);
+#endif
+
+// static void buy(Webs *wp);
+// static void actionTest(Webs *wp);
+// static void personInfoAction(Webs *wp);
+
+
+// static void buy(Webs *wp)
+// {
+//     char    *name, *age;
+//     name = websGetVar(wp, "name", NULL);
+//     age = websGetVar(wp, "age", NULL);
+//      logmsg(2, "---------------------------------------------");
+//     logmsg(2, "name value is : %s", name );
+//      logmsg(2, "age value is : %s", age );
+//     websSetStatus(wp, 200);
+//     websWriteHeaders(wp, 0, 0);
+//     websWriteEndHeaders(wp);
+//     printf("aa");
+//     websWrite(wp, "Name %s", name); 
+//     websWrite(wp,  "Age %s", age);
+//     websFlush(wp, 0);
+//     websDone(wp);
+// }
+
+
+
+// /*
+//     Implement /action/actionTest. Parse the form variables: name, address and echo back.
+//  */
+// static void actionTest(Webs *wp)
+// {
+//     cchar   *name, *address;
+
+//     name = websGetVar(wp, "name", NULL);
+//     address = websGetVar(wp, "address", NULL);
+//     websSetStatus(wp, 200);
+//     websWriteHeaders(wp, -1, 0);
+//     websWriteEndHeaders(wp);
+//     websWrite(wp, "<html><body><h2>name: %s, address: %s</h2></body></html>\n", name, address);
+//     websFlush(wp, 0);
+//     websDone(wp);
+// }
+
+
+
+
+/*********************************** Code *************************************/
+
+MAIN(goahead, int argc, char **argv, char **envp)
+{
+   
+    char    *argp, *home, *documents, *endpoints, *endpoint, *route, *auth, *tok, *lspec;
+    int     argind;
+	logmsg(2, "---> log1111111111111111111111111\n");
+	error("---> log1\n");
+#if WINDOWS
+    if (windowsInit() < 0) {
+        return 0;
+    }
+#endif
+    route = "route.txt";
+    auth = "auth.txt";
+
+    /********************* jimbo test code **************************/
+    Webs wp;
+    IPMI20_SESSION_T TestSession;
+    uint8_t resBuf[100];
+    uint32_t resLen;
+
+    LIBIPMI_CreateSession(&wp.ipmi_session, 10);
+
+    getDeviceInfo(&wp);
+    // LIBIPMI_Send_RAW_IPMI2_0_Command(&wp.ipmi_session,
+    //     0x2e<<2, 0x01,
+    //     NULL, 0,
+    //     resBuf, &resLen,
+    //         10);
+
+    LIBIPMI_CloseSession( &wp.ipmi_session );
+
+/********************* jimbo test end **************************/
+
+
+	error("---> main enter, argc = %d\n", argc);
+    for (argind = 1; argind < argc; argind++) {
+        argp = argv[argind];
+		error("---> argp = %s\n", argp);
+        if (*argp != '-') {
+            break;
+
+        } else if (smatch(argp, "--auth") || smatch(argp, "-a")) {
+            if (argind >= argc) usage();
+            auth = argv[++argind];
+
+#if ME_UNIX_LIKE && !MACOSX
+        } else if (smatch(argp, "--background") || smatch(argp, "-b")) {
+            websSetBackground(1);
+#endif
+
+        } else if (smatch(argp, "--debugger") || smatch(argp, "-d") || smatch(argp, "-D")) {
+            websSetDebug(1);
+
+        } else if (smatch(argp, "--home")) {
+            if (argind >= argc) usage();
+            home = argv[++argind];
+            if (chdir(home) < 0) {
+                error("Cannot change directory to %s", home);
+                exit(-1);
+            }
+			error("---> get home\n");
+        } else if (smatch(argp, "--log") || smatch(argp, "-l")) {
+            if (argind >= argc) usage();
+            logSetPath(argv[++argind]);
+
+        } else if (smatch(argp, "--verbose") || smatch(argp, "-v")) {
+            logSetPath("stdout:2");
+			error( "---> get -v\n");
+        } else if (smatch(argp, "--route") || smatch(argp, "-r")) {
+            route = argv[++argind];
+
+        } else if (smatch(argp, "--version") || smatch(argp, "-V")) {
+            printf("%s\n", ME_VERSION);
+            exit(0);
+
+        } else if (*argp == '-' && isdigit((uchar) argp[1])) {
+            lspec = sfmt("stdout:%s", &argp[1]);
+            logSetPath(lspec);
+            wfree(lspec);
+
+        } else {
+            usage();
+        }
+    }
+    documents = ME_GOAHEAD_DOCUMENTS;
+    if (argc > argind) {
+        documents = argv[argind++];
+    }
+	error("---> initPlatform\n");
+    initPlatform();
+    if (websOpen(documents, route) < 0) {
+        error("Cannot initialize server. Exiting.");
+        return -1;
+    }
+#if ME_GOAHEAD_AUTH
+	error("---> ME_GOAHEAD_AUTH: %d\n", ME_GOAHEAD_AUTH);
+    if (websLoad(auth) < 0) {
+        error("Cannot load %s", auth);
+        return -1;
+    }
+#endif
+    logHeader();
+	error("---> argind = %d, argc = %d\n", argind, argc);
+    if (argind < argc) {
+        while (argind < argc) {
+            endpoint = argv[argind++];
+            if (websListen(endpoint) < 0) {
+                return -1;
+            }
+        }
+    } else {
+        endpoints = sclone(ME_GOAHEAD_LISTEN);
+        for (endpoint = stok(endpoints, ", \t", &tok); endpoint; endpoint = stok(NULL, ", \t,", &tok)) {
+#if !ME_COM_SSL
+			error("ME_COM_SSL %d\n", ME_COM_SSL);
+            if (strstr(endpoint, "https")) continue;
+#endif
+            if (websListen(endpoint) < 0) {
+                wfree(endpoints);
+                return -1;
+            }
+        }
+        wfree(endpoints);
+    }
+#if ME_ROM && KEEP
+    /*
+        If not using a route/auth config files, then manually create the routes like this:
+        If custom matching is required, use websSetRouteMatch. If authentication is required, use websSetRouteAuth.
+     */
+    websAddRoute("/", "file", 0);
+#endif
+
+//add by lusa start 
+        // websDefineAction("buy", buy);
+        // websDefineAction("test", actionTest);
+        websDefineAction("person", personInfoAction);
+
+
+        
+// add by lusa end 
+#ifdef GOAHEAD_INIT
+    /*
+        Define your init function in main.me goahead.init, or
+        configure with DFLAGS=GOAHEAD_INIT=myInitFunction
+     */
+    {
+        extern int GOAHEAD_INIT();
+
+        if (GOAHEAD_INIT() < 0) {
+            exit(1);
+        }
+    }
+#endif
+#if ME_UNIX_LIKE && !MACOSX
+    /*
+        Service events till terminated
+     */
+    if (websGetBackground()) {
+        if (daemon(0, 0) < 0) {
+            error("Cannot run as daemon");
+            return -1;
+        }
+    }
+#endif
+	error( "---> websServiceEvents\n");
+    websServiceEvents(&finished);
+    logmsg(1, "Instructed to exit");
+    websClose();
+#if WINDOWS
+    windowsClose();
+#endif
+    return 0;
+}
+
+
+static void logHeader(void)
+{
+    char    home[ME_GOAHEAD_LIMIT_STRING];
+
+    getcwd(home, sizeof(home));
+    logmsg(2, "Configuration for %s", ME_TITLE);
+    logmsg(2, "---------------------------------------------");
+    logmsg(2, "Version:            %s", ME_VERSION);
+    logmsg(2, "BuildType:          %s", ME_DEBUG ? "Debug" : "Release");
+    logmsg(2, "CPU:                %s", ME_CPU);
+    logmsg(2, "OS:                 %s", ME_OS);
+    logmsg(2, "Host:               %s", websGetServer());
+    logmsg(2, "Directory:          %s", home);
+    logmsg(2, "Documents:          %s", websGetDocuments());
+    logmsg(2, "Configure:          %s", ME_CONFIG_CMD);
+    logmsg(2, "---------------------------------------------");
+}
+
+static void usage(void) {
+    fprintf(stderr, "\n%s Usage:\n\n"
+        "  %s [options] [documents] [[IPaddress][:port] ...]\n\n"
+        "  Options:\n"
+#if ME_GOAHEAD_AUTH
+        "    --auth authFile        # User and role configuration\n"
+#endif
+#if ME_UNIX_LIKE && !MACOSX
+        "    --background           # Run as a Unix daemon\n"
+#endif
+        "    --debugger             # Run in debug mode\n"
+        "    --home directory       # Change to directory to run\n"
+        "    --log logFile:level    # Log to file file at verbosity level\n"
+        "    --route routeFile      # Route configuration file\n"
+        "    --verbose              # Same as --log stdout:2\n"
+        "    --version              # Output version information\n\n",
+        ME_TITLE, ME_NAME);
+    exit(-1);
+}
+
+
+static void initPlatform(void)
+{
+#if ME_UNIX_LIKE
+	error("---> initPlatform, ME_OS: %s\n", ME_OS);
+    signal(SIGTERM, sigHandler);
+    #ifdef SIGPIPE
+		error("---> define SIGPIPE\n");
+        signal(SIGPIPE, SIG_IGN);
+    #endif
+#elif ME_WIN_LIKE
+    _fmode=_O_BINARY;
+    printf("%s\n", "fff");
+#endif
+}
+
+
+#if ME_UNIX_LIKE
+static void sigHandler(int signo)
+{
+    finished = 1;
+}
+#endif
+
+
+//#if WINDOWS
+///*
+//    Create a taskbar entry. Register the window class and create a window
+// */
+//static int windowsInit()
+//{
+//    HINSTANCE   inst;
+//    WNDCLASS    wc;                     /* Window class */
+//    HMENU       hSysMenu;
+//    HWND        hwnd;
+//
+//    inst = websGetInst();
+//    wc.style         = CS_HREDRAW | CS_VREDRAW;
+//    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
+//    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
+//    wc.cbClsExtra    = 0;
+//    wc.cbWndExtra    = 0;
+//    wc.hInstance     = inst;
+//    wc.hIcon         = NULL;
+//    wc.lpfnWndProc   = (WNDPROC) websWindProc;
+//    wc.lpszMenuName  = wc.lpszClassName = ME_NAME;
+//    if (! RegisterClass(&wc)) {
+//        return -1;
+//    }
+//    /*
+//        Create a window just so we can have a taskbar to close this web server
+//     */
+//    hwnd = CreateWindow(ME_NAME, ME_TITLE, WS_MINIMIZE | WS_POPUPWINDOW, CW_USEDEFAULT,
+//        0, 0, 0, NULL, NULL, inst, NULL);
+//    if (hwnd == NULL) {
+//        return -1;
+//    }
+//
+//    /*
+//        Add the about box menu item to the system menu
+//     */
+//    hSysMenu = GetSystemMenu(hwnd, FALSE);
+//    if (hSysMenu != NULL) {
+//        AppendMenu(hSysMenu, MF_SEPARATOR, 0, NULL);
+//    }
+//    ShowWindow(hwnd, SW_SHOWNORMAL);
+//    UpdateWindow(hwnd);
+//    return 0;
+//}
+//
+//
+//static void windowsClose()
+//{
+//    HINSTANCE   inst;
+//
+//    inst = websGetInst();
+//    UnregisterClass(ME_NAME, inst);
+//}
+//
+//
+///*
+//    Main menu window message handler.
+// */
+//static LRESULT CALLBACK websWindProc(HWND hwnd, UINT msg, UINT wp, LPARAM lp)
+//{
+//    switch (msg) {
+//        case WM_DESTROY:
+//            PostQuitMessage(0);
+//            finished++;
+//            return 0;
+//
+//        case WM_SYSCOMMAND:
+//            break;
+//    }
+//    return DefWindowProc(hwnd, msg, wp, lp);
+//}
+//
+//
+///*
+//    Check for Windows Messages
+// */
+//WPARAM checkWindowsMsgLoop()
+//{
+//    MSG     msg;
+//
+//    if (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) {
+//        if (!GetMessage(&msg, NULL, 0, 0) || msg.message == WM_QUIT) {
+//            return msg.wParam;
+//        }
+//        TranslateMessage(&msg);
+//        DispatchMessage(&msg);
+//    }
+//    return 0;
+//}
+//
+//
+///*
+//    Windows message handler
+// */
+//static LRESULT CALLBACK websAboutProc(HWND hwndDlg, uint msg, uint wp, long lp)
+//{
+//    LRESULT    lResult;
+//
+//    lResult = DefWindowProc(hwndDlg, msg, wp, lp);
+//
+//    switch (msg) {
+//        case WM_CREATE:
+//            break;
+//        case WM_DESTROY:
+//            break;
+//        case WM_COMMAND:
+//            break;
+//    }
+//    return lResult;
+//}
+//
+//#endif
+
+/*
+    Copyright (c) Embedthis Software. All Rights Reserved.
+    This software is distributed under commercial and open source licenses.
+    You may use the Embedthis GoAhead open source license or you may acquire
+    a commercial license from Embedthis Software. You agree to be fully bound
+    by the terms of either license. Consult the LICENSE.md distributed with
+    this software for full details and other copyrights.
+ */

+ 1 - 0
app/goahead-5.1.0/src/route.c

@@ -89,6 +89,7 @@ void getDeviceInfo(Webs *wp){
     char DeviceID[16] = {0};
     LIBIPMI_HL_GetDeviceID(&wp->ipmi_session, DeviceID, DEFAULT_TIMEOUT);
     printf("DeviceID: %s\n", DeviceID);
+    
 }