45
45
unsigned int watch;
46
struct connman_network *network;
49
static int cable_probe(struct connman_network *network)
51
DBG("network %p", network);
56
static void cable_remove(struct connman_network *network)
58
DBG("network %p", network);
61
static int cable_connect(struct connman_network *network)
63
DBG("network %p", network);
68
static int cable_disconnect(struct connman_network *network)
70
DBG("network %p", network);
75
static struct connman_network_driver cable_driver = {
77
.type = CONNMAN_NETWORK_TYPE_ETHERNET,
79
.remove = cable_remove,
80
.connect = cable_connect,
81
.disconnect = cable_disconnect,
84
static void add_network(struct connman_device *device)
86
struct connman_network *network;
89
network = connman_network_create("carrier",
90
CONNMAN_NETWORK_TYPE_ETHERNET);
94
index = connman_device_get_index(device);
95
connman_network_set_index(network, index);
97
connman_network_set_name(network, "Wired");
98
connman_network_set_protocol(network, CONNMAN_NETWORK_PROTOCOL_IP);
100
if (connman_device_add_network(device, network) < 0) {
101
connman_network_unref(network);
105
connman_network_set_available(network, TRUE);
107
connman_network_set_group(network, "cable");
109
connman_network_set_method(network, CONNMAN_IPCONFIG_METHOD_DHCP);
111
connman_network_set_connected(network, TRUE);
48
114
static void ethernet_newlink(unsigned flags, unsigned change, void *user_data)
65
131
if ((ethernet->flags & IFF_LOWER_UP) != (flags & IFF_LOWER_UP)) {
66
132
if (flags & IFF_LOWER_UP) {
67
133
DBG("carrier on");
68
connman_device_set_carrier(device, TRUE);
70
136
DBG("carrier off");
71
connman_device_set_carrier(device, FALSE);
137
connman_device_remove_all_networks(device);
127
195
return connman_inet_ifdown(ethernet->index);
130
static int ethernet_connect(struct connman_device *device)
132
struct ethernet_data *ethernet = connman_device_get_data(device);
134
DBG("device %p", device);
136
if (!(ethernet->flags & IFF_LOWER_UP))
139
return connman_device_set_connected(device, TRUE);
142
static int ethernet_disconnect(struct connman_device *device)
144
struct ethernet_data *ethernet = connman_device_get_data(device);
146
DBG("device %p", device);
148
if (!(ethernet->flags & IFF_LOWER_UP))
151
return connman_device_set_connected(device, FALSE);
154
198
static struct connman_device_driver ethernet_driver = {
155
199
.name = "ethernet",
156
200
.type = CONNMAN_DEVICE_TYPE_ETHERNET,
158
202
.remove = ethernet_remove,
159
203
.enable = ethernet_enable,
160
204
.disable = ethernet_disable,
161
.connect = ethernet_connect,
162
.disconnect = ethernet_disconnect,
165
207
static int ethernet_init(void)
167
return connman_device_driver_register(ðernet_driver);
211
err = connman_network_driver_register(&cable_driver);
215
err = connman_device_driver_register(ðernet_driver);
217
connman_network_driver_unregister(&cable_driver);
170
224
static void ethernet_exit(void)
226
connman_network_driver_unregister(&cable_driver);
172
228
connman_device_driver_unregister(ðernet_driver);