diff options
-rwxr-xr-x | source3/configure | 4 | ||||
-rw-r--r-- | source3/configure.in | 2 | ||||
-rw-r--r-- | source3/include/config.h.in | 5 | ||||
-rw-r--r-- | source3/nmbd/nmbd.c | 9 | ||||
-rw-r--r-- | source3/nsswitch/winbindd.c | 9 | ||||
-rw-r--r-- | source3/smbd/server.c | 9 |
6 files changed, 34 insertions, 4 deletions
diff --git a/source3/configure b/source3/configure index 63fc4a4965..10a497669d 100755 --- a/source3/configure +++ b/source3/configure @@ -945,7 +945,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -for ac_prog in mawk gawk nawk awk +for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -5191,7 +5191,7 @@ else fi done -for ac_func in fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat +for ac_func in fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat setpgid do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo "configure:5198: checking for $ac_func" >&5 diff --git a/source3/configure.in b/source3/configure.in index f38854efa4..059936e0a4 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -554,7 +554,7 @@ else fi AC_CHECK_FUNCS(waitpid getcwd strdup strtoul strerror chown fchown chmod fchmod chroot) -AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat) +AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat setpgid) AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid) AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent) AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf) diff --git a/source3/include/config.h.in b/source3/include/config.h.in index 1c22c0b5e5..f85de1b1af 100644 --- a/source3/include/config.h.in +++ b/source3/include/config.h.in @@ -1,4 +1,4 @@ -/* include/config.h.in. Generated automatically from configure.in by autoheader 2.13. */ +/* include/config.h.in. Generated automatically from configure.in by autoheader. */ /* Define if on AIX 3. System headers sometimes define this. @@ -695,6 +695,9 @@ /* Define if you have the setnetgrent function. */ #undef HAVE_SETNETGRENT +/* Define if you have the setpgid function. */ +#undef HAVE_SETPGID + /* Define if you have the setpriv function. */ #undef HAVE_SETPRIV diff --git a/source3/nmbd/nmbd.c b/source3/nmbd/nmbd.c index 29b6c0347a..b2ff81675a 100644 --- a/source3/nmbd/nmbd.c +++ b/source3/nmbd/nmbd.c @@ -803,6 +803,15 @@ static void usage(char *pname) become_daemon(); } +#if HAVE_SETPGID + /* + * If we're interactive we want to set our own process group for + * signal management. + */ + if (opt_interactive) + setpgid( (pid_t)0, (pid_t)0 ); +#endif + #ifndef SYNC_DNS /* Setup the async dns. We do it here so it doesn't have all the other stuff initialised and thus chewing memory and sockets */ diff --git a/source3/nsswitch/winbindd.c b/source3/nsswitch/winbindd.c index 9bbd88653c..a877bf9e0a 100644 --- a/source3/nsswitch/winbindd.c +++ b/source3/nsswitch/winbindd.c @@ -822,6 +822,15 @@ int main(int argc, char **argv) if (!interactive) become_daemon(); +#if HAVE_SETPGID + /* + * If we're interactive we want to set our own process group for + * signal management. + */ + if (interactive) + setpgid( (pid_t)0, (pid_t)0); +#endif + load_interfaces(); secrets_init(); diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 403ed12c40..101d49c144 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -785,6 +785,15 @@ static void usage(char *pname) become_daemon(); } +#if HAVE_SETPGID + /* + * If we're interactive we want to set our own process group for + * signal management. + */ + if (interactive) + setpgid( (pid_t)0, (pid_t)0); +#endif + if (!directory_exist(lp_lockdir(), NULL)) { mkdir(lp_lockdir(), 0755); } |