commit
						29e01daeae
					
				
					 7 changed files with 23 additions and 19 deletions
				
			
		| 
						 | 
				
			
			@ -118,7 +118,7 @@ void fe_set_nick (struct server *serv, char *newnick);
 | 
			
		|||
void fe_ignore_update (int level);
 | 
			
		||||
void fe_beep (session *sess);
 | 
			
		||||
void fe_lastlog (session *sess, session *lastlog_sess, char *sstr, gtk_xtext_search_flags flags);
 | 
			
		||||
void fe_set_lag (server *serv, int lag);
 | 
			
		||||
void fe_set_lag (server *serv, long lag);
 | 
			
		||||
void fe_set_throttle (server *serv);
 | 
			
		||||
void fe_set_away (server *serv);
 | 
			
		||||
void fe_serverlist_open (session *sess);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -286,12 +286,16 @@ lag_check (void)
 | 
			
		|||
								 NULL, NULL, 0);
 | 
			
		||||
				if (prefs.hex_net_auto_reconnect)
 | 
			
		||||
					serv->auto_reconnect (serv, FALSE, -1);
 | 
			
		||||
			} else if (!serv->lag_sent)
 | 
			
		||||
			} else
 | 
			
		||||
			{
 | 
			
		||||
				snprintf (tbuf, sizeof (tbuf), "LAG%lu", tim);
 | 
			
		||||
				serv->p_ping (serv, "", tbuf);
 | 
			
		||||
				serv->lag_sent = tim;
 | 
			
		||||
				fe_set_lag (serv, -1);
 | 
			
		||||
				
 | 
			
		||||
				if (!serv->lag_sent)
 | 
			
		||||
				{
 | 
			
		||||
					serv->lag_sent = tim;
 | 
			
		||||
					fe_set_lag (serv, -1);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		list = list->next;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -577,7 +577,7 @@ typedef struct server
 | 
			
		|||
	time_t msg_last_time;
 | 
			
		||||
 | 
			
		||||
	/*time_t connect_time;*/				/* when did it connect? */
 | 
			
		||||
	time_t lag_sent;
 | 
			
		||||
	unsigned long lag_sent;   /* we are still waiting for this ping response*/
 | 
			
		||||
	time_t ping_recv;					/* when we last got a ping reply */
 | 
			
		||||
	time_t away_time;					/* when we were marked away */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -892,8 +892,8 @@ inbound_ping_reply (session *sess, char *timestring, char *from,
 | 
			
		|||
	if (lag)
 | 
			
		||||
	{
 | 
			
		||||
		sess->server->lag_sent = 0;
 | 
			
		||||
		sess->server->lag = dif / 1000;
 | 
			
		||||
		fe_set_lag (sess->server, dif / 100000);
 | 
			
		||||
		sess->server->lag = dif;
 | 
			
		||||
		fe_set_lag (sess->server, dif);
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -906,7 +906,7 @@ inbound_ping_reply (session *sess, char *timestring, char *from,
 | 
			
		|||
										  tags_data->timestamp);
 | 
			
		||||
	} else
 | 
			
		||||
	{
 | 
			
		||||
		snprintf (outbuf, sizeof (outbuf), "%ld.%ld%ld", dif / 1000000, (dif / 100000) % 10, dif % 10);
 | 
			
		||||
		snprintf (outbuf, sizeof (outbuf), "%ld.%03ld", dif / 1000, dif % 1000);
 | 
			
		||||
		EMIT_SIGNAL_TIMESTAMP (XP_TE_PINGREP, sess, from, outbuf, NULL, NULL, 0,
 | 
			
		||||
									  tags_data->timestamp);
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1459,7 +1459,7 @@ make_ping_time (void)
 | 
			
		|||
	GTimeVal timev;
 | 
			
		||||
	g_get_current_time (&timev);
 | 
			
		||||
#endif
 | 
			
		||||
	return (timev.tv_sec - 50000) * 1000000 + timev.tv_usec;
 | 
			
		||||
	return (timev.tv_sec - 50000) * 1000 + timev.tv_usec/1000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -713,7 +713,7 @@ fe_lastlog (session *sess, session *lastlog_sess, char *sstr, gtk_xtext_search_f
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
fe_set_lag (server *serv, int lag)
 | 
			
		||||
fe_set_lag (server *serv, long lag)
 | 
			
		||||
{
 | 
			
		||||
	GSList *list = sess_list;
 | 
			
		||||
	session *sess;
 | 
			
		||||
| 
						 | 
				
			
			@ -727,21 +727,21 @@ fe_set_lag (server *serv, int lag)
 | 
			
		|||
		if (!serv->lag_sent)
 | 
			
		||||
			return;
 | 
			
		||||
		nowtim = make_ping_time ();
 | 
			
		||||
		lag = (nowtim - serv->lag_sent) / 100000;
 | 
			
		||||
		lag = nowtim - serv->lag_sent;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* if there is no pong for >30s report the lag as +30s */
 | 
			
		||||
	if (lag > 300 && serv->lag_sent)
 | 
			
		||||
		lag=300;
 | 
			
		||||
	if (lag > 30000 && serv->lag_sent)
 | 
			
		||||
		lag=30000;
 | 
			
		||||
 | 
			
		||||
	per = (double)((double)lag / (double)10);
 | 
			
		||||
	per = ((double)lag) / 1000.0;
 | 
			
		||||
	if (per > 1.0)
 | 
			
		||||
		per = 1.0;
 | 
			
		||||
 | 
			
		||||
	snprintf (lagtext, sizeof (lagtext) - 1, "%s%d.%ds",
 | 
			
		||||
				 serv->lag_sent ? "+" : "", lag / 10, lag % 10);
 | 
			
		||||
	snprintf (lagtip, sizeof (lagtip) - 1, "Lag: %s%d.%d seconds",
 | 
			
		||||
				 serv->lag_sent ? "+" : "", lag / 10, lag % 10);
 | 
			
		||||
	snprintf (lagtext, sizeof (lagtext) - 1, "%s%ld.%lds",
 | 
			
		||||
			  serv->lag_sent ? "+" : "", lag / 1000, (lag/100) % 10);
 | 
			
		||||
	snprintf (lagtip, sizeof (lagtip) - 1, "Lag: %s%ld.%ld seconds",
 | 
			
		||||
				 serv->lag_sent ? "+" : "", lag / 1000, (lag/100) % 10);
 | 
			
		||||
 | 
			
		||||
	while (list)
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -802,7 +802,7 @@ fe_lastlog (session *sess, session *lastlog_sess, char *sstr, gtk_xtext_search_f
 | 
			
		|||
{
 | 
			
		||||
}
 | 
			
		||||
void
 | 
			
		||||
fe_set_lag (server * serv, int lag)
 | 
			
		||||
fe_set_lag (server * serv, long lag)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
void
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue