X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fguestfsd.c;h=03a975a7553ccff549a0b709a7f2acbcaa0e68a4;hb=8a9f2ca65521d093ac14307aca4370d9497ac840;hp=69baf9e845010f139700927a40d3159e569200cd;hpb=641e8275b3b63b68c82ef80735bb55f9da05ef2c;p=libguestfs.git diff --git a/daemon/guestfsd.c b/daemon/guestfsd.c index 69baf9e..03a975a 100644 --- a/daemon/guestfsd.c +++ b/daemon/guestfsd.c @@ -55,9 +55,14 @@ static char *read_cmdline (void); -/* Also in guestfs.c */ -#define GUESTFWD_ADDR "10.0.2.4" -#define GUESTFWD_PORT "6666" +/* This is the default address we connect to for very old libraries + * which didn't specify the address and port number explicitly on the + * kernel command line. It's now recommended to always specify the + * address and port number on the command line, so this will not be + * used any more. + */ +#define OLD_GUESTFWD_ADDR "10.0.2.4" +#define OLD_GUESTFWD_PORT "6666" /* This is only a hint. If not defined, ignore it. */ #ifndef AI_ADDRCONFIG @@ -285,7 +290,7 @@ main (int argc, char *argv[]) /* Default vmchannel. */ if (vmchannel == NULL) { - vmchannel = strdup ("tcp:" GUESTFWD_ADDR ":" GUESTFWD_PORT); + vmchannel = strdup ("tcp:" OLD_GUESTFWD_ADDR ":" OLD_GUESTFWD_PORT); if (!vmchannel) { perror ("strdup"); exit (EXIT_FAILURE); @@ -1022,42 +1027,36 @@ print_arginfo (const struct printf_info *info, size_t n, int *argtypes) * the device nodes themselves will exist in the appliance. */ int -device_name_translation (char *device, const char *func) +device_name_translation (char *device) { int fd; fd = open (device, O_RDONLY); if (fd >= 0) { + close_ok: close (fd); return 0; } - if (errno != ENXIO && errno != ENOENT) { - error: - reply_with_perror ("%s: %s", func, device); + if (errno != ENXIO && errno != ENOENT) return -1; - } /* If the name begins with "/dev/sd" then try the alternatives. */ if (STRNEQLEN (device, "/dev/sd", 7)) - goto error; + return -1; device[5] = 'h'; /* /dev/hd (old IDE driver) */ fd = open (device, O_RDONLY); - if (fd >= 0) { - close (fd); - return 0; - } + if (fd >= 0) + goto close_ok; device[5] = 'v'; /* /dev/vd (for virtio devices) */ fd = open (device, O_RDONLY); - if (fd >= 0) { - close (fd); - return 0; - } + if (fd >= 0) + goto close_ok; device[5] = 's'; /* Restore original device name. */ - goto error; + return -1; } /* Check program exists and is executable on $PATH. Actually, we