Alter the way PINGs for /sping and lag check are used.
We now send PING <server> :<server> for /spings, and PING LAG!<cookie>.<tv_sec>.<tv_usec> :<server> for lag checks. The cookie is set randomly at server connect time, and means that clients connected to the same bouncer shouldn't act on each other's lag checks. We can now remove in_sping entirely - previously it would get out of synch if you disconnected with a sping in progress.
This commit is contained in:
@@ -95,6 +95,7 @@ typedef struct
|
||||
* used for redirect */
|
||||
int lag; /* indication of lag from server CDE*/
|
||||
time_t lag_time; /* time ping sent to server CDE */
|
||||
unsigned long lag_cookie; /* cookie to identify our lag check pings */
|
||||
time_t last_msg; /* last mesg recieved from the server CDE */
|
||||
|
||||
time_t last_sent; /* last mesg time sent */
|
||||
@@ -238,6 +239,7 @@ extern SGroup *server_group_list;
|
||||
void BX_set_server_lag (int, int);
|
||||
time_t get_server_lagtime (int);
|
||||
void set_server_lagtime (int, time_t);
|
||||
unsigned long get_server_lag_cookie(int gso_index);
|
||||
|
||||
char *BX_set_server_password (int, char *);
|
||||
void BX_set_server_nickname (int, char *);
|
||||
@@ -363,6 +365,7 @@ ChannelList *BX_get_server_channels (int);
|
||||
void reconnect_server(int *, int *, time_t *);
|
||||
int finalize_server_connect(int, int, int);
|
||||
int next_server(int);
|
||||
int check_serverlag (void);
|
||||
void do_idle_server (void);
|
||||
|
||||
/* XXXXX ick, gross, bad. XXXXX */
|
||||
|
||||
Reference in New Issue
Block a user