This source file includes following definitions.
- ip_alias_init_1
- ip_alias_done_1
- ip_alias_print_1
- ip_alias_init
- ip_alias_done
- init_module
- cleanup_module
1 #include <linux/module.h>
2
3 #include <linux/types.h>
4 #include <linux/errno.h>
5 #include <linux/netdevice.h>
6 #include <linux/if.h>
7 #include <linux/inet.h>
8
9 #ifdef ALIAS_USER_LAND_DEBUG
10 #include "net_alias.h"
11 #include "ip_alias.h"
12 #include "user_stubs.h"
13 #endif
14
15 #include <linux/net_alias.h>
16 #include <net/ip_alias.h>
17
18
19
20
21 static int
22 ip_alias_init_1(struct net_alias *alias, struct sockaddr *sa)
23 {
24 #ifdef ALIAS_USER_LAND_DEBUG
25 printk("alias_init(%s) called.\n", alias->name);
26 #endif
27 MOD_INC_USE_COUNT;
28 return 0;
29 }
30
31
32
33
34 static int
35 ip_alias_done_1(struct net_alias *alias)
36 {
37 #ifdef ALIAS_USER_LAND_DEBUG
38 printk("alias_done(%s) called.\n", alias->name);
39 #endif
40 MOD_DEC_USE_COUNT;
41 return 0;
42 }
43
44
45
46
47
48 int
49 ip_alias_print_1(char *buf, int len, struct net_alias *alias)
50 {
51 char *p;
52
53 p = (char *) &alias->dev.pa_addr;
54 return sprintf(buf, "%d.%d.%d.%d",
55 (p[0] & 255), (p[1] & 255), (p[2] & 255), (p[3] & 255));
56 }
57
58
59
60
61
62 struct net_alias_type ip_alias_type =
63 {
64 AF_INET,
65 0,
66 "ip",
67 NULL,
68 NULL,
69 ip_alias_init_1,
70 ip_alias_done_1,
71 ip_alias_print_1,
72 NULL
73 };
74
75
76
77
78
79 int ip_alias_init(void)
80 {
81 return register_net_alias_type(&ip_alias_type, AF_INET);
82 }
83
84
85
86
87
88 int ip_alias_done(void)
89 {
90 return unregister_net_alias_type(&ip_alias_type);
91 }
92
93 #ifdef MODULE
94
95 int init_module(void)
96 {
97 if (ip_alias_init() != 0)
98 return -EIO;
99 return 0;
100 }
101
102 void cleanup_module(void)
103 {
104 if (ip_alias_done() != 0)
105 printk("ip_alias: can't remove module");
106 }
107
108 #endif