daemonSetupNetworking(virNetServerPtr srv,
virNetServerPtr srvAdm,
struct daemonConfig *config,
+#ifdef WITH_IP
+ bool ipsock,
+ bool privileged,
+#endif /* ! WITH_IP */
const char *sock_path,
const char *sock_path_ro,
- const char *sock_path_adm,
- bool ipsock,
- bool privileged)
+ const char *sock_path_adm)
{
gid_t unix_sock_gid = 0;
int unix_sock_ro_mask = 0;
{ .name = DAEMON_NAME ".socket", .family = AF_UNIX, .path = sock_path },
{ .name = DAEMON_NAME "-ro.socket", .family = AF_UNIX, .path = sock_path_ro },
{ .name = DAEMON_NAME "-admin.socket", .family = AF_UNIX, .path = sock_path_adm },
+#ifdef WITH_IP
{ .name = DAEMON_NAME "-tcp.socket", .family = AF_INET },
{ .name = DAEMON_NAME "-tls.socket", .family = AF_INET },
+#endif /* ! WITH_IP */
};
+#ifdef WITH_IP
if ((actmap[3].port = virSocketAddrResolveService(config->tcp_port)) < 0)
return -1;
if ((actmap[4].port = virSocketAddrResolveService(config->tls_port)) < 0)
return -1;
+#endif /* ! WITH_IP */
if (virSystemdGetActivation(actmap, ARRAY_CARDINALITY(actmap), &act) < 0)
return -1;
config->admin_max_client_requests) < 0)
goto cleanup;
+#ifdef WITH_IP
if (((ipsock && config->listen_tcp) || act) &&
virNetServerAddServiceTCP(srv,
act,
}
virObjectUnref(ctxt);
}
+#endif /* ! WITH_IP */
if (act &&
virSystemdActivationComplete(act) < 0)
{ "-h | --help", N_("Display program help") },
{ "-v | --verbose", N_("Verbose messages") },
{ "-d | --daemon", N_("Run as a daemon & write PID file") },
+#ifdef WITH_IP
{ "-l | --listen", N_("Listen for TCP/IP connections") },
+#endif /* !WITH_IP */
{ "-t | --timeout <secs>", N_("Exit after timeout period") },
{ "-f | --config <file>", N_("Configuration file") },
{ "-V | --version", N_("Display version information") },
LOCALSTATEDIR, SOCK_PREFIX);
fprintf(stderr, "\n");
+#ifdef WITH_IP
fprintf(stderr, " %s\n", _("TLS:"));
fprintf(stderr, " %s %s\n",
_("CA certificate:"),
_("Server private key:"),
privileged ? LIBVIRT_SERVERKEY : "$HOME/.pki/libvirt/serverkey.pem");
fprintf(stderr, "\n");
+#endif /* ! WITH_IP */
fprintf(stderr, " %s\n",
_("PID file (unless overridden by -p):"));
int timeout = -1; /* -t: Shutdown timeout */
int verbose = 0;
int godaemon = 0;
+#ifdef WITH_IP
int ipsock = 0;
+#endif /* ! WITH_IP */
struct daemonConfig *config;
bool privileged = geteuid() == 0 ? true : false;
bool implicit_conf = false;
struct option opts[] = {
{ "verbose", no_argument, &verbose, 'v'},
{ "daemon", no_argument, &godaemon, 'd'},
+#ifdef WITH_IP
{ "listen", no_argument, &ipsock, 'l'},
+#endif /* ! WITH_IP */
{ "config", required_argument, NULL, 'f'},
{ "timeout", required_argument, NULL, 't'},
{ "pid-file", required_argument, NULL, 'p'},
int optidx = 0;
int c;
char *tmp;
+#ifdef WITH_IP
+ const char *optstr = "ldf:p:t:vVh";
+#else /* ! WITH_IP */
+ const char *optstr = "df:p:t:vVh";
+#endif /* ! WITH_IP */
- c = getopt_long(argc, argv, "ldf:p:t:vVh", opts, &optidx);
+ c = getopt_long(argc, argv, optstr, opts, &optidx);
if (c == -1)
break;
case 'd':
godaemon = 1;
break;
+
+#ifdef WITH_IP
case 'l':
ipsock = 1;
break;
+#endif /* ! WITH_IP */
case 't':
if (virStrToLong_i(optarg, &tmp, 10, &timeout) != 0
if (daemonSetupNetworking(srv, srvAdm,
config,
+#ifdef WITH_IP
+ ipsock,
+ privileged,
+#endif /* !WITH_IP */
sock_file,
sock_file_ro,
- sock_file_adm,
- ipsock, privileged) < 0) {
+ sock_file_adm) < 0) {
ret = VIR_DAEMON_ERR_NETWORK;
goto cleanup;
}
if (VIR_ALLOC(data) < 0)
return NULL;
+#ifdef WITH_IP
data->listen_tls = 1;
data->listen_tcp = 0;
if (VIR_STRDUP(data->tls_port, LIBVIRTD_TLS_PORT) < 0 ||
VIR_STRDUP(data->tcp_port, LIBVIRTD_TCP_PORT) < 0)
goto error;
+#endif /* !WITH_IP */
/* Only default to PolicyKit if running as root */
#if WITH_POLKIT
VIR_STRDUP(data->unix_sock_admin_perms, "0700") < 0)
goto error;
-#if WITH_SASL
+#ifdef WITH_IP
+# if WITH_SASL
data->auth_tcp = REMOTE_AUTH_SASL;
-#else
+# else
data->auth_tcp = REMOTE_AUTH_NONE;
-#endif
+# endif
data->auth_tls = REMOTE_AUTH_NONE;
+#endif /* ! WITH_IP */
data->min_workers = 5;
data->max_workers = 20;
if (!data)
return;
+#ifdef WITH_IP
VIR_FREE(data->listen_addr);
VIR_FREE(data->tls_port);
VIR_FREE(data->tcp_port);
+#endif /* ! WITH_IP */
+
tmp = data->access_drivers;
while (tmp && *tmp) {
VIR_FREE(*tmp);
VIR_FREE(data->unix_sock_group);
VIR_FREE(data->unix_sock_dir);
- tmp = data->tls_allowed_dn_list;
+ tmp = data->sasl_allowed_username_list;
while (tmp && *tmp) {
VIR_FREE(*tmp);
tmp++;
}
- VIR_FREE(data->tls_allowed_dn_list);
+ VIR_FREE(data->sasl_allowed_username_list);
- tmp = data->sasl_allowed_username_list;
+#ifdef WITH_IP
+ tmp = data->tls_allowed_dn_list;
while (tmp && *tmp) {
VIR_FREE(*tmp);
tmp++;
}
- VIR_FREE(data->sasl_allowed_username_list);
+ VIR_FREE(data->tls_allowed_dn_list);
+
VIR_FREE(data->tls_priority);
VIR_FREE(data->key_file);
VIR_FREE(data->ca_file);
VIR_FREE(data->cert_file);
VIR_FREE(data->crl_file);
+#endif /* ! WITH_IP */
VIR_FREE(data->host_uuid);
VIR_FREE(data->host_uuid_source);
const char *filename,
virConfPtr conf)
{
+#ifdef WITH_IP
if (virConfGetValueBool(conf, "listen_tcp", &data->listen_tcp) < 0)
goto error;
if (virConfGetValueBool(conf, "listen_tls", &data->listen_tls) < 0)
goto error;
if (virConfGetValueString(conf, "listen_addr", &data->listen_addr) < 0)
goto error;
+#endif /* !WITH_IP */
if (remoteConfigGetAuth(conf, filename, "auth_unix_rw", &data->auth_unix_rw) < 0)
goto error;
#endif
if (remoteConfigGetAuth(conf, filename, "auth_unix_ro", &data->auth_unix_ro) < 0)
goto error;
+
+#ifdef WITH_IP
if (remoteConfigGetAuth(conf, filename, "auth_tcp", &data->auth_tcp) < 0)
goto error;
if (remoteConfigGetAuth(conf, filename, "auth_tls", &data->auth_tls) < 0)
goto error;
+#endif /* ! WITH_IP */
if (virConfGetValueStringList(conf, "access_drivers", false,
&data->access_drivers) < 0)
if (virConfGetValueString(conf, "unix_sock_dir", &data->unix_sock_dir) < 0)
goto error;
+#ifdef WITH_IP
if (virConfGetValueBool(conf, "tls_no_sanity_certificate", &data->tls_no_sanity_certificate) < 0)
goto error;
if (virConfGetValueBool(conf, "tls_no_verify_certificate", &data->tls_no_verify_certificate) < 0)
&data->tls_allowed_dn_list) < 0)
goto error;
+ if (virConfGetValueString(conf, "tls_priority", &data->tls_priority) < 0)
+ goto error;
+#endif /* ! WITH_IP */
if (virConfGetValueStringList(conf, "sasl_allowed_username_list", false,
&data->sasl_allowed_username_list) < 0)
goto error;
- if (virConfGetValueString(conf, "tls_priority", &data->tls_priority) < 0)
- goto error;
-
if (virConfGetValueUInt(conf, "min_workers", &data->min_workers) < 0)
goto error;
if (virConfGetValueUInt(conf, "max_workers", &data->max_workers) < 0)