diff --git a/utils/SerPortServer.c b/utils/SerPortServer.c index b6e7b0a..01ca497 100755 --- a/utils/SerPortServer.c +++ b/utils/SerPortServer.c @@ -597,15 +597,16 @@ static int RS__MAX_ASYNCH = 20; /* Asynch "ports" 0 - 19 will be allowed */ for (i = (indx + 1); i < N_open_chans; i++) { Ts_info[i-1].status = Ts_info[i].status; - memcpy (Ts_info[i-1].server, Ts_info[i].server, + memmove (&Ts_info[i-1].server, &Ts_info[i].server, sizeof (Ts_info[i-1].server)); - memcpy (Ts_info[i-1].dot_addr, Ts_info[i].dot_addr, + memmove (&Ts_info[i-1].dot_addr, &Ts_info[i].dot_addr, sizeof (Ts_info[i-1].dot_addr)); Ts_info[i-1].chan = Ts_info[i].chan; Ts_info[i-1].port = Ts_info[i].port; Ts_info[i-1].skt = Ts_info[i].skt; - Ts_info[i-1].mask = Ts_info[i].mask; - memcpy (Ts_info[i-1].tp_ahd, Ts_info[i].tp_ahd, Ts_info[i].tp_nxt); + memmove(&Ts_info[i-1].mask,&Ts_info[i].mask,sizeof(fd_set)); + memmove (&Ts_info[i-1].tp_ahd, &Ts_info[i].tp_ahd, + sizeof(Ts_info[i].tp_ahd)); Ts_info[i-1].tp_nxt = Ts_info[i].tp_nxt; Ts_info[i-1].tmo = Ts_info[i].tmo; Ts_info[i-1].time_stamp = Ts_info[i].time_stamp; @@ -2469,7 +2470,7 @@ static int RS__MAX_ASYNCH = 20; /* Asynch "ports" 0 - 19 will be allowed */ subtractTimes(time_now, Ts_info[i].time_stamp); printf("TMO: Difference: %f, allowed %f\n", subtractTimes(time_now, Ts_info[i].time_stamp), - Ts_info[i],tmo); + Ts_info[i].tmo); handleTmo (i); /* This channel has timed-out! */ } }