[libvirt] [PATCH] Implement forgotten backend of virInterfaceIsActive()
Daniel Veillard
veillard at redhat.com
Wed Apr 14 11:41:58 UTC 2010
On Tue, Apr 13, 2010 at 01:26:00PM -0400, Laine Stump wrote:
> Somehow the backend of this function was never implemented in
> libvirt's netcf driver, and nobody noticed until now. (The required
> netcf function was already in place, so nothing needs to change
> there.)
> ---
> src/interface/netcf_driver.c | 31 ++++++++++++++++++++++++++++++-
> 1 files changed, 30 insertions(+), 1 deletions(-)
>
> diff --git a/src/interface/netcf_driver.c b/src/interface/netcf_driver.c
> index 708f1f8..7163066 100644
> --- a/src/interface/netcf_driver.c
> +++ b/src/interface/netcf_driver.c
> @@ -511,6 +511,35 @@ cleanup:
> return ret;
> }
>
> +static int interfaceIsActive(virInterfacePtr ifinfo)
> +{
> + struct interface_driver *driver = ifinfo->conn->interfacePrivateData;
> + struct netcf_if *iface = NULL;
> + unsigned int flags = 0;
> +
> + interfaceDriverLock(driver);
> +
> + iface = interfaceDriverGetNetcfIF(driver->netcf, ifinfo);
> + if (!iface) {
> + /* helper already reported error */
> + goto cleanup;
> + }
> +
> + if (ncf_if_status(iface, &flags) < 0) {
> + const char *errmsg, *details;
> + int errcode = ncf_error(driver->netcf, &errmsg, &details);
> + interfaceReportError(netcf_to_vir_err(errcode),
> + "failed to get status of interface %s (netcf: %s - %s)",
> + ifinfo->name, errmsg, details ? details : "");
> + goto cleanup;
> + }
> +
> +cleanup:
> + ncf_if_free(iface);
> + interfaceDriverUnlock(driver);
> + return flags & NETCF_IFACE_ACTIVE ? 1 : 0;
> +}
> +
> static virInterfaceDriver interfaceDriver = {
> "Interface",
> interfaceOpenInterface, /* open */
> @@ -526,7 +555,7 @@ static virInterfaceDriver interfaceDriver = {
> interfaceUndefine, /* interfaceUndefine */
> interfaceCreate, /* interfaceCreate */
> interfaceDestroy, /* interfaceDestroy */
> - NULL, /* interfaceIsActive */
> + interfaceIsActive, /* interfaceIsActive */
> };
>
> int interfaceRegister(void) {
Oops :-)
Looks fine, ACK
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list