Hi Martin,

> Below patch can be used to fix bug 3076.
> Currently, the service disconnect can only work for the one based on network, 
> so Ethernet can not be disconnected. I use connman_device_set_carrier() to 
> set carrier as FALSE to disconnect ethernet service. I think it is almost 
> like the Ethernet cable is unplugged. I have verified that it can work fine 
> together with carrick.
> Please review it.
> 
> diff --git a/src/device.c b/src/device.c
> index cd9105d..bf72a69 100644
> --- a/src/device.c
> +++ b/src/device.c
> @@ -1332,6 +1332,8 @@ int __connman_device_connect(struct connman_device 
> *device)
>     if (device->disconnected == FALSE)
>        return -EINVAL;
> 
> +   if (device->mode == CONNMAN_DEVICE_MODE_TRANSPORT_IP)
> +      connman_device_set_carrier(device, TRUE);
>     return 0;
>  }
> 
> @@ -1353,6 +1355,8 @@ int __connman_device_disconnect(struct connman_device 
> *device)
>            __connman_network_disconnect(network);
>     }
> 
> +   if (device->mode == CONNMAN_DEVICE_MODE_TRANSPORT_IP)
> +      connman_device_set_carrier(device, FALSE);
>     return 0;
>  }

so I was testing this patch and had it in my tree for a while. Then I
decided to add connect/disconnect callbacks to devices. And implement
the detail in the Ethernet plugin.

Regards

Marcel


_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to