int main() { jnx_term_printf_in_color(JNX_COL_WHITE, "Testing app.c functions:\n"); test_random_port_in_range(); jnx_term_printf_in_color(JNX_COL_WHITE, "OK.\n"); return 0; }
void test_random_port_in_range() { jnx_term_printf_in_color(JNX_COL_WHITE, "\ttest_random_port_in_range(): "); int i, count = 10, min = 10000, max = 20000, current; for (i = 0; i < count; i++) { current = random_in_range(min, max); assert(min <= current && current <= max); } jnx_term_printf_in_color(JNX_COL_GREEN, "Pass\n"); }
void test_contains(){ JNX_LOG(NULL,"- test_stack_contains"); jnx_stack *s = jnx_stack_create(); jnx_stack_push(s,ar[0]); JNXCHECK(jnx_stack_contains(s,ar[0],compare_func) == 1); JNXCHECK(jnx_stack_contains(s,ar[1],compare_func) == 0); jnx_term_printf_in_color(JNX_COL_GREEN, " OK\n"); }
void test_stack_grow() { JNX_LOG(NULL,"- test_stack_grow"); jnx_stack *s = jnx_stack_create(); JNXCHECK(s); jnx_stack_push(s,A); jnx_stack_push(s,B); jnx_stack_push(s,C); jnx_stack_destroy(&s); JNXCHECK(s == NULL); jnx_term_printf_in_color(JNX_COL_GREEN, " OK\n"); }
void test_stack_pop() { JNX_LOG(NULL,"- test_stack_pop"); jnx_stack *s = jnx_stack_create(); JNXCHECK(s); jnx_stack_push(s,ar[0]); jnx_stack_push(s,ar[1]); jnx_stack_push(s,ar[2]); int c = 2; while(!jnx_stack_is_empty(s)) { char *d = jnx_stack_pop(s); JNXCHECK(strcmp(ar[c],d) == 0); --c; } jnx_term_printf_in_color(JNX_COL_GREEN, " OK\n"); }
size_t secure_channel_send(session *s, char *message, size_t msg_len) { if(s->current_state != SESSION_CONNECTED) { jnx_term_printf_in_color(JNX_COL_RED,"Unable to send message with session\n"); return -1; } jnx_socket *sec = jnx_socket_tcp_create(AF_INET); JNX_LOG(DEFAULT_CONTEXT,"encrypting \n%s\nwith %s\n",message,s->shared_secret); char *buffer = des_encrypt(s->shared_secret,message,msg_len); if(strcmp(jnx_hash_get(configuration,"DEBUG"),"YES") == 0) { jnx_socket_tcp_send(sec,"localhost",s->foriegn_peer->secure_port,buffer,strlen(buffer)); } else { jnx_socket_tcp_send(sec,s->foriegn_peer->ip,s->foriegn_peer->secure_port,buffer,strlen(buffer)); } free(buffer); jnx_socket_destroy(&sec); }
int secure_listener_callback(uint8_t *msg, size_t msg_len, jnx_socket *s) { if(last_session) { if(last_session->current_state == SESSION_CONNECTED) { JNX_LOG(DEFAULT_CONTEXT,"Attempting to resolve message...\n"); JNX_LOG(DEFAULT_CONTEXT,"Decrypting with %s\n",last_session->shared_secret); char *decrypted_message = des_decrypt(last_session->shared_secret, msg,msg_len); JNX_LOG(DEFAULT_CONTEXT,"decrypted message: %s\n",decrypted_message); jnx_term_printf_in_color(JNX_COL_MAGENTA,">%s\n",decrypted_message); free(decrypted_message); } } free(msg); ///need to free ip? return 0; }
void update_device_stats(time_t poll_time, jnx_hashmap *ip_macs, char **unresponsive, int num_unersponsive) { const char **ips; int i, hr, size, ping_success; char *stat_id, *device_id, *mac_address; mysql_result_bucket *results; size = jnx_hash_get_keys(ip_macs, &ips); printf("\033[2J"); printf("\033[0;0H"); char *datetime = ctime(&poll_time); printf("Last probed on %s\n", datetime); printf("Devices that responded with mac addresses:\n"); printf("\n"); jnx_term_printf_in_color(JNX_COL_GREEN, "id | device_name | node_name | ip_address | mac_address |\n"); jnx_term_printf_in_color(JNX_COL_GREEN, "---+--------------------------------+------------+-------------+-------------------+\n"); for (i = 0, hr = 0; i < size; i++) { device_id = jnx_hash_get(ip_ids, ips[i]); if (device_id) { char *pt = jnx_string_itos(poll_time); mac_address = (char *) jnx_hash_get(ip_macs, ips[i]); sql_send_query(&results, GET_DEVICE_INFO, device_id); char *device_name = results->rows[0][0]; char *node_name = results->rows[0][1]; jnx_term_printf_in_color(JNX_COL_GREEN, "%02s | %-30s | %-10s | %s | %s |\n", device_id, device_name, node_name, ips[i], jnx_hash_get(ip_macs, ips[i])); if (hr % 4 == 3) printf("---+--------------------------------+------------+-------------+-------------------+\n"); remove_mysql_result_bucket(&results); if (0 < get_last_stat_for_device(device_id, &stat_id, &ping_success)) { if (ping_success) sql_send_query(&results, UPDATE_DEVICE_STAT_MAC, pt, mac_address, stat_id); else sql_send_query(&results, INSERT_NEW_SUCCESSFUL_DEVICE_STAT, device_id, pt, mac_address); free(stat_id); } else { sql_send_query(&results, INSERT_FIRST_SUCCESSFUL_DEVICE_STAT, device_id, pt, mac_address, pt); } free(pt); hr++; } } free(ips); printf("\n"); printf("Devices that did not respond during probing cycle:\n"); printf("\n"); jnx_term_printf_in_color(JNX_COL_RED, "id | device_name | node_name | ip_address |\n"); jnx_term_printf_in_color(JNX_COL_RED, "---+--------------------------------+------------+-------------+\n"); for (i = 0, hr = 0; i < num_unersponsive; i++) { device_id = (char *) jnx_hash_get(ip_ids, unresponsive[i]); if (device_id) { char *pt = jnx_string_itos(poll_time); sql_send_query(&results, GET_DEVICE_INFO, device_id); char *device_name = results->rows[0][0]; char *node_name = results->rows[0][1]; jnx_term_printf_in_color(JNX_COL_RED, "%02s | %-30s | %-10s | %s |\n", device_id, device_name, node_name, unresponsive[i]); if (hr % 4 == 3) printf("---+--------------------------------+------------+-------------+\n"); remove_mysql_result_bucket(&results); if (0 < get_last_stat_for_device(device_id, &stat_id, &ping_success)) { if (ping_success) sql_send_query(&results, INSERT_NEW_FAILED_DEVICE_STAT, device_id, pt); else sql_send_query(&results, UPDATE_DEVICE_STAT, pt, stat_id); free(stat_id); } else { sql_send_query(&results, INSERT_FIRST_FAILED_DEVICE_STAT, device_id, pt, pt); } free(pt); hr++; } } printf("\n"); }