Example #1
0
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;
}
Example #2
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");
}
Example #3
0
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");
}
Example #4
0
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");
}
Example #5
0
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");
}
Example #6
0
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);
}
Example #7
0
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");
}