Changeset 253 in Main


Ignore:
Timestamp:
Oct 4, 2024, 12:13:36 PM (6 weeks ago)
Author:
Nishi
Message:

fix stuff

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Common/log.c

    r212 r253  
    33#include "cm_log.h"
    44
     5#include "../config.h"
    56#include "cm_string.h"
    67
     
    2627#define LOGNAME_LENGTH 12
    2728
     29#ifdef BUILD_GUI_VALID
     30void AddLog(const char* str);
     31#endif
     32
    2833void cm_force_log(const char* log) {
    2934        time_t t = time(NULL);
    3035        struct tm* tm = localtime(&t);
    3136        char date[513];
     37        char* str;
    3238        strftime(date, 512, "%a %b %d %H:%M:%S %Z %Y", tm);
    3339#ifdef _PSP
     
    3541#elif defined(__PPU__)
    3642        tt_printf("[%s] %s\n", date, log);
     43#elif defined(BUILD_GUI_VALID)
     44        str = malloc(strlen(date) + strlen(log) + 3 + 1);
     45        str[strlen(date) + strlen(log) + 3] = 0;
     46        sprintf(str, "[%s] %s", date, log);
     47        AddLog(str);
     48        free(str);
    3749#else
    3850        fprintf(logfile, "[%s] %s\n", date, log);
     51        fflush(logfile);
    3952#endif
    40         fflush(logfile);
    4153}
    4254
  • trunk/Platform/watcom.mk

    r244 r253  
    1414LIBSUF = .dll
    1515OBJ = obj
    16 SERVADD = wrc -bt=nt -i=$(WATCOM)/h/nt tewi.rc tewi.exe && wrc -bt=nt -i=$(WATCOM)/h/nt gui.rc tewi.exe
     16REQOBJS = concat.rc
     17SERVADD = wrc -bt=nt -i=$(WATCOM)/h/nt concat.rc tewi.exe
  • trunk/Server/Makefile

    r249 r253  
    4646        $(CC) $(CFLAGS) $(EXTCFLAGS) -c -o $@ $<
    4747
    48 tewi.res: tewi.rc ../Binary/tewi.ico
    49         $(WINDRES) tewi.rc -O coff -o $@
     48tewi.res: concat.rc ../Binary/tewi.ico
     49        $(WINDRES) concat.rc -O coff -o $@
    5050
    51 tewi_bcc.res: tewi.rc ../Binary/tewi.ico
    52         brc32 -r -fo$@ tewi.rc
     51tewi_bcc.res: concat.rc ../Binary/tewi.ico
     52        brc32 -r -fo$@ concat.rc
    5353
    54 gui.res: gui.rc gui.h
    55         $(WINDRES) gui.rc -O coff -o $@
     54gui.res: concat.rc gui.h
     55        $(WINDRES) concat.rc -O coff -o $@
    5656
    57 gui_bcc.res: gui.rc gui.h
    58         brc32 -r -fo$@ gui.rc
     57gui_bcc.res: concat.rc gui.h
     58        brc32 -r -fo$@ concat.rc
    5959
    60 vc6.res: tewi.rc gui.rc
    61         cat tewi.rc gui.rc > concat.rc
     60vc6.res: concat.rc
    6261        rc /fo$@ concat.rc
    6362        rm -f concat.rc
    6463
     64concat.rc: tewi.rc gui.rc
     65        cat tewi.rc gui.rc > concat.rc
     66
    6567clean:
    6668        rm -f *.o tewi *.exe *.res *.elf *.sfo *.pbp *.self *.pkg *.obj concat.rc
  • trunk/Server/config.c

    r240 r253  
    132132        int ifbr = 0;
    133133        int ignore = -1;
     134        int portcount;
    134135        FILE* f;
    135136        cm_log("Config", "Reading %s", path);
     
    488489                free(line);
    489490                fclose(f);
    490                 return stop;
     491                for(portcount = 0; config.ports[portcount] != -1; portcount++);
     492                if(portcount == 0){
     493                        return 1;
     494                }else{
     495                        return stop;
     496                }
    491497        } else {
    492498                cm_log("Config", "Could not open the file");
  • trunk/Server/gui.c

    r249 r253  
    44
    55#include "gui.h"
    6 
     6#include "tw_server.h"
     7
     8#include <cm_log.h>
     9
     10#include <stdio.h>
    711#include <windows.h>
     12#include <process.h>
    813#include <commctrl.h>
    914
     
    1520HWND button_about;
    1621HWND status;
     22HFONT monospace;
    1723BOOL tewi_alive;
    1824BOOL was_starting;
    1925BOOL exiting;
     26BOOL idle;
     27extern FILE* logfile;
     28extern int running;
    2029
    2130#define WINWIDTH(rc) (rc.right - rc.left)
    2231#define WINHEIGHT(rc) (rc.bottom - rc.top)
    2332
    24 #define DIALOG_X(n) (HIWORD(GetDialogBaseUnits()) * n)
    25 #define DIALOG_Y(n) (LOWORD(GetDialogBaseUnits()) * n)
     33int startup(int argc, char** argv);
    2634
    2735void ShowBitmapSize(HWND hWnd, HDC hdc, const char* name, int x, int y, int w, int h){
     
    4553}
    4654
     55int max = 0;
     56void AddLog(const char* str){
     57        HDC hdc;
     58        PAINTSTRUCT ps;
     59        SIZE sz;
     60
     61        SendMessage(logarea, LB_ADDSTRING, 0, (LPARAM)str);
     62
     63        hdc = CreateCompatibleDC(NULL);
     64        SelectObject(hdc, monospace);
     65        GetTextExtentPoint32(hdc, str, strlen(str), &sz);
     66        DeleteDC(hdc);
     67       
     68        if(max < sz.cx){
     69                max = sz.cx;
     70                SendMessage(logarea, LB_SETHORIZONTALEXTENT, max, 0);
     71        }
     72}
     73
    4774LRESULT CALLBACK VersionDialog(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp){
    4875        if(msg == WM_COMMAND){
     
    6390                HDC dc = (HDC)wp;
    6491                SetBkMode(dc, TRANSPARENT);
    65                 return GetSysColorBrush(COLOR_MENU);
     92                return (LRESULT)GetSysColorBrush(COLOR_MENU);
    6693        }else{
    6794                return FALSE;
     
    7097}
    7198
     99void tewi_thread(void* ptr){
     100        int st = startup(0, NULL);
     101        was_starting = TRUE;
     102        if(st == -1){
     103                tewi_alive = TRUE;
     104                idle = FALSE;
     105        }else{
     106                cm_force_log("Config error");
     107                idle = FALSE;
     108                _endthread();
     109        }
     110        running = 1;
     111        tw_server_loop();
     112        tewi_alive = FALSE;
     113        was_starting = TRUE;
     114        idle = FALSE;
     115        _endthread();
     116}
     117
    72118void StartTewi(void){
    73         was_starting = TRUE;
     119        EnableWindow(button_start, FALSE);
     120        EnableWindow(button_stop, FALSE);
     121        _beginthread(tewi_thread, 0, NULL);
    74122}
    75123
    76124void StopTewi(void){
    77         was_starting = TRUE;
     125        EnableWindow(button_start, FALSE);
     126        EnableWindow(button_stop, FALSE);
     127        running = 0;
    78128}
    79129
     
    119169                InitCommonControls();
    120170
     171                monospace = (HFONT)GetStockObject(SYSTEM_FIXED_FONT);
     172
    121173                status = CreateStatusWindow(WS_CHILD | WS_VISIBLE | CCS_BOTTOM, NULL, hWnd, GUI_STATUS);
    122174                SendMessage(status, SB_SIMPLE, 0, 0);
     
    129181                button_about = CreateWindow("BUTTON", "&About", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, WINWIDTH(rc) - 100, 20 * 2, 100, 20, hWnd, (HMENU)GUI_BUTTON_ABOUT, hInst, NULL);
    130182                button_about = CreateWindow("BUTTON", "E&xit", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, WINWIDTH(rc) - 100, WINHEIGHT(rc) - WINHEIGHT(src) - 20, 100, 20, hWnd, (HMENU)GUI_BUTTON_EXIT, hInst, NULL);
    131                 logarea = CreateWindow("LISTBOX", NULL, WS_CHILD | WS_VISIBLE | WS_VSCROLL, 0, 40, WINWIDTH(rc) - 100, WINHEIGHT(rc) - 40 - WINHEIGHT(src), hWnd, (HMENU)GUI_LOG, hInst, NULL);
     183                logarea = CreateWindow("LISTBOX", NULL, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | LBS_NOINTEGRALHEIGHT | LBS_NOSEL, 0, 40, WINWIDTH(rc) - 100, WINHEIGHT(rc) - 40 - WINHEIGHT(src), hWnd, (HMENU)GUI_LOG, hInst, NULL);
     184
     185                SendMessage(logarea, WM_SETFONT, (WPARAM)monospace, TRUE);
     186
    132187                SetTimer(hWnd, TIMER_WATCH_TEWI, 100, NULL);
    133188        }else if(msg == WM_TIMER){
    134189                if(wp == TIMER_WATCH_TEWI){
    135                         if(tewi_alive){
     190                        if(idle){
     191                        }else if(tewi_alive){
    136192                                if(was_starting){
    137193                                        was_starting = FALSE;
     
    140196                                EnableWindow(button_start, FALSE);
    141197                                EnableWindow(button_stop, TRUE);
     198                                idle = TRUE;
    142199                        }else{
    143200                                if(was_starting){
     
    151208                                        SendMessage(hWnd, WM_CLOSE, 0, 0);
    152209                                }
     210                                idle = TRUE;
    153211                        }
    154212                }
     
    172230
    173231BOOL InitApp(void){
    174         WNDCLASS wc;
     232        WNDCLASSEX wc;
     233        wc.cbSize = sizeof(WNDCLASSEX);
    175234        wc.style = CS_HREDRAW | CS_VREDRAW;
    176235        wc.lpfnWndProc = WndProc;
     
    183242        wc.lpszMenuName = NULL;
    184243        wc.lpszClassName = "tewihttpd";
    185         return RegisterClass(&wc);
     244        wc.hIconSm = LoadIcon(hInst, "TEWI");
     245        return RegisterClassEx(&wc);
    186246}
    187247
     
    191251        HWND hDeskWnd = GetDesktopWindow();
    192252        GetWindowRect(hDeskWnd, &deskrc);
    193         hWnd = CreateWindow("tewihttpd", "Tewi HTTPd", (WS_OVERLAPPEDWINDOW ^ WS_THICKFRAME) ^ WS_MAXIMIZEBOX, 0, 0, 600, 200, NULL, 0, hInst, NULL);
     253        hWnd = CreateWindow("tewihttpd", "Tewi HTTPd", (WS_OVERLAPPEDWINDOW ^ WS_THICKFRAME) ^ WS_MAXIMIZEBOX, 0, 0, 600, 400, NULL, 0, hInst, NULL);
    194254
    195255        if(!hWnd){
     
    210270        was_starting = FALSE;
    211271        exiting = FALSE;
     272        idle = TRUE;
     273        logfile = stderr;
    212274        if(!InitApp()){
    213275                return FALSE;
  • trunk/Server/main.c

    r249 r253  
    527527#endif
    528528
    529 #if !defined(BUILD_GUI) || !(defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__))
     529#if !defined(BUILD_GUI_VALID)
    530530int main(int argc, char** argv) {
    531531        int st;
     
    797797        signal(SIGCHLD, SIG_IGN);
    798798        signal(SIGPIPE, SIG_IGN);
    799 #else
     799#elif !defined(BUILD_GUI)
    800800        SetConsoleTitle(tw_server);
    801801#endif
  • trunk/Server/server.c

    r240 r253  
    10501050                }
    10511051        }
    1052 }
     1052        for(i = 0; i < sockcount; i++){
     1053                close_socket(sockets[i]);
     1054        }
     1055        cm_force_log("Server is down");
     1056}
  • trunk/config.h.tmpl

    r244 r253  
    1818#ifdef NO_SSL
    1919#define SSL void
     20#endif
     21
     22#if (defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)) && defined(USE_POLL)
     23#define BUILD_GUI_VALID
    2024#endif
    2125
  • trunk/make-installer.sh

    r222 r253  
    2424../Tool/genconf "C:/Tewi" modules dll > ../generated.conf
    2525../Tool/itworks > ../itworks.html
    26 makensis /inputcharset utf8 -DVERSION=$VERSION -DONLY_EXEC install.nsi
     26makensis -DVERSION=$VERSION -DONLY_EXEC install.nsi
    2727cp install.exe ../install.exe
    2828cd ..
Note: See TracChangeset for help on using the changeset viewer.