Add OSX support, buildable via "make osx".

Make sure you have OpenSSL 1.0.0d+ (available from Macports) installed.

Based on diff from Vaibhav Bhembre via github
This commit is contained in:
Joris Vink 2013-07-17 20:17:00 +02:00
parent 2c1352b226
commit 91b839f355
3 changed files with 13 additions and 2 deletions

View File

@ -22,6 +22,9 @@ linux:
bsd:
@S_SRC=src/bsd.c make kore
osx:
@LDFLAGS="-L/opt/local/lib" CFLAGS="-I/opt/local/include/" make bsd
kore: $(S_OBJS)
$(CC) $(CFLAGS) $(S_OBJS) $(LDFLAGS) -o $(BIN)

View File

@ -147,5 +147,7 @@ kore_platform_disable_accept(void)
void
kore_platform_proctitle(char *title)
{
#ifndef __MACH__
setproctitle("%s", title);
#endif
}

View File

@ -179,8 +179,14 @@ kore_worker_entry(struct kore_worker *kw)
fatal("cannot chroot(): %s", errno_s);
if (chdir("/") == -1)
fatal("cannot chdir(): %s", errno_s);
if (setgroups(1, &pw->pw_gid) || setresgid(pw->pw_gid, pw->pw_gid,
pw->pw_gid) || setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid))
if (setgroups(1, &pw->pw_gid) ||
#ifdef __MACH__
setgid(pw->pw_gid) || setegid(pw->pw_gid) ||
setuid(pw->pw_uid) || seteuid(pw->pw_uid))
#else
setresgid(pw->pw_gid, pw->pw_gid, pw->pw_gid) ||
setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid))
#endif
fatal("unable to drop privileges");
snprintf(buf, sizeof(buf), "kore [wrk %d]", kw->id);