Ejemplo n.º 1
0
in_addr_t anubis_default_route(void) {
    route_t *handle = route_open();
    struct route_entry route_entry = {0};
    in_addr_t addr = 0;
    
    if(!handle) {
        anubis_perror("route_open()");
        return addr;
    }//end if
    
    int ret = route_loop(handle, route_default_route_callback, (void *)&route_entry);
    
    if(ret == 1) {
        struct sockaddr_in sa = {0};
        addr_ntos(&route_entry.route_gw, (struct sockaddr *)&sa);
        addr = sa.sin_addr.s_addr;
        anubis_verbose("Default route: %s\n", anubis_ip_ntoa(addr));
    }//end if
    else {
        anubis_err("anubis_default_route(): Default gateway is not found\n");
    }//end else
    
    route_close(handle);
    return addr;
}//end anubis_default_route
Ejemplo n.º 2
0
int main(void) {
  route_t *r;

  r=route_open();
  if ( r == NULL ) {
    perror("Route open error");
    exit(-1);
  }

  if ( route_loop(r, print_route_entry, NULL) == -1 ) {
    fprintf(stderr, "Error in route table print\n");
    exit(-1);
  }

  route_close(r);
  exit(0);
}