summaryrefslogtreecommitdiff
path: root/src/uanytun.c
diff options
context:
space:
mode:
authorChristian Pointner <equinox@anytun.org>2008-12-28 10:08:58 +0000
committerChristian Pointner <equinox@anytun.org>2008-12-28 10:08:58 +0000
commit93c4454143a511409efd692e3687d295e3db9314 (patch)
treec6a2a8eee705bf0921f757f36e8636d964f233a8 /src/uanytun.c
parentsome cleanup (diff)
added plain packet
Diffstat (limited to 'src/uanytun.c')
-rw-r--r--src/uanytun.c123
1 files changed, 97 insertions, 26 deletions
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; i<plain_packet_get_payload_length(&packet); i++)
+ plain_packet_get_payload(&packet)[i] = (u_int8_t)i;
+ plain_packet_set_type(&packet, PAYLOAD_TYPE_TUN6);
+
+ 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, 18);
+ plain_packet_set_type(&packet, PAYLOAD_TYPE_TAP);
+
+ 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");
+
+
+
// chrootAndDrop("/var/run/", "nobody");
// daemonize();
// log_printf(INFO, "running in background now");
- tun_device_t* dev;
- tun_init(&dev, NULL, "tun", "192.168.23.1", "192.168.23.2");
- if(!dev) {
- log_printf(ERR, "error on tun_init");
- exit(-1);
- }
+/* tun_device_t* dev; */
+/* tun_init(&dev, NULL, "tun", "192.168.23.1", "192.168.23.2"); */
+/* if(!dev) { */
+/* log_printf(ERR, "error on tun_init"); */
+/* exit(-1); */
+/* } */
/* int ret = exec_script("post-up.sh", dev->actual_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;
}