mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-11-04 05:15:22 +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 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@350730 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		@@ -17,6 +17,10 @@ case `uname -sr` in
 | 
			
		||||
		MY_AC_VER=259
 | 
			
		||||
		MY_AM_VER=19
 | 
			
		||||
		;;
 | 
			
		||||
	OpenBSD*)
 | 
			
		||||
		export AUTOCONF_VERSION=2.63
 | 
			
		||||
		export AUTOMAKE_VERSION=1.9
 | 
			
		||||
		;;
 | 
			
		||||
	*'BSD'*)
 | 
			
		||||
		MY_AC_VER=-2.62
 | 
			
		||||
		MY_AM_VER=-1.9
 | 
			
		||||
 
 | 
			
		||||
@@ -531,7 +531,8 @@ AC_TYPE_OFF_T
 | 
			
		||||
AC_TYPE_PID_T
 | 
			
		||||
AC_TYPE_SIZE_T
 | 
			
		||||
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_HEADER_TIME
 | 
			
		||||
AC_STRUCT_TM
 | 
			
		||||
 
 | 
			
		||||
@@ -1193,7 +1193,12 @@ static pthread_t lthread;
 | 
			
		||||
static int read_credentials(int fd, char *buffer, size_t size, struct console *con)
 | 
			
		||||
{
 | 
			
		||||
#if defined(SO_PEERCRED)
 | 
			
		||||
#ifdef HAVE_STRUCT_SOCKPEERCRED_UID
 | 
			
		||||
#define HAVE_STRUCT_UCRED_UID
 | 
			
		||||
	struct sockpeercred cred;
 | 
			
		||||
#else
 | 
			
		||||
	struct ucred cred;
 | 
			
		||||
#endif
 | 
			
		||||
	socklen_t len = sizeof(cred);
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(HAVE_GETPEEREID)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user