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