aboutsummaryrefslogtreecommitdiffstats
path: root/ftp/wzdftpd/files/patch-wzdftpd_wzd__ServerThread.c
blob: 006eef86654c9d8828ba2c6c5791e0050af2b99a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
--- wzdftpd/wzd_ServerThread.c.orig	2023-02-11 11:33:03 UTC
+++ wzdftpd/wzd_ServerThread.c
@@ -934,7 +934,7 @@ static void server_login_accept(wzd_context_t * contex
     out_err(LEVEL_CRITICAL,"Unable to create thread\n");
     return;
   }
-  context->pid_child = (unsigned long)WZD_THREAD_VOID(&thread);
+  context->pid_child = (pthread_t)WZD_THREAD_VOID(&thread);
   wzd_thread_attr_destroy(&thread_attr); /* not needed anymore */
 }
 
@@ -1624,10 +1624,12 @@ void serverMainThreadCleanup(int retcode)
   {
     ListElmt * elmnt;
     wzd_context_t * loop_context;
+    wzd_thread_t child;
     for (elmnt=list_head(context_list); elmnt!=NULL; elmnt=list_next(elmnt))
     {
       if ((loop_context = list_data(elmnt))) {
-        wzd_thread_cancel(loop_context->pid_child);
+        child._t = loop_context->pid_child;
+        wzd_thread_cancel(&child);
 #ifdef WIN32
         /** \todo remove this when wzd_thread_cancel is implemented on windows */
         loop_context->exitclient = 1;