diff options
-rw-r--r-- | usr.bin/rdist/child.c | 9 | ||||
-rw-r--r-- | usr.bin/rdist/client.c | 16 | ||||
-rw-r--r-- | usr.bin/rdist/config.h | 9 | ||||
-rw-r--r-- | usr.bin/rdist/lookup.c | 7 | ||||
-rw-r--r-- | usr.bin/rdist/message.c | 29 | ||||
-rw-r--r-- | usr.bin/rdist/version.h | 4 | ||||
-rw-r--r-- | usr.bin/rdistd/server.c | 29 |
7 files changed, 72 insertions, 31 deletions
diff --git a/usr.bin/rdist/child.c b/usr.bin/rdist/child.c index 0e862779009..cfb6e47e3e6 100644 --- a/usr.bin/rdist/child.c +++ b/usr.bin/rdist/child.c @@ -1,4 +1,4 @@ -/* $OpenBSD: child.c,v 1.3 1996/06/26 05:38:07 deraadt Exp $ */ +/* $OpenBSD: child.c,v 1.4 1996/07/25 05:30:59 millert Exp $ */ /* * Copyright (c) 1983 Regents of the University of California. @@ -35,7 +35,7 @@ #ifndef lint static char RCSid[] = -"$OpenBSD: child.c,v 1.3 1996/06/26 05:38:07 deraadt Exp $"; +"$OpenBSD: child.c,v 1.4 1996/07/25 05:30:59 millert Exp $"; static char sccsid[] = "@(#)docmd.c 5.1 (Berkeley) 6/6/85"; @@ -390,8 +390,9 @@ extern void waitup() debugmsg(DM_MISC, "waitup() Call select(), activechildren=%d\n", activechildren); - count = select(FD_SETSIZE, &rchildfds, (fd_set *) NULL, - (fd_set *) NULL, (struct timeval *) NULL); + count = select(FD_SETSIZE, (SELECT_FD_TYPE *) &rchildfds, + (SELECT_FD_TYPE *) NULL, (SELECT_FD_TYPE *) NULL, + (struct timeval *) NULL); debugmsg(DM_MISC, "waitup() select returned %d activechildren = %d\n", count, activechildren); diff --git a/usr.bin/rdist/client.c b/usr.bin/rdist/client.c index 8b2cc7226f9..d81a5bb3868 100644 --- a/usr.bin/rdist/client.c +++ b/usr.bin/rdist/client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: client.c,v 1.3 1996/06/26 05:38:08 deraadt Exp $ */ +/* $OpenBSD: client.c,v 1.4 1996/07/25 05:31:00 millert Exp $ */ /* * Copyright (c) 1983 Regents of the University of California. @@ -35,7 +35,7 @@ #ifndef lint static char RCSid[] = -"$OpenBSD: client.c,v 1.3 1996/06/26 05:38:08 deraadt Exp $"; +"$OpenBSD: client.c,v 1.4 1996/07/25 05:31:00 millert Exp $"; static char sccsid[] = "@(#)client.c"; @@ -531,6 +531,12 @@ static int rmchk(opts) message(MT_INFO, "%s", s); break; + case C_NOTEMSG: + if (n > 0) + message(MT_NOTICE, "%s", s); + break; + /* Goto top of loop */ + case C_ERRMSG: message(MT_NERROR, "%s", s); return(didupdate); @@ -707,6 +713,12 @@ static int sendlink(rname, opts, stb, user, group, destdir) message(MT_INFO, "%s", s); break; + case C_NOTEMSG: + if (n > 0) + message(MT_NOTICE, "%s", s); + break; + /* Goto top of loop */ + case C_ERRMSG: message(MT_NERROR, "%s", s); return(-1); diff --git a/usr.bin/rdist/config.h b/usr.bin/rdist/config.h index 76ea817fafc..06e24fb69b1 100644 --- a/usr.bin/rdist/config.h +++ b/usr.bin/rdist/config.h @@ -1,4 +1,4 @@ -/* * $OpenBSD: config.h,v 1.4 1996/06/26 05:38:10 deraadt Exp $*/ +/* * $OpenBSD: config.h,v 1.5 1996/07/25 05:31:01 millert Exp $*/ /* * Copyright (c) 1993 Michael A. Cooper * Copyright (c) 1993 Regents of the University of California. @@ -125,4 +125,11 @@ #define SL_NOTICE LOG_NOTICE /* General notices */ #define SL_DEBUG LOG_DEBUG /* Debugging */ +/* + * Arg types to select(2) + */ +#ifndef SELECT_FD_TYPE +#define SELECT_FD_TYPE fd_set +#endif + #endif /* __config_h__ */ diff --git a/usr.bin/rdist/lookup.c b/usr.bin/rdist/lookup.c index 81cb98510ba..10b69524c2a 100644 --- a/usr.bin/rdist/lookup.c +++ b/usr.bin/rdist/lookup.c @@ -1,4 +1,4 @@ -/* $OpenBSD: lookup.c,v 1.6 1996/07/12 07:23:59 mickey Exp $ */ +/* $OpenBSD: lookup.c,v 1.7 1996/07/25 05:31:01 millert Exp $ */ /* * Copyright (c) 1983 Regents of the University of California. @@ -35,7 +35,7 @@ #ifndef lint static char RCSid[] = -"$OpenBSD: lookup.c,v 1.6 1996/07/12 07:23:59 mickey Exp $"; +"$OpenBSD: lookup.c,v 1.7 1996/07/25 05:31:01 millert Exp $"; static char sccsid[] = "@(#)lookup.c 5.1 (Berkeley) 6/6/85"; @@ -148,7 +148,8 @@ lookup(name, action, value) /* %% in name. Ignore quotas in name */ continue; if (action != LOOKUP) { if (action != INSERT || s->s_type != CONST) { - (void) snprintf(ebuf, sizeof(ebuf), "%s redefined", name); + (void) snprintf(ebuf, sizeof(ebuf), + "%s redefined", name); yyerror(ebuf); } } diff --git a/usr.bin/rdist/message.c b/usr.bin/rdist/message.c index a54c4ebfb86..6523faf60f6 100644 --- a/usr.bin/rdist/message.c +++ b/usr.bin/rdist/message.c @@ -1,4 +1,4 @@ -/* $OpenBSD: message.c,v 1.4 1996/06/26 05:38:14 deraadt Exp $ */ +/* $OpenBSD: message.c,v 1.5 1996/07/25 05:31:02 millert Exp $ */ /* * Copyright (c) 1983 Regents of the University of California. @@ -35,7 +35,7 @@ #ifndef lint static char RCSid[] = -"$OpenBSD: message.c,v 1.4 1996/06/26 05:38:14 deraadt Exp $"; +"$OpenBSD: message.c,v 1.5 1996/07/25 05:31:02 millert Exp $"; static char sccsid[] = "@(#)common.c"; @@ -119,7 +119,8 @@ extern void msgprconfig() debugmsg(DM_MISC, "Current message logging config:"); for (i = 0; msgfacility[i].mf_name; ++i) { - (void) sprintf(buf, " %s=", msgfacility[i].mf_name); + (void) snprintf(buf, sizeof(buf), + " %s=", msgfacility[i].mf_name); for (x = 0; msgtypes[x].mt_name; ++x) if (IS_ON(msgfacility[i].mf_msgtypes, msgtypes[x].mt_type)) { @@ -180,7 +181,7 @@ static char *setmsgtypes(msgfac, str) */ if (isserver && (msgfac->mf_msgfac != MF_SYSLOG && msgfac->mf_msgfac != MF_FILE)) { - (void) sprintf(ebuf, + (void) snprintf(ebuf, sizeof(ebuf), "The \"%s\" message facility cannot be used by the server.", msgfac->mf_name); return(ebuf); @@ -247,8 +248,9 @@ static char *setmsgtypes(msgfac, str) strcasecmp(word, "debug") == 0) debug = DM_ALL; } else { - (void) sprintf(ebuf, "Message type \"%s\" is invalid.", - word); + (void) snprintf(ebuf, sizeof(ebuf), + "Message type \"%s\" is invalid.", + word); return(ebuf); } } @@ -291,9 +293,9 @@ extern char *msgparseopts(msgstr, doset) return("No message type specified"); if ((msgfac = getmsgfac(word)) == NULL) { - (void) sprintf(ebuf, - "%s is not a valid message facility", - word); + (void) snprintf(ebuf, sizeof(ebuf), + "%s is not a valid message facility", + word); return(ebuf); } @@ -543,16 +545,15 @@ static void _message(flags, msgbuf) /* * Special cases */ - if (isserver && IS_ON(flags, MT_REMOTE)) + if (isserver && IS_ON(flags, MT_NOTICE)) { + msgsendstdout((MSGFACILITY *)NULL, MT_NOTICE, flags, mbuf); + return; + } else if (isserver && IS_ON(flags, MT_REMOTE)) msgsendstdout((MSGFACILITY *)NULL, MT_REMOTE, flags, mbuf); else if (isserver && IS_ON(flags, MT_NERROR)) msgsendstdout((MSGFACILITY *)NULL, MT_NERROR, flags, mbuf); else if (isserver && IS_ON(flags, MT_FERROR)) msgsendstdout((MSGFACILITY *)NULL, MT_FERROR, flags, mbuf); - else if (isserver && IS_ON(flags, MT_NOTICE)) { - msgsendstdout((MSGFACILITY *)NULL, MT_NOTICE, flags, mbuf); - return; - } /* * For each Message Facility, check each Message Type to see diff --git a/usr.bin/rdist/version.h b/usr.bin/rdist/version.h index f6d944ccd47..4793409ef57 100644 --- a/usr.bin/rdist/version.h +++ b/usr.bin/rdist/version.h @@ -1,4 +1,4 @@ -/* * $OpenBSD: version.h,v 1.3 1996/06/26 05:38:19 deraadt Exp $*/ +/* * $OpenBSD: version.h,v 1.4 1996/07/25 05:31:02 millert Exp $*/ /* * Copyright (c) 1983 Regents of the University of California. * All rights reserved. @@ -50,7 +50,7 @@ /* * Patch level */ -#define PATCHLEVEL 2 +#define PATCHLEVEL 3 /* * Distribution status diff --git a/usr.bin/rdistd/server.c b/usr.bin/rdistd/server.c index da6472128a3..f49fc842651 100644 --- a/usr.bin/rdistd/server.c +++ b/usr.bin/rdistd/server.c @@ -1,4 +1,4 @@ -/* $OpenBSD: server.c,v 1.4 1996/06/26 05:38:24 deraadt Exp $ */ +/* $OpenBSD: server.c,v 1.5 1996/07/25 05:31:03 millert Exp $ */ /* * Copyright (c) 1983 Regents of the University of California. @@ -34,7 +34,7 @@ */ #ifndef lint static char RCSid[] = -"$OpenBSD: server.c,v 1.4 1996/06/26 05:38:24 deraadt Exp $"; +"$OpenBSD: server.c,v 1.5 1996/07/25 05:31:03 millert Exp $"; static char sccsid[] = "@(#)server.c 5.3 (Berkeley) 6/7/86"; @@ -393,7 +393,13 @@ static int removefile(statb) return(-1); } removed: - message(MT_CHANGE|MT_REMOTE, "%s: removed", target); + /* + * We use MT_NOTICE instead of MT_CHANGE because this function is + * sometimes called by other functions that are suppose to return a + * single ack() back to the client (rdist). This is a kludge until + * the Rdist protocol is re-done. Sigh. + */ + message(MT_NOTICE|MT_REMOTE, "%s: removed", target); return(0); } @@ -750,6 +756,7 @@ static void recvfile(new, opts, mode, owner, group, mtime, atime, size) off_t i; register char *cp; char *savefile = NULL; + static struct stat statbuff; /* * Create temporary file @@ -913,6 +920,18 @@ static void recvfile(new, opts, mode, owner, group, mtime, atime, size) } /* + * If the target is a directory, we need to remove it first + * before we can rename the new file. + */ + if ((stat(target, &statbuff) == 0) && S_ISDIR(statbuff.st_mode)) { + char *saveptr = ptarget; + + ptarget = &target[strlen(target)]; + removefile(&statbuff); + ptarget = saveptr; + } + + /* * Install new (temporary) file as the actual target */ if (rename(new, target) < 0) { @@ -1339,7 +1358,7 @@ static void recvit(cmd, type) time_t mtime, atime; char *owner, *group, *file; char new[MAXPATHLEN]; - int freespace = -1, freefiles = -1; + long freespace = -1, freefiles = -1; char *cp = cmd; /* @@ -1461,7 +1480,7 @@ static void recvit(cmd, type) */ if (min_freespace || min_freefiles) { /* Convert file size to kilobytes */ - int fsize = size / 1024; + long fsize = (long) (size / 1024); if (getfilesysinfo(target, &freespace, &freefiles) != 0) return; |