예제 #1
0
static PyObject *
canbridge_output_queue(PyObject *self, PyObject *args)
{
    union pkt_any out; 

    out.sample.type = PKT_SAMPLE; 

    if (!PyArg_ParseTuple(args, "(IKi)", 
        &out.sample.can.id, 
        (uint64_t*)&out.sample.can.data, 
        &out.sample.can.length))
        return NULL;

    output_queue(&out); 

    return Py_BuildValue("");
}
예제 #2
0
static void output_all(void)
{
	unsigned i, stats_line=0;
	werase(stats_head_window);
	werase(stats_window);
	wattron(stats_head_window, COLOR_PAIR(queue_header_color));
	mvwprintw(stats_head_window, 0, 0, "%s", clamd_header);
	wattroff(stats_head_window, COLOR_PAIR(queue_header_color));
	for (i=0;i<global.num_clamd;i++) {
		unsigned  j = output_stats(&global.all_stats[i], i);
		if (j > stats_line)
			stats_line = j;
	}
	output_queue(stats_line, maxystats - stats_line-1);
	wrefresh(stats_head_window);
	wrefresh(stats_window);
	if (detail_exists()) {
		/* overlaps, must be done at the end */
		wrefresh(mem_window);
	}
}
예제 #3
0
int 
main(int argc, char **argv)
{
	char	*localip;
	int	localport;
	char*	remoteip;
	int	remoteport;

	FILE*   logfile; 
	char*   logfile_name; 
	struct  stat logfile_stats; 
	long    logfile_len; 

	union pkt_any out;
	union pkt_any in;

	if (argc != 6) {
		printf("usage: dummysender <local ip> <local port> "
		       "<remote ip> <remote port> <logfile name>\n");
		return 0;
	}

	localip = argv[1];
	localport = atoi(argv[2]);
	remoteip = argv[3];
	remoteport = atoi(argv[4]);
	logfile_name = argv[5];
	printf("using %s:%d -> %s:%d\n", localip, localport, remoteip, remoteport);
	printf("Sending logfile: %s\n", logfile_name); 

	logfile = fopen(logfile_name, "r"); 
	if(logfile == NULL){
		perror("fopen"); 
		fprintf(stderr, "Error opening log file for sending\n"); 
		exit(1); 
	}

	stat(logfile_name, &logfile_stats); 
	logfile_len = logfile_stats.st_size; 

	if (socket_init(localip, localport, remoteip, remoteport))
		return -1;

	input_init();
	output_init();

	while(!feof(logfile)){
		//int priority, node, channel;// value; 
		//unsigned int timestamp; 
	//	unsigned long long otherstamp; 
		
		uint32_t header;
		uint64_t payload;
		long double scanalysis_time;

		fscanf(logfile, "%x %Lx %Lf", 
		       &header, 
		       &payload, 
		       &scanalysis_time);  

		out.sample.type = PKT_SAMPLE;
		out.sample.can.id = header; 
		
		out.sample.can.data[0] = (payload >> 56) & 0xFF;
		out.sample.can.data[1] = (payload >> 48) & 0xFF;
		out.sample.can.data[2] = (payload >> 40 ) & 0xFF;
		out.sample.can.data[3] = (payload >> 32 ) & 0xFF;
		out.sample.can.data[4] = (payload >> 24) & 0xFF;
		out.sample.can.data[5] = (payload >> 16) & 0xFF;
		out.sample.can.data[6] = (payload >> 8 ) & 0xFF;
		out.sample.can.data[7] = (payload >> 0 ) & 0xFF;
		out.sample.can.length = 8;

		output_queue(&out);

	
		out.sample.type = PKT_SAMPLE;
		
		/* WHAT THE F**K IS THIS SHIT
		switch(node){
		case 5:
		  out.sample.can.id = fake_heartbeat_id(node, 28);
		  break; 
		  
		case 26:
		  out.sample.can.id = fake_heartbeat_id(node, 26);
		  break; 
		  

		case 111:
		case 113:
		  out.sample.can.id = fake_heartbeat_id(node, 25);
		  break; 
		  
		case 40:
		  out.sample.can.id = fake_heartbeat_id(node, 13);
		  break; 
		  
		case 30:
		  out.sample.can.id = fake_heartbeat_id(node, 23);
		  break; 
		  
		case 155:
		case 160:
		case 165:
		case 170:
		case 175:
		case 180: 
		case 185:
		  out.sample.can.id = fake_heartbeat_id(node, 22);
		  break; 
		}
		*/  
		
		/* again, wtf
		out.sample.can.data[0] = 0;
		out.sample.can.data[1] = 0;
		out.sample.can.data[2] = 0;
		out.sample.can.data[3] = 0;
		out.sample.can.data[4] = (timestamp >> 24) & 0xFF;
		out.sample.can.data[5] = (timestamp >> 16) & 0xFF;
		out.sample.can.data[6] = (timestamp >> 8 ) & 0xFF;
		out.sample.can.data[7] = (timestamp >> 0 ) & 0xFF;
		out.sample.can.length = 8;

		output_queue(&out);	
		*/
		fprintf(stdout, 
			"\r%d%%\r", 
			(int)(100.0 * ((float)ftell(logfile)) 
			      / (float)logfile_len));
		
		while(input_dequeue(&in)==0){
			printf("Recieved "
			       "packet_type=%d "
			       "packet_id=%d "
			       "can_id=%x "
			       "can.data=[%x %x %x %x %x %x %x %x] "
			       "can_length=%d\n",
			       in.sample.type,
			       in.sample.packet_id,
			       in.sample.can.id & 0x1FFFFFFF,
			       in.sample.can.data[0],
			       in.sample.can.data[1],
			       in.sample.can.data[2],
			       in.sample.can.data[3],
			       in.sample.can.data[4],
			       in.sample.can.data[5],
			       in.sample.can.data[6],
			       in.sample.can.data[7],
			       in.sample.can.length
			       );
		}
		
		output_send();
		input_recv();
		
		usleep(5000);
	}

	return 0;
}