if( cl->fd > 0 )
{
SOCKET_CLOSE( cl->fd );
+ cl->fd = -1;
}
httpd_MsgClean( &cl->answer );
if( cl->p_buffer )
{
free( cl->p_buffer );
+ cl->p_buffer = NULL;
}
}
!cl->b_read_waiting )
{
/* catch more body data */
- int i_msg = cl->query.i_type;
+ int i_msg = cl->query.i_type;
+ int64_t i_offset = cl->answer.i_body_offset;
+
+ httpd_MsgClean( &cl->answer );
+ cl->answer.i_body_offset = i_offset;
+
cl->url->catch[i_msg].cb( cl->url->catch[i_msg].p_sys, cl,
&cl->answer, &cl->query );
}
httpd_MsgClean( &cl->answer );
cl->answer.i_body_offset = i_offset;
+ free( cl->p_buffer );
+ cl->p_buffer = NULL;
+ cl->i_buffer = 0;
+ cl->i_buffer_size = 0;
+
cl->i_state = HTTPD_CLIENT_WAITING;
}
}