[libvirt] PATCH: Generic internal API for network XML parser/formatter

Jim Meyering jim at meyering.net
Tue Jul 1 17:20:10 UTC 2008


"Daniel P. Berrange" <berrange at redhat.com> wrote:
...
> diff -r a6e5acdd23df src/network_conf.h
...
> +/* 2 possible types of forwarding */
> +enum virNetworkForwardType {
> +    VIR_NETWORK_FORWARD_NONE   = 0,
> +    VIR_NETWORK_FORWARD_NAT,
> +    VIR_NETWORK_FORWARD_ROUTE,
> +
> +    VIR_NETWORK_FORWARD_LAST,
> +};
> +
> +typedef struct _virNetworkDHCPRangeDef virNetworkDHCPRangeDef;
> +typedef virNetworkDHCPRangeDef *virNetworkDHCPRangeDefPtr;
> +struct _virNetworkDHCPRangeDef {
> +    char *start;
> +    char *end;
> +};
> +
> +typedef struct _virNetworkDef virNetworkDef;
> +typedef virNetworkDef *virNetworkDefPtr;
> +struct _virNetworkDef {
> +    unsigned char uuid[VIR_UUID_BUFLEN];
> +    char *name;
> +
> +    char *bridge;       /* Name of bridge device */
> +    int stp : 1; /* Spanning tree protocol */
> +    long delay;   /* Bridge forward delay (ms) */

It looks like delay can only be non-negative, so "unsigned long" would work.
The only change that'd have to accompany it would be s/%ld/%lu/
in a printf format string.

> +    int forwardType;    /* One of virNetworkForwardType constants */

How about using enum virNetworkForwardType?
Nicer for debugging.

> +    char *forwardDev;   /* Destination device for forwarding */
> +
> +    char *ipAddress;    /* Bridge IP address */
> +    char *netmask;
> +    char *network;
> +
> +    int nranges;        /* Zero or more dhcp ranges */

This is never negative, so could be "unsigned int".

...
> +struct _virNetworkObj {
> +    int dnsmasqPid;

How about pid_t?

> +    unsigned int active : 1;
> +    unsigned int autostart : 1;
> +    unsigned int persistent : 1;
> +
> +    char *configFile;    /* Persistent config file path */
> +    char *autostartLink; /* Symlink path for autostart */
> +
> +    virNetworkDefPtr def; /* The current definition */
> +    virNetworkDefPtr newDef; /* New definition to activate at shutdown */
> +
> +    virNetworkObjPtr next;
> +};




More information about the libvir-list mailing list