On Tue, Jan 19, 2016 at 10:54:04AM +0100, Ján Tomko wrote: > For the actions ADD and OLD, split out creating the new lease object, > along with processing all the program args and environment variables > that are only needed in this case. > --- > src/network/leaseshelper.c | 156 ++++++++++++++++++++++++++------------------- > 1 file changed, 91 insertions(+), 65 deletions(-) > > diff --git a/src/network/leaseshelper.c b/src/network/leaseshelper.c > index eb1c0c7..547e1d8 100644 > --- a/src/network/leaseshelper.c > +++ b/src/network/leaseshelper.c > @@ -281,22 +281,102 @@ virLeasePrintLeases(virJSONValuePtr leases_array_new, > return ret; > } > > +static int > +virLeaseNewFromArgv(virJSONValuePtr *lease_ret, > + int argc, > + char **argv, I would have a slight preference for keeping argc/argv only referenced in main, and instead pass in the named parameters for the bits you need here, but not the end of the world. > + const char *ip, > + const char *server_duid) > +{ > + virJSONValuePtr lease_new = NULL; > + const char *clientid = virGetEnvAllowSUID("DNSMASQ_CLIENT_ID"); > + const char *exptime_tmp = virGetEnvAllowSUID("DNSMASQ_LEASE_EXPIRES"); > + const char *hostname = virGetEnvAllowSUID("DNSMASQ_SUPPLIED_HOSTNAME"); > + const char *iaid = virGetEnvAllowSUID("DNSMASQ_IAID"); > + const char *mac = NULL; > + long long expirytime = 0; > + char *exptime = NULL; > + int ret = -1; > + > + /* In case hostname is known, it is the 5th argument */ > + if (argc == 5) > + hostname = argv[4]; > + > + /* In case hostname is still unknown, use the last known one */ > + if (!hostname) > + hostname = virGetEnvAllowSUID("DNSMASQ_OLD_HOSTNAME"); > + > + /* Check if it is an IPv6 lease */ > + if (iaid) { > + mac = virGetEnvAllowSUID("DNSMASQ_MAC"); > + clientid = argv[2]; > + } else { > + mac = argv[2]; > + } ACK Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list