mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-02 09:01:46 -05:00
Apply Joe Marcus Clarke's FreeBSD patches
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@269 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
899788b4c5
commit
cd3ba7d0f7
6 changed files with 55 additions and 8 deletions
|
|
@ -74,11 +74,15 @@ AC_FUNC_REALLOC
|
||||||
AC_FUNC_SETPGRP
|
AC_FUNC_SETPGRP
|
||||||
AC_FUNC_VPRINTF
|
AC_FUNC_VPRINTF
|
||||||
AC_TYPE_SIGNAL
|
AC_TYPE_SIGNAL
|
||||||
AC_CHECK_FUNCS([gethostname gettimeofday memchr memmove memset mkdir mkfifo munmap rmdir socket strcspn strerror strrchr strspn strstr strtol strtoul pow strcasecmp putenv strchr strpbrk strdup])
|
AC_TYPE_UID_T
|
||||||
|
AC_CHECK_FUNCS([gethostname gettimeofday memchr memmove memset mkdir mkfifo munmap rmdir socket strcspn strerror strrchr strspn strstr strtol strtoul strcasecmp putenv strchr strpbrk strdup getgrgid_r getpwuid_r regcomp])
|
||||||
|
AC_CHECK_LIB(m, pow)
|
||||||
|
AC_CHECK_FUNCS(pow)
|
||||||
AC_FUNC_STAT
|
AC_FUNC_STAT
|
||||||
AC_HEADER_SYS_WAIT
|
AC_HEADER_SYS_WAIT
|
||||||
|
|
||||||
AC_C_BIGENDIAN
|
AC_C_BIGENDIAN
|
||||||
|
AC_FUNC_GETGROUPS
|
||||||
|
|
||||||
AC_CHECK_LIB(cap, cap_init, [CAP_LIBS='-lcap'], [CAP_LIBS=''])
|
AC_CHECK_LIB(cap, cap_init, [CAP_LIBS='-lcap'], [CAP_LIBS=''])
|
||||||
AC_SUBST(CAP_LIBS)
|
AC_SUBST(CAP_LIBS)
|
||||||
|
|
|
||||||
|
|
@ -624,7 +624,7 @@ endif
|
||||||
### Some minor stuff
|
### Some minor stuff
|
||||||
|
|
||||||
suid: polypaudio
|
suid: polypaudio
|
||||||
chown root:root $<
|
chown root $<
|
||||||
chmod u+s $<
|
chmod u+s $<
|
||||||
|
|
||||||
esdcompat.sh: esdcompat.sh.in Makefile
|
esdcompat.sh: esdcompat.sh.in Makefile
|
||||||
|
|
@ -643,7 +643,7 @@ daemon.conf: daemon.conf.in Makefile
|
||||||
-e 's,@DEFAULT_CONFIG_FILE\@,$(polypconfdir)/daemon.conf,g' < $< > $@
|
-e 's,@DEFAULT_CONFIG_FILE\@,$(polypconfdir)/daemon.conf,g' < $< > $@
|
||||||
|
|
||||||
install-exec-hook:
|
install-exec-hook:
|
||||||
chown root:root $(DESTDIR)$(bindir)/polypaudio
|
chown root $(DESTDIR)$(bindir)/polypaudio
|
||||||
chmod u+s $(DESTDIR)$(bindir)/polypaudio
|
chmod u+s $(DESTDIR)$(bindir)/polypaudio
|
||||||
|
|
||||||
$(SYMDEF_FILES): module-defs.h.m4
|
$(SYMDEF_FILES): module-defs.h.m4
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
***/
|
***/
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <stdint.h>
|
#include <inttypes.h>
|
||||||
|
|
||||||
struct pa_packet {
|
struct pa_packet {
|
||||||
enum { PA_PACKET_APPENDED, PA_PACKET_DYNAMIC } type;
|
enum { PA_PACKET_APPENDED, PA_PACKET_DYNAMIC } type;
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
#include "polyplib-internal.h"
|
#include "polyplib-internal.h"
|
||||||
#include "polyplib-context.h"
|
#include "polyplib-context.h"
|
||||||
|
|
|
||||||
|
|
@ -30,13 +30,16 @@
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <sys/types.h>
|
||||||
#include <sys/un.h>
|
#include <sys/un.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/types.h>
|
#include <netinet/in_systm.h>
|
||||||
#include <netinet/tcp.h>
|
#include <netinet/tcp.h>
|
||||||
#include <netinet/ip.h>
|
#include <netinet/ip.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
|
|
||||||
#include "socket-util.h"
|
#include "socket-util.h"
|
||||||
|
|
@ -94,9 +97,11 @@ int pa_socket_low_delay(int fd) {
|
||||||
int priority;
|
int priority;
|
||||||
assert(fd >= 0);
|
assert(fd >= 0);
|
||||||
|
|
||||||
|
#ifdef SO_PRIORITY
|
||||||
priority = 7;
|
priority = 7;
|
||||||
if (setsockopt(fd, SOL_SOCKET, SO_PRIORITY, &priority, sizeof(priority)) < 0)
|
if (setsockopt(fd, SOL_SOCKET, SO_PRIORITY, &priority, sizeof(priority)) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -109,12 +114,25 @@ int pa_socket_tcp_low_delay(int fd) {
|
||||||
ret = pa_socket_low_delay(fd);
|
ret = pa_socket_low_delay(fd);
|
||||||
|
|
||||||
on = 1;
|
on = 1;
|
||||||
|
#if defined(SOL_TCP) || defined(IPPROTO_TCP)
|
||||||
|
#if defined(SOL_TCP)
|
||||||
if (setsockopt(fd, SOL_TCP, TCP_NODELAY, &on, sizeof(on)) < 0)
|
if (setsockopt(fd, SOL_TCP, TCP_NODELAY, &on, sizeof(on)) < 0)
|
||||||
|
#else
|
||||||
|
if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)) < 0)
|
||||||
|
#endif
|
||||||
ret = -1;
|
ret = -1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(IPTOS_LOWDELAY) && defined(IP_TOS) && (defined(SOL_IP) || \
|
||||||
|
defined(IPPROTO_IP))
|
||||||
tos = IPTOS_LOWDELAY;
|
tos = IPTOS_LOWDELAY;
|
||||||
|
#ifdef SOL_IP
|
||||||
if (setsockopt(fd, SOL_IP, IP_TOS, &tos, sizeof(tos)) < 0)
|
if (setsockopt(fd, SOL_IP, IP_TOS, &tos, sizeof(tos)) < 0)
|
||||||
|
#else
|
||||||
|
if (setsockopt(fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)) < 0)
|
||||||
|
#endif
|
||||||
ret = -1;
|
ret = -1;
|
||||||
|
#endif
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
|
|
||||||
28
polyp/util.c
28
polyp/util.c
|
|
@ -209,7 +209,13 @@ char *pa_get_user_name(char *s, size_t l) {
|
||||||
if (!(p = getenv("LOGNAME")))
|
if (!(p = getenv("LOGNAME")))
|
||||||
if (!(p = getenv("USERNAME"))) {
|
if (!(p = getenv("USERNAME"))) {
|
||||||
|
|
||||||
|
#ifdef HAVE_GETPWUID_R
|
||||||
if (getpwuid_r(getuid(), &pw, buf, sizeof(buf), &r) != 0 || !r) {
|
if (getpwuid_r(getuid(), &pw, buf, sizeof(buf), &r) != 0 || !r) {
|
||||||
|
#else
|
||||||
|
/* XXX Not thread-safe, but needed on OSes (e.g. FreeBSD 4.X)
|
||||||
|
* that do not support getpwuid_r. */
|
||||||
|
if ((r = getpwuid(getuid())) == NULL) {
|
||||||
|
#endif
|
||||||
snprintf(s, l, "%lu", (unsigned long) getuid());
|
snprintf(s, l, "%lu", (unsigned long) getuid());
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
@ -445,11 +451,17 @@ int pa_parse_resample_method(const char *string) {
|
||||||
|
|
||||||
static int is_group(gid_t gid, const char *name) {
|
static int is_group(gid_t gid, const char *name) {
|
||||||
struct group group, *result = NULL;
|
struct group group, *result = NULL;
|
||||||
long n = sysconf(_SC_GETGR_R_SIZE_MAX);
|
long n;
|
||||||
void *data;
|
void *data;
|
||||||
int r = -1;
|
int r = -1;
|
||||||
|
|
||||||
assert(n > 0);
|
#ifdef HAVE_GETGRGID_R
|
||||||
|
#ifdef _SC_GETGR_R_SIZE_MAX
|
||||||
|
n = sysconf(_SC_GETGR_R_SIZE_MAX);
|
||||||
|
#else
|
||||||
|
n = -1;
|
||||||
|
#endif
|
||||||
|
if (n < 0) n = 512;
|
||||||
data = pa_xmalloc(n);
|
data = pa_xmalloc(n);
|
||||||
|
|
||||||
if (getgrgid_r(gid, &group, data, n, &result) < 0 || !result) {
|
if (getgrgid_r(gid, &group, data, n, &result) < 0 || !result) {
|
||||||
|
|
@ -462,6 +474,18 @@ static int is_group(gid_t gid, const char *name) {
|
||||||
|
|
||||||
finish:
|
finish:
|
||||||
pa_xfree(data);
|
pa_xfree(data);
|
||||||
|
#else
|
||||||
|
/* XXX Not thread-safe, but needed on OSes (e.g. FreeBSD 4.X) that do not
|
||||||
|
* support getgrgid_r. */
|
||||||
|
if ((result = getgrgid(gid)) == NULL) {
|
||||||
|
pa_log(__FILE__ ": getgrgid(%u) failed: %s\n", gid, strerror(errno));
|
||||||
|
goto finish;
|
||||||
|
}
|
||||||
|
|
||||||
|
r = strcmp(name, result->gr_name) == 0;
|
||||||
|
|
||||||
|
finish:
|
||||||
|
#endif
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue