1
0
mirror of https://github.com/Tha14/toxic.git synced 2024-06-26 20:47:45 +02: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:
Jfreegman 2016-09-22 18:31:52 -04:00
parent c24e1bd2b8
commit 2194b9e259
No known key found for this signature in database
GPG Key ID: 3627F3144076AE63
13 changed files with 26 additions and 39 deletions

View File

@ -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)) {

View File

@ -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)

View File

@ -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];
};

View File

@ -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*)&timestamp);
@ -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) {

View File

@ -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;
};

View File

@ -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;

View File

@ -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;

View File

@ -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 */
};

View File

@ -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;
};

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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;