void CacheStat::print_sentinel(const cache_stat* stat) { if (sentinel_valid(stat)) { fprintf(stderr, "%s\n", get_time_str(stat).c_str()); } }
static void friendlist_onMessage(ToxWindow *self, Tox *m, uint32_t num, Tox_Message_Type type, const char *str, size_t length) { if (num >= Friends.max_idx) { return; } if (Friends.list[num].chatwin != -1) { return; } if (get_num_active_windows() < MAX_WINDOWS_NUM) { Friends.list[num].chatwin = add_window(m, new_chat(m, Friends.list[num].num)); return; } char nick[TOX_MAX_NAME_LENGTH]; get_nick_truncate(m, nick, num); char timefrmt[TIME_STR_SIZE]; get_time_str(timefrmt, sizeof(timefrmt)); line_info_add(prompt, timefrmt, nick, NULL, IN_MSG, 0, 0, "%s", str); line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, RED, "* Warning: Too many windows are open."); sound_notify(prompt, notif_error, NT_WNDALERT_1, NULL); }
static void friendlist_onMessage(ToxWindow *self, Tox *m, int32_t num, uint8_t *str, uint16_t len) { if (num >= max_friends_index) return; if (friends[num].chatwin == -1) { if (get_num_active_windows() < MAX_WINDOWS_NUM) { friends[num].chatwin = add_window(m, new_chat(m, friends[num].num)); } else { str[len] = '\0'; uint8_t nick[TOX_MAX_NAME_LENGTH] = {'\0'}; int n_len = tox_get_name(m, num, nick); n_len = MIN(n_len, TOXIC_MAX_NAME_LENGTH - 1); nick[n_len] = '\0'; uint8_t timefrmt[TIME_STR_SIZE]; get_time_str(timefrmt); line_info_add(prompt, timefrmt, nick, NULL, str, IN_MSG, 0, 0); uint8_t *msg = "* Warning: Too many windows are open."; line_info_add(prompt, NULL, NULL, NULL, msg, SYS_MSG, 0, RED); alert_window(prompt, WINDOW_ALERT_1, true); } } }
/* Waits GROUP_EVENT_WAIT seconds for a new peer to set their name before announcing them */ void *group_add_wait(void *data) { struct group_add_thrd *thrd = (struct group_add_thrd *) data; ToxWindow *self = thrd->self; Tox *m = thrd->m; char peername[TOX_MAX_NAME_LENGTH]; /* keep polling for a name that differs from the default until we run out of time */ while (true) { usleep(100000); pthread_mutex_lock(&Winthread.lock); get_group_nick_truncate(m, peername, thrd->peernum, thrd->groupnum); if (strcmp(peername, DEFAULT_TOX_NAME) || timed_out(thrd->timestamp, GROUP_EVENT_WAIT)) { pthread_mutex_unlock(&Winthread.lock); break; } pthread_mutex_unlock(&Winthread.lock); } const char *event = "has joined the room"; char timefrmt[TIME_STR_SIZE]; get_time_str(timefrmt, sizeof(timefrmt)); pthread_mutex_lock(&Winthread.lock); line_info_add(self, timefrmt, (char *) peername, NULL, CONNECTION, 0, GREEN, event); write_to_log(event, (char *) peername, self->chatwin->log, true); pthread_mutex_unlock(&Winthread.lock); pthread_attr_destroy(&thrd->attr); free(thrd); pthread_exit(NULL); }
static void groupchat_onGroupAction(ToxWindow *self, Tox *m, int groupnum, int peernum, const char *action, uint16_t len) { if (self->num != groupnum) return; ChatContext *ctx = self->chatwin; char nick[TOX_MAX_NAME_LENGTH]; get_group_nick_truncate(m, nick, peernum, groupnum); char selfnick[TOX_MAX_NAME_LENGTH]; tox_self_get_name(m, (uint8_t *) selfnick); size_t n_len = tox_self_get_name_size(m); selfnick[n_len] = '\0'; if (strcasestr(action, selfnick)) { sound_notify(self, generic_message, NT_WNDALERT_0, NULL); if (self->active_box != -1) box_silent_notify2(self, NT_NOFOCUS, self->active_box, "* %s %s", nick, action ); else box_silent_notify(self, NT_NOFOCUS, &self->active_box, self->name, "* %s %s", nick, action); } else { sound_notify(self, silent, NT_WNDALERT_1, NULL); } char timefrmt[TIME_STR_SIZE]; get_time_str(timefrmt, sizeof(timefrmt)); line_info_add(self, timefrmt, nick, NULL, IN_ACTION, 0, 0, "%s", action); write_to_log(action, nick, ctx->log, true); }
static void groupchat_onGroupTitleChange(ToxWindow *self, Tox *m, int groupnum, int peernum, const char *title, uint8_t length) { ChatContext *ctx = self->chatwin; if (self->num != groupnum) return; set_window_title(self, title, length); char timefrmt[TIME_STR_SIZE]; get_time_str(timefrmt, sizeof(timefrmt)); /* don't announce title when we join the room */ if (!timed_out(groupchats[self->num].start_time, GROUP_EVENT_WAIT)) return; char nick[TOX_MAX_NAME_LENGTH]; get_group_nick_truncate(m, nick, peernum, groupnum); line_info_add(self, timefrmt, nick, NULL, NAME_CHANGE, 0, 0, " set the group title to: %s", title); char tmp_event[MAX_STR_SIZE]; snprintf(tmp_event, sizeof(tmp_event), "set title to %s", title); write_to_log(tmp_event, nick, ctx->log, true); }
void logn(char *filename, char *str) { char buffer[4196]; char path[256]; int fd; ASSERTLOG( filename ); ASSERTLOG( str ); sprintf(path, "%s/%s", get_log_path(), filename); fd = open(path, O_RDWR | O_APPEND | O_BINARY ); if(fd < 0) { fd = open(path, O_RDWR | O_CREAT | O_BINARY, ACC); if(fd < 0) return; } lseek(fd, 0L, 2); /* put a time stamp on everything */ sprintf(buffer, "%s: %s\n", get_time_str(), str ); write(fd, buffer, strlen(buffer)); close(fd); return; }
int reply_normal_information(unsigned char* send_buf,unsigned char * file_buf,int file_size,char *mime_type) { char * str="HTTP/1.1 200 OK\r\nServer:Han/linux/(0.1)\r\nDate:"; register int index=strlen(str); memcpy(send_buf,str,index); char time_buf[TIME_BUFFER_SIZE]; memset(time_buf,'\0',sizeof(time_buf)); str=get_time_str(time_buf); int len=strlen(time_buf); memcpy(send_buf+index,time_buf,len); index+=len; len=strlen(ALLOW); memcpy(send_buf+index,ALLOW,len); index+=len; memcpy(send_buf+index,"\r\nContent-Type:",15); index+=15; len=strlen(mime_type); memcpy(send_buf+index,mime_type,len); index+=strlen(mime_type); memcpy(send_buf+index,"\r\nContent-Length:",17); index+=17; char num_len[8]; memset(num_len,'\0',sizeof(num_len)); sprintf(num_len,"%d",file_size); len=strlen(num_len); memcpy(send_buf+index,num_len,len); index+=len; memcpy(send_buf+index,"\r\n\r\n",4); index+=4; memcpy(send_buf+index,file_buf,file_size); index+=file_size; return index; }
static void prompt_onConnectionChange(ToxWindow *self, Tox *m, int32_t friendnum , uint8_t status) { if (friendnum < 0) return; ChatContext *ctx = self->chatwin; uint8_t nick[TOX_MAX_NAME_LENGTH] = {0}; int n_len = tox_get_name(m, friendnum, nick); n_len = MIN(n_len, TOXIC_MAX_NAME_LENGTH - 1); if (!nick[0]) { snprintf(nick, sizeof(nick), "%s", UNKNOWN_NAME); n_len = strlen(UNKNOWN_NAME); } nick[n_len] = '\0'; uint8_t timefrmt[TIME_STR_SIZE]; get_time_str(timefrmt, sizeof(timefrmt)); uint8_t *msg; if (status == 1) { msg = "has come online"; line_info_add(self, timefrmt, nick, NULL, msg, CONNECTION, 0, GREEN); write_to_log(msg, nick, ctx->log, true); alert_window(self, WINDOW_ALERT_2, false); } else { msg = "has gone offline"; line_info_add(self, timefrmt, nick, NULL, msg, CONNECTION, 0, RED); write_to_log(msg, nick, ctx->log, true); } }
static void prompt_onFriendRequest(ToxWindow *self, Tox *m, const uint8_t *key, const uint8_t *data, uint16_t length) { ChatContext *ctx = self->chatwin; uint8_t timefrmt[TIME_STR_SIZE]; get_time_str(timefrmt, sizeof(timefrmt)); uint8_t msg[MAX_STR_SIZE]; snprintf(msg, sizeof(msg), "Friend request with the message '%s'", data); line_info_add(self, timefrmt, NULL, NULL, msg, SYS_MSG, 0, 0); write_to_log(msg, "", ctx->log, true); int n = add_friend_request(key); if (n == -1) { uint8_t *errmsg = "Friend request queue is full. Discarding request."; line_info_add(self, NULL, NULL, NULL, errmsg, SYS_MSG, 0, 0); write_to_log(errmsg, "", ctx->log, true); return; } snprintf(msg, sizeof(msg), "Type \"/accept %d\" to accept it.", n); line_info_add(self, NULL, NULL, NULL, msg, SYS_MSG, 0, 0); alert_window(self, WINDOW_ALERT_1, true); }
int set_error_information(unsigned char *send_buf, int errorno) { register int index = 0; register int len = 0; char *str = NULL; switch(errorno) { case FILE_NOT_FOUND: printf("In set_error_information FILE_NOT_FOUND case\n"); str = "HTTP/1.1 404 File Not Found\r\n"; len = strlen(str); memcpy(send_buf + index, str, len); index += len; len = strlen(SERVER); memcpy(send_buf + index, SERVER, len); index += len; memcpy(send_buf + index, "\r\nDate:", 7); index += 7; char time_buf[TIME_BUFFER_SIZE]; memset(time_buf, '\0', sizeof(time_buf)); get_time_str(time_buf); len = strlen(time_buf); memcpy(send_buf + index, time_buf, len); index += len; str = "\r\nContent-Type:text/html\r\nContent-Length:"; len = strlen(str); memcpy(send_buf + index, str, len); index += len; str = "\r\n\r\n<html><head></head><body>404 File not found<br/>Please check your url,and try it again!</body></html>"; len = strlen(str); int htmllen = len; char num_len[5]; memset(num_len, '\0', sizeof(num_len)); sprintf(num_len, "%d", len); len = strlen(num_len); memcpy(send + index, num_len, len); index += len; memcpy(send_buf + index, str, htmllen); index += htmllen; break; default: break; } return index; }
static void print_alarm (void) { if (_alarm_set) { char str[STR_SIZE] = {NULL}; get_time_str (&_alarm, str); print_down_right (str); } else print_down_right (ALARM_OFF); }
int set_error_information(unsigned char * send_buf,int errorno) { register int index=0; register int len=0; char *str=NULL; switch(errorno) { case FILE_NOT_FOUND: printf("int set_error_information FILE_NOT_FOOUND case \n"); str="HTTP/1.1 404 File Not Found\r\n"; len=strlen(str); memcpy(send_buf+index,str,len); index +=len; len=strlen(SERVER); memcpy(send_buf+index,SERVER,len); index +=len; memcpy(send_buf+index,"\r\nDate:",7); index +=7; char time_buf[TIME_BUFFER_SIZE]; memset(time_buf,'\0',sizeof(time_buf)); get_time_str(time_buf); len=strlen(time_buf); memcpy(send_buf+index,time_buf,len); index +=len; str="Content-Type:text/html\r\nContent-Length:"; len=strlen(str); memcpy(send_buf+index,str,len); index+=len; str="<html><head><style>body{background-color:#123} h4{font-size:1cm;text-align:center;color:red;text-shadow:0 0 2mm green}</style></head><body><h4>404 file not found please check you url and try it again</h4> </body></html>"; // printf("str======%s\n",str); len=strlen(str); int htmllen=len; char num_len[5]; memset(num_len,'\0',sizeof(num_len)); sprintf(num_len,"%d",len); len=strlen(num_len); memcpy(send_buf+index,num_len,len); index+=len; memcpy(send_buf+index,"\r\n\r\n",4); index +=4; memcpy(send_buf+index,str,htmllen); index+=htmllen; break; default: break; } return index; }
/** Perform substitution for keywords that are enclosed in "# #". */ static void substitute_keywords(mlt_filter filter, char* result, char* value, mlt_frame frame) { char keyword[MAX_TEXT_LEN] = ""; int pos = 0; int is_keyword = 0; while ( get_next_token(value, &pos, keyword, &is_keyword) ) { if(!is_keyword) { strncat( result, keyword, MAX_TEXT_LEN - strlen( result ) - 1 ); } else if ( !strcmp( keyword, "timecode" ) ) { get_timecode_str( filter, frame, result ); } else if ( !strcmp( keyword, "frame" ) ) { get_frame_str( filter, frame, result ); } else if ( !strcmp( keyword, "filedate" ) ) { get_filedate_str( filter, frame, result ); } else if ( !strcmp( keyword, "localfiledate" ) ) { get_localfiledate_str( filter, frame, result ); } else if ( !strcmp( keyword, "resource" ) ) { get_resource_str( filter, frame, result ); } else if ( !strcmp( keyword, "time" ) ) { get_time_str( filter, frame, result ); } else { // replace keyword with property value from this frame mlt_properties frame_properties = MLT_FRAME_PROPERTIES( frame ); char *frame_value = mlt_properties_get( frame_properties, keyword ); if( frame_value ) { strncat( result, frame_value, MAX_TEXT_LEN - strlen(result) - 1 ); } } } }
static void log_message(SNMPMessage *message, char *sender_host) { char *host_str = sender_host; char timestamp_str[20]; char *oid_str; char *value_str; int i = 0; get_time_str(timestamp_str, sizeof(timestamp_str)); while (snmp_get_varbind_as_string(message, i, &oid_str, NULL, &value_str)) { printf("%s\t%s\t%s\t%s\n", host_str, timestamp_str, oid_str, value_str); i++; } }
void lcd_debug_display (void) { unsigned char j; //Unlock Count lcd_clear(); //lcd_write_string_XY(0, 0, "Unlock Count:"); lcd_write_int_XY(0, 1, local_ee_data.unlock_count); os_dly_wait(300); //Box ID lcd_clear(); //lcd_write_string_XY(0, 0, "Box_ID:"); lcd_write_int(local_ee_data.box_id); os_dly_wait(300); //Full Unlock lcd_clear(); if (local_ee_data.full_unlock == EE_FULL_UNLOCK_CODE) { lcd_write_string("Full Unlock"); } else { lcd_write_string("Not Full Unlock"); } os_dly_wait(300); /* lcd_clear(); lcd_write_int(get_unlock_days ()); os_dly_wait(300); */ //RTC Test for (j = 0; j < 50; j++) { char str[16]; lcd_clear(); get_time_str(&str[0]); lcd_write_string_XY(0,0, str); str[0] = '\0'; get_date_str(&str[0]); lcd_write_string_XY(0,1, str); //200ms delay os_dly_wait(20); } lcd_clear(); }
static void chat_onAction(ToxWindow *self, Tox *m, int32_t num, const char *action, uint16_t len) { if (self->num != num) return; ChatContext *ctx = self->chatwin; char nick[TOX_MAX_NAME_LENGTH]; get_nick_truncate(m, nick, num); char timefrmt[TIME_STR_SIZE]; get_time_str(timefrmt, sizeof(timefrmt)); line_info_add(self, timefrmt, nick, NULL, ACTION, 0, 0, action); write_to_log(action, nick, ctx->log, true); notify(self, generic_message, NT_WNDALERT_1 | NT_NOFOCUS); }
void debug_trace(char *stuff) { FILE *foo; char datetime[18]; foo = fopen(DEBUG_FILE, "r"); if (!foo) return; fclose(foo); get_time_str (datetime, sizeof(datetime)); foo = fopen(DEBUG_FILE, "a"); fprintf(foo, "%s: %s", datetime, stuff); fflush(foo); fclose(foo); return; }
void ls_dofile(struct stat sb, char * file_name) { char perm[11] = "----------"; if(sb.st_mode & 0400) perm[1] = 'r'; if(sb.st_mode & 0200) perm[2] = 'w'; if(sb.st_mode & 0100) perm[3] = 'x'; if(sb.st_mode & 0040) perm[4] = 'r'; if(sb.st_mode & 0020) perm[5] = 'w'; if(sb.st_mode & 0010) perm[6] = 'x'; if(sb.st_mode & 0004) perm[7] = 'r'; if(sb.st_mode & 0002) perm[8] = 'w'; if(sb.st_mode & 0001) perm[9] = 'x'; if(sb.st_mode & S_ISVTX) { if(sb.st_mode & 0001) perm[9] = 't'; else perm[9] = 'T'; } if(sb.st_mode & S_ISGID) { if(sb.st_mode & 0010) perm[6] = 'S'; else perm[6] = 's'; } if(sb.st_mode & S_ISUID) { if(sb.st_mode & 0100) perm[3] = 'S'; else perm[3] = 's'; } if(S_ISBLK(sb.st_mode)) perm[0] = 'b'; if(S_ISCHR(sb.st_mode)) perm[0] = 'c'; if(S_ISDIR(sb.st_mode)) perm[0] = 'd'; if(S_ISLNK(sb.st_mode)) perm[0] = 'l'; /* XXX: works? */ if(S_ISFIFO(sb.st_mode)) perm[0] = 'p'; if(S_ISSOCK(sb.st_mode)) perm[0] = 's'; printf("%s %3i %s %s %6i %s %s\n", perm, (int)sb.st_nlink, \ get_uid_str(sb.st_uid), get_gid_str(sb.st_gid), \ (int)sb.st_size, get_time_str("%b %d %H:%M"), file_name); }
void debug_trace_dump(char *stuff, char *bufp, int buflen) { FILE *foo; char datetime[18]; foo = fopen(DEBUG_FILE, "r"); if (!foo) return; fclose(foo); get_time_str (datetime, sizeof(datetime)); foo = fopen(DEBUG_FILE, "a"); fprintf(foo, "%s: %s", datetime, stuff); fprintf(foo, "\ndata:\n"); hexdump (foo, (u_char *)bufp, buflen); fflush(foo); fclose(foo); return; }
static void prompt_onConnectionChange(ToxWindow *self, Tox *m, int32_t friendnum , uint8_t status) { if (friendnum < 0) return; ChatContext *ctx = self->chatwin; char nick[TOX_MAX_NAME_LENGTH] = {0}; /* stop removing this initiation */ get_nick_truncate(m, nick, friendnum); if (!nick[0]) snprintf(nick, sizeof(nick), "%s", UNKNOWN_NAME); char timefrmt[TIME_STR_SIZE]; get_time_str(timefrmt, sizeof(timefrmt)); const char *msg; if (status == 1) { msg = "has come online"; line_info_add(self, timefrmt, nick, NULL, CONNECTION, 0, GREEN, msg); write_to_log(msg, nick, ctx->log, true); if (self->active_box != -1) box_notify2(self, user_log_in, NT_WNDALERT_2 | NT_NOTIFWND | NT_RESTOL, self->active_box, "%s has come online", nick ); else box_notify(self, user_log_in, NT_WNDALERT_2 | NT_NOTIFWND | NT_RESTOL, &self->active_box, "Toxic", "%s has come online", nick ); } else { msg = "has gone offline"; line_info_add(self, timefrmt, nick, NULL, CONNECTION, 0, RED, msg); write_to_log(msg, nick, ctx->log, true); if (self->active_box != -1) box_notify2(self, user_log_out, NT_WNDALERT_2 | NT_NOTIFWND | NT_RESTOL, self->active_box, "%s has gone offline", nick ); else box_notify(self, user_log_out, NT_WNDALERT_2 | NT_NOTIFWND | NT_RESTOL, &self->active_box, "Toxic", "%s has gone offline", nick ); } }
void show_default_screen(msg_t *msg) { LCD_GoTo(8,0); get_time_str(string_buff); LCD_WriteText(string_buff); LCD_GoTo(4, 0); LCD_WriteText("k/h \0"); int offset = 1; switch(msg->type) { case MSG_SECOND_CHANGE: offset = calculate_speed() > 99 ? 0 : 1; break; } if (offset > 0) { LCD_GoTo(0,0); LCD_WriteText(" \0"); } get_current_speed(string_buff); LCD_GoTo(offset, 0); LCD_WriteText(string_buff); }
static void prompt_onFriendRequest(ToxWindow *self, Tox *m, const char *key, const char *data, size_t length) { ChatContext *ctx = self->chatwin; char timefrmt[TIME_STR_SIZE]; get_time_str(timefrmt, sizeof(timefrmt)); line_info_add(self, timefrmt, NULL, NULL, SYS_MSG, 0, 0, "Friend request with the message '%s'", data); write_to_log("Friend request with the message '%s'", "", ctx->log, true); int n = add_friend_request(key, data); if (n == -1) { const char *errmsg = "Friend request queue is full. Discarding request."; line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, errmsg); return; } line_info_add(self, NULL, NULL, NULL, SYS_MSG, 0, 0, "Type \"/accept %d\" or \"/decline %d\"", n, n); sound_notify(self, generic_message, NT_WNDALERT_1 | NT_NOTIFWND, NULL); }
static void send_action(ToxWindow *self, ChatContext *ctx, Tox *m, char *action) { if (action == NULL) return; char selfname[TOX_MAX_NAME_LENGTH]; uint16_t len = tox_get_self_name(m, (uint8_t *) selfname); selfname[len] = '\0'; char timefrmt[TIME_STR_SIZE]; get_time_str(timefrmt, sizeof(timefrmt)); line_info_add(self, timefrmt, selfname, NULL, ACTION, 0, 0, action); if (tox_send_action(m, self->num, (uint8_t *) action, strlen(action)) == 0) { const char *errmsg = " * Failed to send action."; line_info_add(self, NULL, selfname, NULL, SYS_MSG, 0, RED, errmsg); } else { write_to_log(action, selfname, ctx->log, true); } }
static void groupchat_onGroupMessage(ToxWindow *self, Tox *m, int groupnum, int peernum, const char *msg, uint16_t len) { if (self->num != groupnum) return; ChatContext *ctx = self->chatwin; char nick[TOX_MAX_NAME_LENGTH]; get_group_nick_truncate(m, nick, peernum, groupnum); char selfnick[TOX_MAX_NAME_LENGTH]; tox_self_get_name(m, (uint8_t *) selfnick); size_t sn_len = tox_self_get_name_size(m); selfnick[sn_len] = '\0'; int nick_clr = strcmp(nick, selfnick) == 0 ? GREEN : CYAN; /* Only play sound if mentioned by someone else */ if (strcasestr(msg, selfnick) && strcmp(selfnick, nick)) { sound_notify(self, generic_message, NT_WNDALERT_0, NULL); if (self->active_box != -1) box_silent_notify2(self, NT_NOFOCUS, self->active_box, "%s %s", nick, msg); else box_silent_notify(self, NT_NOFOCUS, &self->active_box, self->name, "%s %s", nick, msg); nick_clr = RED; } else { sound_notify(self, silent, NT_WNDALERT_1, NULL); } char timefrmt[TIME_STR_SIZE]; get_time_str(timefrmt, sizeof(timefrmt)); line_info_add(self, timefrmt, nick, NULL, IN_MSG, 0, nick_clr, "%s", msg); write_to_log(msg, nick, ctx->log, false); }
void api_send(const char *msg) { if (msg == NULL || self_window->chatwin->cqueue == NULL) { return; } char *name = api_get_nick(); char timefrmt[TIME_STR_SIZE]; if (name == NULL) { return; } self_window = get_active_window(); get_time_str(timefrmt, sizeof(timefrmt)); strncpy((char *) self_window->chatwin->line, msg, sizeof(self_window->chatwin->line)); add_line_to_hist(self_window->chatwin); int id = line_info_add(self_window, timefrmt, name, NULL, OUT_MSG, 0, 0, "%s", msg); cqueue_add(self_window->chatwin->cqueue, msg, strlen(msg), OUT_MSG, id); free(name); }
static void friendlist_onMessage(ToxWindow *self, Tox *m, int32_t num, const char *str, uint16_t len) { if (num >= max_friends_index) return; if (friends[num].chatwin == -1) { if (get_num_active_windows() < MAX_WINDOWS_NUM) { friends[num].chatwin = add_window(m, new_chat(m, friends[num].num)); notify(self, generic_message, NT_WNDALERT_0 | NT_NOFOCUS); } else { char nick[TOX_MAX_NAME_LENGTH]; get_nick_truncate(m, nick, num); char timefrmt[TIME_STR_SIZE]; get_time_str(timefrmt, sizeof(timefrmt)); line_info_add(prompt, timefrmt, nick, NULL, IN_MSG, 0, 0, str); const char *msg = "* Warning: Too many windows are open."; line_info_add(prompt, NULL, NULL, NULL, SYS_MSG, 0, RED, msg); notify(prompt, error, NT_WNDALERT_1); } } }
static void print_time (void) { char str[STR_SIZE] = {NULL}; get_time_str (&_time, str); print_up_right (str); }
static void groupchat_onGroupNamelistChange(ToxWindow *self, Tox *m, int groupnum, int peernum, uint8_t change) { if (self->num != groupnum) return; if (groupnum > max_groupchat_index) return; groupchats[groupnum].num_peers = tox_group_number_peers(m, groupnum); int num_peers = groupchats[groupnum].num_peers; if (peernum > num_peers) return; /* get old peer name before updating name list */ uint8_t oldpeername[TOX_MAX_NAME_LENGTH]; if (change != TOX_CHAT_CHANGE_PEER_ADD) { memcpy(oldpeername, &groupchats[groupnum].oldpeer_names[peernum * TOX_MAX_NAME_LENGTH], sizeof(oldpeername)); uint16_t old_n_len = groupchats[groupnum].oldpeer_name_lengths[peernum]; oldpeername[old_n_len] = '\0'; } /* Update name/len lists */ uint8_t tmp_peerlist[num_peers][TOX_MAX_NAME_LENGTH]; uint16_t tmp_peerlens[num_peers]; if (tox_group_get_names(m, groupnum, tmp_peerlist, tmp_peerlens, num_peers) == -1) { memset(tmp_peerlist, 0, sizeof(tmp_peerlist)); memset(tmp_peerlens, 0, sizeof(tmp_peerlens)); } copy_peernames(groupnum, tmp_peerlist, tmp_peerlens, num_peers); /* get current peername then sort namelist */ uint8_t peername[TOX_MAX_NAME_LENGTH]; if (change != TOX_CHAT_CHANGE_PEER_DEL) { uint16_t n_len = groupchats[groupnum].peer_name_lengths[peernum]; memcpy(peername, &groupchats[groupnum].peer_names[peernum * TOX_MAX_NAME_LENGTH], sizeof(peername)); peername[n_len] = '\0'; } qsort(groupchats[groupnum].peer_names, groupchats[groupnum].num_peers, TOX_MAX_NAME_LENGTH, qsort_strcasecmp_hlpr); ChatContext *ctx = self->chatwin; const char *event; char timefrmt[TIME_STR_SIZE]; get_time_str(timefrmt, sizeof(timefrmt)); switch (change) { case TOX_CHAT_CHANGE_PEER_ADD: if (!timed_out(groupchats[groupnum].start_time, GROUP_EVENT_WAIT)) break; struct group_add_thrd *thrd = malloc(sizeof(struct group_add_thrd)); thrd->m = m; thrd->peernum = peernum; thrd->groupnum = groupnum; thrd->self = self; thrd->timestamp = get_unix_time(); if (pthread_attr_init(&thrd->attr) != 0) { free(thrd); return; } if (pthread_attr_setdetachstate(&thrd->attr, PTHREAD_CREATE_DETACHED) != 0) { pthread_attr_destroy(&thrd->attr); free(thrd); return; } if (pthread_create(&thrd->tid, &thrd->attr, group_add_wait, (void *) thrd) != 0) { pthread_attr_destroy(&thrd->attr); free(thrd); return; } break; case TOX_CHAT_CHANGE_PEER_DEL: event = "has left the room"; line_info_add(self, timefrmt, (char *) oldpeername, NULL, DISCONNECTION, 0, RED, event); if (groupchats[self->num].side_pos > 0) --groupchats[self->num].side_pos; write_to_log(event, (char *) oldpeername, ctx->log, true); break; case TOX_CHAT_CHANGE_PEER_NAME: if (!timed_out(groupchats[self->num].start_time, GROUP_EVENT_WAIT)) return; /* ignore initial name change (TODO: this is a bad way to do this) */ if (strcmp((char *) oldpeername, DEFAULT_TOX_NAME) == 0) return; event = " is now known as "; line_info_add(self, timefrmt, (char *) oldpeername, (char *) peername, NAME_CHANGE, 0, 0, event); char tmp_event[TOXIC_MAX_NAME_LENGTH * 2 + 32]; snprintf(tmp_event, sizeof(tmp_event), "is now known as %s", (char *) peername); write_to_log(tmp_event, (char *) oldpeername, ctx->log, true); break; } sound_notify(self, silent, NT_WNDALERT_2, NULL); }
void CHttpServer::parse_openstack_data(void *arg, struct evhttp_request *req, struct evkeyvalq params, char *post_data) { CHttpServer *pthis = (CHttpServer *)arg; struct json_object *fst_obj = NULL, *snd_obj = NULL, *trd_obj = NULL; fst_obj = json_tokener_parse(post_data); if (is_error(fst_obj)){ logerr("parse json cloud data fail!!! data:(%s)", post_data); //printf("error parsing json:%s", json_tokener_errors[-(unsigned long)fst_obj]); return; } char tm_buf[64]; char g_timestamp[32]={0}; host_data_st host_data; vm_data_st vm_data; memset((void*)&host_data, 0, sizeof(host_data)); memset((void*)&vm_data, 0, sizeof(vm_data)); if (json_object_get_type(fst_obj) == json_type_array) { for (int i=0 ; i<json_object_array_length(fst_obj) ; i++ ){ snd_obj = json_object_array_get_idx(fst_obj, i ); if (NULL == snd_obj) { logerr("parse cloud data get snd_obj == NULL!\n"); json_object_put(fst_obj); return; } json_object_object_foreach(snd_obj, key, val) { if (json_object_get_type(val) == json_type_array) { for (int j=0; j<json_object_array_length(val); j++) { trd_obj = json_object_array_get_idx(val, j); if (NULL == trd_obj) { logerr("parse cloud data get trd_obj == NULL!\n"); json_object_put(fst_obj); json_object_put(snd_obj); return; } json_object_object_foreach(trd_obj, key, val) { /* padding vm data info */ if (NULL == val) { logerr("json parse data as NULL!!!"); json_object_put(fst_obj); json_object_put(snd_obj); json_object_put(trd_obj); return; } strcpy(vm_data.iaas_code, host_data.iaas_code); strcpy(vm_data.iaas_host_id, host_data.iaas_host_id); strcpy(vm_data.timestamp, host_data.timestamp); if (strcmp(key, VM_ID)==0) strcpy(vm_data.iaas_vm_id, json_object_get_string(val)); else if (strcmp(key, VM_CPU)==0) vm_data.cpu_use_rate = json_object_get_double(val); else if (strcmp(key, VM_MEM)==0) vm_data.memory_use_rate = json_object_get_double(val); else if (strcmp(key, VM_IO)==0) vm_data.io_use_rate = json_object_get_double(val); } /* 打印虚拟机运行数据日志 */ bzero(&tm_buf, 0); get_time_str(vm_data.timestamp, tm_buf); //pthread_mutex_lock(&pthis->m_mutex); logvm("%s %s %s %s %f %f %f", tm_buf, vm_data.iaas_code, vm_data.iaas_host_id, vm_data.iaas_vm_id, vm_data.cpu_use_rate, vm_data.memory_use_rate, vm_data.io_use_rate); //pthread_mutex_unlock(&pthis->m_mutex); } } else { /* padding host data info */ if (NULL == val) { logerr("json parse host data as NULL!!!"); json_object_put(fst_obj); json_object_put(snd_obj); json_object_put(trd_obj); return; } time_t tt = get_time_utc(json_object_get_string(val), "%Y-%m-%d %H:%M:%S"); sprintf(g_timestamp, "%ld", tt); if (strcmp(key, IAAS_CODE)==0) strcpy(host_data.iaas_code, json_object_get_string(val)); else if (strcmp(key, HOST_ID)==0) strcpy(host_data.iaas_host_id, json_object_get_string(val)); else if (strcmp(key, TIMESTAMP)==0) strcpy(host_data.timestamp, g_timestamp); else if (strcmp(key, PM_CPU)==0) host_data.cpu_use_rate = json_object_get_double(val); else if (strcmp(key, PM_MEM)==0) host_data.memory_use_rate = json_object_get_double(val); else if (strcmp(key, PM_IO)==0) host_data.io_use_rate = json_object_get_double(val); } } /* 打印物理主机运行数据 */ bzero(&tm_buf, 0); get_time_str(host_data.timestamp, tm_buf); //pthread_mutex_lock(&pthis->m_mutex); loghost("%s %s %s %f %f %f", tm_buf, host_data.iaas_code, host_data.iaas_host_id, host_data.cpu_use_rate, host_data.memory_use_rate, host_data.io_use_rate); //pthread_mutex_unlock(&pthis->m_mutex); } }