Skip to content
Snippets Groups Projects
Commit f6e84fa7 authored by rswindell's avatar rswindell
Browse files

Moved resolve_ip from telgate.cpp.

Reduced thread timeouts from 30 to 15 seconds.
Added input/output thread terminatation display of number of packets tx/rx.
parent e989f208
No related branches found
No related tags found
No related merge requests found
...@@ -51,7 +51,7 @@ uint riobp; ...@@ -51,7 +51,7 @@ uint riobp;
#define STATUS_WFC "Listening" #define STATUS_WFC "Listening"
#define TIMEOUT_THREAD_WAIT 30 // Seconds #define TIMEOUT_THREAD_WAIT 15 // Seconds (was 30)
#define IO_THREAD_BUF_SIZE 10000 // Bytes #define IO_THREAD_BUF_SIZE 10000 // Bytes
// Globals // Globals
...@@ -137,6 +137,28 @@ static void thread_down() ...@@ -137,6 +137,28 @@ static void thread_down()
startup->thread_up(FALSE); startup->thread_up(FALSE);
} }
int lputs(char* str)
{
if(startup==NULL || startup->lputs==NULL)
return(0);
return(startup->lputs(str));
}
int lprintf(char *fmt, ...)
{
va_list argptr;
char sbuf[1024];
if(startup==NULL || startup->lputs==NULL)
return(0);
va_start(argptr,fmt);
vsprintf(sbuf,fmt,argptr);
va_end(argptr);
return(startup->lputs(sbuf));
}
} /* extern "C" */
SOCKET open_socket(int type) SOCKET open_socket(int type)
{ {
SOCKET sock; SOCKET sock;
...@@ -151,6 +173,9 @@ int close_socket(SOCKET sock) ...@@ -151,6 +173,9 @@ int close_socket(SOCKET sock)
{ {
int result; int result;
if(sock==INVALID_SOCKET)
return(0);
shutdown(sock,SHUT_RDWR); /* required on Unix */ shutdown(sock,SHUT_RDWR); /* required on Unix */
result=closesocket(sock); result=closesocket(sock);
if(/* result==0 && */ startup!=NULL && startup->socket_open!=NULL) if(/* result==0 && */ startup!=NULL && startup->socket_open!=NULL)
...@@ -160,29 +185,21 @@ int close_socket(SOCKET sock) ...@@ -160,29 +185,21 @@ int close_socket(SOCKET sock)
return(result); return(result);
} }
int lputs(char* str) u_long resolve_ip(char *addr)
{ {
if(startup==NULL || startup->lputs==NULL) HOSTENT* host;
return(0); char* p;
return(startup->lputs(str));
}
int lprintf(char *fmt, ...)
{
va_list argptr;
char sbuf[1024];
if(startup==NULL || startup->lputs==NULL) for(p=addr;*p;p++)
return(0); if(*p!='.' && !isdigit(*p))
va_start(argptr,fmt); break;
vsprintf(sbuf,fmt,argptr); if(!(*p))
va_end(argptr); return(inet_addr(addr));
return(startup->lputs(sbuf)); if ((host=gethostbyname(addr))==NULL)
return(0);
return(*((ulong*)host->h_addr_list[0]));
} }
} /* extern "C" */
BYTE* telnet_interpret(sbbs_t* sbbs, BYTE* inbuf, int inlen, BYTE* telnet_interpret(sbbs_t* sbbs, BYTE* inbuf, int inlen,
BYTE* outbuf, int& outlen) BYTE* outbuf, int& outlen)
{ {
...@@ -283,6 +300,7 @@ void input_thread(void *arg) ...@@ -283,6 +300,7 @@ void input_thread(void *arg)
BYTE *wrbuf; BYTE *wrbuf;
int i,rd,wr,avail; int i,rd,wr,avail;
ulong total_recv=0; ulong total_recv=0;
ulong total_pkts=0;
fd_set socket_set; fd_set socket_set;
sbbs_t* sbbs = (sbbs_t*) arg; sbbs_t* sbbs = (sbbs_t*) arg;
struct timeval tv; struct timeval tv;
...@@ -371,6 +389,7 @@ void input_thread(void *arg) ...@@ -371,6 +389,7 @@ void input_thread(void *arg)
} }
total_recv+=rd; total_recv+=rd;
total_pkts++;
// telbuf and wr are modified to reflect telnet escaped data // telbuf and wr are modified to reflect telnet escaped data
wrbuf=telnet_interpret(sbbs, inbuf, rd, telbuf, wr); wrbuf=telnet_interpret(sbbs, inbuf, rd, telbuf, wr);
...@@ -391,8 +410,8 @@ void input_thread(void *arg) ...@@ -391,8 +410,8 @@ void input_thread(void *arg)
pthread_mutex_destroy(&sbbs->input_thread_mutex); pthread_mutex_destroy(&sbbs->input_thread_mutex);
lprintf("Node %d input thread terminated (total bytes received: %lu)" lprintf("Node %d input thread terminated (received %lu bytes in %lu packets)"
,sbbs->cfg.node_num, total_recv); ,sbbs->cfg.node_num, total_recv, total_pkts);
thread_down(); thread_down();
} }
...@@ -404,6 +423,7 @@ void output_thread(void* arg) ...@@ -404,6 +423,7 @@ void output_thread(void* arg)
int i; int i;
ulong avail; ulong avail;
ulong total_sent=0; ulong total_sent=0;
ulong total_pkts=0;
ulong bufbot=0; ulong bufbot=0;
ulong buftop=0; ulong buftop=0;
sbbs_t* sbbs = (sbbs_t*) arg; sbbs_t* sbbs = (sbbs_t*) arg;
...@@ -468,13 +488,15 @@ void output_thread(void* arg) ...@@ -468,13 +488,15 @@ void output_thread(void* arg)
bufbot+=i; bufbot+=i;
total_sent+=i; total_sent+=i;
total_pkts++;
} }
sbbs->spymsg("Disconnected"); sbbs->spymsg("Disconnected");
sbbs->output_thread_running = false; sbbs->output_thread_running = false;
lprintf("%s output thread terminated (total bytes sent: %lu)", node, total_sent); lprintf("%s output thread terminated (sent %lu byts in %lu packets)"
,node, total_sent, total_pkts);
thread_down(); thread_down();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment