[libvirt] [PATCH 1/7] parallels: introduce and use string constants for network types and names
Maxim Nestratov
mnestratov at parallels.com
Tue Mar 17 14:25:12 UTC 2015
17.03.2015 17:15, Michal Privoznik пишет:
> On 13.03.2015 16:52, Maxim Nestratov wrote:
>> Signed-off-by: Maxim Nestratov <mnestratov at parallels.com>
>> ---
>> src/parallels/parallels_network.c | 6 +++---
>> src/parallels/parallels_sdk.c | 6 +++---
>> src/parallels/parallels_utils.h | 8 +++++++-
>> 3 files changed, 13 insertions(+), 7 deletions(-)
>>
>> diff --git a/src/parallels/parallels_network.c b/src/parallels/parallels_network.c
>> index 1d3b694..bb7ec5e 100644
>> --- a/src/parallels/parallels_network.c
>> +++ b/src/parallels/parallels_network.c
>> @@ -211,12 +211,12 @@ parallelsLoadNetwork(parallelsConnPtr privconn, virJSONValuePtr jobj)
>> goto cleanup;
>> }
>>
>> - if (STREQ(tmp, "bridged")) {
>> + if (STREQ(tmp, PARALLELS_BRIDGED_NETWORK_TYPE)) {
>> def->forward.type = VIR_NETWORK_FORWARD_BRIDGE;
>>
>> if (parallelsGetBridgedNetInfo(def, jobj) < 0)
>> goto cleanup;
>> - } else if (STREQ(tmp, "host-only")) {
>> + } else if (STREQ(tmp, PARALLELS_HOSTONLY_NETWORK_TYPE)) {
>> def->forward.type = VIR_NETWORK_FORWARD_NONE;
>>
> How about introducing 'int parallelsNetworkTypeFromString(const char *)'
> using our ENUM_DECL and ENUM_IMPL macros? This code could then be turned
> into:
>
> if ((def->forward.type = parallelNetworkTypeFromString(tmp)) < 0) {
> parallelsParseError();
> goto cleanup;
> }
>
> switch((virNetworkForwardType) def->forward.type) {
> case VIR_NETWORK_FORWARD_BRIDGE:
> if (parallelsGetBridgedNetInfo(def, jobj) < 0)
> goto cleanup;
> break;
> case VIR_NETWORK_FORWARD_NONE:
> if (parallelsGetHostOnlyNetInfo(def, def->name) < 0)
> goto cleanup;
> ...
> }
>
> I find it more future proof then STREQ() spaghetti.
>
> Michal
Ok. Makes sence. I'll do this in the next series version.
More information about the libvir-list
mailing list