win32 needs strange strftime args
[platform/upstream/libwebsockets.git] / test-server / test-server-status.c
index d8ebf06..d85897b 100644 (file)
@@ -34,7 +34,7 @@ update_status(struct lws *wsi, struct per_session_data__lws_status *pss)
 {
        struct per_session_data__lws_status **pp = &list;
        int subsequent = 0;
-       char *p = cache;
+       char *p = cache + LWS_PRE, *start = p;
        char date[128];
        time_t t;
        struct tm *ptm;
@@ -57,13 +57,17 @@ update_status(struct lws *wsi, struct per_session_data__lws_status *pss)
 #endif
                        strcpy(date, "unknown");
                else
+#ifdef WIN32
+                       strftime(date, sizeof(date), "%Y %H:%M %Z", ptm);
+#else
                        strftime(date, sizeof(date), "%F %H:%M %Z", ptm);
-               if ((p - cache) > (sizeof(cache) - 512))
+#endif
+               if ((p - start) > (sizeof(cache) - 512))
                        break;
                if (subsequent)
                        *p++ = ',';
                subsequent = 1;
-               p += snprintf(p, sizeof(cache) - (p - cache) - 1,
+               p += snprintf(p, sizeof(cache) - (p - start) - 1,
                                "{\"peer\":\"%s\",\"time\":\"%s\","
                                "\"ua\":\"%s\"}",
                             (*pp)->ip, date, (*pp)->user_agent);
@@ -71,9 +75,9 @@ update_status(struct lws *wsi, struct per_session_data__lws_status *pss)
        }
 
        p += sprintf(p, "]}");
-       cache_len = p - cache;
+       cache_len = p - start;
        lwsl_err("cache_len %d\n", cache_len);
-       cache[cache_len] = '\0';
+       *p = '\0';
 
        /* since we changed the list, increment the 'version' */
        current++;
@@ -128,7 +132,7 @@ callback_lws_status(struct lws *wsi, enum lws_callback_reasons reason,
                break;
 
        case LWS_CALLBACK_SERVER_WRITEABLE:
-               m = lws_write(wsi, (unsigned char *)cache, cache_len,
+               m = lws_write(wsi, (unsigned char *)cache + LWS_PRE, cache_len,
                              LWS_WRITE_TEXT);
                if (m < server_info_len) {
                        lwsl_err("ERROR %d writing to di socket\n", m);