37,9 → 37,19 |
|
#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; |
47,6 → 57,28 |
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]; |
58,8 → 90,6 |
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) { |
91,7 → 121,7 |
|
} else { |
|
//err = udp_sentto(); |
udp_sendto(socket, pkt, total_pkt_size, &target); |
|
events_number = 0; |
total_pkt_size = 0; |
99,7 → 129,7 |
|
send_udp_event(p,size); |
|
return err; |
return 0; |
|
} |
|