Make ngIRCd compile and run on NeXTSTEP 3.3 and OPENSTEP 4.2

by Steven D. Blackford <kb7sqi@aol.com>:

"I wanted to let you know that I've done a quick port of ngircd-0.12.0 for
NEXTSTEP3.3/OPENSTEP4.2. There wasn't a lot of changes required to get it
to compile clean, but I did make the necessary changes so that I didn't
have to use -posix flag. The NeXT has a pretty buggy POSIX implementation
so I always try to work around it. :-)
Anway, here's the changes required to get it to compile."
This commit is contained in:
Alexander Barton 2008-08-01 16:21:16 +02:00
parent 338c643250
commit dfc3de131c
4 changed files with 44 additions and 1 deletions

View File

@ -784,7 +784,11 @@ NGIRCd_Init( bool NGIRCd_NoDaemon )
}
/* New child process */
#ifndef NeXT
(void)setsid( );
#else
setpgrp(0, getpid());
#endif
chdir( "/" );
/* Detach stdin, stdout and stderr */

View File

@ -14,7 +14,7 @@ AUTOMAKE_OPTIONS = ansi2knr
noinst_LIBRARIES = libngportab.a
libngportab_a_SOURCES = strdup.c strlcpy.c strtok_r.c vsnprintf.c
libngportab_a_SOURCES = strdup.c strlcpy.c strtok_r.c vsnprintf.c waitpid.c
check_PROGRAMS = portabtest

View File

@ -99,6 +99,14 @@ typedef unsigned char bool;
#endif
#endif
#ifdef NeXT
#define S_IRUSR 0000400 /* read permission, owner */
#define S_IWUSR 0000200 /* write permission, owner */
#define S_IRGRP 0000040 /* read permission, group */
#define S_IROTH 0000004 /* read permission, other */
#define ssize_t int
#endif
#undef GLOBAL
#define GLOBAL

31
src/portab/waitpid.c Normal file
View File

@ -0,0 +1,31 @@
/*
* ngIRCd -- The Next Generation IRC Daemon
*
* waitpid() implementation. Public domain.
* Written by Steven D. Blackford for the NeXT system.
*
*/
#include "portab.h"
#include "imp.h"
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include "exp.h"
#ifndef HAVE_WAITPID
GLOBAL int
waitpid(pid, stat_loc, options)
int pid, *stat_loc, options;
{
for (;;) {
int wpid = wait(stat_loc);
if (wpid == pid || wpid == -1)
return wpid;
}
}
#endif