Skip to content

Commit

Permalink
Feature/delete trudp v1 (#132)
Browse files Browse the repository at this point in the history
ev_mgr.c: remove deprecated trudp v1
null pointer comparation. close #133
  • Loading branch information
angelskieglazki committed Sep 18, 2020
1 parent 34bed9e commit f7f05f1
Show file tree
Hide file tree
Showing 21 changed files with 64 additions and 4,002 deletions.
8 changes: 4 additions & 4 deletions app/teogw.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ void event_cb(ksnetEvMgrClass *ke, ksnetEvMgrEvents event, void *data,
// Set default namespace
case EV_K_STARTED:

ksn_printf(ke, NULL, DEBUG, "Host '%s' started at network '%s'...\n",
ksn_printf(ke, "", DEBUG, "Host '%s' started at network '%s'...\n",
ksnetEvMgrGetHostName(ke), ke->ksn_cfg.network);

// Set application type
Expand All @@ -56,7 +56,7 @@ void event_cb(ksnetEvMgrClass *ke, ksnetEvMgrEvents event, void *data,
// start new network
if(!strcmp(ke->ksn_cfg.network,"local")) {
const char* net = "NEW_NET";
ksn_printf(ke, NULL, DEBUG, "Dynamically add new network %s\n", net);
ksn_printf(ke, "", DEBUG, "Dynamically add new network %s\n", net);
teoMultiAddNet(ke->km, event_cb, "NEW_HOST", 0, net, NULL);
}

Expand All @@ -65,14 +65,14 @@ void event_cb(ksnetEvMgrClass *ke, ksnetEvMgrEvents event, void *data,
// Show connected peers
case EV_K_CONNECTED: {
// const ksnCorePacketData *rd = (ksnCorePacketData *) data;
ksn_printf(ke, NULL, DEBUG, "Peer '%s' connected at network '%s'...\n",
ksn_printf(ke, "", DEBUG, "Peer '%s' connected at network '%s'...\n",
rd->from, ke->ksn_cfg.network);
} break;

// Show disconnected peers
case EV_K_DISCONNECTED: {
// const ksnCorePacketData *rd = (ksnCorePacketData *) data;
ksn_printf(ke, NULL, DEBUG, "Peer '%s' disconnected at network '%s'...\n",
ksn_printf(ke, "", DEBUG, "Peer '%s' disconnected at network '%s'...\n",
rd->from, ke->ksn_cfg.network);
} break;

Expand Down
34 changes: 7 additions & 27 deletions examples/teoackm.c
Original file line number Diff line number Diff line change
Expand Up @@ -142,38 +142,18 @@ void event_cb(ksnetEvMgrClass *ke, ksnetEvMgrEvents event, void *data,
{
ksnet_arp_data *arp = (ksnet_arp_data *)ksnetArpGet(ke->kc->ka, peer_to);
if(arp != NULL) {

// Make address from string
struct sockaddr_in remaddr; // remote address
socklen_t addrlen = sizeof(remaddr); // length of addresses
// memset((char *) &remaddr, 0, addrlen);
// remaddr.sin_family = AF_INET;
// remaddr.sin_port = htons(arp->port);
// #ifndef HAVE_MINGW
// if(inet_aton(arp->addr, &remaddr.sin_addr) == 0) {
// //return(-2);
// }
// #else
// remaddr.sin_addr.s_addr = inet_addr(addr);
// #endif
if(!make_addr(arp->addr, arp->port,
(__SOCKADDR_ARG) &remaddr, &addrlen)) {

#if TRUDP_VERSION == 1
ksnTRUDPresetSend(ke->kc->ku, ke->kc->fd,
(__CONST_SOCKADDR_ARG) &remaddr);
ksnTRUDPreset(ke->kc->ku,
(__CONST_SOCKADDR_ARG) &remaddr, 0);
ksnTRUDPstatReset(ke->kc->ku);
#else
trudpChannelData *tcd;
if((tcd = trudpGetChannel(
ke->kc->ku, (__CONST_SOCKADDR_ARG)&remaddr, 0)) != (void*)-1)
trudp_ChannelSendReset(tcd);
#endif

if(!make_addr(arp->addr, arp->port, (__SOCKADDR_ARG) &remaddr, &addrlen)) {
trudpChannelData *tcd = trudpGetChannel(ke->kc->ku, (__CONST_SOCKADDR_ARG)&remaddr, 0);
if((tcd != (void*)-1) || (tcd != NULL)) {
trudp_ChannelSendReset(tcd);
}
}
}

// Show menu
ke->event_cb(ke, EV_K_USER , NULL, 0, NULL);
}
Expand Down
1 change: 0 additions & 1 deletion src/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,6 @@ nobase_teonetinclude_HEADERS = \
net_recon.h \
net_split.h \
tr-udp.h \
tr-udp_.h \
tr-udp_stat.h \
pidfile.h \
teonet.hpp \
Expand Down
35 changes: 14 additions & 21 deletions src/ev_mgr.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#include "utils/rlutil.h"
#include "modules/metric.h"

#define MODULE _ANSI_CYAN "event_manager" _ANSI_NONE
#define MODULE "event_manager"

// Global module variables
static int teoRestartApp_f = 0; // Restart teonet application before exit
Expand Down Expand Up @@ -915,51 +915,44 @@ int check_connected_cb(ksnetArpClass *ka, char *peer_name,
* @param revents
*/
void idle_cb (EV_P_ ev_idle *w, int revents) {

#define kev ((ksnetEvMgrClass *)((ksnCoreClass *)w->data)->ke)
ksnetEvMgrClass *ke = ((ksnCoreClass *)w->data)->ke;

#ifdef DEBUG_KSNET
ksn_printf(kev, MODULE, DEBUG_VV, "idle callback %d\n", kev->idle_count);
ksn_printf(ke, MODULE, DEBUG_VV, "idle callback %d\n", ke->idle_count);
#endif

// Stop this watcher
ev_idle_stop(EV_A_ w);

// Idle count startup (first time run)
if(!kev->idle_count) {
if(!ke->idle_count) {
//! \todo: open_local_port(kev);
#if TRUDP_VERSION == 1
// Set statistic start time
if(!kev->kc->ku->started) kev->kc->ku->started = ksnetEvMgrGetTime(kev);
#endif
// Connect to R-Host
connect_r_host_cb(kev);
connect_r_host_cb(ke);
// Send event to application
if(kev->ta) kev->ta->t_id = pthread_self();
if(kev->event_cb != NULL) kev->event_cb(kev, EV_K_STARTED, NULL, 0, NULL);
if(ke->ta) ke->ta->t_id = pthread_self();
if(ke->event_cb != NULL) ke->event_cb(ke, EV_K_STARTED, NULL, 0, NULL);
// Start host socket in the event manager
if(!kev->ksn_cfg.r_tcp_f) {
ev_io_start(kev->ev_loop, &kev->kc->host_w);
if(!ke->ksn_cfg.r_tcp_f) {
ev_io_start(ke->ev_loop, &ke->kc->host_w);
}
}
// Idle count max value
else if(kev->idle_count == UINT32_MAX) kev->idle_count = 0;
else if(ke->idle_count == UINT32_MAX) ke->idle_count = 0;

// Increment count
kev->idle_count++;
ke->idle_count++;

// Check host events to send him service information
//! \todo: host_cb(EV_A_ (ev_io*)w, revents);

// Send idle Event
if(kev->event_cb != NULL) {
kev->event_cb(kev, EV_K_IDLE , NULL, 0, NULL);
if(ke->event_cb != NULL) {
ke->event_cb(ke, EV_K_IDLE , NULL, 0, NULL);
}

// Set last host event time
ksnCoreSetEventTime(kev->kc);

#undef kev
ksnCoreSetEventTime(ke->kc);
}

/**
Expand Down
1 change: 0 additions & 1 deletion src/modules/l0-server.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ static bool processKeyExchange(ksnLNullClass *kl, ksnLNullData *kld, int fd,
// Other modules not declared functions
void *ksnCoreCreatePacket(ksnCoreClass *kc, uint8_t cmd, const void *data,
size_t data_len, size_t *packet_len);
#include "tr-udp_.h" // ksnTRUDPmakeAddr

// External constants
extern const char *localhost;
Expand Down
1 change: 0 additions & 1 deletion src/modules/tcp_proxy.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@

#include "ev_mgr.h"
#include "net_core.h"
#include "tr-udp_.h"
#include "utils/rlutil.h"

#define MODULE _ANSI_YELLOW "tcp_proxy" _ANSI_NONE
Expand Down
74 changes: 14 additions & 60 deletions src/net_arp.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
#include <string.h>

#include "ev_mgr.h"
#include "tr-udp_.h"
#include "utils/rlutil.h"
#include "utils/utils.h"
#include "utils/teo_memory.h"
Expand Down Expand Up @@ -150,10 +149,9 @@ void *ksnetArpSetHostPort(ksnetArpClass *ka, char* name, int port) {
*
* @param ka Pointer to ksnetArpClass
* @param name Peer name to remove
* @return True if successfully removed
* @return 1 if successfully removed
*/
int ksnetArpRemove(ksnetArpClass *ka, char* name) {

size_t var_len = 0;
char* peer_name = strdup(name);

Expand All @@ -162,17 +160,11 @@ int ksnetArpRemove(ksnetArpClass *ka, char* name) {

// If removed successfully
if(arp != (void*)-1) {

// Remove peer from TR-UDP module
// \TODO The 'if(arp)' was added because we drop here. Check why arp may be NULL.
if(arp) {
#if TRUDP_VERSION == 1
ksnTRUDPresetAddr(((ksnetEvMgrClass*) ka->ke)->kc->ku, arp->addr,
arp->port, 1);
#elif TRUDP_VERSION == 2
trudpChannelDestroyAddr(((ksnetEvMgrClass*) ka->ke)->kc->ku, arp->data.addr,
arp->data.port, 0);
#endif
}

// Remove from Stream module
Expand All @@ -187,6 +179,7 @@ int ksnetArpRemove(ksnetArpClass *ka, char* name) {
if(arp->type) free(arp->type);
free(arp);
}

free(peer_name);

return arp ? 1 : 0;
Expand All @@ -200,30 +193,25 @@ int ksnetArpRemove(ksnetArpClass *ka, char* name) {
* @param ka
*/
void ksnetArpRemoveAll(ksnetArpClass *ka) {

ksnetEvMgrClass *ke = ka->ke;
PblIterator *it = pblMapIteratorNew(ka->map);
if(it != NULL) {

if(it != NULL) {
while(pblIteratorHasNext(it)) {

void *entry = pblIteratorNext(it);
char *name = pblMapEntryKey(entry);
ksnet_arp_data_ext *arp = pblMapEntryValue(entry);
if(arp->type) free(arp->type);
}

pblIteratorFree(it);
}

pblMapFree(ka->map);
ke->ksn_cfg.r_host_name[0] = '\0';
ka->map = pblMapNewHashMap();
ksnetArpAddHost(ka);
#if TRUDP_VERSION == 1
ksnTRUDPremoveAll(ke->kc->ku);
#elif TRUDP_VERSION == 2
trudpChannelDestroyAll(ke->kc->ku);
#endif
}

/**
Expand Down Expand Up @@ -533,7 +521,6 @@ char *ksnetArpShowLine(int num, char *name, ksnet_arp_data* data) {
* @return String with formated ARP table. Should be free after use
*/
char *ksnetArpShowStr(ksnetArpClass *ka) {

char *str;
const char *div = "-------------------------------------------------------"
"----------------------------\n";
Expand All @@ -548,99 +535,66 @@ char *ksnetArpShowStr(ksnetArpClass *ka) {

PblIterator *it = pblMapIteratorNew(ka->map);
int num = 0;
if(it != NULL) {

if(it != NULL) {
while(pblIteratorHasNext(it)) {

void *entry = pblIteratorNext(it);
char *name = pblMapEntryKey(entry);
ksnet_arp_data *data = pblMapEntryValue(entry);
char *last_triptime = ksnet_formatMessage("%7.3f",
data->last_triptime);

// Get TR-UDP ip map data by key
#if TRUDP_VERSION == 1
size_t val_len;
size_t key_len = KSN_BUFFER_SM_SIZE;
char key[key_len];
key_len = snprintf(key, key_len, "%s:%d", data->addr, data->port);
ip_map_data *ip_map_d = pblMapGet(
((ksnetEvMgrClass*)ka->ke)->kc->ku->ip_map, key, key_len,
&val_len);

// Last trip time
char *tcp_last_triptime = ip_map_d != NULL ?
ksnet_formatMessage("%7.3f / ",
ip_map_d->stat.triptime_last/1000.0) : strdup(null_str);

// Last 10 max trip time
char *tcp_triptime_last10_max = ip_map_d != NULL ?
ksnet_formatMessage("%.3f ms",
ip_map_d->stat.triptime_last_max/1000.0) : strdup(null_str);

#elif TRUDP_VERSION == 2
char *last_triptime = ksnet_formatMessage("%7.3f", data->last_triptime);

// Get TR-UDP by address and port
trudpChannelData *tcd = trudpGetChannelAddr(
((ksnetEvMgrClass*)ka->ke)->kc->ku,
data->addr, data->port, 0
);

// Set Last and Middle trip time
char *tcp_last_triptime, *tcp_triptime_last10_max;
if(tcd != (void*)-1) {
tcp_last_triptime = ksnet_formatMessage("%7.3f / ",
tcd->triptime/1000.0);
tcp_triptime_last10_max = ksnet_formatMessage("%.3f ms",
tcd->triptimeMiddle/1000.0);
}
else {
tcp_last_triptime = ksnet_formatMessage("%7.3f / ", tcd->triptime/1000.0);
tcp_triptime_last10_max = ksnet_formatMessage("%.3f ms", tcd->triptimeMiddle/1000.0);
} else {
tcp_last_triptime = strdup(null_str);
tcp_triptime_last10_max = strdup(null_str);
}
#endif

str = ksnet_sformatMessage(str, "%s"
"%3d %s%-15s%s %3d %-15s %5d %7s %s %s%s%s\n",
str,

// Number
++num,

// Peer name
getANSIColor(LIGHTGREEN), name, getANSIColor(NONE),

// Index
data->mode,

// IP
data->addr,

// Port
data->port,

// Trip time
data->mode < 0 ? "" : last_triptime,

// ARP Trip time type (ms)
data->mode < 0 ? "" : "ms",

// TCP Proxy last trip time type (ms)
"",
tcp_last_triptime,
tcp_triptime_last10_max

// Rx/Tx
//"", //(data->idx >= 0 && data->direct_con ? itoa( (&kn->host->peers[data->idx])->incomingDataTotal) : ""),
//"", // (data->idx >= 0 && data->direct_con ? "/" : ""),
//"" //(data->idx >= 0 && data->direct_con ? itoa( (&kn->host->peers[data->idx])->outgoingDataTotal) : "")
);

free(last_triptime);
free(tcp_last_triptime);
free(tcp_triptime_last10_max);
}

pblIteratorFree(it);
}
str = ksnet_sformatMessage(str, "%s%s", str, div);

str = ksnet_sformatMessage(str, "%s%s", str, div);

return str;
}
Expand Down
Loading

0 comments on commit f7f05f1

Please sign in to comment.