[Libvir] 7/22 no uid_t / getuid
Jim Meyering
jim at meyering.net
Fri Dec 7 11:42:35 UTC 2007
"Richard W.M. Jones" <rjones at redhat.com> wrote:
> There is no uid_t or getuid in MinGW.
>
> I'm not really sure that forcing connections readonly if the user is
> non-root is a useful thing to be doing anyway, so perhaps this code is
> better off just being deleted?
For the missing uid_t, you could add this to configure.in
AC_CHECK_TYPE(mode_t, int)
then no need for ifndef around the decl of "uid".
With this function (and a test for getuid in configure.in),
(or maybe that should be "return 0"?)
#ifndef HAVE_GETUID
static int getuid() { return 1; }
#endif /* __MINGW32__ */
you could avoid the remaining ifdefs.
> --
> Emerging Technologies, Red Hat - http://et.redhat.com/~rjones/
> Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod
> Rich.
>
> Street, Windsor, Berkshire, SL4 1TE, United Kingdom. Registered in
> England and Wales under Company Registration No. 03798903
> Index: src/virsh.c
> ===================================================================
> RCS file: /data/cvs/libvirt/src/virsh.c,v
> retrieving revision 1.118
> diff -u -r1.118 virsh.c
> --- src/virsh.c 6 Dec 2007 16:36:21 -0000 1.118
> +++ src/virsh.c 7 Dec 2007 10:44:05 -0000
> @@ -202,7 +202,9 @@
> virConnectPtr conn; /* connection to hypervisor (MAY BE NULL) */
> vshCmd *cmd; /* the current command */
> char *cmdstr; /* string with command */
> +#ifndef __MINGW32__
> uid_t uid; /* process owner */
> +#endif /* __MINGW32__ */
> int imode; /* interactive mode? */
> int quiet; /* quiet mode */
> int debug; /* print debug messages? */
> @@ -4508,17 +4523,21 @@
> if (ctl->conn)
> return FALSE;
>
> +#ifndef __MINGW32__
> ctl->uid = getuid();
> +#endif
>
> vshOpenLogFile(ctl);
>
> /* set up the library error handler */
> virSetErrorFunc(NULL, virshErrorHandler);
>
> +#ifndef __MINGW32__
> /* Force a non-root, Xen connection to readonly */
> if ((ctl->name == NULL ||
> !strcasecmp(ctl->name, "xen")) && ctl->uid != 0)
> ctl->readonly = 1;
> +#endif
More information about the libvir-list
mailing list