mirror of
https://github.com/strongswan/strongswan.git
synced 2025-10-07 00:01:49 -04:00
android: Provide a fallback for sigwaitinfo()
This commit is contained in:
parent
9be6b2e0b5
commit
073761ec41
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2010 Tobias Brunner
|
* Copyright (C) 2010-2015 Tobias Brunner
|
||||||
* Hochschule fuer Technik Rapperswil
|
* Hochschule fuer Technik Rapperswil
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
@ -21,6 +21,8 @@
|
|||||||
#ifndef ANDROID_H_
|
#ifndef ANDROID_H_
|
||||||
#define ANDROID_H_
|
#define ANDROID_H_
|
||||||
|
|
||||||
|
#include <android/api-level.h>
|
||||||
|
|
||||||
/* stuff defined in AndroidConfig.h, which is included using the -include
|
/* stuff defined in AndroidConfig.h, which is included using the -include
|
||||||
* command-line option, thus cannot be undefined using -U CFLAGS options.
|
* command-line option, thus cannot be undefined using -U CFLAGS options.
|
||||||
* the reason we have to undefine these flags in the first place, is that
|
* the reason we have to undefine these flags in the first place, is that
|
||||||
@ -28,4 +30,30 @@
|
|||||||
* actually defined. */
|
* actually defined. */
|
||||||
#undef HAVE_BACKTRACE
|
#undef HAVE_BACKTRACE
|
||||||
|
|
||||||
|
/* sigwaitinfo() is not defined up to this API level, provide a fallback */
|
||||||
|
#if __ANDROID_API__ <= 21
|
||||||
|
#include <errno.h>
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
|
static inline int sigwaitinfo(const sigset_t *set, void *info)
|
||||||
|
{
|
||||||
|
int sig, err;
|
||||||
|
|
||||||
|
if (info)
|
||||||
|
{ /* we don't replicate siginfo_t, which we don't use */
|
||||||
|
errno = EINVAL;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
err = sigwait(set, &sig);
|
||||||
|
if (err != 0)
|
||||||
|
{
|
||||||
|
errno = err;
|
||||||
|
sig = -1;
|
||||||
|
}
|
||||||
|
return sig;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
#error Check availability of sigwaitinfo() in this API level
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /** ANDROID_H_ @}*/
|
#endif /** ANDROID_H_ @}*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user