提交 057788c5 编写于 作者: E Erik Skultety

virlog: Introduce virLogOutputFree

Provide a separate method to free a logging output object. This will come handy
once a method to create an individual logging output object is introduced.
Signed-off-by: NErik Skultety <eskultet@redhat.com>
上级 51b2606f
master openEuler-20.03-LTS openEuler-20.09 v2.1-maint v2.2-maint v3.0-maint v3.2-maint v3.7-maint v4.1-maint v4.10-maint v4.2-maint v4.3-maint v4.4-maint v4.5-maint v4.6-maint v4.7-maint v4.8-maint v4.9-maint v5.0-maint v5.1-maint v5.1.0-maint v5.2-maint v5.3-maint v6.5.0-rc2 v6.5.0-rc1 v6.4.0 v6.4.0-rc1 v6.3.0 v6.3.0-rc1 v6.2.0 v6.2.0-rc1 v6.1.0 v6.1.0-rc2 v6.1.0-rc1 v6.0.0 v6.0.0-rc2 v6.0.0-rc1 v5.10.0 v5.10.0-rc2 v5.10.0-rc1 v5.9.0 v5.9.0-rc1 v5.8.0 v5.8.0-rc2 v5.8.0-rc1 v5.7.0 v5.7.0-rc2 v5.7.0-rc1 v5.6.0 v5.6.0-rc2 v5.6.0-rc1 v5.5.0 v5.5.0-rc2 v5.5.0-rc1 v5.4.0 v5.4.0-rc2 v5.4.0-rc1 v5.3.0 v5.3.0-rc2 v5.3.0-rc1 v5.2.0 v5.2.0-rc2 v5.2.0-rc1 v5.1.0 v5.1.0-rc2 v5.1.0-rc1 v5.0.0 v5.0.0-rc2 v5.0.0-rc1 v4.10.0 v4.10.0-rc2 v4.10.0-rc1 v4.9.0 v4.9.0-rc1 v4.8.0 v4.8.0-rc2 v4.8.0-rc1 v4.7.0 v4.7.0-rc2 v4.7.0-rc1 v4.6.0 v4.6.0-rc2 v4.6.0-rc1 v4.5.0 v4.5.0-rc2 v4.5.0-rc1 v4.4.0 v4.4.0-rc2 v4.4.0-rc1 v4.3.0 v4.3.0-rc2 v4.3.0-rc1 v4.2.0 v4.2.0-rc2 v4.2.0-rc1 v4.1.0 v4.1.0-rc2 v4.1.0-rc1 v4.0.0 v4.0.0-rc2 v4.0.0-rc1 v3.10.0 v3.10.0-rc2 v3.10.0-rc1 v3.9.0 v3.9.0-rc2 v3.9.0-rc1 v3.8.0 v3.8.0-rc1 v3.7.0 v3.7.0-rc2 v3.7.0-rc1 v3.6.0 v3.6.0-rc2 v3.6.0-rc1 v3.5.0 v3.5.0-rc2 v3.5.0-rc1 v3.4.0 v3.4.0-rc2 v3.4.0-rc1 v3.3.0 v3.3.0-rc2 v3.3.0-rc1 v3.2.1 v3.2.0 v3.2.0-rc2 v3.2.0-rc1 v3.1.0 v3.1.0-rc2 v3.1.0-rc1 v3.0.0 v3.0.0-rc2 v3.0.0-rc1 v2.5.0 v2.5.0-rc2 v2.5.0-rc1 v2.4.0 v2.4.0-rc2 v2.4.0-rc1 v2.3.0 v2.3.0-rc2 v2.3.0-rc1 v2.2.1 v2.2.0 v2.2.0-rc2 v2.2.0-rc1 v2.1.0 v2.1.0-rc1 CVE-2017-1000256 CVE-2017-2635
无相关合并请求
......@@ -1822,6 +1822,7 @@ virLogGetNbOutputs;
virLogGetOutputs;
virLogLock;
virLogMessage;
virLogOutputFree;
virLogParseDefaultPriority;
virLogParseFilters;
virLogParseOutputs;
......
......@@ -106,8 +106,6 @@ struct _virLogOutput {
virLogDestination dest;
char *name;
};
typedef struct _virLogOutput virLogOutput;
typedef virLogOutput *virLogOutputPtr;
static virLogOutputPtr *virLogOutputs;
static size_t virLogNbOutputs;
......@@ -329,17 +327,27 @@ virLogResetOutputs(void)
{
size_t i;
for (i = 0; i < virLogNbOutputs; i++) {
if (virLogOutputs[i]->c != NULL)
virLogOutputs[i]->c(virLogOutputs[i]->data);
VIR_FREE(virLogOutputs[i]->name);
VIR_FREE(virLogOutputs[i]);
}
for (i = 0; i < virLogNbOutputs; i++)
virLogOutputFree(virLogOutputs[i]);
VIR_FREE(virLogOutputs);
virLogNbOutputs = 0;
}
void
virLogOutputFree(virLogOutputPtr output)
{
if (!output)
return;
if (output->c)
output->c(output->data);
VIR_FREE(output->name);
VIR_FREE(output);
}
/**
* virLogDefineOutput:
* @f: the function to call to output a message
......
......@@ -130,6 +130,9 @@ struct _virLogMetadata {
typedef struct _virLogMetadata virLogMetadata;
typedef struct _virLogMetadata *virLogMetadataPtr;
typedef struct _virLogOutput virLogOutput;
typedef virLogOutput *virLogOutputPtr;
/**
* virLogOutputFunc:
* @src: the source of the log message
......@@ -187,6 +190,7 @@ int virLogDefineOutput(virLogOutputFunc f,
virLogDestination dest,
const char *name,
unsigned int flags);
void virLogOutputFree(virLogOutputPtr output);
/*
* Internal logging API
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
反馈
建议
客服 返回
顶部