IBR-DTNSuite  0.8
tools/src/DTNTun/dtntun.c
Go to the documentation of this file.
00001 
00002 
00003 /*
00004 #include <arpa/inet.h>
00005 #include <netinet/in.h>
00006 #include <sys/socket.h>
00007 */
00008 
00009 #include <inttypes.h>
00010 #include <pthread.h>
00011 
00012 
00013 #include "tun.h"
00014 #include "receiver.h"
00015 
00016 #include <ibrdtn/api/dtn_api.h>
00017 //#include "/usr/local/include/ibrdtn/api/api/dtn_api.h"
00018 
00019 
00020 static char devname[256];
00021 static int tun_fd=-1;
00022 
00023 void bundle_received(const void *data, uint32_t len) {
00024     printf("Bundle received, %i bytes\n",len);
00025     printf("Data: %s\n",(const char *)data);
00026 }
00027 
00028 int main()
00029 {
00030     DTN_EP dtnfd=-1;
00031 
00032     pthread_t receiver;
00033 
00034     printf("Tunnel\n");
00035     dtn_hithere();
00036     dtnfd=dtn_register_endpoint("test",bundle_received, NULL);
00037 
00038     printf("Got dtnfd %i\n",dtnfd);
00039 
00040     //dtn_close_endpoint(dtnfd);
00041 
00042     strncpy(devname,"ibrdtn0",256);
00043     tun_fd=tun_create(devname);
00044     printf("Got %i\n",tun_fd);
00045     tun_conf_ipv4(devname, "172.16.0.1","172.16.0.2");
00046 
00047      pthread_create(&receiver,NULL, receiver_run, (void *) &tun_fd);
00048 
00049     while(1) {
00050         sleep(10);
00051     }
00052     return 0;
00053 }