Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Related Pages

route-linux.c File Reference

#include "config.h"
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <asm/types.h>
#include <netinet/in.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <net/route.h>
#include <ctype.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "dnet.h"

Go to the source code of this file.

Classes

struct  route_handle

Defines

#define ADDR_ISHOST(a)
#define PROC_ROUTE_FILE   "/proc/net/route"
#define PROC_IPV6_ROUTE_FILE   "/proc/net/ipv6_route"

Functions

route_troute_open (void)
int route_add (route_t *r, const struct route_entry *entry)
int route_delete (route_t *r, const struct route_entry *entry)
int route_get (route_t *r, struct route_entry *entry)
int route_loop (route_t *r, route_handler callback, void *arg)
route_troute_close (route_t *r)


Define Documentation

#define ADDR_ISHOST  ) 
 

Value:

(((a)->addr_type == ADDR_TYPE_IP &&     \
                          (a)->addr_bits == IP_ADDR_BITS) ||    \
                         ((a)->addr_type == ADDR_TYPE_IP6 &&    \
                          (a)->addr_bits == IP6_ADDR_BITS))

Definition at line 32 of file route-linux.c.

#define PROC_IPV6_ROUTE_FILE   "/proc/net/ipv6_route"
 

Definition at line 38 of file route-linux.c.

Referenced by route_loop().

#define PROC_ROUTE_FILE   "/proc/net/route"
 

Definition at line 37 of file route-linux.c.

Referenced by route_loop().


Function Documentation

int route_add route_t r,
const struct route_entry entry
 

Definition at line 71 of file route-linux.c.

References addr::addr_bits, addr_btos(), ADDR_ISHOST, addr_net(), addr_ntos(), memcpy, memset, route_entry::route_dst, and route_entry::route_gw.

route_t* route_close route_t r  ) 
 

Definition at line 276 of file route-linux.c.

References NULL.

int route_delete route_t r,
const struct route_entry entry
 

Definition at line 94 of file route-linux.c.

References addr::addr_bits, addr_btos(), ADDR_ISHOST, addr_net(), addr_ntos(), memcpy, memset, and route_entry::route_dst.

int route_get route_t r,
struct route_entry entry
 

Definition at line 116 of file route-linux.c.

References addr::addr_bits, addr::addr_type, ADDR_TYPE_IP, ADDR_TYPE_IP6, errno, IP6_ADDR_LEN, IP_ADDR_ANY, IP_ADDR_LEN, memcpy, memset, route_entry::route_dst, and route_entry::route_gw.

int route_loop route_t r,
route_handler  callback,
void *  arg
 

Definition at line 210 of file route-linux.c.

References addr_aton, addr::addr_bits, addr_mtob(), addr::addr_type, ADDR_TYPE_IP, IP6_ADDR_BITS, IP_ADDR_ANY, IP_ADDR_BITS, IP_ADDR_LEN, NULL, PROC_IPV6_ROUTE_FILE, PROC_ROUTE_FILE, route_entry::route_dst, route_entry::route_gw, and snprintf.

route_t* route_open void   ) 
 

Definition at line 46 of file route-linux.c.

References memset, NULL, and route_close().


Generated on Sun May 14 14:51:22 2006 by  doxygen 1.4.2