mirror of
https://github.com/Tha14/toxic.git
synced 2024-12-23 03:23:26 +01:00
Use time_t instead of uint64_t for timestamps
Also call time() directly from get_unix_time() instead of manually updating the time val.
This commit is contained in:
parent
c24e1bd2b8
commit
2194b9e259
@ -101,7 +101,7 @@ struct Node {
|
||||
static struct DHT_Nodes {
|
||||
struct Node list[MAX_NODES];
|
||||
size_t count;
|
||||
uint64_t last_updated;
|
||||
time_t last_updated;
|
||||
} Nodes;
|
||||
|
||||
|
||||
@ -574,7 +574,7 @@ static void DHT_bootstrap(Tox *m)
|
||||
/* Manages connection to the Tox DHT network. */
|
||||
void do_tox_connection(Tox *m)
|
||||
{
|
||||
static uint64_t last_bootstrap_time = 0;
|
||||
static time_t last_bootstrap_time = 0;
|
||||
bool connected = tox_self_get_connection_status(m) != TOX_CONNECTION_NONE;
|
||||
|
||||
if (!connected && timed_out(last_bootstrap_time, TRY_BOOTSTRAP_INTERVAL)) {
|
||||
|
@ -825,7 +825,7 @@ static void draw_infobox(ToxWindow *self)
|
||||
if (x2 < INFOBOX_WIDTH || y2 < INFOBOX_HEIGHT)
|
||||
return;
|
||||
|
||||
uint64_t curtime = get_unix_time();
|
||||
time_t curtime = get_unix_time();
|
||||
|
||||
/* update elapsed time string once per second */
|
||||
if (curtime > infobox->lastupdate)
|
||||
|
@ -61,8 +61,8 @@ struct FileTransfer {
|
||||
size_t index;
|
||||
uint64_t file_size;
|
||||
uint64_t position;
|
||||
uint64_t last_line_progress; /* The last time we updated the progress bar */
|
||||
uint64_t last_keep_alive; /* The last time we sent or received data */
|
||||
time_t last_line_progress; /* The last time we updated the progress bar */
|
||||
time_t last_keep_alive; /* The last time we sent or received data */
|
||||
uint32_t line_id;
|
||||
uint8_t file_id[TOX_FILE_ID_LENGTH];
|
||||
};
|
||||
|
@ -314,7 +314,7 @@ static void sort_blocklist_index(void)
|
||||
qsort(Blocked.index, Blocked.num_blocked, sizeof(uint32_t), index_name_cmp_block);
|
||||
}
|
||||
|
||||
static void update_friend_last_online(uint32_t num, uint64_t timestamp)
|
||||
static void update_friend_last_online(uint32_t num, time_t timestamp)
|
||||
{
|
||||
Friends.list[num].last_online.last_on = timestamp;
|
||||
Friends.list[num].last_online.tm = *localtime((const time_t*)×tamp);
|
||||
@ -439,7 +439,7 @@ void friendlist_onFriendAdded(ToxWindow *self, Tox *m, uint32_t num, bool sort)
|
||||
fprintf(stderr, "tox_friend_get_public_key failed (error %d)\n", pkerr);
|
||||
|
||||
TOX_ERR_FRIEND_GET_LAST_ONLINE loerr;
|
||||
uint64_t t = tox_friend_get_last_online(m, num, &loerr);
|
||||
time_t t = tox_friend_get_last_online(m, num, &loerr);
|
||||
|
||||
if (loerr != TOX_ERR_FRIEND_GET_LAST_ONLINE_OK)
|
||||
t = 0;
|
||||
@ -910,7 +910,7 @@ static void friendlist_onDraw(ToxWindow *self, Tox *m)
|
||||
return;
|
||||
}
|
||||
|
||||
uint64_t cur_time = time(NULL);
|
||||
time_t cur_time = get_unix_time();
|
||||
struct tm cur_loc_tm = *localtime((const time_t *) &cur_time);
|
||||
|
||||
wattron(self->window, A_BOLD);
|
||||
@ -1047,7 +1047,7 @@ static void friendlist_onDraw(ToxWindow *self, Tox *m)
|
||||
wattroff(self->window, COLOR_PAIR(BLUE));
|
||||
|
||||
pthread_mutex_lock(&Winthread.lock);
|
||||
uint64_t last_seen = Friends.list[f].last_online.last_on;
|
||||
time_t last_seen = Friends.list[f].last_online.last_on;
|
||||
pthread_mutex_unlock(&Winthread.lock);
|
||||
|
||||
if (last_seen != 0) {
|
||||
|
@ -387,7 +387,7 @@ struct group_add_thrd {
|
||||
ToxWindow *self;
|
||||
int peernum;
|
||||
int groupnum;
|
||||
uint64_t timestamp;
|
||||
time_t timestamp;
|
||||
pthread_t tid;
|
||||
pthread_attr_t attr;
|
||||
};
|
||||
|
@ -64,7 +64,7 @@ typedef struct {
|
||||
uint8_t type;
|
||||
int num_peers;
|
||||
int side_pos; /* current position of the sidebar - used for scrolling up and down */
|
||||
uint64_t start_time;
|
||||
time_t start_time;
|
||||
uint8_t *peer_names;
|
||||
uint8_t *oldpeer_names;
|
||||
uint16_t *peer_name_lengths;
|
||||
|
@ -50,7 +50,7 @@ struct line_info {
|
||||
char name1[TOXIC_MAX_NAME_LENGTH + 1];
|
||||
char name2[TOXIC_MAX_NAME_LENGTH + 1];
|
||||
char msg[MAX_LINE_INFO_MSG_SIZE];
|
||||
uint64_t timestamp;
|
||||
time_t timestamp;
|
||||
uint8_t type;
|
||||
uint8_t bold;
|
||||
uint8_t colour;
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
struct chatlog {
|
||||
FILE *file;
|
||||
uint64_t lastwrite;
|
||||
time_t lastwrite;
|
||||
char path[MAX_STR_SIZE];
|
||||
bool log_on; /* specific to current chat window */
|
||||
};
|
||||
|
@ -29,7 +29,7 @@ struct cqueue_msg {
|
||||
int line_id;
|
||||
uint8_t type;
|
||||
uint32_t receipt;
|
||||
uint64_t last_send_try;
|
||||
time_t last_send_try;
|
||||
struct cqueue_msg *next;
|
||||
struct cqueue_msg *prev;
|
||||
};
|
||||
|
@ -39,8 +39,6 @@
|
||||
extern ToxWindow *prompt;
|
||||
extern struct user_settings *user_settings;
|
||||
|
||||
static uint64_t current_unix_time;
|
||||
|
||||
void hst_to_net(uint8_t *num, uint16_t numbytes)
|
||||
{
|
||||
#ifndef WORDS_BIGENDIAN
|
||||
@ -56,19 +54,13 @@ void hst_to_net(uint8_t *num, uint16_t numbytes)
|
||||
return;
|
||||
}
|
||||
|
||||
/* Note: The time functions are not thread safe */
|
||||
void update_unix_time(void)
|
||||
time_t get_unix_time(void)
|
||||
{
|
||||
current_unix_time = (uint64_t) time(NULL);
|
||||
}
|
||||
|
||||
uint64_t get_unix_time(void)
|
||||
{
|
||||
return current_unix_time;
|
||||
return time(NULL);
|
||||
}
|
||||
|
||||
/* Returns 1 if connection has timed out, 0 otherwise */
|
||||
int timed_out(uint64_t timestamp, uint64_t timeout)
|
||||
int timed_out(time_t timestamp, time_t timeout)
|
||||
{
|
||||
return timestamp + timeout <= get_unix_time();
|
||||
}
|
||||
@ -77,7 +69,7 @@ int timed_out(uint64_t timestamp, uint64_t timeout)
|
||||
struct tm *get_time(void)
|
||||
{
|
||||
struct tm *timeinfo;
|
||||
uint64_t t = get_unix_time();
|
||||
time_t t = get_unix_time();
|
||||
timeinfo = localtime((const time_t*) &t);
|
||||
return timeinfo;
|
||||
}
|
||||
@ -95,7 +87,7 @@ void get_time_str(char *buf, int bufsize)
|
||||
}
|
||||
|
||||
/* Converts seconds to string in format HH:mm:ss; truncates hours and minutes when necessary */
|
||||
void get_elapsed_time_str(char *buf, int bufsize, uint64_t secs)
|
||||
void get_elapsed_time_str(char *buf, int bufsize, time_t secs)
|
||||
{
|
||||
if (!secs)
|
||||
return;
|
||||
|
@ -61,20 +61,17 @@ int hex_string_to_bytes(char *buf, int size, const char *keystr);
|
||||
int bin_id_to_string(const char *bin_id, size_t bin_id_size, char *output, size_t output_size);
|
||||
|
||||
/* get the current unix time (not thread safe) */
|
||||
uint64_t get_unix_time(void);
|
||||
time_t get_unix_time(void);
|
||||
|
||||
/* Puts the current time in buf in the format of [HH:mm:ss] (not thread safe) */
|
||||
void get_time_str(char *buf, int bufsize);
|
||||
|
||||
/* Converts seconds to string in format HH:mm:ss; truncates hours and minutes when necessary */
|
||||
void get_elapsed_time_str(char *buf, int bufsize, uint64_t secs);
|
||||
void get_elapsed_time_str(char *buf, int bufsize, time_t secs);
|
||||
|
||||
/* get the current local time (not thread safe) */
|
||||
struct tm *get_time(void);
|
||||
|
||||
/* updates current unix time (should be run once per do_toxic loop) */
|
||||
void update_unix_time(void);
|
||||
|
||||
/* Returns 1 if the string is empty, 0 otherwise */
|
||||
int string_is_empty(const char *string);
|
||||
|
||||
@ -91,7 +88,7 @@ int wcs_to_mbs_buf(char *buf, const wchar_t *string, size_t n);
|
||||
int mbs_to_wcs_buf(wchar_t *buf, const char *string, size_t n);
|
||||
|
||||
/* Returns 1 if connection has timed out, 0 otherwise */
|
||||
int timed_out(uint64_t timestamp, uint64_t timeout);
|
||||
int timed_out(time_t timestamp, time_t timeout);
|
||||
|
||||
/* Colours the window tab according to type. Beeps if is_beep is true */
|
||||
void alert_window(ToxWindow *self, int type, bool is_beep);
|
||||
|
@ -733,7 +733,6 @@ static Tox *load_toxic(char *data_path)
|
||||
static void do_toxic(Tox *m)
|
||||
{
|
||||
pthread_mutex_lock(&Winthread.lock);
|
||||
update_unix_time();
|
||||
|
||||
if (arg_opts.no_connect) {
|
||||
pthread_mutex_unlock(&Winthread.lock);
|
||||
@ -1091,7 +1090,6 @@ void DnD_callback(const char* asdv, DropType dt)
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
update_unix_time();
|
||||
parse_args(argc, argv);
|
||||
|
||||
/* Use the -b flag to enable stderr */
|
||||
@ -1212,12 +1210,12 @@ int main(int argc, char **argv)
|
||||
snprintf(avatarstr, sizeof(avatarstr), "/avatar \"%s\"", user_settings->avatar_path);
|
||||
execute(prompt->chatwin->history, prompt, m, avatarstr, GLOBAL_COMMAND_MODE);
|
||||
|
||||
uint64_t last_save = (uint64_t) time(NULL);
|
||||
time_t last_save = get_unix_time();
|
||||
|
||||
while (true) {
|
||||
do_toxic(m);
|
||||
|
||||
uint64_t cur_time = get_unix_time();
|
||||
time_t cur_time = get_unix_time();
|
||||
|
||||
if (timed_out(last_save, AUTOSAVE_FREQ)) {
|
||||
pthread_mutex_lock(&Winthread.lock);
|
||||
|
@ -204,8 +204,8 @@ struct infobox {
|
||||
bool hide;
|
||||
bool active;
|
||||
|
||||
uint64_t lastupdate;
|
||||
uint64_t starttime;
|
||||
time_t lastupdate;
|
||||
time_t starttime;
|
||||
char timestr[TIME_STR_SIZE];
|
||||
|
||||
WINDOW *win;
|
||||
|
Loading…
Reference in New Issue
Block a user