Remove Olsrd host emulation code
authorHenning Rogge <hrogge@googlemail.com>
Sat, 27 Jun 2009 22:44:08 +0000 (00:44 +0200)
committerHenning Rogge <hrogge@googlemail.com>
Sat, 27 Jun 2009 22:44:08 +0000 (00:44 +0200)
src/bsd/net.c
src/interfaces.h
src/linux/net.c
src/net_os.h
src/olsr_cfg.h
src/unix/ifnet.c
src/win32/ifnet.c
src/win32/net.c

index 8a7439d..85fdad1 100644 (file)
@@ -293,41 +293,6 @@ restore_settings(int version)
 }
 
 
-/**
- *Creates a nonblocking broadcast socket.
- *@param sa sockaddr struct. Used for bind(2).
- *@return the FD of the socket or -1 on error.
- */
-int
-gethemusocket(struct sockaddr_in *pin)
-{
-  int sock, on = 1;
-
-  OLSR_INFO(LOG_NETWORKING, "       Connecting to switch daemon port %d...", pin->sin_port);
-
-
-  if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
-    OLSR_ERROR(LOG_NETWORKING, "Cannot open socket for emulation (%s)\n", strerror(errno));
-    olsr_exit(EXIT_FAILURE);
-  }
-
-  if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(on)) < 0) {
-    OLSR_ERROR(LOG_NETWORKING, "Cannot set socket options for emulation (%s)\n", strerror(errno));
-    close(sock);
-    olsr_exit(EXIT_FAILURE);
-  }
-  /* connect to PORT on HOST */
-  if (connect(sock, (struct sockaddr *)pin, sizeof(*pin)) < 0) {
-    OLSR_ERROR(LOG_NETWORKING, "Cannot connect socket for emulation (%s)\n", strerror(errno));
-    close(sock);
-    olsr_exit(EXIT_FAILURE);
-  }
-
-  /* Keep TCP socket blocking */
-  return (sock);
-}
-
-
 int
 getsocket(int bufspace, char *int_name __attribute__ ((unused)))
 {
index 5b30827..a0215ad 100644 (file)
@@ -142,7 +142,6 @@ struct interface {
   struct sockaddr_in6 int6_multaddr;   /* Multicast */
   /* IP independent */
   union olsr_ip_addr ip_addr;
-  int is_hcif;                         /* Is this a emulated host-client if? */
   int olsr_socket;                     /* The broadcast socket for this interface */
   int int_metric;                      /* metric of interface */
   int int_mtu;                         /* MTU of interface */
index c25e929..db9143d 100644 (file)
@@ -313,10 +313,6 @@ restore_settings(int version)
   OLSR_FOR_ALL_INTERFACES(ifs) {
     char procfile[FILENAME_MAX];
     FILE *proc_fd;
-    /* Ignore host-emulation interfaces */
-    if (ifs->is_hcif) {
-      continue;
-    }
     /* ICMP redirects */
 
     /* Generate the procfile name */
@@ -346,41 +342,6 @@ restore_settings(int version)
   return 1;
 }
 
-/**
- *Creates a blocking tcp socket for communication with switch daemon.
- *@param sa sockaddr struct. Used for bind(2).
- *@return the FD of the socket or -1 on error.
- */
-int
-gethemusocket(struct sockaddr_in *pin)
-{
-  int sock, on;
-
-  OLSR_INFO(LOG_NETWORKING, "       Connecting to switch daemon port %d\n", pin->sin_port);
-  if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
-    OLSR_ERROR(LOG_NETWORKING, "Cannot open socket for emulation (%s)\n", strerror(errno));
-    olsr_exit(EXIT_FAILURE);
-  }
-
-  on = 1;
-  if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) < 0) {
-    OLSR_ERROR(LOG_NETWORKING, "Cannot reuse address for socket for emulation (%s)\n", strerror(errno));
-    close(sock);
-    olsr_exit(EXIT_FAILURE);
-  }
-
-  /* connect to PORT on HOST */
-  if (connect(sock, (struct sockaddr *)pin, sizeof(*pin)) < 0) {
-    OLSR_ERROR(LOG_NETWORKING, "Cannot connect socket for emulation (%s)\n", strerror(errno));
-    close(sock);
-    olsr_exit(EXIT_FAILURE);
-  }
-
-  /* Keep TCP socket blocking */
-  return sock;
-}
-
-
 /**
  *Creates a nonblocking broadcast socket.
  *@param sa sockaddr struct. Used for bind(2).
index 1908dae..c669714 100644 (file)
@@ -81,9 +81,6 @@ int
 int
   enable_ip_forwarding(int);
 
-int
-  gethemusocket(struct sockaddr_in *);
-
 int
   getsocket(int, char *);
 
index 8190077..1298f7a 100644 (file)
@@ -146,7 +146,6 @@ struct olsr_if_options {
 struct olsr_if_config {
   char *name;
   char *config;
-  union olsr_ip_addr hemu_ip;
   struct interface *interf;
   struct olsr_if_options *cnf;
   struct olsr_if_config *next;
index 582245e..d8de62a 100644 (file)
@@ -164,8 +164,6 @@ chk_if_changed(struct olsr_if_config *iface)
     return 0;
   }
 
-  ifp->is_hcif = false;
-
   /* trying to detect if interface is wireless. */
   ifp->is_wireless = check_wireless_interface(ifr.ifr_name);
 
