Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • cellframe/cellframe-sdk
  • MIKA83/cellframe-sdk
2 results
Show changes
Commits on Source (1)
......@@ -2,7 +2,7 @@ project(cellframe-sdk C)
cmake_minimum_required(VERSION 2.8)
set(CMAKE_C_STANDARD 11)
set(CELLFRAME_SDK_NATIVE_VERSION "2.5-12")
set(CELLFRAME_SDK_NATIVE_VERSION "2.5-13")
add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"")
set(DAPSDK_MODULES "")
......
......@@ -276,8 +276,8 @@ void *dap_worker_thread(void *arg)
l_cur->buf_out_zero_count++;
if(l_cur->buf_out_zero_count > buf_out_zero_count_max) { // How many time buf_out on write event could be empty
log_it(L_WARNING, "Output: nothing to send %u times, remove socket from the write set",
buf_out_zero_count_max);
//log_it(L_WARNING, "Output: nothing to send %u times, remove socket from the write set",
// buf_out_zero_count_max);
dap_events_socket_set_writable_unsafe(l_cur, false);
}
}
......@@ -310,14 +310,17 @@ void *dap_worker_thread(void *arg)
l_cur->flags |= DAP_SOCK_SIGNAL_CLOSE;
}
}else{
//log_it(L_DEBUG, "Output: %u from %u bytes are sent ", l_bytes_sent,l_cur->buf_out_size);
if (l_bytes_sent) {
l_cur->buf_out_size -= l_bytes_sent;
if (l_cur->buf_out_size) {
memmove(l_cur->buf_out, &l_cur->buf_out[l_bytes_sent], l_cur->buf_out_size);
} else {
if (!l_cur->is_dont_reset_write_flag)
dap_events_socket_set_writable_unsafe(l_cur, false);
if ( l_bytes_sent <= l_cur->buf_out_size ){
l_cur->buf_out_size -= l_bytes_sent;
if (l_cur->buf_out_size ) {
memmove(l_cur->buf_out, &l_cur->buf_out[l_bytes_sent], l_cur->buf_out_size);
}
}else{
log_it(L_ERROR, "Wrong bytes sent, %zd more then was in buffer %zd",l_bytes_sent, l_cur->buf_out_size);
l_cur->buf_out_size = 0;
}
}
}
......@@ -325,16 +328,22 @@ void *dap_worker_thread(void *arg)
if (l_cur->buf_out_size) {
dap_events_socket_set_writable_unsafe(l_cur,true);
}
if((l_cur->flags & DAP_SOCK_SIGNAL_CLOSE) && !l_cur->no_close) {
if((l_cur->flags & DAP_SOCK_SIGNAL_CLOSE) && !l_cur->no_close && l_cur->buf_out_size == 0) {
// protect against double deletion
l_cur->kill_signal = true;
//dap_events_socket_remove_and_delete(cur, true);
log_it(L_INFO, "Got signal to close %s, sock %u [thread %u]", l_cur->hostaddr, l_cur->socket, l_tn);
} else if (l_cur->buf_out_size ){
log_it(L_INFO, "Got signal to close %s, sock %u [thread %u] but buffer is not empty(%zd)", l_cur->hostaddr, l_cur->socket, l_tn,
l_cur->buf_out_size);
}
if(l_cur->kill_signal) {
if(l_cur->kill_signal && l_cur->buf_out_size == 0) {
log_it(L_INFO, "Kill %u socket (processed).... [ thread %u ]", l_cur->socket, l_tn);
dap_events_socket_remove_and_delete_unsafe( l_cur, false);
}else if (l_cur->buf_out_size ){
log_it(L_INFO, "Kill %u socket (processed).... [ thread %u ] but buffer is not empty(%zd)", l_cur->socket, l_tn,
l_cur->buf_out_size);
}
}
......
......@@ -508,7 +508,7 @@ void dap_http_client_write( dap_events_socket_t * cl, void *arg )
dap_http_header_t *hdr = l_http_client->out_headers;
if ( hdr == NULL ) {
log_it(L_DEBUG, "Output: headers are over (reply status code %u content_lentgh %u)",
l_http_client->reply_status_code);
l_http_client->reply_status_code, l_http_client->out_content_length);
dap_events_socket_write_f_unsafe(cl, "\r\n");
dap_events_socket_set_writable_unsafe(cl, true);
if ( l_http_client->out_content_length || l_http_client->out_content_ready ) {
......
......@@ -196,8 +196,8 @@ static bool s_tun_client_send_data_unsafe(dap_chain_net_srv_ch_vpn_t * l_ch_vpn,
size_t l_data_to_send = (l_pkt_out->header.op_data.data_size + sizeof(l_pkt_out->header));
size_t l_data_sent = dap_stream_ch_pkt_write_unsafe(l_ch_vpn->ch, DAP_STREAM_CH_PKT_TYPE_NET_SRV_VPN_DATA, l_pkt_out, l_data_to_send);
s_update_limits(l_ch_vpn->ch,l_srv_session,l_usage, l_data_sent );
if ( l_data_sent != l_data_to_send){
log_it(L_WARNING, "Wasn't sent all the data in tunnel: probably buffer overflow");
if ( l_data_sent < l_data_to_send){
log_it(L_WARNING, "Wasn't sent all the data in tunnel (%zd was sent from %zd): probably buffer overflow", l_data_sent, l_data_to_send);
l_srv_session->stats.bytes_recv_lost += l_data_to_send - l_data_sent;
l_srv_session->stats.packets_recv_lost++;
return false;
......@@ -226,14 +226,17 @@ static bool s_tun_client_send_data(dap_chain_net_srv_ch_vpn_info_t * l_ch_vpn_in
if(s_debug_more){
char l_str_daddr[INET_ADDRSTRLEN];
inet_ntop(AF_INET,&l_in_daddr,l_str_daddr,sizeof (l_in_daddr));
log_it(L_INFO, "Sent packet for desitnation %s in own context",l_str_daddr);
log_it(L_DEBUG, "Sent packet size %zd for desitnation in own context", a_data_size);
}
s_tun_client_send_data_unsafe(l_ch_vpn_info->ch_vpn,l_pkt_out);
DAP_DELETE(l_pkt_out);
}else{
log_it(L_WARNING, "Was no esocket %p on worker #%u, lost %zd data",l_ch_vpn_info->esocket, l_ch_vpn_info->worker->id,a_data_size );
DAP_DELETE(l_pkt_out);
return false;
}
DAP_DELETE(l_pkt_out);
}else{
struct tun_socket_msg * l_msg= DAP_NEW_Z(struct tun_socket_msg);
l_msg->type = TUN_SOCKET_MSG_CH_VPN_SEND;
......@@ -249,7 +252,7 @@ static bool s_tun_client_send_data(dap_chain_net_srv_ch_vpn_info_t * l_ch_vpn_in
if(s_debug_more){
char l_str_daddr[INET_ADDRSTRLEN];
inet_ntop(AF_INET,&l_in_daddr,l_str_daddr,sizeof (l_in_daddr));
log_it(L_INFO, "Sent packet for desitnation %s between contexts",l_str_daddr);
log_it(L_INFO, "Sent packet for desitnation %zd between contexts",a_data_size);
}
}
......