Changeset abe53d3 for win32.c


Ignore:
Timestamp:
2005-11-07T16:42:49Z (19 years ago)
Author:
Jelmer Vernooij <jelmer@…>
Branches:
master
Children:
f56c491
Parents:
99318ad
Message:

More work on config manager

File:
1 edited

Legend:

Unmodified
Added
Removed
  • win32.c

    r99318ad rabe53d3  
    5252}
    5353
    54 void service_main (DWORD argc, LPTSTR *argv)
     54static void bitlbee_init(int argc, char **argv)
    5555{
    5656        int i = -1;
    57         SERVICE_STATUS_HANDLE handle;
    58         SERVICE_STATUS status;
    59 
    60     handle = RegisterServiceCtrlHandler("bitlbee", service_ctrl);
    61 
    62     if (!handle)
    63                 return;
    64 
    65     status.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
    66     status.dwServiceSpecificExitCode = 0;
    67 
    6857        memset( &global, 0, sizeof( global_t ) );
    6958       
     
    9988        if( help_init( &(global.help) ) == NULL )
    10089                log_message( LOGLVL_WARNING, "Error opening helpfile %s.", global.helpfile );
     90}
     91
     92void service_main (DWORD argc, LPTSTR *argv)
     93{
     94        SERVICE_STATUS_HANDLE handle;
     95        SERVICE_STATUS status;
     96
     97    handle = RegisterServiceCtrlHandler("bitlbee", service_ctrl);
     98
     99    if (!handle)
     100                return;
     101
     102    status.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
     103    status.dwServiceSpecificExitCode = 0;
     104
     105        bitlbee_init(argc, argv);
    101106
    102107        SetServiceStatus(handle, &status);
     
    105110}
    106111
    107 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    108 {
    109     SERVICE_TABLE_ENTRY dispatch_table[] =
    110     {
    111         { TEXT("bitlbee"), (LPSERVICE_MAIN_FUNCTION)service_main },
    112         { NULL, NULL }
    113     };
     112SERVICE_TABLE_ENTRY dispatch_table[] =
     113{
     114   { TEXT("bitlbee"), (LPSERVICE_MAIN_FUNCTION)service_main },
     115   { NULL, NULL }
     116};
     117
     118static int debug = 0;
     119
     120static void usage()
     121{
     122        printf("Options:\n");
     123        printf("-h   Show this help message\n");
     124        printf("-d   Debug mode (simple console program)\n");
     125}
     126
     127int main( int argc, char **argv)
     128{   
     129        int i;
     130        WSADATA WSAData;
    114131
    115132        nogaim_init( );
    116133
    117     if (!StartServiceCtrlDispatcher(dispatch_table))
    118                 log_message( LOGLVL_ERROR, "StartServiceCtrlDispatcher failed.");
     134        for (i = 1; i < argc; i++) {
     135                if (!strcmp(argv[i], "-d")) debug = 1;
     136                if (!strcmp(argv[i], "-h")) {
     137                        usage();
     138                        return 0;
     139                }
     140        }
     141
     142    WSAStartup(MAKEWORD(1,1), &WSAData);
     143
     144        if (!debug) {
     145                if (!StartServiceCtrlDispatcher(dispatch_table))
     146                        log_message( LOGLVL_ERROR, "StartServiceCtrlDispatcher failed.");
     147        } else {
     148                        bitlbee_init(argc, argv);
     149                        g_main_run( global.loop );
     150        }
    119151       
    120152        return 0;
     
    165197        memset( &global, 0, sizeof( global_t ) );
    166198        global.loop = g_main_new(FALSE);
    167         nogaim_init();
    168199
    169200        conf = g_new0( conf_t,1 );
     
    178209        conf_get_string(key_main, "motdfile", NULL, &global.conf->motdfile);
    179210        conf_get_string(key_main, "helpfile", NULL, &global.helpfile);
    180         global.conf->runmode = RUNMODE_INETD;
    181         conf_get_int(key_main, "AuthMode", AUTHMODE_CLOSED, &global.conf->authmode);
     211        global.conf->runmode = RUNMODE_DAEMON;
     212        conf_get_int(key_main, "AuthMode", AUTHMODE_OPEN, &global.conf->authmode);
    182213        conf_get_string(key_proxy, "host", "", &tmp); strcpy(proxyhost, tmp);
    183214        conf_get_string(key_proxy, "user", "", &tmp); strcpy(proxyuser, tmp);
     
    244275
    245276    va_start(ap, message);
     277
     278        if (debug) {
     279                vprintf(message, ap);
     280                putchar('\n');
     281                va_end(ap);
     282                return;
     283        }
    246284
    247285    hEventSource = RegisterEventSource(NULL, TEXT("bitlbee"));
Note: See TracChangeset for help on using the changeset viewer.