@@ -310,126 +308,6 @@ chk_if_changed(struct olsr_if_config *iface)
   return if_changes;
 }
 
-/**
- * Initializes the special interface used in
- * host-client emulation
- */
-int
-add_hemu_if(struct olsr_if_config *iface)
-{
-  struct interface *ifp;
-  uint32_t addr[4];
-#if !defined REMOVE_LOG_INFO
-  struct ipaddr_str buf;
-#endif
-  size_t name_size;
-
-  ifp = olsr_cookie_malloc(interface_mem_cookie);
-
-  iface->interf = ifp;
-  lock_interface(iface->interf);
-
-  name_size = strlen("hcif01") + 1;
-  ifp->is_hcif = true;
-  ifp->int_name = olsr_malloc(name_size, "Interface update 3");
-  ifp->int_metric = 0;
-
-  strscpy(ifp->int_name, "hcif01", name_size);
-
-  OLSR_INFO(LOG_INTERFACE, "Adding %s (host emulation) with address %s\n",
-            ifp->int_name, olsr_ip_to_string(&buf, &iface->hemu_ip));
-
-  /* Queue */
-  list_add_before(&interface_head, &ifp->int_node);
-
-  if (!olsr_cnf->fixed_origaddr && olsr_ipcmp(&all_zero, &olsr_cnf->router_id) == 0) {
-    olsr_cnf->router_id = iface->hemu_ip;
-    OLSR_INFO(LOG_INTERFACE, "New main address: %s\n", olsr_ip_to_string(&buf, &olsr_cnf->router_id));
-  }
-
-  ifp->int_mtu = OLSR_DEFAULT_MTU - (olsr_cnf->ip_version == AF_INET6 ? UDP_IPV6_HDRSIZE : UDP_IPV4_HDRSIZE);
-
-  /* Set up buffer */
-  net_add_buffer(ifp);
-
-  if (olsr_cnf->ip_version == AF_INET) {
-    struct sockaddr_in sin4;
-
-    memset(&sin4, 0, sizeof(sin4));
-    sin4.sin_family = AF_INET;
-    sin4.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
-    sin4.sin_port = htons(10150);
-
-    /* IP version 4 */
-    ifp->ip_addr.v4 = iface->hemu_ip.v4;
-    memcpy(&ifp->int_addr.sin_addr, &iface->hemu_ip, olsr_cnf->ipsize);
-
-    /*
-     * We create one socket for each interface and bind
-     * the socket to it. This to ensure that we can control
-     * on what interface the message is transmitted
-     */
-
-    ifp->olsr_socket = gethemusocket(&sin4);
-  } else {
-    /* IP version 6 */
-    memcpy(&ifp->ip_addr, &iface->hemu_ip, olsr_cnf->ipsize);
-
-#if 0
-    /*
-     * We create one socket for each interface and bind
-     * the socket to it. This to ensure that we can control
-     * on what interface the message is transmitted
-     */
-
-    ifp->olsr_socket = gethcsocket6(&addrsock6, BUFSPACE, ifp->int_name);
-    if (ifp->olsr_socket < 0) {
-      olsr_exit(EXIT_FAULURE);
-    }
-    join_mcast(ifp, ifp->olsr_socket);
-#endif
-  }
-
-  /* Send IP as first 4/16 bytes on socket */
-  memcpy(addr, iface->hemu_ip.v6.s6_addr, olsr_cnf->ipsize);
-  addr[0] = htonl(addr[0]);
-  addr[1] = htonl(addr[1]);
-  addr[2] = htonl(addr[2]);
-  addr[3] = htonl(addr[3]);
-
-  if (send(ifp->olsr_socket, addr, olsr_cnf->ipsize, 0) != (int)olsr_cnf->ipsize) {
-    OLSR_WARN(LOG_INTERFACE, "Error sending IP.\n");
-  }
-
-  /* Register socket */
-  add_olsr_socket(ifp->olsr_socket, &olsr_input_hostemu, NULL, NULL, SP_PR_READ);
-
-  /*
-   * Register functions for periodic message generation
-   */
-
-  ifp->hello_gen_timer =
-    olsr_start_timer(iface->cnf->hello_params.emission_interval * MSEC_PER_SEC,
-                     HELLO_JITTER, OLSR_TIMER_PERIODIC, &olsr_output_lq_hello, ifp, hello_gen_timer_cookie);
-  ifp->tc_gen_timer =
-    olsr_start_timer(iface->cnf->tc_params.emission_interval * MSEC_PER_SEC,
-                     TC_JITTER, OLSR_TIMER_PERIODIC, &olsr_output_lq_tc, ifp, tc_gen_timer_cookie);
-  ifp->mid_gen_timer =
-    olsr_start_timer(iface->cnf->mid_params.emission_interval * MSEC_PER_SEC,
-                     MID_JITTER, OLSR_TIMER_PERIODIC, &generate_mid, ifp, mid_gen_timer_cookie);
-  ifp->hna_gen_timer =
-    olsr_start_timer(iface->cnf->hna_params.emission_interval * MSEC_PER_SEC,
-                     HNA_JITTER, OLSR_TIMER_PERIODIC, &generate_hna, ifp, hna_gen_timer_cookie);
-
-  ifp->hello_etime = (olsr_reltime) (iface->cnf->hello_params.emission_interval * MSEC_PER_SEC);
-  ifp->valtimes.hello = reltime_to_me(iface->cnf->hello_params.validity_time * MSEC_PER_SEC);
-  ifp->valtimes.tc = reltime_to_me(iface->cnf->tc_params.validity_time * MSEC_PER_SEC);
-  ifp->valtimes.mid = reltime_to_me(iface->cnf->mid_params.validity_time * MSEC_PER_SEC);
-  ifp->valtimes.hna = reltime_to_me(iface->cnf->hna_params.validity_time * MSEC_PER_SEC);
-
-  return 1;
-}
-
 static char basenamestr[32];
 static const char *if_basename(const char *name);
 static const char *
