diff options
author | Jeremy Allison <jra@samba.org> | 2007-12-17 10:44:09 -0800 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2007-12-17 10:44:09 -0800 |
commit | 545cd2139cfc9484b733693814d4724d37125942 (patch) | |
tree | 02c52f0b7ac3c80f136edcc3d906c787b68dfa8c /source | |
parent | 6b1a118eaaab405eeef0cf3c0488a2747af562ba (diff) | |
download | samba-545cd2139cfc9484b733693814d4724d37125942.tar.gz samba-545cd2139cfc9484b733693814d4724d37125942.tar.xz samba-545cd2139cfc9484b733693814d4724d37125942.zip |
Fix bug #5121 (unix passwd sync not working on a streams based
system).
Jeremy.
Diffstat (limited to 'source')
-rw-r--r-- | source/lib/replace/libreplace.m4 | 1 | ||||
-rw-r--r-- | source/lib/replace/system/network.h | 4 | ||||
-rw-r--r-- | source/smbd/chgpasswd.c | 14 |
3 files changed, 12 insertions, 7 deletions
diff --git a/source/lib/replace/libreplace.m4 b/source/lib/replace/libreplace.m4 index c10a4b23817..7a5283a4d60 100644 --- a/source/lib/replace/libreplace.m4 +++ b/source/lib/replace/libreplace.m4 @@ -100,6 +100,7 @@ AC_CHECK_HEADERS(sys/socket.h netinet/in.h netdb.h arpa/inet.h) AC_CHECK_HEADERS(netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h) AC_CHECK_HEADERS(sys/sockio.h sys/un.h) AC_CHECK_HEADERS(sys/mount.h mntent.h) +AC_CHECK_HEADERS(stropts.h) dnl we need to check that net/if.h really can be used, to cope with hpux dnl where including it always fails diff --git a/source/lib/replace/system/network.h b/source/lib/replace/system/network.h index d3ae2bf398f..9087c02da18 100644 --- a/source/lib/replace/system/network.h +++ b/source/lib/replace/system/network.h @@ -78,6 +78,10 @@ #include <sys/ioctl.h> #endif +#ifdef HAVE_STROPTS_H +#include <stropts.h> +#endif + #ifdef REPLACE_INET_NTOA /* define is in "replace.h" */ char *rep_inet_ntoa(struct in_addr ip); diff --git a/source/smbd/chgpasswd.c b/source/smbd/chgpasswd.c index 5ccf3ed9dac..e478122e9b7 100644 --- a/source/smbd/chgpasswd.c +++ b/source/smbd/chgpasswd.c @@ -159,19 +159,19 @@ static int dochild(int master, const char *slavedev, const struct passwd *pass, DEBUG(3, ("More weirdness, could not open %s\n", slavedev)); return (False); } -#if defined(I_PUSH) && defined(I_FIND) +#if defined(TIOCSCTTY) + if (ioctl(slave, TIOCSCTTY, 0) < 0) + { + DEBUG(3, ("Error in ioctl call for slave pty\n")); + /* return(False); */ + } +#elif defined(I_PUSH) && defined(I_FIND) if (ioctl(slave, I_FIND, "ptem") == 0) { ioctl(slave, I_PUSH, "ptem"); } if (ioctl(slave, I_FIND, "ldterm") == 0) { ioctl(slave, I_PUSH, "ldterm"); } -#elif defined(TIOCSCTTY) - if (ioctl(slave, TIOCSCTTY, 0) < 0) - { - DEBUG(3, ("Error in ioctl call for slave pty\n")); - /* return(False); */ - } #endif /* Close master. */ |