- printf("connection to client (ch %d) fucked up!\n",*gi);
- event_math(gnet->connection[*gi].fd,gevent,READ,REMOVE);
- network_close(gnet,*gi);
- list_del_current(gc_list);
+ t_job *j;
+
+ printf("connection to client (ch %d) fucked up!\n",gi);
+ event_math(priv.net.connection[gi].fd,&(priv.event),READ,REMOVE);
+ network_close(&(priv.net),gi);
+ if(list_search_data(&(priv.client),&gi,sizeof(int))==L_SUCCESS) {
+ list_del_current(&(priv.client));
+ printf("removed client from list\n");
+ }
+ if(list_search_data(&(priv.job),&gi,sizeof(int))==L_SUCCESS) {
+ printf("associated job found. resetting & queueing job.\n");
+ j=(t_job *)priv.job.current->data;
+ j->channel=-1;
+ j->status=IN_QUEUE;
+ j->progress=0;
+ j->step=0;
+ }
+ if(list_search_data(&(priv.gui),&gi,sizeof(int))==L_SUCCESS) {
+ list_del_current(&(priv.gui));
+ printf("removed gui from list\n");
+ }