/* Determine the local CID so that we can log it to help users to connect to this VM */
unsigned local_cid;
- r = vsock_get_local_cid(&local_cid);
- if (r < 0) {
- if (ERRNO_IS_DEVICE_ABSENT(r)) {
- log_debug("Not creating AF_VSOCK ssh listener, since /dev/vsock is not available (even though AF_VSOCK is).");
- return 0;
- }
-
- return log_error_errno(r, "Failed to query local AF_VSOCK CID: %m");
- }
+ r = vsock_get_local_cid_or_warn(&local_cid);
+ if (r <= 0)
+ return r;
r = make_sshd_template_unit(
dest,
#include "mkdir.h"
#include "parse-argument.h"
#include "pretty-print.h"
-#include "socket-util.h"
#include "ssh-util.h"
#include "string-util.h"
#include "tmpfile-util.h"
if (r <= 0)
return r;
- unsigned local_cid;
- r = vsock_get_local_cid(&local_cid);
- if (r < 0) {
- if (ERRNO_IS_DEVICE_ABSENT(r)) {
- log_debug("Not creating issue file, since /dev/vsock is not available (even though AF_VSOCK is).");
- *ret_cid = 0;
- return 0;
- }
-
- return log_error_errno(r, "Failed to query local AF_VSOCK CID: %m");
- }
-
- *ret_cid = local_cid;
- return 1;
+ return vsock_get_local_cid_or_warn(ret_cid);
}
static int run(int argc, char* argv[]) {
#include "errno-util.h"
#include "log.h"
+#include "socket-util.h"
#include "ssh-util.h"
int vsock_open_or_warn(int *ret) {
return fd >= 0;
}
+
+int vsock_get_local_cid_or_warn(unsigned *ret) {
+ int r;
+
+ r = vsock_get_local_cid(ret);
+ if (ERRNO_IS_NEG_DEVICE_ABSENT(r)) {
+ log_debug_errno(r, "/dev/vsock is not available (even though AF_VSOCK is), ignoring: %m");
+ if (ret)
+ *ret = 0; /* bogus value */
+ return 0;
+ }
+ if (r < 0)
+ return log_error_errno(r, "Failed to query local AF_VSOCK CID: %m");
+ return 1;
+}
/* SPDX-License-Identifier: LGPL-2.1-or-later */
int vsock_open_or_warn(int *ret);
+int vsock_get_local_cid_or_warn(unsigned *ret);