From 93c4454143a511409efd692e3687d295e3db9314 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sun, 28 Dec 2008 10:08:58 +0000 Subject: added plain packet --- src/uanytun.c | 123 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 97 insertions(+), 26 deletions(-) (limited to 'src/uanytun.c') diff --git a/src/uanytun.c b/src/uanytun.c index 567a103..a546287 100644 --- a/src/uanytun.c +++ b/src/uanytun.c @@ -43,6 +43,8 @@ #include "tun.h" #include "udp.h" +#include "plain_packet.h" + #include "daemon.h" #include "sysexec.h" @@ -52,9 +54,10 @@ void main_loop(tun_device_t* dev, udp_socket_t* sock) u_int8_t buf[1600]; int len = 0; + udp_endpoint_t remote; unsigned int cnt = 0; + while(cnt < 5) { - udp_endpoint_t remote; len = udp_read(sock, buf, 1600, &remote); if(memcmp(&remote, &(sock->remote_end_), sizeof(remote))) { @@ -71,45 +74,113 @@ void main_loop(tun_device_t* dev, udp_socket_t* sock) } } +void print_hex_dump(const u_int8_t* buf, u_int32_t len) +{ + u_int32_t i; + + for(i=0; i < len; i++) { + printf("%02X ", buf[i]); + if(!((i+1)%8)) + printf(" "); + if(!((i+1)%16)) + printf("\n"); + } + printf("\n"); +} + int main(int argc, char* argv[]) { log_init("uanytun", DAEMON); signal_init(); + plain_packet_t packet; + plain_packet_init(&packet); + + printf("packet length: %d\n", plain_packet_get_length(&packet)); + printf("packet: \n"); + print_hex_dump(plain_packet_get_packet(&packet), plain_packet_get_length(&packet)); + printf("\npayload type: 0x%04X\n", plain_packet_get_type(&packet)); + printf("payload length: %d\n", plain_packet_get_payload_length(&packet)); + printf("payload: \n"); + print_hex_dump(plain_packet_get_payload(&packet), plain_packet_get_payload_length(&packet)); + printf("\n\n"); + + + plain_packet_set_payload_length(&packet, 20); + + + printf("packet length: %d\n", plain_packet_get_length(&packet)); + printf("packet: \n"); + print_hex_dump(plain_packet_get_packet(&packet), plain_packet_get_length(&packet)); + printf("\npayload type: 0x%04X\n", plain_packet_get_type(&packet)); + printf("payload length: %d\n", plain_packet_get_payload_length(&packet)); + printf("payload: \n"); + print_hex_dump(plain_packet_get_payload(&packet), plain_packet_get_payload_length(&packet)); + printf("\n\n"); + + u_int32_t i; + + for(i=0; iactual_name_); */ /* log_printf(NOTICE, "post-up script returned %d", ret); */ - udp_socket_t* sock; - udp_init(&sock, NULL, "4444"); - if(!sock) { - log_printf(ERR, "error on udp_init"); - exit(-1); - } - char* local_string = udp_get_local_end_string(sock); - log_printf(INFO, "listening on: %s", local_string); - free(local_string); - - udp_set_remote(sock, "1.2.3.4", "4444"); - char* remote_string = udp_get_remote_end_string(sock); - log_printf(INFO, "set remote end to: %s", remote_string); - free(remote_string); - - main_loop(dev, sock); - - tun_close(&dev); - udp_close(&sock); +/* udp_socket_t* sock; */ +/* udp_init(&sock, NULL, "4444"); */ +/* if(!sock) { */ +/* log_printf(ERR, "error on udp_init"); */ +/* exit(-1); */ +/* } */ +/* char* local_string = udp_get_local_end_string(sock); */ +/* log_printf(INFO, "listening on: %s", local_string); */ +/* free(local_string); */ + +/* udp_set_remote(sock, "1.2.3.4", "4444"); */ +/* char* remote_string = udp_get_remote_end_string(sock); */ +/* log_printf(INFO, "set remote end to: %s", remote_string); */ +/* free(remote_string); */ + +/* main_loop(dev, sock); */ + +/* tun_close(&dev); */ +/* udp_close(&sock); */ return 0; } -- cgit v1.2.3