diff options
author | taca <taca@pkgsrc.org> | 2002-07-16 15:01:49 +0000 |
---|---|---|
committer | taca <taca@pkgsrc.org> | 2002-07-16 15:01:49 +0000 |
commit | ad351a9bdd336efe6425459b4da85475a953864b (patch) | |
tree | dc22e1767ec98d5c41a6f048604890e18f2df87e /mail | |
parent | 31013b9e1baee360045cff52e5eaecc8bf9730bf (diff) | |
download | pkgsrc-ad351a9bdd336efe6425459b4da85475a953864b.tar.gz |
Make it work smbpassword update function.
It seems that there was some deadlock between pty and child exiting.
Bump PKGREVISION to 1.
Diffstat (limited to 'mail')
-rw-r--r-- | mail/poppassd/Makefile | 3 | ||||
-rw-r--r-- | mail/poppassd/distinfo | 4 | ||||
-rw-r--r-- | mail/poppassd/patches/patch-ac | 79 |
3 files changed, 67 insertions, 19 deletions
diff --git a/mail/poppassd/Makefile b/mail/poppassd/Makefile index 337ba704d08..76379caaa39 100644 --- a/mail/poppassd/Makefile +++ b/mail/poppassd/Makefile @@ -1,8 +1,9 @@ -# $NetBSD: Makefile,v 1.5 2002/05/03 15:11:06 taca Exp $ +# $NetBSD: Makefile,v 1.6 2002/07/16 15:01:49 taca Exp $ # DISTNAME= qpopper${VERSION} PKGNAME= poppassd-${VERSION} +PKGREVISION= 1 CATEGORIES= mail MASTER_SITES= ftp://ftp.qualcomm.com/eudora/servers/unix/popper/ diff --git a/mail/poppassd/distinfo b/mail/poppassd/distinfo index 941d534234f..0ee5712ba15 100644 --- a/mail/poppassd/distinfo +++ b/mail/poppassd/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.2 2002/05/02 16:16:55 martti Exp $ +$NetBSD: distinfo,v 1.3 2002/07/16 15:01:49 taca Exp $ SHA1 (qpopper4.0.4.tar.gz) = c8b35bfa79000e3f1d67574c93d8d8ef580cd57c Size (qpopper4.0.4.tar.gz) = 2261992 bytes @@ -6,4 +6,4 @@ SHA1 (qpopper4.0.4-ipv6-20020502.diff.gz) = 7af76478f249684ebc02938d9a4a8cc728a5 Size (qpopper4.0.4-ipv6-20020502.diff.gz) = 21535 bytes SHA1 (patch-aa) = 3dfad411477bae676ec4ea3dadf1d47d53ce1383 SHA1 (patch-ab) = 2ab7597bacf172a7c2405f2d1f0c9040dbab66b8 -SHA1 (patch-ac) = f8e12e7d1c2b8ed4df8a696165be6b012716fdfe +SHA1 (patch-ac) = b4edaa15f478914a2d2c273871915d53e498ff7c diff --git a/mail/poppassd/patches/patch-ac b/mail/poppassd/patches/patch-ac index 853f6562b94..1a88230aca4 100644 --- a/mail/poppassd/patches/patch-ac +++ b/mail/poppassd/patches/patch-ac @@ -1,7 +1,7 @@ -$NetBSD: patch-ac,v 1.2 2002/05/02 16:16:56 martti Exp $ +$NetBSD: patch-ac,v 1.3 2002/07/16 15:01:50 taca Exp $ ---- password/poppassd.c.orig Fri Apr 5 04:38:36 2002 -+++ password/poppassd.c Thu May 2 09:03:15 2002 +--- password/poppassd.c.orig Tue Jul 16 15:20:21 2002 ++++ password/poppassd.c @@ -167,8 +167,13 @@ /* LANMAN allows up to 14 char passwords (truncates if longer), but tacacs only seems to allow 11. */ @@ -16,7 +16,7 @@ $NetBSD: patch-ac,v 1.2 2002/05/02 16:16:56 martti Exp $ #include "config.h" -@@ -283,6 +288,7 @@ +@@ -294,6 +299,7 @@ pop_result auth_user ( POP *p, char *pas static char *P1[] = { @@ -24,7 +24,22 @@ $NetBSD: patch-ac,v 1.2 2002/05/02 16:16:56 martti Exp $ "changing password for *\nold password: ", /* shadow */ "enter login password: ", /* Solaris */ "old smb password: ", /* smb */ -@@ -342,7 +348,7 @@ +@@ -323,6 +329,7 @@ static char *P4[] = + { + "password changed. ", /* shadow */ + "password changed ", /* smb */ ++ "password changed for user *\n", /* smb */ + "" + }; + +@@ -346,14 +353,13 @@ char *smb_binary = SM + #define RUN_PASSWD 1 + #define RUN_SMBPASSWD 2 + +- + int main ( int argc, char *argv[] ) + { + char line [BUFSIZE] = ""; char oldpass [BUFSIZE] = ""; char newpass [BUFSIZE] = ""; int nopt = -1; @@ -33,7 +48,7 @@ $NetBSD: patch-ac,v 1.2 2002/05/02 16:16:56 martti Exp $ int mode = 0; char *ptr = NULL; POP p; -@@ -364,8 +370,6 @@ +@@ -375,8 +381,6 @@ int main ( int argc, char *argv[] ) pname = ptr + 1; } @@ -42,7 +57,7 @@ $NetBSD: patch-ac,v 1.2 2002/05/02 16:16:56 martti Exp $ /* * Set up some stuff in -p- so we can call Qpopper routines */ -@@ -373,6 +377,17 @@ +@@ -384,6 +388,17 @@ int main ( int argc, char *argv[] ) p.AuthType = noauth; p.myname = pname; @@ -60,7 +75,7 @@ $NetBSD: patch-ac,v 1.2 2002/05/02 16:16:56 martti Exp $ /* * Handle command-line options */ -@@ -381,9 +396,9 @@ +@@ -392,9 +407,9 @@ int main ( int argc, char *argv[] ) { switch (nopt) { @@ -73,7 +88,7 @@ $NetBSD: patch-ac,v 1.2 2002/05/02 16:16:56 martti Exp $ "[-t trace-file] [-v] [-y log-facility]\n", pname ); exit (1); -@@ -400,20 +415,34 @@ +@@ -411,20 +426,34 @@ int main ( int argc, char *argv[] ) verbose = TRUE; break; @@ -91,14 +106,14 @@ $NetBSD: patch-ac,v 1.2 2002/05/02 16:16:56 martti Exp $ TRACE ( trace_file, POP_DEBUG, HERE, - "Changing SMB passwords using %s", smb_binary ); + "Changing SMB password using %s", smb_binary ); -+ break; -+ + break; + + case 'P': + mode |= RUN_PASSWD; + TRACE ( trace_file, POP_DEBUG, HERE, + "Changing standard password enabled" ); - break; - ++ break; ++ + case 'p': mode |= RUN_PASSWD; @@ -110,15 +125,47 @@ $NetBSD: patch-ac,v 1.2 2002/05/02 16:16:56 martti Exp $ break; case 't': -@@ -770,6 +799,11 @@ +@@ -671,6 +700,7 @@ void runchild ( char *userid, char *oldp + emess[0] ? emess : "Unable to change password"); + exit(1); + } ++ close ( master ); /* done with the pty */ + wpid = waitpid ( pid, &wstat, 0 ); + if ( wpid < 0 ) +@@ -700,8 +730,6 @@ void runchild ( char *userid, char *oldp + WriteToClient ("500 Server error (abnormal exit), get help!"); + exit(1); + } +- +- close ( master ); /* done with the pty */ + } + else /* Child */ + { +@@ -782,6 +810,11 @@ int dochild (int master, char *slavedev, chdir ("/"); umask (0); -+ + + if (setlogin(userid) < 0) { + err_msg ( HERE, "setlogin failed: %m" ); + return(0); + } - ++ /* * Become the user and run passwd. Linux shadowed passwd doesn't need + * to be run as root with the username passed on the command line. +@@ -950,8 +983,12 @@ int match (char *str, char *pat) + strlen(pat), debug_str(pat, strlen(pat), 1) ); + + while (*str && *pat) { +- if (*pat == '*') +- break; ++ if (*pat == '*') { ++ pat++; ++ while (*str != '\0' && *str != '\n') ++ *str++; ++ continue; ++ } + + /* ignore multiple space sequences */ + if (*pat == ' ' && isspace (*str)) { |