[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