mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
virsh: Add wrapper for virStreamFree
Similarly to virshDomainFree add a wrapper for the snapshot object freeing function. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
This commit is contained in:
parent
d39bd3998e
commit
f427e6c643
@ -868,7 +868,7 @@ sc_gettext_init:
|
|||||||
$(_sc_search_regexp)
|
$(_sc_search_regexp)
|
||||||
|
|
||||||
sc_prohibit_obj_free_apis_in_virsh:
|
sc_prohibit_obj_free_apis_in_virsh:
|
||||||
@prohibit='\bvir(Domain|DomainSnapshot|Interface|Network|NodeDevice|NWFilter|Secret|StoragePool|StorageVol)Free\b' \
|
@prohibit='\bvir(Domain|DomainSnapshot|Interface|Network|NodeDevice|NWFilter|Secret|StoragePool|StorageVol|Stream)Free\b' \
|
||||||
in_vc_files='virsh.*\.[ch]$$' \
|
in_vc_files='virsh.*\.[ch]$$' \
|
||||||
exclude='sc_prohibit_obj_free_apis_in_virsh' \
|
exclude='sc_prohibit_obj_free_apis_in_virsh' \
|
||||||
halt='avoid using public virXXXFree in virsh, use virsh-prefixed wrappers instead' \
|
halt='avoid using public virXXXFree in virsh, use virsh-prefixed wrappers instead' \
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
# include "internal.h"
|
# include "internal.h"
|
||||||
# include "virsh.h"
|
# include "virsh.h"
|
||||||
# include "virsh-console.h"
|
# include "virsh-console.h"
|
||||||
|
# include "virsh-util.h"
|
||||||
# include "virlog.h"
|
# include "virlog.h"
|
||||||
# include "virfile.h"
|
# include "virfile.h"
|
||||||
# include "viralloc.h"
|
# include "viralloc.h"
|
||||||
@ -117,8 +118,8 @@ virConsoleShutdown(virConsole *con,
|
|||||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("cannot terminate console stream"));
|
_("cannot terminate console stream"));
|
||||||
}
|
}
|
||||||
virStreamFree(con->st);
|
|
||||||
con->st = NULL;
|
g_clear_pointer(&con->st, virshStreamFree);
|
||||||
}
|
}
|
||||||
VIR_FREE(con->streamToTerminal.data);
|
VIR_FREE(con->streamToTerminal.data);
|
||||||
VIR_FREE(con->terminalToStream.data);
|
VIR_FREE(con->terminalToStream.data);
|
||||||
@ -140,8 +141,7 @@ virConsoleDispose(void *obj)
|
|||||||
{
|
{
|
||||||
virConsole *con = obj;
|
virConsole *con = obj;
|
||||||
|
|
||||||
if (con->st)
|
virshStreamFree(con->st);
|
||||||
virStreamFree(con->st);
|
|
||||||
|
|
||||||
virCondDestroy(&con->cond);
|
virCondDestroy(&con->cond);
|
||||||
virResetError(&con->error);
|
virResetError(&con->error);
|
||||||
|
@ -5540,7 +5540,7 @@ cmdScreenshot(vshControl *ctl, const vshCmd *cmd)
|
|||||||
const char *name = NULL;
|
const char *name = NULL;
|
||||||
char *file = NULL;
|
char *file = NULL;
|
||||||
int fd = -1;
|
int fd = -1;
|
||||||
virStreamPtr st = NULL;
|
g_autoptr(virshStream) st = NULL;
|
||||||
unsigned int screen = 0;
|
unsigned int screen = 0;
|
||||||
unsigned int flags = 0; /* currently unused */
|
unsigned int flags = 0; /* currently unused */
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
@ -5610,8 +5610,6 @@ cmdScreenshot(vshControl *ctl, const vshCmd *cmd)
|
|||||||
unlink(file);
|
unlink(file);
|
||||||
if (generated)
|
if (generated)
|
||||||
VIR_FREE(file);
|
VIR_FREE(file);
|
||||||
if (st)
|
|
||||||
virStreamFree(st);
|
|
||||||
VIR_FORCE_CLOSE(fd);
|
VIR_FORCE_CLOSE(fd);
|
||||||
VIR_FREE(mime);
|
VIR_FREE(mime);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -362,6 +362,18 @@ virshStorageVolFree(virStorageVolPtr vol)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
virshStreamFree(virStreamPtr stream)
|
||||||
|
{
|
||||||
|
if (!stream)
|
||||||
|
return;
|
||||||
|
|
||||||
|
vshSaveLibvirtHelperError();
|
||||||
|
virStreamFree(stream); /* sc_prohibit_obj_free_apis_in_virsh */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
virshDomainGetXMLFromDom(vshControl *ctl,
|
virshDomainGetXMLFromDom(vshControl *ctl,
|
||||||
virDomainPtr dom,
|
virDomainPtr dom,
|
||||||
|
@ -89,6 +89,11 @@ void
|
|||||||
virshStorageVolFree(virStorageVolPtr vol);
|
virshStorageVolFree(virStorageVolPtr vol);
|
||||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virshStorageVol, virshStorageVolFree);
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virshStorageVol, virshStorageVolFree);
|
||||||
|
|
||||||
|
typedef virStream virshStream;
|
||||||
|
void
|
||||||
|
virshStreamFree(virStreamPtr stream);
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virshStream, virshStreamFree);
|
||||||
|
|
||||||
int
|
int
|
||||||
virshDomainState(vshControl *ctl,
|
virshDomainState(vshControl *ctl,
|
||||||
virDomainPtr dom,
|
virDomainPtr dom,
|
||||||
|
@ -656,7 +656,7 @@ cmdVolUpload(vshControl *ctl, const vshCmd *cmd)
|
|||||||
g_autoptr(virshStorageVol) vol = NULL;
|
g_autoptr(virshStorageVol) vol = NULL;
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
int fd = -1;
|
int fd = -1;
|
||||||
virStreamPtr st = NULL;
|
g_autoptr(virshStream) st = NULL;
|
||||||
const char *name = NULL;
|
const char *name = NULL;
|
||||||
unsigned long long offset = 0, length = 0;
|
unsigned long long offset = 0, length = 0;
|
||||||
virshControl *priv = ctl->privData;
|
virshControl *priv = ctl->privData;
|
||||||
@ -731,8 +731,6 @@ cmdVolUpload(vshControl *ctl, const vshCmd *cmd)
|
|||||||
ret = true;
|
ret = true;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
if (st)
|
|
||||||
virStreamFree(st);
|
|
||||||
VIR_FORCE_CLOSE(fd);
|
VIR_FORCE_CLOSE(fd);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -776,7 +774,7 @@ cmdVolDownload(vshControl *ctl, const vshCmd *cmd)
|
|||||||
g_autoptr(virshStorageVol) vol = NULL;
|
g_autoptr(virshStorageVol) vol = NULL;
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
int fd = -1;
|
int fd = -1;
|
||||||
virStreamPtr st = NULL;
|
g_autoptr(virshStream) st = NULL;
|
||||||
const char *name = NULL;
|
const char *name = NULL;
|
||||||
unsigned long long offset = 0, length = 0;
|
unsigned long long offset = 0, length = 0;
|
||||||
bool created = false;
|
bool created = false;
|
||||||
@ -851,8 +849,6 @@ cmdVolDownload(vshControl *ctl, const vshCmd *cmd)
|
|||||||
VIR_FORCE_CLOSE(fd);
|
VIR_FORCE_CLOSE(fd);
|
||||||
if (!ret && created)
|
if (!ret && created)
|
||||||
unlink(file);
|
unlink(file);
|
||||||
if (st)
|
|
||||||
virStreamFree(st);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user