#include <inttypes.h>
#include <assert.h>
+#include <arpa/inet.h>
+
#include "libxl.h"
#include "libxl_utils.h"
#include "libxl_internal.h"
nic_info->mac[5] = r[2];
nic_info->ifname = NULL;
nic_info->bridge = strdup("xenbr0");
+ nic_info->ip.s_addr = 0UL;
if ( asprintf(&nic_info->script, "%s/vif-bridge",
libxl_xen_script_dir_path()) < 0 )
return ERROR_FAIL;
flexarray_append(back, libxl__sprintf(&gc, "%02x:%02x:%02x:%02x:%02x:%02x",
nic->mac[0], nic->mac[1], nic->mac[2],
nic->mac[3], nic->mac[4], nic->mac[5]));
+ if (nic->ip.s_addr != 0UL) {
+ char dst[INET_ADDRSTRLEN];
+ const char *addr = inet_ntop(AF_INET, &nic->ip.s_addr, &dst[0], INET_ADDRSTRLEN);
+ if (addr) {
+ flexarray_append(back, "ip");
+ flexarray_append(back, libxl__strdup(&gc, addr));
+ } else {
+ LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "Unable to format IP address");
+ }
+ }
flexarray_append(back, "bridge");
flexarray_append(back, libxl__strdup(&gc, nic->bridge));
flexarray_append(back, "handle");
xentoollog_logger_stdiostream *logger;
int autoballoon = 1;
char *lockfile;
+char *default_vifscript = NULL;
static xentoollog_level minmsglevel = XTL_PROGRESS;
}
}
+ if (!xlu_cfg_get_string (config, "vifscript", &buf))
+ default_vifscript = strdup(buf);
+
xlu_cfg_destroy(config);
}
nic = d_config->vifs + d_config->num_vifs;
CHK_ERRNO( libxl_device_nic_init(nic, d_config->num_vifs) );
+ if (default_vifscript) {
+ free(nic->script);
+ nic->script = strdup(default_vifscript);
+ }
+
p = strtok(buf2, ",");
if (!p)
goto skip;