37,19 → 37,9 |
|
#include <ll/sys/types.h> |
#include <stdlib.h> |
#include <tracer.h> |
|
#include <drivers/udpip.h> |
|
#define UDP_MAXSIZE 1400 |
#define TRACER_PORT 100 |
|
int TracerUDPInit = 0; |
UDP_ADDR target,local; |
int socket; |
|
extern int TracerOutputType; |
|
struct tracer_udp_header { |
char id[12]; |
unsigned int pkt_number; |
57,28 → 47,6 |
unsigned int total_size; |
}; |
|
int init_tracer_udp(char *local_ip, char *target_ip) { |
|
SYS_FLAGS f; |
|
f = ll_fsave(); |
|
ip_str2addr(local_ip,&(local.s_addr)); |
local.s_port = TRACER_PORT; |
socket = udp_bind(&local, NULL); |
|
ip_str2addr(target_ip,&(target.s_addr)); |
target.s_port = TRACER_PORT; |
|
TracerOutputType = TRACER_UDP_OUTPUT; |
TracerUDPInit = 1; |
|
ll_frestore(f); |
|
return 0; |
|
} |
|
int send_udp_event(void *p, int size) { |
|
static BYTE pkt[UDP_MAXSIZE]; |
90,6 → 58,8 |
struct tracer_udp_header head = {"TRACER-V1.0",0,0,0}; |
struct tracer_udp_header *phead = (struct tracer_udp_header *)(pkt); |
|
int err; |
|
if (total_pkt_size + size < UDP_MAXSIZE) { |
|
if (total_pkt_size == 0) { |
121,7 → 91,7 |
|
} else { |
|
udp_sendto(socket, pkt, total_pkt_size, &target); |
//err = udp_sentto(); |
|
events_number = 0; |
total_pkt_size = 0; |
129,7 → 99,7 |
|
send_udp_event(p,size); |
|
return 0; |
return err; |
|
} |
|