setenv ("PATH", "/sbin:/usr/sbin:/bin:/usr/bin", 1);
setenv ("SHELL", "/bin/sh", 1);
setenv ("LC_ALL", "C", 1);
+ setenv ("TERM", "dumb", 1);
#ifndef WIN32
/* We document that umask defaults to 022 (it should be this anyway). */
* 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
int
prog_exists (const char *prog)
{
- static const char *dirs[] =
+ static const char * const dirs[] =
{ "/sbin", "/usr/sbin", "/bin", "/usr/bin" };
size_t i;
char buf[1024];