@@ -43,7 +43,7 @@ struct sp_data {
4343#define DISCOVERY_SOCKET 42367
4444#define API_HEADER_SIZE sizeof(struct sockaddr_ipx)
4545
46- #define CALL (n ) if(log_calls) { log_printf("DirectPlay: %s", n); }
46+ #define CALL (func ) log_printf(LOG_CALL, "directplay.c: " func);
4747
4848/* Lock the object mutex and return the data pointer */
4949static struct sp_data * get_sp_data (IDirectPlaySP * sp ) {
@@ -52,7 +52,7 @@ static struct sp_data *get_sp_data(IDirectPlaySP *sp) {
5252
5353 HRESULT r = IDirectPlaySP_GetSPData (sp , (void * * )& data , & size , DPGET_LOCAL );
5454 if (r != DP_OK ) {
55- log_printf ("GetSPData: %d" , (int )r );
55+ log_printf (LOG_ERROR , "GetSPData: %d" , (int )r );
5656 abort ();
5757 }
5858
@@ -76,13 +76,13 @@ static BOOL recv_packet(int sockfd, char *buf, IDirectPlaySP *sp) {
7676 return TRUE;
7777 }
7878
79- log_printf ("Read error (IPX): %s" , w32_error (WSAGetLastError ()));
79+ log_printf (LOG_ERROR , "Read error (IPX): %s" , w32_error (WSAGetLastError ()));
8080 return FALSE;
8181 }
8282
8383 HRESULT h = IDirectPlaySP_HandleMessage (sp , buf , r , & addr );
8484 if (h != DP_OK ) {
85- log_printf ("HandleMessage error: %d" , (int )h );
85+ log_printf (LOG_ERROR , "HandleMessage error: %d" , (int )h );
8686 }
8787
8888 return TRUE;
@@ -116,7 +116,7 @@ static DWORD WINAPI worker_main(LPVOID sp) {
116116 }
117117
118118 if (sp_data -> ns_sock != -1 && !recv_packet (sp_data -> ns_sock , buf , sp )) {
119- log_printf ("Closing ns_sock due to error" );
119+ log_printf (LOG_ERROR , "Closing ns_sock due to error" );
120120
121121 get_sp_data ((IDirectPlaySP * )sp );
122122
@@ -140,7 +140,7 @@ static BOOL init_worker(IDirectPlaySP *sp) {
140140
141141 sp_data -> worker_thread = CreateThread (NULL , 0 , & worker_main , sp , 0 , NULL );
142142 if (!sp_data -> worker_thread ) {
143- log_printf ("Failed to create worker thread" );
143+ log_printf (LOG_ERROR , "Failed to create worker thread" );
144144
145145 release_sp_data (sp_data );
146146 return FALSE;
@@ -167,7 +167,7 @@ static HRESULT WINAPI IPX_EnumSessions(LPDPSP_ENUMSESSIONSDATA data) {
167167 addr .sa_socket = htons (DISCOVERY_SOCKET );
168168
169169 if (sendto (sp_data -> sock , data -> lpMessage + API_HEADER_SIZE , data -> dwMessageSize - API_HEADER_SIZE , 0 , (struct sockaddr * )& addr , sizeof (addr )) == -1 ) {
170- log_printf ("sendto failed: %s" , w32_error (WSAGetLastError ()));
170+ log_printf (LOG_ERROR , "sendto failed: %s" , w32_error (WSAGetLastError ()));
171171
172172 release_sp_data (sp_data );
173173 return DPERR_GENERIC ;
@@ -184,7 +184,7 @@ static BOOL send_get_addr(struct sockaddr_ipx *addr, IDirectPlaySP *sp, DPID pla
184184
185185 HRESULT r = IDirectPlaySP_GetSPPlayerData (sp , player_id , (void * * )& addr_p , & size , DPGET_LOCAL );
186186 if (r != DP_OK ) {
187- log_printf ("GetSPPlayerData: %d" , (int )r );
187+ log_printf (LOG_ERROR , "GetSPPlayerData: %d" , (int )r );
188188 return FALSE;
189189 }
190190
@@ -209,7 +209,7 @@ static BOOL send_get_addr(struct sockaddr_ipx *addr, IDirectPlaySP *sp, DPID pla
209209
210210 NO_ADDR :
211211
212- log_printf ("No known address for player ID %u, dropping packet" , (unsigned int )player_id );
212+ log_printf (LOG_WARNING , "No known address for player ID %u, dropping packet" , (unsigned int )player_id );
213213 return FALSE;
214214}
215215
@@ -225,7 +225,7 @@ static HRESULT WINAPI IPX_Send(LPDPSP_SENDDATA data) {
225225 struct sp_data * sp_data = get_sp_data (data -> lpISP );
226226
227227 if (sendto (sp_data -> sock , data -> lpMessage + API_HEADER_SIZE , data -> dwMessageSize - API_HEADER_SIZE , 0 , (struct sockaddr * )& addr , sizeof (addr )) == -1 ) {
228- log_printf ("sendto failed: %s" , w32_error (WSAGetLastError ()));
228+ log_printf (LOG_ERROR , "sendto failed: %s" , w32_error (WSAGetLastError ()));
229229
230230 release_sp_data (sp_data );
231231 return DPERR_GENERIC ;
@@ -245,6 +245,7 @@ static HRESULT WINAPI IPX_SendEx(LPDPSP_SENDEXDATA data) {
245245
246246 if (data -> dwPriority || data -> dwTimeout ) {
247247 log_printf (
248+ LOG_ERROR ,
248249 "SendEx called with dwPriority = %u, dwTimeout = %u" ,
249250 (unsigned int )(data -> dwPriority ),
250251 (unsigned int )(data -> dwTimeout )
@@ -262,7 +263,7 @@ static HRESULT WINAPI IPX_SendEx(LPDPSP_SENDEXDATA data) {
262263
263264 for (i = 0 ; i < data -> cBuffers ; i ++ ) {
264265 if (off + data -> lpSendBuffers [i ].len > data -> dwMessageSize ) {
265- log_printf ("dwMessageSize too small, aborting" );
266+ log_printf (LOG_ERROR , "dwMessageSize too small, aborting" );
266267 return DPERR_GENERIC ;
267268 }
268269
@@ -279,7 +280,7 @@ static HRESULT WINAPI IPX_SendEx(LPDPSP_SENDEXDATA data) {
279280 struct sp_data * sp_data = get_sp_data (data -> lpISP );
280281
281282 if (sendto (sp_data -> sock , buf , off , 0 , (struct sockaddr * )& addr , sizeof (addr )) == -1 ) {
282- log_printf ("sendto failed: %s" , w32_error (WSAGetLastError ()));
283+ log_printf (LOG_ERROR , "sendto failed: %s" , w32_error (WSAGetLastError ()));
283284
284285 release_sp_data (sp_data );
285286 return DPERR_GENERIC ;
@@ -302,7 +303,7 @@ static HRESULT WINAPI IPX_Reply(LPDPSP_REPLYDATA data) {
302303
303304 HRESULT r = IDirectPlaySP_GetSPPlayerData (data -> lpISP , data -> idNameServer , (void * * )& addr_p , & size , DPGET_LOCAL );
304305 if (r != DP_OK ) {
305- log_printf ("GetSPPlayerData: %d" , (int )r );
306+ log_printf (LOG_ERROR , "GetSPPlayerData: %d" , (int )r );
306307 }else if (addr_p ) {
307308 memcpy (& (sp_data -> ns_addr ), addr_p , sizeof (struct sockaddr_ipx ));
308309 sp_data -> ns_id = data -> idNameServer ;
@@ -312,7 +313,7 @@ static HRESULT WINAPI IPX_Reply(LPDPSP_REPLYDATA data) {
312313 /* Do the actual sending */
313314
314315 if (sendto (sp_data -> sock , data -> lpMessage + API_HEADER_SIZE , data -> dwMessageSize - API_HEADER_SIZE , 0 , (struct sockaddr * )data -> lpSPMessageHeader , sizeof (struct sockaddr_ipx )) == -1 ) {
315- log_printf ("sendto failed: %s" , w32_error (WSAGetLastError ()));
316+ log_printf (LOG_ERROR , "sendto failed: %s" , w32_error (WSAGetLastError ()));
316317
317318 release_sp_data (sp_data );
318319 return DPERR_GENERIC ;
@@ -328,7 +329,7 @@ static HRESULT WINAPI IPX_CreatePlayer(LPDPSP_CREATEPLAYERDATA data) {
328329 if (data -> lpSPMessageHeader ) {
329330 HRESULT r = IDirectPlaySP_SetSPPlayerData (data -> lpISP , data -> idPlayer , data -> lpSPMessageHeader , sizeof (struct sockaddr_ipx ), DPSET_LOCAL );
330331 if (r != DP_OK ) {
331- log_printf ("SetSPPlayerData: %d" , (int )r );
332+ log_printf (LOG_ERROR , "SetSPPlayerData: %d" , (int )r );
332333 return DPERR_GENERIC ;
333334 }
334335 }
@@ -378,7 +379,7 @@ static HRESULT WINAPI IPX_Open(LPDPSP_OPENDATA data) {
378379 if ((sp_data -> ns_sock = socket (AF_IPX , SOCK_DGRAM , NSPROTO_IPX )) == -1 ) {
379380 release_sp_data (sp_data );
380381
381- log_printf ("Cannot create ns_sock: %s" , w32_error (WSAGetLastError ()));
382+ log_printf (LOG_ERROR , "Cannot create ns_sock: %s" , w32_error (WSAGetLastError ()));
382383 return DPERR_CANNOTCREATESERVER ;
383384 }
384385
@@ -397,7 +398,7 @@ static HRESULT WINAPI IPX_Open(LPDPSP_OPENDATA data) {
397398
398399 release_sp_data (sp_data );
399400
400- log_printf ("Cannot bind ns_sock: %s" , w32_error (WSAGetLastError ()));
401+ log_printf (LOG_ERROR , "Cannot bind ns_sock: %s" , w32_error (WSAGetLastError ()));
401402 return DPERR_CANNOTCREATESERVER ;
402403 }
403404
@@ -407,7 +408,7 @@ static HRESULT WINAPI IPX_Open(LPDPSP_OPENDATA data) {
407408
408409 release_sp_data (sp_data );
409410
410- log_printf ("WSAEventSelect failed: %s" , w32_error (WSAGetLastError ()));
411+ log_printf (LOG_ERROR , "WSAEventSelect failed: %s" , w32_error (WSAGetLastError ()));
411412 return DPERR_CANNOTCREATESERVER ;
412413 }
413414 }
@@ -446,7 +447,7 @@ static HRESULT WINAPI IPX_ShutdownEx(LPDPSP_SHUTDOWNDATA data) {
446447
447448 if (sp_data -> worker_thread ) {
448449 if (WaitForSingleObject (sp_data -> worker_thread , 3000 ) == WAIT_TIMEOUT ) {
449- log_printf ("DirectPlay worker didn't exit in 3 seconds, killing" );
450+ log_printf (LOG_WARNING , "DirectPlay worker didn't exit in 3 seconds, killing" );
450451 TerminateThread (sp_data -> worker_thread , 0 );
451452 }
452453
@@ -472,20 +473,20 @@ HRESULT WINAPI SPInit(LPSPINITDATA data) {
472473 return r_SPInit (data );
473474 }
474475
475- log_printf ("SPInit: %p (lpAddress = %p, dwAddressSize = %u)" , data -> lpISP , data -> lpAddress , (unsigned int )(data -> dwAddressSize ));
476+ log_printf (LOG_DEBUG , "SPInit: %p (lpAddress = %p, dwAddressSize = %u)" , data -> lpISP , data -> lpAddress , (unsigned int )(data -> dwAddressSize ));
476477
477478 {
478479 struct sp_data * sp_data ;
479480 DWORD size ;
480481
481482 HRESULT r = IDirectPlaySP_GetSPData (data -> lpISP , (void * * )& sp_data , & size , DPGET_LOCAL );
482483 if (r != DP_OK ) {
483- log_printf ("SPInit: GetSPData: %d" , r );
484+ log_printf (LOG_ERROR , "SPInit: GetSPData: %d" , r );
484485 return DPERR_UNAVAILABLE ;
485486 }
486487
487488 if (sp_data ) {
488- log_printf ("SPInit: Already initialised, returning DP_OK" );
489+ log_printf (LOG_DEBUG , "SPInit: Already initialised, returning DP_OK" );
489490 return DP_OK ;
490491 }
491492 }
@@ -496,17 +497,17 @@ HRESULT WINAPI SPInit(LPSPINITDATA data) {
496497 }
497498
498499 if (!InitializeCriticalSectionAndSpinCount (& (sp_data -> lock ), 0x80000000 )) {
499- log_printf ("Error initialising critical section: %s" , w32_error (GetLastError ()));
500+ log_printf (LOG_ERROR , "Error initialising critical section: %s" , w32_error (GetLastError ()));
500501 goto FAIL2 ;
501502 }
502503
503504 if ((sp_data -> event = WSACreateEvent ()) == WSA_INVALID_EVENT ) {
504- log_printf ("Error creating WSA event object: %s" , w32_error (WSAGetLastError ()));
505+ log_printf (LOG_ERROR , "Error creating WSA event object: %s" , w32_error (WSAGetLastError ()));
505506 goto FAIL3 ;
506507 }
507508
508509 if ((sp_data -> sock = socket (AF_IPX , SOCK_DGRAM , NSPROTO_IPX )) == -1 ) {
509- log_printf ("Error creating IPX socket: %s" , w32_error (WSAGetLastError ()));
510+ log_printf (LOG_ERROR , "Error creating IPX socket: %s" , w32_error (WSAGetLastError ()));
510511 goto FAIL4 ;
511512 }
512513
@@ -515,14 +516,14 @@ HRESULT WINAPI SPInit(LPSPINITDATA data) {
515516 addr .sa_family = AF_IPX ;
516517
517518 if (bind (sp_data -> sock , (struct sockaddr * )& addr , sizeof (addr )) == -1 ) {
518- log_printf ("Error binding IPX socket: %s" , w32_error (WSAGetLastError ()));
519+ log_printf (LOG_ERROR , "Error binding IPX socket: %s" , w32_error (WSAGetLastError ()));
519520 goto FAIL5 ;
520521 }
521522
522523 int addrlen = sizeof (sp_data -> addr );
523524
524525 if (getsockname (sp_data -> sock , (struct sockaddr * )& (sp_data -> addr ), & addrlen ) == -1 ) {
525- log_printf ("getsockname failed: %s" , w32_error (WSAGetLastError ()));
526+ log_printf (LOG_ERROR , "getsockname failed: %s" , w32_error (WSAGetLastError ()));
526527 goto FAIL5 ;
527528 }
528529
@@ -535,13 +536,13 @@ HRESULT WINAPI SPInit(LPSPINITDATA data) {
535536 setsockopt (sp_data -> sock , SOL_SOCKET , SO_BROADCAST , (char * )& bcast , sizeof (BOOL ));
536537
537538 if (WSAEventSelect (sp_data -> sock , sp_data -> event , FD_READ ) == -1 ) {
538- log_printf ("WSAEventSelect failed: %s" , w32_error (WSAGetLastError ()));
539+ log_printf (LOG_ERROR , "WSAEventSelect failed: %s" , w32_error (WSAGetLastError ()));
539540 goto FAIL5 ;
540541 }
541542
542543 HRESULT r = IDirectPlaySP_SetSPData (data -> lpISP , sp_data , sizeof (* sp_data ), DPSET_LOCAL );
543544 if (r != DP_OK ) {
544- log_printf ("SetSPData: %d" , (int )r );
545+ log_printf (LOG_ERROR , "SetSPData: %d" , (int )r );
545546 goto FAIL5 ;
546547 }
547548
@@ -582,7 +583,7 @@ BOOL WINAPI DllMain(HINSTANCE me, DWORD why, LPVOID res) {
582583
583584 reg_open (KEY_QUERY_VALUE );
584585
585- log_calls = reg_get_char ( "log_calls " , 0 );
586+ min_log_level = reg_get_dword ( "min_log_level " , LOG_INFO );
586587
587588 reg_close ();
588589 }else if (why == DLL_PROCESS_DETACH ) {
0 commit comments