mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-30 02:26:23 +00:00
Make sure asterisk builds on OpenBSD
OpenBSD defines SO_PEERCRED, but it returns a 'struct sockpeercred', not 'struct ucred', which causes compilation of main/asterisk.c to fail in read_credentials(). This allows configure to check for sockpeercred and asterisk to deal with it properly. (closes issue ASTERISK-18929) Reported-by: Barry Miller Patch-by: Barry Miller ........ Merged revisions 350730 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 350731 from http://svn.asterisk.org/svn/asterisk/branches/10 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@350732 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -17,6 +17,10 @@ case `uname -sr` in
|
|||||||
MY_AC_VER=259
|
MY_AC_VER=259
|
||||||
MY_AM_VER=19
|
MY_AM_VER=19
|
||||||
;;
|
;;
|
||||||
|
OpenBSD*)
|
||||||
|
export AUTOCONF_VERSION=2.63
|
||||||
|
export AUTOMAKE_VERSION=1.9
|
||||||
|
;;
|
||||||
*'BSD'*)
|
*'BSD'*)
|
||||||
MY_AC_VER=-2.62
|
MY_AC_VER=-2.62
|
||||||
MY_AM_VER=-1.9
|
MY_AM_VER=-1.9
|
||||||
|
@@ -540,7 +540,8 @@ AC_TYPE_OFF_T
|
|||||||
AC_TYPE_PID_T
|
AC_TYPE_PID_T
|
||||||
AC_TYPE_SIZE_T
|
AC_TYPE_SIZE_T
|
||||||
AC_CHECK_MEMBERS([struct stat.st_blksize])
|
AC_CHECK_MEMBERS([struct stat.st_blksize])
|
||||||
AC_CHECK_MEMBERS([struct ucred.uid, struct ucred.cr_uid], [], [], [#include <sys/socket.h>])
|
AC_CHECK_MEMBERS([struct ucred.uid, struct ucred.cr_uid, struct sockpeercred.uid], [], [], [#include <sys/types.h>
|
||||||
|
#include <sys/socket.h> ])
|
||||||
AC_CHECK_MEMBERS([struct ifreq.ifr_ifru.ifru_hwaddr], [], [], [#include <net/if.h>])
|
AC_CHECK_MEMBERS([struct ifreq.ifr_ifru.ifru_hwaddr], [], [], [#include <net/if.h>])
|
||||||
AC_HEADER_TIME
|
AC_HEADER_TIME
|
||||||
AC_STRUCT_TM
|
AC_STRUCT_TM
|
||||||
|
@@ -1200,7 +1200,12 @@ static pthread_t lthread;
|
|||||||
static int read_credentials(int fd, char *buffer, size_t size, struct console *con)
|
static int read_credentials(int fd, char *buffer, size_t size, struct console *con)
|
||||||
{
|
{
|
||||||
#if defined(SO_PEERCRED)
|
#if defined(SO_PEERCRED)
|
||||||
|
#ifdef HAVE_STRUCT_SOCKPEERCRED_UID
|
||||||
|
#define HAVE_STRUCT_UCRED_UID
|
||||||
|
struct sockpeercred cred;
|
||||||
|
#else
|
||||||
struct ucred cred;
|
struct ucred cred;
|
||||||
|
#endif
|
||||||
socklen_t len = sizeof(cred);
|
socklen_t len = sizeof(cred);
|
||||||
#endif
|
#endif
|
||||||
#if defined(HAVE_GETPEEREID)
|
#if defined(HAVE_GETPEEREID)
|
||||||
|
Reference in New Issue
Block a user