[Libvir] 7/22 no uid_t / getuid
Jim Meyering
jim at meyering.net
Fri Dec 7 13:19:21 UTC 2007
"Richard W.M. Jones" <rjones at redhat.com> wrote:
> Jim Meyering wrote:
>> "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".
>
> autoconf docs seem to suggest that this usage is deprecated:
>
> <quote>
> -- Macro: AC_CHECK_TYPE (TYPE, DEFAULT)
> Autoconf, up to 2.13, used to provide this version of
> `AC_CHECK_TYPE', deprecated because of its flaws. First, although
> it is a member of the `CHECK' clan, it does more than just
> checking. Secondly, missing types are defined using `#define',
> not `typedef', and this can lead to problems in the case of
> pointer types.
> </quote>
Good catch. I forgot there's a specific macro for that type:
AC_TYPE_UID_T
For some others, like socklen_t, sigset_t, sig_atomic_t,
you do have use AC_CHECK_TYPE, so that comment needs some
clarification.
>> 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; }
Oops. In case it's not all moot -- if this code is removed --
That should be s/int/uid_t/, of course.
>> #endif /* __MINGW32__ */
>>
>> you could avoid the remaining ifdefs.
>
> Better just to check for getuid?
>
> Having said that I still think it'd be better just to delete this code
> because forcing non-root Xen connections to be readonly doesn't seem
> very useful to me.
More information about the libvir-list
mailing list