"Richard W.M. Jones" <rjones(a)redhat.com> wrote:
Jim Meyering wrote:
> "Richard W.M. Jones" <rjones(a)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.