@@ -502,8 +380,6 @@ chk_if_up(struct olsr_if_config *iface)
     goto cleanup;
   }
 
-  ifp->is_hcif = false;
-
   /* trying to detect if interface is wireless. */
   ifp->is_wireless = check_wireless_interface(ifr.ifr_name);
   OLSR_DEBUG(LOG_INTERFACE, ifp->is_wireless ? "\tWireless interface detected\n" : "\tNot a wireless interface\n");
index 8a1a1ca..a25170b 100644 (file)
@@ -488,137 +488,6 @@ ListInterfaces(void)
   }
 }
 
-/**
- * Initializes the special interface used in
- * host-client emulation
- */
-int
-add_hemu_if(struct olsr_if_config *iface)
-{
-  struct interface *ifp;
-  uint32_t addr[4];
-  struct ipaddr_str buf;
-  size_t name_size;
-
-  ifp = olsr_cookie_malloc(interface_mem_cookie);
-
-  iface->interf = ifp;
-  lock_interface(iface->interf);
-
-  name_size = strlen("hcif01") + 1;
-  ifp->is_hcif = true;
-  ifp->int_name = olsr_malloc(name_size, "Interface update 3");
-  ifp->int_metric = 0;
-
-  strscpy(ifp->int_name, "hcif01", name_size);
-
-  OLSR_INFO(LOG_NETWORKING, "Adding %s(host emulation):\n", ifp->int_name);
-
-  OLSR_INFO(LOG_NETWORKING, "       Address:%s\n", olsr_ip_to_string(&buf, &iface->hemu_ip));
-
-  OLSR_INFO(LOG_NETWORKING, "       NB! This is a emulated interface\n       that does not exist in the kernel!\n");
-
-  /* Queue */
-  list_add_before(&interface_head, &ifp->int_node);
-
-  if (!olsr_cnf->fixed_origaddr && olsr_ipcmp(&all_zero, &olsr_cnf->router_id) == 0) {
-    olsr_cnf->router_id = iface->hemu_ip;
-    OLSR_INFO(LOG_NETWORKING, "New main address: %s\n", olsr_ip_to_string(&buf, &olsr_cnf->router_id));
-  }
-
-  ifp->int_mtu = OLSR_DEFAULT_MTU;
-
-  ifp->int_mtu -= olsr_cnf->ip_version == AF_INET6 ? UDP_IPV6_HDRSIZE : UDP_IPV4_HDRSIZE;
-
-  /* Set up buffer */
-  net_add_buffer(ifp);
-
-
-  if (olsr_cnf->ip_version == AF_INET) {
-    struct sockaddr_in sin4;
-
-    memset(&sin4, 0, sizeof(sin4));
-
-    sin4.sin_family = AF_INET;
-    sin4.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
-    sin4.sin_port = htons(10150);
-
-    /* IP version 4 */
-    ifp->ip_addr.v4 = iface->hemu_ip.v4;
-
-    memcpy(&ifp->int_addr.sin_addr, &iface->hemu_ip, olsr_cnf->ipsize);
-
-    /*
-     *We create one socket for each interface and bind
-     *the socket to it. This to ensure that we can control
-     *on what interface the message is transmitted
-     */
-
-    ifp->olsr_socket = gethemusocket(&sin4);
-
-  } else {
-    /* IP version 6 */
-    memcpy(&ifp->ip_addr, &iface->hemu_ip, olsr_cnf->ipsize);
-
-#if 0
-    /*
-     *We create one socket for each interface and bind
-     *the socket to it. This to ensure that we can control
-     *on what interface the message is transmitted
-     */
-
-    ifp->olsr_socket = gethcsocket6(&addrsock6, bufspace, ifp->int_name);
-
-    join_mcast(ifp, ifp->olsr_socket);
-
-    if (ifp->olsr_socket < 0) {
-      fprintf(stderr, "Could not initialize socket... exiting!\n\n");
-      exit(1);
-    }
-#endif
-  }
-
-  /* Send IP as first 4/16 bytes on socket */
-  memcpy(addr, iface->hemu_ip.v6.s6_addr, olsr_cnf->ipsize);
-  addr[0] = htonl(addr[0]);
-  addr[1] = htonl(addr[1]);
-  addr[2] = htonl(addr[2]);
-  addr[3] = htonl(addr[3]);
-
-  if (send(ifp->olsr_socket, (char *)addr, olsr_cnf->ipsize, 0) != (int)olsr_cnf->ipsize) {
-    OLSR_WARN(LOG_NETWORKING, "Error sending IP!");
-  }
-
-  /* Register socket */
-  add_olsr_socket(ifp->olsr_socket, &olsr_input_hostemu, NULL, NULL, SP_PR_READ);
-
-  /*
-   * Register functions for periodic message generation
-   */
-  ifp->hello_gen_timer =
-    olsr_start_timer(iface->cnf->hello_params.emission_interval * MSEC_PER_SEC,
-                     HELLO_JITTER, OLSR_TIMER_PERIODIC, &olsr_output_lq_hello, ifp, hello_gen_timer_cookie->ci_id);
-  ifp->tc_gen_timer =
-    olsr_start_timer(iface->cnf->tc_params.emission_interval * MSEC_PER_SEC,
-                     TC_JITTER, OLSR_TIMER_PERIODIC, &olsr_output_lq_tc, ifp, tc_gen_timer_cookie->ci_id);
-  ifp->mid_gen_timer =
-    olsr_start_timer(iface->cnf->mid_params.emission_interval * MSEC_PER_SEC,
-                     MID_JITTER, OLSR_TIMER_PERIODIC, &generate_mid, ifp, mid_gen_timer_cookie->ci_id);
-  ifp->hna_gen_timer =
-    olsr_start_timer(iface->cnf->hna_params.emission_interval * MSEC_PER_SEC,
-                     HNA_JITTER, OLSR_TIMER_PERIODIC, &generate_hna, ifp, hna_gen_timer_cookie->ci_id);
-
-  ifp->hello_etime = (olsr_reltime) (iface->cnf->hello_params.emission_interval * MSEC_PER_SEC);
-  ifp->valtimes.hello = reltime_to_me(iface->cnf->hello_params.validity_time * MSEC_PER_SEC);
-  ifp->valtimes.tc = reltime_to_me(iface->cnf->tc_params.validity_time * MSEC_PER_SEC);
-  ifp->valtimes.mid = reltime_to_me(iface->cnf->mid_params.validity_time * MSEC_PER_SEC);
-  ifp->valtimes.hna = reltime_to_me(iface->cnf->hna_params.validity_time * MSEC_PER_SEC);
-
-  lock_interface(ifp);
-
-  return 1;
-}
-
 int
 chk_if_changed(struct olsr_if_config *IntConf)
 {
index 61a9ca1..3a290c0 100644 (file)
@@ -73,29 +73,6 @@ void DisableIcmpRedirects(void);
 int disable_ip_forwarding(int Ver);
 
 
-int
-gethemusocket(struct sockaddr_in *pin)
-{
-  int sock;
-
-  OLSR_INFO(LOG_NETWORKING, "       Connecting to switch daemon port %d\n", pin->sin_port);
-
-  if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
-    OLSR_ERROR(LOG_NETWORKING, "Cannot open socket for emulation (%s)\n", strerror(errno));
-    olsr_exit(EXIT_FAILURE);
-  }
-
-  /* connect to PORT on HOST */
-  if (connect(sock, (struct sockaddr *)pin, sizeof(*pin)) < 0) {
-    OLSR_ERROR(LOG_NETWORKING, "Cannot reuse address for socket for emulation (%s)\n", strerror(errno));
-    CLOSESOCKET(sock);
-    olsr_exit(EXIT_FAILURE);
-  }
-
-  /* Keep TCP socket blocking */
-  return (sock);
-}
-
 int
 getsocket(int BuffSize, char *Int __attribute__ ((unused)))
 {