*** fakesmsc.c	Thu Nov 20 03:22:30 2008
--- fakesmsc.c.orig	Thu Nov 20 03:24:31 2008
***************
*** 230,236 ****
      double first_received_at, last_received_at;
      double first_sent_at, last_sent_at;
      double start_time, end_time;
!     double delta = 0;
      int interactive, maxfd;
      char *cptr;
      char buffer[IN_BUFSIZE];
--- 230,236 ----
      double first_received_at, last_received_at;
      double first_sent_at, last_sent_at;
      double start_time, end_time;
!     double delta;
      int interactive, maxfd;
      char *cptr;
      char buffer[IN_BUFSIZE];
***************
*** 237,243 ****
      fd_set rset;
      struct timeval alarm;
      FILE *fp;
- 	char *p, from[25], to[11];
  
      gwlib_init();
      setup_signal_handlers();
--- 237,242 ----
***************
*** 246,252 ****
  
      mptr = get_and_set_debugs(argc, argv, check_args);
      num_msgs = argc - mptr;
! 
      interactive = 0;
      msgs = NULL;
      fp = NULL;
--- 245,251 ----
  
      mptr = get_and_set_debugs(argc, argv, check_args);
      num_msgs = argc - mptr;
! 		
      interactive = 0;
      msgs = NULL;
      fp = NULL;
***************
*** 283,289 ****
      last_sent_at = 0;
  
      /* infinitely loop */
!     while (interactive || delta >= 0) {
          /* Are we on interactive mode? */ 
          if (interactive == 1) {
              /* Check if we need to clean things up beforehand */
--- 282,288 ----
      last_sent_at = 0;
  
      /* infinitely loop */
!     while (1) {
          /* Are we on interactive mode? */ 
          if (interactive == 1) {
              /* Check if we need to clean things up beforehand */
***************
*** 326,340 ****
                  panic(0, "write failed");
  
              ++num_sent;
- 				strncpy(from, octstr_get_cstr(msg), 24);
- 				p = strchr(from, ' ');
- 				*p = '\0';
- 				strncpy(to, ++p, 10);
- 				if ((p = strchr(to, ' '))) *p = '\0';
              if (num_sent == max_send)
!                 info(0, "fakesmsc: Sent msg %ld <%s %s>", num_sent, to, from);
              else
!                 debug("send", 0, "fakesmsc: Sent msg %ld <%s %s>", num_sent, to, from);
              if (rnd > 0)
                  octstr_destroy(msg);
  
--- 325,335 ----
                  panic(0, "write failed");
  
              ++num_sent;
              if (num_sent == max_send)
!                 info(0, "fakesmsc: sent message %ld", num_sent);
              else
!                 debug("send", 0, "fakesmsc: sent message %ld", num_sent);
!       
              if (rnd > 0)
                  octstr_destroy(msg);
  
***************
*** 349,355 ****
                  delta = 0;
              if (num_sent >= max_send)
                  delta = -1;
! 				if (delta > 0 || interactive) conn_wait(server, delta);
              if (conn_error(server) || conn_eof(server) || sigint_received)
                  goto over;
  
--- 344,350 ----
                  delta = 0;
              if (num_sent >= max_send)
                  delta = -1;
!             conn_wait(server, delta);
              if (conn_error(server) || conn_eof(server) || sigint_received)
                  goto over;
  
***************
*** 358,378 ****
                  last_received_at = get_current_time();
                  if (first_received_at == 0)
                      first_received_at = last_received_at;
! 					 if (strstr(octstr_get_cstr(line), to))
! 					 {
! 						 ++num_received;
! 						 if (num_received == max_send) {
! 							  info(0, "Got message %ld: <%s>", num_received,
! 										octstr_get_cstr(line));
! 										if (!interactive) break;
! 						 } else {
! 							  debug("receive", 0, "fakesmsc: Got msg %ld: <%s>", num_received,
! 									  octstr_get_cstr(line));
! 						 }
! 					 }
                  octstr_destroy(line);
              }
!         } while (delta > 0 || num_received < num_sent);
      }
  
  over:
--- 353,369 ----
                  last_received_at = get_current_time();
                  if (first_received_at == 0)
                      first_received_at = last_received_at;
!                 ++num_received;
!                 if (num_received == max_send) {
!                     info(0, "Got message %ld: <%s>", num_received,
!                            octstr_get_cstr(line));
!                 } else {
!                     debug("receive", 0, "Got message %ld: <%s>", num_received,
!                           octstr_get_cstr(line));
!                 }
                  octstr_destroy(line);
              }
!         } while (delta > 0 || num_sent >= max_send);
      }
  
  over:
***************
*** 385,408 ****
  
      end_time = get_current_time();
  
! 	 if (!interactive)
! 	 {
! 		 info(0, "fakesmsc: %ld messages sent and %ld received", num_sent, num_received);
! 		 info(0, "fakesmsc: total running time %.1f seconds", end_time - start_time);
! 		 delta = last_sent_at - first_sent_at;
! 		 if (delta == 0)
! 			  delta = .01;
! 		 if (num_sent > 1)
! 			  info(0, "fakesmsc: from first to last sent message %.1f s, "
! 						 "%.1f msgs/s", delta, (num_sent - 1) / delta);
! 		 delta = last_received_at - first_received_at;
! 		 if (delta == 0)
! 			  delta = .01;
! 		 if (num_received > 1)
! 			  info(0, "fakesmsc: from first to last received message %.1f s, "
! 						 "%.1f msgs/s", delta, (num_received - 1) / delta);
! 	 }
      info(0, "fakesmsc: terminating");
      
      return 0;
  }
--- 376,397 ----
  
      end_time = get_current_time();
  
!     info(0, "fakesmsc: %ld messages sent and %ld received", num_sent, num_received);
!     info(0, "fakesmsc: total running time %.1f seconds", end_time - start_time);
!     delta = last_sent_at - first_sent_at;
!     if (delta == 0)
!         delta = .01;
!     if (num_sent > 1)
!         info(0, "fakesmsc: from first to last sent message %.1f s, "
!                 "%.1f msgs/s", delta, (num_sent - 1) / delta);
!     delta = last_received_at - first_received_at;
!     if (delta == 0)
!         delta = .01;
!     if (num_received > 1)
!         info(0, "fakesmsc: from first to last received message %.1f s, "
!                 "%.1f msgs/s", delta, (num_received - 1) / delta);
      info(0, "fakesmsc: terminating");
      
      return 0;
  }
+ 
