svn commit: r251279 - head/usr.sbin/ppp
Author: brian Date: Sun Jun 2 23:56:38 2013 New Revision: 251279 URL: http://svnweb.freebsd.org/changeset/base/251279 Log: Move ppp.8.m4 back to ppp.8 and de-ifdef it. Requested by: joel MFC after:1 week Added: head/usr.sbin/ppp/ppp.8 - copied, changed from r251278, head/usr.sbin/ppp/ppp.8.m4 Deleted: head/usr.sbin/ppp/ppp.8.m4 Modified: head/usr.sbin/ppp/Makefile Modified: head/usr.sbin/ppp/Makefile == --- head/usr.sbin/ppp/Makefile Sun Jun 2 23:25:27 2013(r251278) +++ head/usr.sbin/ppp/Makefile Sun Jun 2 23:56:38 2013(r251279) @@ -44,13 +44,6 @@ M4FLAGS= LDADD= -lcrypt -lmd -lutil -lz DPADD= ${LIBCRYPT} ${LIBMD} ${LIBUTIL} ${LIBZ} -.SUFFIXES: .8 .8.m4 - -.8.m4.8: - m4 ${M4FLAGS} ${.IMPSRC} >${.TARGET} - -CLEANFILES= ppp.8 - .if defined(PPP_CONFDIR) && !empty(PPP_CONFDIR) CFLAGS+=-DPPP_CONFDIR=\"${PPP_CONFDIR}\" .endif Copied and modified: head/usr.sbin/ppp/ppp.8 (from r251278, head/usr.sbin/ppp/ppp.8.m4) == --- head/usr.sbin/ppp/ppp.8.m4 Sun Jun 2 23:25:27 2013(r251278, copy source) +++ head/usr.sbin/ppp/ppp.8 Sun Jun 2 23:56:38 2013(r251279) @@ -1,5 +1,3 @@ -changequote({,})dnl -changecom(,)dnl .\" .\" Copyright (c) 2001 Brian Somers .\" All rights reserved. @@ -65,10 +63,9 @@ This allows .Nm to act as a NAT or masquerading engine for all machines on an internal LAN. -ifdef({LOCALNAT},{},{Refer to +Refer to .Xr libalias 3 for details on the technical side of the NAT engine. -})dnl Refer to the .Sx NETWORK ADDRESS TRANSLATION (PACKET ALIASING) section of this manual page for details on how to configure NAT in @@ -313,14 +310,13 @@ An extension to PAP and CHAP, allows authentication information to be stored in a central or distributed database along with various per-user framed connection characteristics. -ifdef({LOCALRAD},{},{If +If .Xr libradius 3 is available at compile time, .Nm will use it to make .Em RADIUS requests when configured to do so. -})dnl .It Supports Proxy Arp. .Nm can be configured to make one or more proxy arp entries on behalf of @@ -3018,9 +3014,9 @@ The option can only be enabled if networ With this option enabled, .Nm will pass traffic for old interface addresses through the NAT -ifdef({LOCALNAT},{engine,},{engine +engine (see -.Xr libalias 3 ) ,}) +.Xr libalias 3 ) , resulting in the ability (in .Fl auto mode) to properly connect the process that caused the PPP link to @@ -3428,18 +3424,17 @@ you wish to map to specific machines beh .It nat deny_incoming yes|no If set to yes, this command will refuse all incoming packets where an aliasing link does not already exist. -ifdef({LOCALNAT},{},{Refer to the +Refer to the .Sx CONCEPTUAL BACKGROUND section of .Xr libalias 3 for a description of what an .Dq aliasing link is. -})dnl .Pp It should be noted under what circumstances an aliasing link is -ifdef({LOCALNAT},{created.},{created by -.Xr libalias 3 .}) +created by +.Xr libalias 3 . It may be necessary to further protect your network from outside connections using the .Dq set filter @@ -3524,12 +3519,11 @@ for example: This command tells .Nm to proxy certain connections, redirecting them to a given server. -ifdef({LOCALNAT},{},{Refer to the description of +Refer to the description of .Fn PacketAliasProxyRule in .Xr libalias 3 for details of the available commands. -})dnl .It nat punch_fw Op Ar base count This command tells .Nm @@ -3567,9 +3561,8 @@ if you want to support protocols such as connections to come from a well known port. .It nat target Op Ar address Set the given target address or clear it if no address is given. -The target address is used -ifdef({LOCALNAT},{},{by libalias })dnl -to specify how to NAT incoming packets by default. +The target address is used by libalias to specify how to NAT incoming packets +by default. If a target address is not set or if .Dq default is given, packets are not altered and are allowed to route to the internal @@ -3577,10 +3570,7 @@ network. .Pp The target address may be set to .Dq MYADDR , -in which case -ifdef({LOCALNAT},{all packets will be redirected}, -{libalias will redirect all packets}) -to the interface address. +in which case libalias will redirect all packets to the interface address. .It nat use_sockets yes|no When enabled, this option tells the network address translation engine to create a socket so that it can guarantee a correct incoming ftp data or @@ -6055,10 +6045,8 @@ This socket is used to pass links betwee .Xr kldload 2 , .Xr pipe 2 , .Xr socketpair 2 , -ifdef({LOCALNAT},{},{.Xr libalias 3 , -})dnl -ifdef({LOCALRAD},{},{.Xr libradius 3 , -})dnl +.Xr libalias 3 , +.Xr libradius 3 , .Xr syslog 3 , .Xr uucplock 3 , .Xr netgraph 4 , ___
Re: svn commit: r242074 - head/etc/rc.d
On Sat, Oct 27, 2012 at 05:01:39PM +0900, Hiroki Sato wrote: > Hiroki Sato wrote > in <20121027.165129.351491404794553651@allbsd.org>: > hr> Thank you. It is explained in section 3.2.4 in > hr> > hr> http://www.freebsd.org/releases/9.0R/relnotes-detailed.html#UPGRADE > hr> > hr> I think it will work as 8.X just after removing the ipv6_enable=YES > hr> line in your rc.conf, but after investigating the network.subr > hr> closely I found a bug in backward compatibility of ipv6_enable=YES on > hr> 9.X... Can you try the attached patch? This should fix the issue > hr> even if ipv6_enable=YES exists on a 9.X's rc.conf without a patch to > hr> rc.d/rtadvd. > > Gr, sorry. The previous patch was wrong. The correct one is > attached to this mail. > > -- Hiroki > Index: etc/network.subr > === > --- etc/network.subr (revision 242114) > +++ etc/network.subr (working copy) > @@ -109,7 +109,9 @@ > # backward compatibility: $ipv6_enable > case $ipv6_enable in > [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) > - _ipv6_opts="${_ipv6_opts} accept_rtadv" > + if ! checkyesno ipv6_gateway_enable; then > + _ipv6_opts="${_ipv6_opts} accept_rtadv" > + fi > ;; > esac > > @@ -488,7 +490,11 @@ > # backward compatibility: $ipv6_enable > case $ipv6_enable in > [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) > - return 0 > + if checkyesno ipv6_gateway_enable; then > + return 1 > + else > + return 0 > + fi > ;; > esac > Yep, that fixes the issue. Everything works now both with and without ipv6_enable in rc.conf. Thanks for your help. It might be worth asking re@ if the above patch can be squeezed into 9.1 before the release? I'm also ok with backing the original /etc/rc.d/rtadvd change out if you prefer? Thanks again. -- Brian Somers Don't _EVER_ lose your sense of humour ! pgpLB48uLcyQS.pgp Description: PGP signature
Re: svn commit: r242074 - head/etc/rc.d
On Sat, Oct 27, 2012 at 03:57:07PM +0900, Hiroki Sato wrote: > Brian Somers wrote > in <20121026235044.ga77...@thong.lan.awfulhak.org>: > > br> When I reboot and don't use -accept_rtadv (and leave > br> net.inet6.ip6.accept_rtadv set to zero), I repeatedly see this in > br> /var/log/messages: > br> > br> Oct 26 16:31:26 gw rtadvd[2879]: non-zero lifetime RA on RA receiving > interface sk0. Ignored. > br> Oct 26 16:31:33 gw rtadvd[2879]: non-zero lifetime RA on RA receiving > interface bridge0. Ignored. > br> Oct 26 16:31:42 gw rtadvd[2879]: non-zero lifetime RA on RA receiving > interface sk0. Ignored. > br> Oct 26 16:31:49 gw rtadvd[2879]: non-zero lifetime RA on RA receiving > interface bridge0. Ignored. > br> > br> This seems to be the problem. Because check_accept_rtadv() (in > br> rtadvd) reports the interface as being able to accept RAs (it finds > br> the ND6_IFF_ACCEPT_RTADV flag), it drops outgoing RAs and nothing > br> happens. > > Can you send me your /etc/rc.conf and /etc/sysctl.conf? I guess you > are still using ipv6_enable=YES on 9.X. Sure (attached). I'm not sure what is supposed to change in rc.conf when upgrading from 8 to 9. There's nothing obvious that I can see... maybe I'm looking in the wrong place? http://www.freebsd.org/releases/9.0R/relnotes.html This issue seems to be with rtadvd (as per above). Eliding the return after the above non-zero lifetime message in rtadvd.c makes everything work again (without using ifconfig iface inet6 -accept_rtadv). -- Brian Somers Don't _EVER_ lose your sense of humour ! hostname=gw.lan.Awfulhak.org nisdomainname=Awfulhak.org firewall_enable=YES firewall_flags="-p /usr/bin/m4" firewall_type=/etc/firewall.rules firewall_quiet=YES #network_interfaces="fxp0 re0 lo0 bridge0" #network_interfaces="fxp1 sk0 lo0 bridge0" ifconfig_sk0="inet 172.16.0.1 netmask 0xff00" ifconfig_sk0_alias0="inet 172.16.0.23 netmask 0x" ifconfig_lo0_alias0="inet 127.0.0.2 netmask 0x" ifconfig_fxp0=DHCP #static_routes=upstairs #route_upstairs="172.16.2.128/25 172.16.2.34" ifconfig_fxp1=up vlans_sk0=167 ifconfig_sk0_167=up cloned_interfaces=bridge0 ifconfig_bridge0="addm sk0.167 addm fxp1 172.16.2.2 netmask 0xff80" bsdstats_enable=YES ipv6_enable=YES ipv6_gateway_enable=YES ipv6_ifconfig_sk0="2001:1938:27d:0:240:f4ff:feb1:1c85 prefixlen 64" ipv6_ifconfig_bridge0="2001:1938:27d:1:20d:61ff:fe45:2c3f prefixlen 64" rtadvd_enable=YES rtadvd_interfaces="sk0 bridge0" fsck_y_enable=YES natd_enable=YES natd_interface=fxp0 natd_flags="-f /etc/natd.conf" rpcbind_enable=YES syslogd_enable=YES syslogd_flags=-ss dnscrypt_proxy_enable=YES dnscrypt_proxy_flags='-a 127.0.0.2' named_enable=YES rwhod_enable=YES amd_enable=YES amd_flags= nfs_client_enable=YES nfs_server_enable=YES mountd_enable=YES mountd_flags="-p 1007" rpc_lockd_enable=YES rpc_statd_enable=YES timed_flags="-F localhost" nis_client_enable=YES nis_client_flags="-S $nisdomainname,172.16.0.1 -m" nis_server_enable=YES nis_yppasswdd_enable=YES gateway_enable=YES cursor=destructive lpd_enable=YES lpd_flags=-lc dumpdev=/dev/ad0s1b clear_tmp_enable=YES ldconfig_paths_aout=NO sshd_enable=YES ntpd_enable=YES ntpd_sync_on_start=YES usbd_enable=YES snmpd_enable=YES snmpd_flags=-Lsd moused_enable=YES moused_type=ps/2 moused_port=/dev/psm0 sendmail_enable=YES inetd_enable=YES sixxs_aiccu_enable=YES cyrus_pwcheck_enable=YES #slapd_enable=YES #slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/";' #slapd_sockets="/var/run/openldap/ldapi" apache22_enable=YES apache22ssl_enable=YES dhcpd_enable=YES dhcpd_ifaces="sk0 bridge0" dhcpd_chuser_enable=NO mysql_enable=YES cyrus_imapd_enable=YES saslauthd_enable=YES saslauthd_flags="-a pam" squid_enable=YES samba_enable=YES #winbindd_enable=YES #winbindd_flags="-d10" mt_daapd_enable=YES arpwatch_enable=YES arpwatch_interfaces="sk0 bridge0" cupsd_enable=YES nagios_enable=YES nsca_enable=YES sshblock_enable=YES saver=green # added by xorg-libraries port local_startup="/usr/local/etc/rc.d" ddclient_enable=YES daily_ddclient_force_enable=YES spamd_enable=YES spamass_milter_enable=YES # $FreeBSD: stable/9/etc/sysctl.conf 112200 2003-03-13 18:43:50Z mux $ # # This file is read when going to multi-user and its contents piped thru # ``sysctl'' to adjust kernel values. ``man 5 sysctl.conf'' for details. # kern.maxfilesperproc=1024 # Uncomment this to prevent users from seeing information about processes that # are being run under another UID. #security.bsd.see_other_uids=0 # I want to see firewall log messages in /var/log/security net.inet.ip.fw.verbose=1 pgpjN9HAdEmnU.pgp Description: PGP signature
Re: svn commit: r242074 - head/etc/rc.d
On Fri, Oct 26, 2012 at 03:52:15AM +0900, Hiroki Sato wrote: > Brian Somers wrote > in <20121025171827.ga59...@thong.lan.awfulhak.org>: > > br> After upgrading from 8-STABLE to 9-STABLE on Monday, IPv6 routing > br> advertisments were broken. Disabling accept (enabling send) appeared > br> to be necessary to get things up and running. > br> > br> As you say, net.inet6.ip6.accept_rtadv is set to zero (off, meaning > br> that we *can* send advertisments), so I don't now what the issue > br> is. Irrespective of this, I think it's useful to explicitly set > br> the interface to be able to send advertisments when running rtadvd > br> - just in case the sysctl is set to 1 elsewhere. > br> > br> Doing an "ifconfig inet6 accept_rtadv" after boot doesn't > br> seem to disable sending advertisments, so I'm finding it difficult > br> to test this remotely... testing is awkward when I'm not at home > br> as this machine is also suffering from the "can't reboot" issue!! > br> > br> I'll look into why the sysctl doesn't seem to behave as expected > br> when I get home this evening. > > In 9.X and later the meaning of net.inet6.ip6.accept_rtadv has been > changed and the flag for whether receiving RAs or not is now in a > per-IF basis. 9.0R release note says the following: > > | The sysctl(8) variable net.inet6.ip6.accept_rtadv has been > | changed. It was a system-wide configuration knob which controlled > | whether the system accepts ICMPv6 Router Advertisement messages or > | not. In FreeBSD 9.0-RELEASE, this knob is converted into a > | per-interface inet6 accept_rtadv ifconfig(8) option. Although the > | sysctl(8) variable is available still in FreeBSD 9.0-RELEASE, it > | now controls whether the per-interface option is set by default or > | not. The default value is 0 (not accept the RA messages). > > So, by default RAs can be sent on any interface even if setting > net.inet6.ip6.accept_rtadv=1 manually after a boot because no > accept_rtadv per-IF flag is set. I guess this was a source of the > confusion. I am not sure why setting accept_rtadv flag on an > interface did not prevent from sending RAs in your case. It is not > an intended behavior. If it is reproducible, please let me know. > > The release notes explains more details of IPv6 configuration > migration from 8.X to 9.X. When I reboot and don't use -accept_rtadv (and leave net.inet6.ip6.accept_rtadv set to zero), I repeatedly see this in /var/log/messages: Oct 26 16:31:26 gw rtadvd[2879]: non-zero lifetime RA on RA receiving interface sk0. Ignored. Oct 26 16:31:33 gw rtadvd[2879]: non-zero lifetime RA on RA receiving interface bridge0. Ignored. Oct 26 16:31:42 gw rtadvd[2879]: non-zero lifetime RA on RA receiving interface sk0. Ignored. Oct 26 16:31:49 gw rtadvd[2879]: non-zero lifetime RA on RA receiving interface bridge0. Ignored. This seems to be the problem. Because check_accept_rtadv() (in rtadvd) reports the interface as being able to accept RAs (it finds the ND6_IFF_ACCEPT_RTADV flag), it drops outgoing RAs and nothing happens. -- Brian Somers Don't _EVER_ lose your sense of humour ! pgp9NvdgWzf3f.pgp Description: PGP signature
Re: svn commit: r242074 - head/etc/rc.d
On Thu, Oct 25, 2012 at 09:00:07PM +0900, Hiroki Sato wrote: > Dimitry Andric wrote > in <50892486.9030...@freebsd.org>: > > di> On 2012-10-25 10:37, Brian Somers wrote: > di> ... > di> > URL: http://svn.freebsd.org/changeset/base/242074 > di> > > di> > Log: > di> >Enable "accept_rtadvd" on interfaces running rtadvd. > di> ... > di> > + for iface in ${command_args}; do > di> > + ifconfig ${iface} inet6 -accept_rtadv > di> > + done > di> > di> The commit message says it enables accept_rtadv, the code actually > di> disables it. Which is correct? I assume the latter? Yes, the message should have read "Enable sending router advertisments". Sorry, the exact opposite came out - the naming does my head in :-/ > > Enabling accept_rtadv should prevent rtadvd from sending RAs on the > interface, so disabling it is a necessary step if one wants to send > RAs. > > However, accept_rtadv is off by default in the current rc.d > framework. Why forcibly disabling it is needed? After upgrading from 8-STABLE to 9-STABLE on Monday, IPv6 routing advertisments were broken. Disabling accept (enabling send) appeared to be necessary to get things up and running. As you say, net.inet6.ip6.accept_rtadv is set to zero (off, meaning that we *can* send advertisments), so I don't now what the issue is. Irrespective of this, I think it's useful to explicitly set the interface to be able to send advertisments when running rtadvd - just in case the sysctl is set to 1 elsewhere. Doing an "ifconfig inet6 accept_rtadv" after boot doesn't seem to disable sending advertisments, so I'm finding it difficult to test this remotely... testing is awkward when I'm not at home as this machine is also suffering from the "can't reboot" issue!! I'll look into why the sysctl doesn't seem to behave as expected when I get home this evening. -- Brian Somers Don't _EVER_ lose your sense of humour ! ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r242074 - head/etc/rc.d
Author: brian Date: Thu Oct 25 08:37:08 2012 New Revision: 242074 URL: http://svn.freebsd.org/changeset/base/242074 Log: Enable "accept_rtadvd" on interfaces running rtadvd. Without this, rtadvd runs but never advertises a default (IPv6) route. MFC after:1 week Modified: head/etc/rc.d/rtadvd Modified: head/etc/rc.d/rtadvd == --- head/etc/rc.d/rtadvdThu Oct 25 05:22:25 2012(r242073) +++ head/etc/rc.d/rtadvdThu Oct 25 08:37:08 2012(r242074) @@ -36,17 +36,24 @@ rtadvd_precmd() # case ${rtadvd_interfaces} in [Aa][Uu][Tt][Oo]|'') + command_args= for i in `list_net_interfaces`; do case $i in lo0)continue ;; esac if ipv6if $i; then - rtadvd_interfaces="${rtadvd_interfaces} ${i}" + command_args="${command_args} ${i}" fi done ;; + *) + command_args="${rtadvd_interfaces}" + ;; esac - command_args="${rtadvd_interfaces}" + + for iface in ${command_args}; do + ifconfig ${iface} inet6 -accept_rtadv + done # Enable Router Renumbering, unicast case # (use correct src/dst addr) ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r238897 - head/usr.bin/script
Author: brian Date: Mon Jul 30 08:06:00 2012 New Revision: 238897 URL: http://svn.freebsd.org/changeset/base/238897 Log: Mention when -d, -p and -r first hit FreeBSD. Bump the document date to when the change was made (rather than when the PR was submitted). Suggested by: pluknet Modified: head/usr.bin/script/script.1 Modified: head/usr.bin/script/script.1 == --- head/usr.bin/script/script.1Mon Jul 30 07:13:06 2012 (r238896) +++ head/usr.bin/script/script.1Mon Jul 30 08:06:00 2012 (r238897) @@ -28,7 +28,7 @@ .\"@(#)script.18.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd September 28, 2011 +.Dd July 30, 2012 .Dt SCRIPT 1 .Os .Sh NAME @@ -168,7 +168,9 @@ The and .Fl r options first appeared in -.Nx 2.0 . +.Nx 2.0 +and were ported to +.Fx 10 . .Sh BUGS The .Nm ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r238896 - head/usr.bin/script
Author: brian Date: Mon Jul 30 07:13:06 2012 New Revision: 238896 URL: http://svn.freebsd.org/changeset/base/238896 Log: Add d, p and r switches for recording script sessions with timing data and playing sessions back with or without time delays. PR: 114465 Submitted by: ighighi at gmail dot com MFC after:3 weeks Modified: head/usr.bin/script/script.1 head/usr.bin/script/script.c Modified: head/usr.bin/script/script.1 == --- head/usr.bin/script/script.1Mon Jul 30 06:00:31 2012 (r238895) +++ head/usr.bin/script/script.1Mon Jul 30 07:13:06 2012 (r238896) @@ -36,7 +36,7 @@ .Nd make typescript of terminal session .Sh SYNOPSIS .Nm -.Op Fl akq +.Op Fl adkpqr .Op Fl t Ar time .Op Ar file Op Ar command ... .Sh DESCRIPTION @@ -72,10 +72,20 @@ Append the output to or .Pa typescript , retaining the prior contents. +.It Fl d +When playing back a session with the +.Fl p +flag, don't sleep between records when playing back a timestamped session. .It Fl k Log keys sent to the program as well as output. +.It Fl p +Play back a session recorded with the +.Fl r +flag in real time. .It Fl q -Run in quiet mode, omit the start and stop status messages. +Run in quiet mode, omit the start, stop and command status messages. +.It Fl r +Record a session with input, output, and timestamping. .It Fl t Ar time Specify the interval at which the script output file will be flushed to disk, in seconds. @@ -151,6 +161,14 @@ The .Nm command appeared in .Bx 3.0 . +.Pp +The +.Fl d , +.Fl p +and +.Fl r +options first appeared in +.Nx 2.0 . .Sh BUGS The .Nm Modified: head/usr.bin/script/script.c == --- head/usr.bin/script/script.cMon Jul 30 06:00:31 2012 (r238895) +++ head/usr.bin/script/script.cMon Jul 30 07:13:06 2012 (r238896) @@ -46,6 +46,9 @@ static const char sccsid[] = "@(#)script #include #include #include +#include +#include +#include #include #include @@ -59,11 +62,21 @@ static const char sccsid[] = "@(#)script #include #include +#define DEF_BUF 65536 + +struct stamp { + uint64_t scr_len; /* amount of data */ + uint64_t scr_sec; /* time it arrived in seconds... */ + uint32_t scr_usec; /* ...and microseconds */ + uint32_t scr_direction; /* 'i', 'o', etc (also indicates endianness) */ +}; + static FILE *fscript; static int master, slave; static int child; static const char *fname; static int qflg, ttyflg; +static int usesleep, rawout; static struct termios tt; @@ -71,6 +84,9 @@ static void done(int) __dead2; static void doshell(char **); static void fail(void); static void finish(void); +static void record(FILE *, char *, size_t, int); +static void consume(FILE *, off_t, char *, int); +static void playback(FILE *) __dead2; static void usage(void); int @@ -79,7 +95,7 @@ main(int argc, char *argv[]) int cc; struct termios rtt, stt; struct winsize win; - int aflg, kflg, ch, n; + int aflg, kflg, pflg, ch, n; struct timeval tv, *tvp; time_t tvec, start; char obuf[BUFSIZ]; @@ -87,19 +103,32 @@ main(int argc, char *argv[]) fd_set rfd; int flushtime = 30; int readstdin; + int k; + + aflg = kflg = pflg = 0; + usesleep = 1; + rawout = 0; - aflg = kflg = 0; - while ((ch = getopt(argc, argv, "aqkt:")) != -1) + while ((ch = getopt(argc, argv, "adkpqrt:")) != -1) switch(ch) { case 'a': aflg = 1; break; - case 'q': - qflg = 1; + case 'd': + usesleep = 0; break; case 'k': kflg = 1; break; + case 'p': + pflg = 1; + break; + case 'q': + qflg = 1; + break; + case 'r': + rawout = 1; + break; case 't': flushtime = atoi(optarg); if (flushtime < 0) @@ -119,9 +148,12 @@ main(int argc, char *argv[]) } else fname = "typescript"; - if ((fscript = fopen(fname, aflg ? "a" : "w")) == NULL) + if ((fscript = fopen(fname, pflg ? "r" : aflg ? "a" : "w")) == NULL) err(1, "%s", fname); + if (pflg) + playback(fscript); + if ((ttyflg = isatty(STDIN_FILENO)) != 0) { if (tcgetattr(STDIN_FILENO, &tt) == -1) err(1, "tcgetattr"); @@ -134,10 +166,23 @@ main(int argc, char *argv[]) err(1, "openpty"
Re: svn commit: r224292 - stable/8/sbin/natd
On Sun, Jul 24, 2011 at 06:03:02PM +, Maxim Sobolev wrote: > Author: sobomax > Date: Sun Jul 24 18:03:02 2011 > New Revision: 224292 > URL: http://svn.freebsd.org/changeset/base/224292 > > Log: > MFC: 220736, 220806, 220808 > > If we can retrieve interface address sleep for one second and try again. > This can happen during start-up, when natd starts before dhclient has a > chance to receive IP address from the upstream provider. Do this only in > background, dynamic mode. > > Reminded by: brian [.] Thanks :*) -- Brian Somers Don't _EVER_ lose your sense of humour ! ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r224285 - stable/8/usr.sbin/ppp
Author: brian Date: Sun Jul 24 01:36:01 2011 New Revision: 224285 URL: http://svn.freebsd.org/changeset/base/224285 Log: MFC r218397: Add "iface name" and "iface description" commands. PR: 151400 Submitted by: Aragon Gouveia - aragon at phat dot za dot net Modified: stable/8/usr.sbin/ppp/bundle.c stable/8/usr.sbin/ppp/command.c stable/8/usr.sbin/ppp/iface.c stable/8/usr.sbin/ppp/iface.h stable/8/usr.sbin/ppp/log.c stable/8/usr.sbin/ppp/log.h stable/8/usr.sbin/ppp/main.c stable/8/usr.sbin/ppp/ppp.8.m4 Directory Properties: stable/8/usr.sbin/ppp/ (props changed) Modified: stable/8/usr.sbin/ppp/bundle.c == --- stable/8/usr.sbin/ppp/bundle.c Sat Jul 23 22:55:32 2011 (r224284) +++ stable/8/usr.sbin/ppp/bundle.c Sun Jul 24 01:36:01 2011 (r224285) @@ -758,7 +758,7 @@ bundle_Create(const char *prefix, int ty return NULL; } - log_SetTun(bundle.unit); + log_SetTun(bundle.unit, NULL); ifname = strrchr(bundle.dev.Name, '/'); if (ifname == NULL) @@ -849,7 +849,7 @@ bundle_Create(const char *prefix, int ty bundle.links = datalink_Create("deflink", &bundle, type); if (bundle.links == NULL) { log_Printf(LogALERT, "Cannot create data link: %s\n", strerror(errno)); -iface_Destroy(bundle.iface); +iface_Free(bundle.iface); bundle.iface = NULL; close(bundle.dev.fd); return NULL; Modified: stable/8/usr.sbin/ppp/command.c == --- stable/8/usr.sbin/ppp/command.c Sat Jul 23 22:55:32 2011 (r224284) +++ stable/8/usr.sbin/ppp/command.c Sun Jul 24 01:36:01 2011 (r224285) @@ -184,6 +184,7 @@ static int DeleteCommand(struct cmdargs static int NegotiateCommand(struct cmdargs const *); static int ClearCommand(struct cmdargs const *); static int RunListCommand(struct cmdargs const *); +static int IfaceNameCommand(struct cmdargs const *arg); static int IfaceAddCommand(struct cmdargs const *); static int IfaceDeleteCommand(struct cmdargs const *); static int IfaceClearCommand(struct cmdargs const *); @@ -823,6 +824,10 @@ static struct cmdtab const IfaceCommands "Delete iface address", "iface delete addr", (void *)1}, {NULL, "delete!", IfaceDeleteCommand, LOCAL_AUTH, "Delete iface address", "iface delete addr", (void *)1}, + {"name", NULL, IfaceNameCommand, LOCAL_AUTH, +"Set iface name", "iface name name", NULL}, + {"description", NULL, iface_Descr, LOCAL_AUTH, +"Set iface description", "iface description text", NULL}, {"show", NULL, iface_Show, LOCAL_AUTH, "Show iface address(es)", "iface show", NULL}, {"help", "?", HelpCommand, LOCAL_AUTH | LOCAL_NO_AUTH, @@ -3176,6 +3181,21 @@ RunListCommand(struct cmdargs const *arg } static int +IfaceNameCommand(struct cmdargs const *arg) +{ + int n = arg->argn; + + if (arg->argc != n + 1) +return -1; + + if (!iface_Name(arg->bundle->iface, arg->argv[n])) +return 1; + + log_SetTun(arg->bundle->unit, arg->bundle->iface->name); + return 0; +} + +static int IfaceAddCommand(struct cmdargs const *arg) { struct ncpaddr peer, addr; Modified: stable/8/usr.sbin/ppp/iface.c == --- stable/8/usr.sbin/ppp/iface.c Sat Jul 23 22:55:32 2011 (r224284) +++ stable/8/usr.sbin/ppp/iface.c Sun Jul 24 01:36:01 2011 (r224285) @@ -151,6 +151,7 @@ iface_Create(const char *name) return NULL; } iface->name = strdup(name); + iface->descr = NULL; iface->index = ifm->ifm_index; iface->flags = ifm->ifm_flags; iface->mtu = 0; @@ -369,6 +370,103 @@ iface_addr_Add(const char *name, struct return res != -1; } +int +iface_Name(struct iface *iface, const char *name) +{ + struct ifreq ifr; + int s; + char *newname; + + if ((newname = strdup(name)) == NULL) { +log_Printf(LogWARN, "iface name: strdup failed: %s\n", strerror(errno)); +return 0; + } + + if ((s = ID0socket(PF_INET, SOCK_DGRAM, 0)) == -1) { +log_Printf(LogERROR, "iface name: socket(): %s\n", strerror(errno)); +free(newname); +return 0; + } + + strlcpy(ifr.ifr_name, iface->name, sizeof(ifr.ifr_name)); + ifr.ifr_data = newname; + if (ID0ioctl(s, SIOCSIFNAME, (caddr_t)&ifr) < 0) { +log_Printf(LogWARN, "iface name: ioctl(SIOCSIFNAME, %s -> %s): %s\n", + name, newname, strerror(errno)); +free(newname); +return 0; + } + + free(iface->name); + iface->name = newname; + + return 1; +} + +int +iface_Descr(struct cmdargs const *arg) +{ + struct ifreq ifr; + struct iface *iface; + size_t sz, len; + int s, n, ifdescr_maxlen; + char *descr; + + sz = sizeof(int); + if (sysctlbyname("net.ifdescr_maxlen", &ifdescr_maxlen, &sz, NULL, 0) < 0) { +log_Printf(LogERROR, "iface descr: sysctl failed: %s\n", strerror(errno)); +
svn commit: r218397 - head/usr.sbin/ppp
Author: brian Date: Mon Feb 7 11:18:18 2011 New Revision: 218397 URL: http://svn.freebsd.org/changeset/base/218397 Log: Add "iface name" and "iface description" commands. PR: 151400 Submitted by: Aragon Gouveia - aragon at phat dot za dot net with minor fixes MFC after:3 weeks Modified: head/usr.sbin/ppp/bundle.c head/usr.sbin/ppp/command.c head/usr.sbin/ppp/iface.c head/usr.sbin/ppp/iface.h head/usr.sbin/ppp/log.c head/usr.sbin/ppp/log.h head/usr.sbin/ppp/main.c head/usr.sbin/ppp/ppp.8.m4 Modified: head/usr.sbin/ppp/bundle.c == --- head/usr.sbin/ppp/bundle.c Mon Feb 7 11:13:28 2011(r218396) +++ head/usr.sbin/ppp/bundle.c Mon Feb 7 11:18:18 2011(r218397) @@ -758,7 +758,7 @@ bundle_Create(const char *prefix, int ty return NULL; } - log_SetTun(bundle.unit); + log_SetTun(bundle.unit, NULL); ifname = strrchr(bundle.dev.Name, '/'); if (ifname == NULL) @@ -849,7 +849,7 @@ bundle_Create(const char *prefix, int ty bundle.links = datalink_Create("deflink", &bundle, type); if (bundle.links == NULL) { log_Printf(LogALERT, "Cannot create data link: %s\n", strerror(errno)); -iface_Destroy(bundle.iface); +iface_Free(bundle.iface); bundle.iface = NULL; close(bundle.dev.fd); return NULL; Modified: head/usr.sbin/ppp/command.c == --- head/usr.sbin/ppp/command.c Mon Feb 7 11:13:28 2011(r218396) +++ head/usr.sbin/ppp/command.c Mon Feb 7 11:18:18 2011(r218397) @@ -184,6 +184,7 @@ static int DeleteCommand(struct cmdargs static int NegotiateCommand(struct cmdargs const *); static int ClearCommand(struct cmdargs const *); static int RunListCommand(struct cmdargs const *); +static int IfaceNameCommand(struct cmdargs const *arg); static int IfaceAddCommand(struct cmdargs const *); static int IfaceDeleteCommand(struct cmdargs const *); static int IfaceClearCommand(struct cmdargs const *); @@ -823,6 +824,10 @@ static struct cmdtab const IfaceCommands "Delete iface address", "iface delete addr", (void *)1}, {NULL, "delete!", IfaceDeleteCommand, LOCAL_AUTH, "Delete iface address", "iface delete addr", (void *)1}, + {"name", NULL, IfaceNameCommand, LOCAL_AUTH, +"Set iface name", "iface name name", NULL}, + {"description", NULL, iface_Descr, LOCAL_AUTH, +"Set iface description", "iface description text", NULL}, {"show", NULL, iface_Show, LOCAL_AUTH, "Show iface address(es)", "iface show", NULL}, {"help", "?", HelpCommand, LOCAL_AUTH | LOCAL_NO_AUTH, @@ -3176,6 +3181,21 @@ RunListCommand(struct cmdargs const *arg } static int +IfaceNameCommand(struct cmdargs const *arg) +{ + int n = arg->argn; + + if (arg->argc != n + 1) +return -1; + + if (!iface_Name(arg->bundle->iface, arg->argv[n])) +return 1; + + log_SetTun(arg->bundle->unit, arg->bundle->iface->name); + return 0; +} + +static int IfaceAddCommand(struct cmdargs const *arg) { struct ncpaddr peer, addr; Modified: head/usr.sbin/ppp/iface.c == --- head/usr.sbin/ppp/iface.c Mon Feb 7 11:13:28 2011(r218396) +++ head/usr.sbin/ppp/iface.c Mon Feb 7 11:18:18 2011(r218397) @@ -151,6 +151,7 @@ iface_Create(const char *name) return NULL; } iface->name = strdup(name); + iface->descr = NULL; iface->index = ifm->ifm_index; iface->flags = ifm->ifm_flags; iface->mtu = 0; @@ -369,6 +370,103 @@ iface_addr_Add(const char *name, struct return res != -1; } +int +iface_Name(struct iface *iface, const char *name) +{ + struct ifreq ifr; + int s; + char *newname; + + if ((newname = strdup(name)) == NULL) { +log_Printf(LogWARN, "iface name: strdup failed: %s\n", strerror(errno)); +return 0; + } + + if ((s = ID0socket(PF_INET, SOCK_DGRAM, 0)) == -1) { +log_Printf(LogERROR, "iface name: socket(): %s\n", strerror(errno)); +free(newname); +return 0; + } + + strlcpy(ifr.ifr_name, iface->name, sizeof(ifr.ifr_name)); + ifr.ifr_data = newname; + if (ID0ioctl(s, SIOCSIFNAME, (caddr_t)&ifr) < 0) { +log_Printf(LogWARN, "iface name: ioctl(SIOCSIFNAME, %s -> %s): %s\n", + name, newname, strerror(errno)); +free(newname); +return 0; + } + + free(iface->name); + iface->name = newname; + + return 1; +} + +int +iface_Descr(struct cmdargs const *arg) +{ + struct ifreq ifr; + struct iface *iface; + size_t sz, len; + int s, n, ifdescr_maxlen; + char *descr; + + sz = sizeof(int); + if (sysctlbyname("net.ifdescr_maxlen", &ifdescr_maxlen, &sz, NULL, 0) < 0) { +log_Printf(LogERROR, "iface descr: sysctl failed: %s\n", strerror(errno)); +return 1; + } + + if (ifdescr_maxlen < 1) { +log_Printf(LogERROR, "iface descr: sysctl net.ifdescr_maxlen < 1\n"); +return
svn commit: r217116 - releng/7.4/usr.sbin/newsyslog
Author: brian Date: Fri Jan 7 18:34:09 2011 New Revision: 217116 URL: http://svn.freebsd.org/changeset/base/217116 Log: MFC r216832: Make -S functional Approved by: re (kib) Modified: releng/7.4/usr.sbin/newsyslog/newsyslog.c Directory Properties: releng/7.4/usr.sbin/newsyslog/ (props changed) Modified: releng/7.4/usr.sbin/newsyslog/newsyslog.c == --- releng/7.4/usr.sbin/newsyslog/newsyslog.c Fri Jan 7 18:33:26 2011 (r217115) +++ releng/7.4/usr.sbin/newsyslog/newsyslog.c Fri Jan 7 18:34:09 2011 (r217116) @@ -583,7 +583,7 @@ parse_args(int argc, char **argv) *p = '\0'; /* Parse command line options. */ - while ((ch = getopt(argc, argv, "a:d:f:nrsvCD:FNPR:")) != -1) + while ((ch = getopt(argc, argv, "a:d:f:nrsvCD:FNPR:S:")) != -1) switch (ch) { case 'a': archtodir++; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r217115 - releng/8.2/usr.sbin/newsyslog
Author: brian Date: Fri Jan 7 18:33:26 2011 New Revision: 217115 URL: http://svn.freebsd.org/changeset/base/217115 Log: MFC r216832: Make -S functional Approved by: re (kib) Modified: releng/8.2/usr.sbin/newsyslog/newsyslog.c Directory Properties: releng/8.2/usr.sbin/newsyslog/ (props changed) Modified: releng/8.2/usr.sbin/newsyslog/newsyslog.c == --- releng/8.2/usr.sbin/newsyslog/newsyslog.c Fri Jan 7 18:32:03 2011 (r217114) +++ releng/8.2/usr.sbin/newsyslog/newsyslog.c Fri Jan 7 18:33:26 2011 (r217115) @@ -599,7 +599,7 @@ parse_args(int argc, char **argv) *p = '\0'; /* Parse command line options. */ - while ((ch = getopt(argc, argv, "a:d:f:nrst:vCD:FNPR:")) != -1) + while ((ch = getopt(argc, argv, "a:d:f:nrst:vCD:FNPR:S:")) != -1) switch (ch) { case 'a': archtodir++; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r217089 - stable/7/usr.sbin/newsyslog
Author: brian Date: Fri Jan 7 08:45:56 2011 New Revision: 217089 URL: http://svn.freebsd.org/changeset/base/217089 Log: MFC r216832: Make -S functional Modified: stable/7/usr.sbin/newsyslog/newsyslog.c Directory Properties: stable/7/usr.sbin/newsyslog/ (props changed) Modified: stable/7/usr.sbin/newsyslog/newsyslog.c == --- stable/7/usr.sbin/newsyslog/newsyslog.c Fri Jan 7 08:42:58 2011 (r217088) +++ stable/7/usr.sbin/newsyslog/newsyslog.c Fri Jan 7 08:45:56 2011 (r217089) @@ -583,7 +583,7 @@ parse_args(int argc, char **argv) *p = '\0'; /* Parse command line options. */ - while ((ch = getopt(argc, argv, "a:d:f:nrsvCD:FNPR:")) != -1) + while ((ch = getopt(argc, argv, "a:d:f:nrsvCD:FNPR:S:")) != -1) switch (ch) { case 'a': archtodir++; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r217088 - stable/8/usr.sbin/newsyslog
Author: brian Date: Fri Jan 7 08:42:58 2011 New Revision: 217088 URL: http://svn.freebsd.org/changeset/base/217088 Log: MFC r216832: Make -S functional Modified: stable/8/usr.sbin/newsyslog/newsyslog.c Directory Properties: stable/8/usr.sbin/newsyslog/ (props changed) Modified: stable/8/usr.sbin/newsyslog/newsyslog.c == --- stable/8/usr.sbin/newsyslog/newsyslog.c Fri Jan 7 08:34:12 2011 (r217087) +++ stable/8/usr.sbin/newsyslog/newsyslog.c Fri Jan 7 08:42:58 2011 (r217088) @@ -599,7 +599,7 @@ parse_args(int argc, char **argv) *p = '\0'; /* Parse command line options. */ - while ((ch = getopt(argc, argv, "a:d:f:nrst:vCD:FNPR:")) != -1) + while ((ch = getopt(argc, argv, "a:d:f:nrst:vCD:FNPR:S:")) != -1) switch (ch) { case 'a': archtodir++; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r216832 - head/usr.sbin/newsyslog
Author: brian Date: Fri Dec 31 01:10:42 2010 New Revision: 216832 URL: http://svn.freebsd.org/changeset/base/216832 Log: Make -S functional. MFC after:1 week Modified: head/usr.sbin/newsyslog/newsyslog.c Modified: head/usr.sbin/newsyslog/newsyslog.c == --- head/usr.sbin/newsyslog/newsyslog.c Fri Dec 31 00:46:30 2010 (r216831) +++ head/usr.sbin/newsyslog/newsyslog.c Fri Dec 31 01:10:42 2010 (r216832) @@ -599,7 +599,7 @@ parse_args(int argc, char **argv) *p = '\0'; /* Parse command line options. */ - while ((ch = getopt(argc, argv, "a:d:f:nrst:vCD:FNPR:")) != -1) + while ((ch = getopt(argc, argv, "a:d:f:nrst:vCD:FNPR:S:")) != -1) switch (ch) { case 'a': archtodir++; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r215954 - stable/7/sys/dev/asr
Author: brian Date: Sat Nov 27 21:20:51 2010 New Revision: 215954 URL: http://svn.freebsd.org/changeset/base/215954 Log: MFC r21584: Don't zero 'Info' after setting it up in the ASR_IOCTL_COMPAT case. Modified: stable/7/sys/dev/asr/asr.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/asr/asr.c == --- stable/7/sys/dev/asr/asr.c Sat Nov 27 21:18:08 2010(r215953) +++ stable/7/sys/dev/asr/asr.c Sat Nov 27 21:20:51 2010(r215954) @@ -3711,9 +3711,9 @@ asr_ioctl(struct cdev *dev, u_long cmd, Info.drive1CMOS = j; Info.numDrives = *((char *)ptok(0x475)); -#endif /* ASR_IOCTL_COMPAT */ - +#else /* ASR_IOCTL_COMPAT */ bzero(&Info, sizeof(Info)); +#endif /* ASR_IOCTL_COMPAT */ Info.processorFamily = ASR_sig.dsProcessorFamily; #if defined(__i386__) ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r215953 - stable/8/sys/dev/asr
Author: brian Date: Sat Nov 27 21:18:08 2010 New Revision: 215953 URL: http://svn.freebsd.org/changeset/base/215953 Log: MFC r215843: Don't zero 'Info' after setting it up in the ASR_IOCTL_COMPAT case. Modified: stable/8/sys/dev/asr/asr.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/mips/alchemy/ (props changed) stable/8/sys/mips/atheros/ (props changed) stable/8/sys/mips/cavium/ (props changed) stable/8/sys/mips/cavium/dev/ (props changed) stable/8/sys/mips/rmi/ (props changed) stable/8/sys/mips/rmi/dev/ (props changed) stable/8/sys/mips/sibyte/ (props changed) Modified: stable/8/sys/dev/asr/asr.c == --- stable/8/sys/dev/asr/asr.c Sat Nov 27 20:38:26 2010(r215952) +++ stable/8/sys/dev/asr/asr.c Sat Nov 27 21:18:08 2010(r215953) @@ -3708,9 +3708,9 @@ asr_ioctl(struct cdev *dev, u_long cmd, Info.drive1CMOS = j; Info.numDrives = *((char *)ptok(0x475)); -#endif /* ASR_IOCTL_COMPAT */ - +#else /* ASR_IOCTL_COMPAT */ bzero(&Info, sizeof(Info)); +#endif /* ASR_IOCTL_COMPAT */ Info.processorFamily = ASR_sig.dsProcessorFamily; #if defined(__i386__) ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r215843 - head/sys/dev/asr
Author: brian Date: Thu Nov 25 21:51:43 2010 New Revision: 215843 URL: http://svn.freebsd.org/changeset/base/215843 Log: Don't zero 'Info' after setting it up in the ASR_IOCTL_COMPAT case. MFC after:2 days Modified: head/sys/dev/asr/asr.c Modified: head/sys/dev/asr/asr.c == --- head/sys/dev/asr/asr.c Thu Nov 25 21:42:36 2010(r215842) +++ head/sys/dev/asr/asr.c Thu Nov 25 21:51:43 2010(r215843) @@ -3708,9 +3708,9 @@ asr_ioctl(struct cdev *dev, u_long cmd, Info.drive1CMOS = j; Info.numDrives = *((char *)ptok(0x475)); -#endif /* ASR_IOCTL_COMPAT */ - +#else /* ASR_IOCTL_COMPAT */ bzero(&Info, sizeof(Info)); +#endif /* ASR_IOCTL_COMPAT */ Info.processorFamily = ASR_sig.dsProcessorFamily; #if defined(__i386__) ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r215842 - stable/7/sbin/natd
Author: brian Date: Thu Nov 25 21:42:36 2010 New Revision: 215842 URL: http://svn.freebsd.org/changeset/base/215842 Log: MF8: Don't abend if we get ENOMEM from sysctl(3). The data returned is sufficient Modified: stable/7/sbin/natd/natd.c Directory Properties: stable/7/sbin/natd/ (props changed) Modified: stable/7/sbin/natd/natd.c == --- stable/7/sbin/natd/natd.c Thu Nov 25 20:35:49 2010(r215841) +++ stable/7/sbin/natd/natd.c Thu Nov 25 21:42:36 2010(r215842) @@ -885,7 +885,7 @@ SetAliasAddressFromIfName(const char *if err(1, "iflist-sysctl-estimate"); if ((buf = malloc(needed)) == NULL) errx(1, "malloc failed"); - if (sysctl(mib, 6, buf, &needed, NULL, 0) == -1) + if (sysctl(mib, 6, buf, &needed, NULL, 0) == -1 && errno != ENOMEM) err(1, "iflist-sysctl-get"); lim = buf + needed; /* ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r215778 - stable/7/sbin/growfs
Author: brian Date: Tue Nov 23 21:45:14 2010 New Revision: 215778 URL: http://svn.freebsd.org/changeset/base/215778 Log: MFC r197763, r198236, r212839 and r212886: Handle extending a filesystem into unzeroed storage. Modified: stable/7/sbin/growfs/Makefile stable/7/sbin/growfs/growfs.c Directory Properties: stable/7/sbin/growfs/ (props changed) Modified: stable/7/sbin/growfs/Makefile == --- stable/7/sbin/growfs/Makefile Tue Nov 23 21:42:26 2010 (r215777) +++ stable/7/sbin/growfs/Makefile Tue Nov 23 21:45:14 2010 (r215778) @@ -10,8 +10,6 @@ PROG= growfs SRCS= growfs.c MAN= growfs.8 -WARNS?=6 - .if defined(GFSDBG) SRCS+= debug.c .endif Modified: stable/7/sbin/growfs/growfs.c == --- stable/7/sbin/growfs/growfs.c Tue Nov 23 21:42:26 2010 (r215777) +++ stable/7/sbin/growfs/growfs.c Tue Nov 23 21:45:14 2010 (r215778) @@ -371,16 +371,16 @@ static void initcg(int cylno, time_t utime, int fso, unsigned int Nflag) { DBG_FUNC("initcg") - static void *iobuf; + static caddr_t iobuf; long blkno, start; ufs2_daddr_t i, cbase, dmax; struct ufs1_dinode *dp1; struct csum *cs; uint d, dupper, dlower; - if (iobuf == NULL && (iobuf = malloc(sblock.fs_bsize)) == NULL) { + if (iobuf == NULL && (iobuf = malloc(sblock.fs_bsize * 3)) == NULL) errx(37, "panic: cannot allocate I/O buffer"); - } + /* * Determine block bounds for cylinder group. * Allow space for super block summary information in first @@ -400,7 +400,8 @@ initcg(int cylno, time_t utime, int fso, acg.cg_magic = CG_MAGIC; acg.cg_cgx = cylno; acg.cg_niblk = sblock.fs_ipg; - acg.cg_initediblk = sblock.fs_ipg; + acg.cg_initediblk = sblock.fs_ipg < 2 * INOPB(&sblock) ? + sblock.fs_ipg : 2 * INOPB(&sblock); acg.cg_ndblk = dmax - cbase; if (sblock.fs_contigsumsize > 0) acg.cg_nclusterblks = acg.cg_ndblk / sblock.fs_frag; @@ -451,7 +452,7 @@ initcg(int cylno, time_t utime, int fso, bzero(iobuf, sblock.fs_bsize); for (i = 0; i < sblock.fs_ipg / INOPF(&sblock); i += sblock.fs_frag) { - dp1 = (struct ufs1_dinode *)iobuf; + dp1 = (struct ufs1_dinode *)(void *)iobuf; #ifdef FSIRAND for (j = 0; j < INOPB(&sblock); j++) { dp1->di_gen = random(); @@ -533,11 +534,14 @@ initcg(int cylno, time_t utime, int fso, sblock.fs_cstotal.cs_nbfree += acg.cg_cs.cs_nbfree; sblock.fs_cstotal.cs_nifree += acg.cg_cs.cs_nifree; *cs = acg.cg_cs; + + memcpy(iobuf, &acg, sblock.fs_cgsize); + memset(iobuf + sblock.fs_cgsize, '\0', + sblock.fs_bsize * 3 - sblock.fs_cgsize); + wtfs(fsbtodb(&sblock, cgtod(&sblock, cylno)), - sblock.fs_bsize, (char *)&acg, fso, Nflag); - DBG_DUMP_CG(&sblock, - "new cg", - &acg); + sblock.fs_bsize * 3, iobuf, fso, Nflag); + DBG_DUMP_CG(&sblock, "new cg", &acg); DBG_LEAVE; return; @@ -2209,6 +2213,7 @@ main(int argc, char **argv) printf("Warning: %jd sector(s) cannot be allocated.\n", (intmax_t)fsbtodb(&sblock, sblock.fs_size % sblock.fs_fpg)); sblock.fs_size = sblock.fs_ncg * sblock.fs_fpg; + maxino -= sblock.fs_ipg; } /* ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r215668 - stable/7/sbin/fdisk
Author: brian Date: Mon Nov 22 09:34:38 2010 New Revision: 215668 URL: http://svn.freebsd.org/changeset/base/215668 Log: MFC r212247 & r212724 from head: Handle geli-encrypted root disk devices. Add support for identifying a journaled root filesystem. Fix support for identifying the given /dev/vinum/root example. Modified: stable/7/sbin/fdisk/fdisk.c Directory Properties: stable/7/sbin/fdisk/ (props changed) Modified: stable/7/sbin/fdisk/fdisk.c == --- stable/7/sbin/fdisk/fdisk.c Mon Nov 22 09:32:54 2010(r215667) +++ stable/7/sbin/fdisk/fdisk.c Mon Nov 22 09:34:38 2010(r215668) @@ -1492,6 +1492,8 @@ sanitize_partition(struct dos_partition * /dev/ad0s1a => /dev/ad0 * /dev/da0a => /dev/da0 * /dev/vinum/root => /dev/vinum/root + * A ".eli" part is removed if it exists (see geli(8)). + * A ".journal" ending is removed if it exists (see gjournal(8)). */ static char * get_rootdisk(void) @@ -1500,16 +1502,20 @@ get_rootdisk(void) regex_t re; #define NMATCHES 2 regmatch_t rm[NMATCHES]; - char *s; + char dev[PATH_MAX], *s; int rv; if (statfs("/", &rootfs) == -1) err(1, "statfs(\"/\")"); - if ((rv = regcomp(&re, "^(/dev/[a-z/]+[0-9]+)([sp][0-9]+)?[a-h]?$", + if ((rv = regcomp(&re, "^(/dev/[a-z/]+[0-9]*)([sp][0-9]+)?[a-h]?(\\.journal)?$", REG_EXTENDED)) != 0) errx(1, "regcomp() failed (%d)", rv); - if ((rv = regexec(&re, rootfs.f_mntfromname, NMATCHES, rm, 0)) != 0) + strlcpy(dev, rootfs.f_mntfromname, sizeof (dev)); + if ((s = strstr(dev, ".eli")) != NULL) + memmove(s, s+4, strlen(s + 4) + 1); + + if ((rv = regexec(&re, dev, NMATCHES, rm, 0)) != 0) errx(1, "mounted root fs resource doesn't match expectations (regexec returned %d)", rv); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r215667 - stable/8/sbin/fdisk
Author: brian Date: Mon Nov 22 09:32:54 2010 New Revision: 215667 URL: http://svn.freebsd.org/changeset/base/215667 Log: MFC r212247 & r212724 from head: Handle geli-encrypted root disk devices. Add support for identifying a journaled root filesystem. Fix support for identifying the given /dev/vinum/root example. Modified: stable/8/sbin/fdisk/fdisk.c Directory Properties: stable/8/sbin/fdisk/ (props changed) Modified: stable/8/sbin/fdisk/fdisk.c == --- stable/8/sbin/fdisk/fdisk.c Mon Nov 22 09:25:32 2010(r215666) +++ stable/8/sbin/fdisk/fdisk.c Mon Nov 22 09:32:54 2010(r215667) @@ -1461,6 +1461,8 @@ sanitize_partition(struct dos_partition * /dev/ad0s1a => /dev/ad0 * /dev/da0a => /dev/da0 * /dev/vinum/root => /dev/vinum/root + * A ".eli" part is removed if it exists (see geli(8)). + * A ".journal" ending is removed if it exists (see gjournal(8)). */ static char * get_rootdisk(void) @@ -1469,16 +1471,20 @@ get_rootdisk(void) regex_t re; #define NMATCHES 2 regmatch_t rm[NMATCHES]; - char *s; + char dev[PATH_MAX], *s; int rv; if (statfs("/", &rootfs) == -1) err(1, "statfs(\"/\")"); - if ((rv = regcomp(&re, "^(/dev/[a-z/]+[0-9]+)([sp][0-9]+)?[a-h]?$", + if ((rv = regcomp(&re, "^(/dev/[a-z/]+[0-9]*)([sp][0-9]+)?[a-h]?(\\.journal)?$", REG_EXTENDED)) != 0) errx(1, "regcomp() failed (%d)", rv); - if ((rv = regexec(&re, rootfs.f_mntfromname, NMATCHES, rm, 0)) != 0) + strlcpy(dev, rootfs.f_mntfromname, sizeof (dev)); + if ((s = strstr(dev, ".eli")) != NULL) + memmove(s, s+4, strlen(s + 4) + 1); + + if ((rv = regexec(&re, dev, NMATCHES, rm, 0)) != 0) errx(1, "mounted root fs resource doesn't match expectations (regexec returned %d)", rv); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r214958 - stable/8/sbin/growfs
Author: brian Date: Sun Nov 7 22:33:55 2010 New Revision: 214958 URL: http://svn.freebsd.org/changeset/base/214958 Log: MFC r212886 (by marcel): Unbreak the build on strong-aligned architectures. Modified: stable/8/sbin/growfs/growfs.c Directory Properties: stable/8/sbin/growfs/ (props changed) Modified: stable/8/sbin/growfs/growfs.c == --- stable/8/sbin/growfs/growfs.c Sun Nov 7 22:28:55 2010 (r214957) +++ stable/8/sbin/growfs/growfs.c Sun Nov 7 22:33:55 2010 (r214958) @@ -452,7 +452,7 @@ initcg(int cylno, time_t utime, int fso, bzero(iobuf, sblock.fs_bsize); for (i = 0; i < sblock.fs_ipg / INOPF(&sblock); i += sblock.fs_frag) { - dp1 = (struct ufs1_dinode *)iobuf; + dp1 = (struct ufs1_dinode *)(void *)iobuf; #ifdef FSIRAND for (j = 0; j < INOPB(&sblock); j++) { dp1->di_gen = random(); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r214957 - stable/8/sbin/growfs
Author: brian Date: Sun Nov 7 22:28:55 2010 New Revision: 214957 URL: http://svn.freebsd.org/changeset/base/214957 Log: MFC r198236 for now. Modified: stable/8/sbin/growfs/Makefile Directory Properties: stable/8/sbin/growfs/ (props changed) Modified: stable/8/sbin/growfs/Makefile == --- stable/8/sbin/growfs/Makefile Sun Nov 7 22:24:17 2010 (r214956) +++ stable/8/sbin/growfs/Makefile Sun Nov 7 22:28:55 2010 (r214957) @@ -10,8 +10,6 @@ PROG= growfs SRCS= growfs.c MAN= growfs.8 -WARNS?=6 - .if defined(GFSDBG) SRCS+= debug.c .endif ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r214956 - in stable/8: sbin/growfs tools/regression/lib/msun tools/regression/sbin tools/regression/usr.bin/pkill tools/tools/ath/common tools/tools/termcap
Author: brian Date: Sun Nov 7 22:24:17 2010 New Revision: 214956 URL: http://svn.freebsd.org/changeset/base/214956 Log: MFC r197763 and r212839: Handle extending a filesystem into unzeroed storage. Added: stable/8/tools/regression/sbin/ - copied from r212839, head/tools/regression/sbin/ Modified: stable/8/sbin/growfs/growfs.c Directory Properties: stable/8/sbin/growfs/ (props changed) stable/8/tools/ (props changed) stable/8/tools/build/mk/ (props changed) stable/8/tools/build/options/ (props changed) stable/8/tools/debugscripts/ (props changed) stable/8/tools/kerneldoc/subsys/ (props changed) stable/8/tools/regression/acltools/ (props changed) stable/8/tools/regression/aio/aiotest/ (props changed) stable/8/tools/regression/bin/sh/ (props changed) stable/8/tools/regression/fifo/ (props changed) stable/8/tools/regression/geom/ (props changed) stable/8/tools/regression/lib/libc/ (props changed) stable/8/tools/regression/lib/msun/test-conj.t (props changed) stable/8/tools/regression/mqueue/mqtest1/ (props changed) stable/8/tools/regression/mqueue/mqtest2/ (props changed) stable/8/tools/regression/mqueue/mqtest3/ (props changed) stable/8/tools/regression/mqueue/mqtest4/ (props changed) stable/8/tools/regression/mqueue/mqtest5/ (props changed) stable/8/tools/regression/poll/ (props changed) stable/8/tools/regression/posixsem/ (props changed) stable/8/tools/regression/priv/ (props changed) stable/8/tools/regression/usr.bin/ (props changed) stable/8/tools/regression/usr.bin/pkill/pgrep-_g.t (props changed) stable/8/tools/regression/usr.bin/pkill/pgrep-_s.t (props changed) stable/8/tools/regression/usr.bin/pkill/pkill-_g.t (props changed) stable/8/tools/regression/usr.bin/sed/ (props changed) stable/8/tools/regression/usr.bin/tr/ (props changed) stable/8/tools/test/ (props changed) stable/8/tools/tools/ (props changed) stable/8/tools/tools/ath/ (props changed) stable/8/tools/tools/ath/common/dumpregs.h (props changed) stable/8/tools/tools/ath/common/dumpregs_5210.c (props changed) stable/8/tools/tools/ath/common/dumpregs_5211.c (props changed) stable/8/tools/tools/ath/common/dumpregs_5212.c (props changed) stable/8/tools/tools/ath/common/dumpregs_5416.c (props changed) stable/8/tools/tools/nanobsd/ (props changed) stable/8/tools/tools/netrate/ (props changed) stable/8/tools/tools/netrate/tcpp/ (props changed) stable/8/tools/tools/termcap/termcap.pl (props changed) stable/8/tools/tools/umastat/ (props changed) stable/8/tools/tools/vimage/ (props changed) Modified: stable/8/sbin/growfs/growfs.c == --- stable/8/sbin/growfs/growfs.c Sun Nov 7 21:57:57 2010 (r214955) +++ stable/8/sbin/growfs/growfs.c Sun Nov 7 22:24:17 2010 (r214956) @@ -371,16 +371,16 @@ static void initcg(int cylno, time_t utime, int fso, unsigned int Nflag) { DBG_FUNC("initcg") - static void *iobuf; + static caddr_t iobuf; long blkno, start; ufs2_daddr_t i, cbase, dmax; struct ufs1_dinode *dp1; struct csum *cs; uint d, dupper, dlower; - if (iobuf == NULL && (iobuf = malloc(sblock.fs_bsize)) == NULL) { + if (iobuf == NULL && (iobuf = malloc(sblock.fs_bsize * 3)) == NULL) errx(37, "panic: cannot allocate I/O buffer"); - } + /* * Determine block bounds for cylinder group. * Allow space for super block summary information in first @@ -400,7 +400,8 @@ initcg(int cylno, time_t utime, int fso, acg.cg_magic = CG_MAGIC; acg.cg_cgx = cylno; acg.cg_niblk = sblock.fs_ipg; - acg.cg_initediblk = sblock.fs_ipg; + acg.cg_initediblk = sblock.fs_ipg < 2 * INOPB(&sblock) ? + sblock.fs_ipg : 2 * INOPB(&sblock); acg.cg_ndblk = dmax - cbase; if (sblock.fs_contigsumsize > 0) acg.cg_nclusterblks = acg.cg_ndblk / sblock.fs_frag; @@ -533,11 +534,14 @@ initcg(int cylno, time_t utime, int fso, sblock.fs_cstotal.cs_nbfree += acg.cg_cs.cs_nbfree; sblock.fs_cstotal.cs_nifree += acg.cg_cs.cs_nifree; *cs = acg.cg_cs; + + memcpy(iobuf, &acg, sblock.fs_cgsize); + memset(iobuf + sblock.fs_cgsize, '\0', + sblock.fs_bsize * 3 - sblock.fs_cgsize); + wtfs(fsbtodb(&sblock, cgtod(&sblock, cylno)), - sblock.fs_bsize, (char *)&acg, fso, Nflag); - DBG_DUMP_CG(&sblock, - "new cg", - &acg); + sblock.fs_bsize * 3, iobuf, fso, Nflag); + DBG_DUMP_CG(&sblock, "new cg", &acg); DBG_LEAVE; return; @@ -2209,6 +2213,7 @@ main(int argc, char **argv) printf("Warning: %jd sector(s) cannot be allocated.\n", (intmax_t)fsbtodb(&sblock, sblock.fs_size % sblock.fs_fpg));
Re: svn commit: r212886 - head/sbin/growfs
On Mon, 20 Sep 2010 16:55:57 +1000 (EST) Bruce Evans wrote: > On Mon, 20 Sep 2010, Marcel Moolenaar wrote: > > > Log: > > Unbreak the build on strong-aligned architectures (arm, ia64). > > Casting from (char *) to (struct ufs1_dinode *) changes the > > alignment requirement of the pointer and GCC does not know that > > the pointer is adequately aligned (due to malloc(3)), and warns > > about it. Cast to (void *) first to by-pass the check. > > A previous version in which the pointer (iobuf) the correct type to > begin with was better. It used to have type void *, but now has type > caddr_t (whose existence is a bug), in order to abuse caddr_t by > assuming that it is char * to do pointer arithmetic on it in 1 place > (iobuf + sblock.fs_cgsize). The 7 other places where iobuf is used > only assume that caddr_t is a pointer (or perhaps a [u]intptr_t). > > growfs has no other instances of caddr_t. Maybe iobuf ought to go back to being a void * with casting where the arithmetic happens. If it's changed, newfs/mkfs.c should probably change too. Is there some subtle difference that makes the casting ok in newfs/mkfs.c: dp1 = (struct ufs1_dinode *)(&iobuf[start]); and not ok in growfs/growfs.c r212885: dp1 = (struct ufs1_dinode *)iobuf; or is it just ignored because WARNS is 3 for newfs and is defaulted to 6 for growfs? -- Brian Somers Don't _EVER_ lose your sense of humour ! ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r212956 - stable/7/sbin/dhclient
Author: brian Date: Tue Sep 21 07:44:40 2010 New Revision: 212956 URL: http://svn.freebsd.org/changeset/base/212956 Log: MFC r212253: Document how to use dhclient-{enter,exit}-hooks. PR: 149351 Modified: stable/7/sbin/dhclient/dhclient-script.8 Directory Properties: stable/7/sbin/dhclient/ (props changed) Modified: stable/7/sbin/dhclient/dhclient-script.8 == --- stable/7/sbin/dhclient/dhclient-script.8Tue Sep 21 07:43:56 2010 (r212955) +++ stable/7/sbin/dhclient/dhclient-script.8Tue Sep 21 07:44:40 2010 (r212956) @@ -38,7 +38,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 1, 1997 +.Dd September 6, 2010 .Dt DHCLIENT-SCRIPT 8 .Os .Sh NAME @@ -218,6 +218,29 @@ if it has reason to believe they are val If not, it should exit with a nonzero value. .El .Pp +Before taking action according to +.Va $reason , +.Nm +will check for the existence of +.Pa /etc/dhclient-enter-hooks . +If found, it will be sourced +.Pq see Xr sh 1 . +After taking action according to +.Va $reason , +.Nm +will check for the existence of +.Pa /etc/dhclient-exit-hooks . +If found, it will be sourced +.Pq see Xr sh 1 . +These hooks scripts can be used to dynamically modify the enviornment at +appropriate times during the DHCP negotiations. +For example, if the administrator wishes to disable alias IP numbers on +the DHCP interface, they might want to put the following in +.Pa /etc/dhclient-enter-hooks : +.Bd -literal -offset indent +[ ."$reason" = .PREINIT ] && ifconfig $interface 0.0.0.0 +.Ed +.Pp The usual way to test a lease is to set up the network as with .Li REBIND (since this may be called to test more than one lease) and then ping @@ -239,6 +262,7 @@ but current scripts do not do this. .\" and bear the names of the operating systems on which they are intended .\" to work. .Sh SEE ALSO +.Xr sh 1 , .Xr dhclient.conf 5 , .Xr dhclient.leases 5 , .Xr dhclient 8 , ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r212955 - stable/8/sbin/dhclient
Author: brian Date: Tue Sep 21 07:43:56 2010 New Revision: 212955 URL: http://svn.freebsd.org/changeset/base/212955 Log: MFC r212253: Document how to use dhclient-{enter,exit}-hooks. PR: 149351 Modified: stable/8/sbin/dhclient/dhclient-script.8 Directory Properties: stable/8/sbin/dhclient/ (props changed) Modified: stable/8/sbin/dhclient/dhclient-script.8 == --- stable/8/sbin/dhclient/dhclient-script.8Tue Sep 21 07:03:53 2010 (r212954) +++ stable/8/sbin/dhclient/dhclient-script.8Tue Sep 21 07:43:56 2010 (r212955) @@ -38,7 +38,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 1, 1997 +.Dd September 6, 2010 .Dt DHCLIENT-SCRIPT 8 .Os .Sh NAME @@ -218,6 +218,29 @@ if it has reason to believe they are val If not, it should exit with a nonzero value. .El .Pp +Before taking action according to +.Va $reason , +.Nm +will check for the existence of +.Pa /etc/dhclient-enter-hooks . +If found, it will be sourced +.Pq see Xr sh 1 . +After taking action according to +.Va $reason , +.Nm +will check for the existence of +.Pa /etc/dhclient-exit-hooks . +If found, it will be sourced +.Pq see Xr sh 1 . +These hooks scripts can be used to dynamically modify the enviornment at +appropriate times during the DHCP negotiations. +For example, if the administrator wishes to disable alias IP numbers on +the DHCP interface, they might want to put the following in +.Pa /etc/dhclient-enter-hooks : +.Bd -literal -offset indent +[ ."$reason" = .PREINIT ] && ifconfig $interface 0.0.0.0 +.Ed +.Pp The usual way to test a lease is to set up the network as with .Li REBIND (since this may be called to test more than one lease) and then ping @@ -239,6 +262,7 @@ but current scripts do not do this. .\" and bear the names of the operating systems on which they are intended .\" to work. .Sh SEE ALSO +.Xr sh 1 , .Xr dhclient.conf 5 , .Xr dhclient.leases 5 , .Xr dhclient 8 , ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r212934 - in head: sbin/geom/class/eli tools/regression/geom_eli
Author: brian Date: Mon Sep 20 22:04:59 2010 New Revision: 212934 URL: http://svn.freebsd.org/changeset/base/212934 Log: Add a geli resize subcommand to resize encrypted filesystems prior to growing the filesystem. Refuse to attach providers where the metadata provider size is wrong. This makes post-boot attaches behave consistently with pre-boot attaches. Also refuse to restore metadata to a provider of the wrong size without the new -f switch. The new -f switch forces the metadata restoration despite the provider size, and updates the provider size in the restored metadata to the correct value. Helped by:pjd Reviewed by: pjd Added: head/tools/regression/geom_eli/resize.t (contents, props changed) Modified: head/sbin/geom/class/eli/geli.8 head/sbin/geom/class/eli/geom_eli.c Modified: head/sbin/geom/class/eli/geli.8 == --- head/sbin/geom/class/eli/geli.8 Mon Sep 20 21:38:52 2010 (r212933) +++ head/sbin/geom/class/eli/geli.8 Mon Sep 20 22:04:59 2010 (r212934) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 29, 2008 +.Dd September 20, 2010 .Dt GELI 8 .Os .Sh NAME @@ -111,10 +111,15 @@ utility: .Ar file .Nm .Cm restore -.Op Fl v +.Op Fl fv .Ar file .Ar prov .Nm +.Cm resize +.Op Fl v +.Fl s Ar oldsize +.Ar prov +.Nm .Cm clear .Op Fl v .Ar prov ... @@ -464,6 +469,34 @@ If specified, all currently attached pro Backup metadata from the given provider to the given file. .It Cm restore Restore metadata from the given file to the given provider. +.Bl -tag -width ".Fl f" +.It Fl f +Metadata contains the size of the provider to ensure that the correct +partition or slice is attached. +If an attempt is made to restore metadata to a provider that has a different +size, +.Nm +will refuse to restore the data unless the +.Fl f +switch is used. +If the partition or slice has been grown, the +.Cm resize +subcommand should be used rather than attempting to relocate the metadata +through +.Cm backup +and +.Cm restore . +.El +.It Cm resize +Inform +.Nm +that the provider has been resized. +The old metadata block is relocated to the correct position at the end of the +provider and the provider size is updated. +.Bl -tag -width ".Fl s Ar oldsize" +.It Fl s Ar oldsize +The size of the provider before it was resized. +.El .It Cm clear Clear metadata from the given providers. .It Cm dump @@ -665,6 +698,17 @@ geli: Cannot read metadata from /dev/da0 # geli attach /dev/da0 Enter passphrase: .Ed +.Pp +If an encrypted filesystem is extended, it is necessary to relocate and +update the metadata: +.Bd -literal -offset indent +# gpart create -s GPT ada0 +# gpart add -s 1g -t freebsd-ufs -i 1 ada0 +# geli init -K keyfile -P ada0p1 +# gpart resize -s 2g -i 1 ada0 +# geli resize -s 1g ada0p1 +# geli attach -k keyfile -p ada0p1 +.Ed .Sh DATA AUTHENTICATION .Nm can verify data integrity when an authentication algorithm is specified. Modified: head/sbin/geom/class/eli/geom_eli.c == --- head/sbin/geom/class/eli/geom_eli.c Mon Sep 20 21:38:52 2010 (r212933) +++ head/sbin/geom/class/eli/geom_eli.c Mon Sep 20 22:04:59 2010 (r212934) @@ -66,6 +66,7 @@ static void eli_delkey(struct gctl_req * static void eli_kill(struct gctl_req *req); static void eli_backup(struct gctl_req *req); static void eli_restore(struct gctl_req *req); +static void eli_resize(struct gctl_req *req); static void eli_clear(struct gctl_req *req); static void eli_dump(struct gctl_req *req); @@ -86,7 +87,8 @@ static int eli_backup_create(struct gctl * delkey [-afv] [-n keyno] prov * kill [-av] [prov ...] * backup [-v] prov file - * restore [-v] file prov + * restore [-fv] file prov + * resize [-v] -s oldsize prov * clear [-v] prov ... * dump [-v] prov ... */ @@ -197,8 +199,19 @@ struct g_command class_commands[] = { { "backup", G_FLAG_VERBOSE, eli_main, G_NULL_OPTS, "[-v] prov file" }, - { "restore", G_FLAG_VERBOSE, eli_main, G_NULL_OPTS, - "[-v] file prov" + { "restore", G_FLAG_VERBOSE, eli_main, + { + { 'f', "force", NULL, G_TYPE_BOOL }, + G_OPT_SENTINEL + }, + "[-fv] file prov" + }, + { "resize", G_FLAG_VERBOSE, eli_main, + { + { 's', "oldsize", NULL, G_TYPE_NUMBER }, + G_OPT_SENTINEL + }, + "[-v] -s oldsize prov" }, { "clear", G_FLAG_VERBOSE, eli_main, G_NULL_OPTS, "[-v] prov ..." @@ -264,6 +277,8 @@ eli_main(struct gctl_req *req, unsigned eli_backup(req); else if (strcmp(name, "restore") == 0) eli_restore(req); + else if (strcmp(name, "resize") == 0) + eli_resize(req); else if (strcmp(name, "dump") == 0) eli
svn commit: r212849 - in stable/7: bin/pax tools/regression/bin tools/regression/bin/pax tools/tools/nanobsd
Author: brian Date: Sun Sep 19 11:22:22 2010 New Revision: 212849 URL: http://svn.freebsd.org/changeset/base/212849 Log: MFC r211864,211963,211964,211965, don't mis-handle path names of 101 characters beginning with '/'. Added: stable/7/tools/regression/bin/Makefile - copied unchanged from r211964, head/tools/regression/bin/Makefile stable/7/tools/regression/bin/pax/ - copied from r211963, head/tools/regression/bin/pax/ Modified: stable/7/bin/pax/pax.1 stable/7/bin/pax/tar.c stable/7/tools/regression/bin/pax/Makefile Directory Properties: stable/7/bin/pax/ (props changed) stable/7/tools/ (props changed) stable/7/tools/build/ (props changed) stable/7/tools/build/options/ (props changed) stable/7/tools/debugscripts/ (props changed) stable/7/tools/regression/atm/ (props changed) stable/7/tools/regression/bin/sh/ (props changed) stable/7/tools/regression/file/ (props changed) stable/7/tools/regression/file/flock/ (props changed) stable/7/tools/regression/usr.bin/ (props changed) stable/7/tools/regression/usr.bin/jot/ (props changed) stable/7/tools/regression/usr.bin/tr/ (props changed) stable/7/tools/sched/ (props changed) stable/7/tools/test/ (props changed) stable/7/tools/tools/aac/ (props changed) stable/7/tools/tools/crypto/ (props changed) stable/7/tools/tools/editing/ (props changed) stable/7/tools/tools/nanobsd/ (props changed) stable/7/tools/tools/nanobsd/FlashDevice.sub (props changed) stable/7/tools/tools/nanobsd/nanobsd.sh (props changed) stable/7/tools/tools/usb/ (props changed) Modified: stable/7/bin/pax/pax.1 == --- stable/7/bin/pax/pax.1 Sun Sep 19 11:16:49 2010(r212848) +++ stable/7/bin/pax/pax.1 Sun Sep 19 11:22:22 2010(r212849) @@ -33,7 +33,7 @@ .\"@(#)pax.1 8.4 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd July 3, 2004 +.Dd August 29, 2010 .Dt PAX 1 .Os .Sh NAME @@ -748,7 +748,9 @@ The extended tar interchange format spec .St -p1003.2 standard. The default blocksize for this format is 10240 bytes. -Pathnames stored by this format must be 250 characters or less in length. +Pathnames stored by this format must be 255 characters or less in length. +The directory part may be at most 155 characters and each path component +must be less than 100 characters. .El .Pp The Modified: stable/7/bin/pax/tar.c == --- stable/7/bin/pax/tar.c Sun Sep 19 11:16:49 2010(r212848) +++ stable/7/bin/pax/tar.c Sun Sep 19 11:22:22 2010(r212849) @@ -1086,7 +1086,7 @@ name_split(char *name, int len) */ if (len <= TNMSZ) return(name); - if (len > (TPFSZ + TNMSZ + 1)) + if (len > TPFSZ + TNMSZ) return(NULL); /* @@ -1095,7 +1095,7 @@ name_split(char *name, int len) * to find the biggest piece to fit in the name field (or the smallest * prefix we can find) */ - start = name + len - TNMSZ - 1; + start = name + len - TNMSZ; while ((*start != '\0') && (*start != '/')) ++start; Copied: stable/7/tools/regression/bin/Makefile (from r211964, head/tools/regression/bin/Makefile) == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/7/tools/regression/bin/Makefile Sun Sep 19 11:22:22 2010 (r212849, copy of r211964, head/tools/regression/bin/Makefile) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +SUBDIR=date mv pax sh + +.include Modified: stable/7/tools/regression/bin/pax/Makefile == --- head/tools/regression/bin/pax/Makefile Sun Aug 29 11:56:56 2010 (r211963) +++ stable/7/tools/regression/bin/pax/Makefile Sun Sep 19 11:22:22 2010 (r212849) @@ -1,6 +1,6 @@ # $FreeBSD$ -test: +all test: prove -vmw regress.t clean: ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r212848 - in stable/8: bin/pax tools/regression/bin tools/regression/bin/pax tools/regression/lib/msun tools/regression/usr.bin/pkill tools/tools/ath/common tools/tools/termcap
Author: brian Date: Sun Sep 19 11:16:49 2010 New Revision: 212848 URL: http://svn.freebsd.org/changeset/base/212848 Log: MFC r211864,211963,211964,211965, don't mis-handle path names of 101 characters beginning with '/'. Added: stable/8/tools/regression/bin/Makefile - copied unchanged from r211964, head/tools/regression/bin/Makefile stable/8/tools/regression/bin/pax/ - copied from r211963, head/tools/regression/bin/pax/ Modified: stable/8/bin/pax/pax.1 stable/8/bin/pax/tar.c stable/8/tools/regression/bin/pax/Makefile Directory Properties: stable/8/bin/pax/ (props changed) stable/8/tools/ (props changed) stable/8/tools/build/mk/ (props changed) stable/8/tools/build/options/ (props changed) stable/8/tools/debugscripts/ (props changed) stable/8/tools/kerneldoc/subsys/ (props changed) stable/8/tools/regression/acltools/ (props changed) stable/8/tools/regression/aio/aiotest/ (props changed) stable/8/tools/regression/bin/sh/ (props changed) stable/8/tools/regression/fifo/ (props changed) stable/8/tools/regression/geom/ (props changed) stable/8/tools/regression/lib/libc/ (props changed) stable/8/tools/regression/lib/msun/test-conj.t (props changed) stable/8/tools/regression/mqueue/mqtest1/ (props changed) stable/8/tools/regression/mqueue/mqtest2/ (props changed) stable/8/tools/regression/mqueue/mqtest3/ (props changed) stable/8/tools/regression/mqueue/mqtest4/ (props changed) stable/8/tools/regression/mqueue/mqtest5/ (props changed) stable/8/tools/regression/poll/ (props changed) stable/8/tools/regression/posixsem/ (props changed) stable/8/tools/regression/priv/ (props changed) stable/8/tools/regression/usr.bin/ (props changed) stable/8/tools/regression/usr.bin/pkill/pgrep-_g.t (props changed) stable/8/tools/regression/usr.bin/pkill/pgrep-_s.t (props changed) stable/8/tools/regression/usr.bin/pkill/pkill-_g.t (props changed) stable/8/tools/regression/usr.bin/sed/ (props changed) stable/8/tools/test/ (props changed) stable/8/tools/tools/ath/ (props changed) stable/8/tools/tools/ath/common/dumpregs.h (props changed) stable/8/tools/tools/ath/common/dumpregs_5210.c (props changed) stable/8/tools/tools/ath/common/dumpregs_5211.c (props changed) stable/8/tools/tools/ath/common/dumpregs_5212.c (props changed) stable/8/tools/tools/ath/common/dumpregs_5416.c (props changed) stable/8/tools/tools/nanobsd/ (props changed) stable/8/tools/tools/netrate/tcpp/ (props changed) stable/8/tools/tools/termcap/termcap.pl (props changed) stable/8/tools/tools/vimage/ (props changed) Modified: stable/8/bin/pax/pax.1 == --- stable/8/bin/pax/pax.1 Sun Sep 19 10:54:58 2010(r212847) +++ stable/8/bin/pax/pax.1 Sun Sep 19 11:16:49 2010(r212848) @@ -33,7 +33,7 @@ .\"@(#)pax.1 8.4 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd July 3, 2004 +.Dd August 29, 2010 .Dt PAX 1 .Os .Sh NAME @@ -748,7 +748,9 @@ The extended tar interchange format spec .St -p1003.2 standard. The default blocksize for this format is 10240 bytes. -Pathnames stored by this format must be 250 characters or less in length. +Pathnames stored by this format must be 255 characters or less in length. +The directory part may be at most 155 characters and each path component +must be less than 100 characters. .El .Pp The Modified: stable/8/bin/pax/tar.c == --- stable/8/bin/pax/tar.c Sun Sep 19 10:54:58 2010(r212847) +++ stable/8/bin/pax/tar.c Sun Sep 19 11:16:49 2010(r212848) @@ -1086,7 +1086,7 @@ name_split(char *name, int len) */ if (len <= TNMSZ) return(name); - if (len > (TPFSZ + TNMSZ + 1)) + if (len > TPFSZ + TNMSZ) return(NULL); /* @@ -1095,7 +1095,7 @@ name_split(char *name, int len) * to find the biggest piece to fit in the name field (or the smallest * prefix we can find) */ - start = name + len - TNMSZ - 1; + start = name + len - TNMSZ; while ((*start != '\0') && (*start != '/')) ++start; Copied: stable/8/tools/regression/bin/Makefile (from r211964, head/tools/regression/bin/Makefile) == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/bin/Makefile Sun Sep 19 11:16:49 2010 (r212848, copy of r211964, head/tools/regression/bin/Makefile) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +SUBDIR=date mv pax sh + +.include Modified: stable/8/tools/regression/bin/pax/Makefile == --- head/tools/regression/bin/pax/Makefile Sun Aug 29 11:56:56 2010
svn commit: r212845 - head/sys/geom/eli
Author: brian Date: Sun Sep 19 10:45:53 2010 New Revision: 212845 URL: http://svn.freebsd.org/changeset/base/212845 Log: Support attaching version 4 metadata Reviewed by: pjd Modified: head/sys/geom/eli/g_eli.h Modified: head/sys/geom/eli/g_eli.h == --- head/sys/geom/eli/g_eli.h Sun Sep 19 09:19:38 2010(r212844) +++ head/sys/geom/eli/g_eli.h Sun Sep 19 10:45:53 2010(r212845) @@ -228,8 +228,9 @@ eli_metadata_decode_v0(const u_char *dat return (EINVAL); return (0); } + static __inline int -eli_metadata_decode_v1v2v3(const u_char *data, struct g_eli_metadata *md) +eli_metadata_decode_v1v2v3v4(const u_char *data, struct g_eli_metadata *md) { MD5_CTX ctx; const u_char *p; @@ -266,7 +267,8 @@ eli_metadata_decode(const u_char *data, case 1: case 2: case 3: - error = eli_metadata_decode_v1v2v3(data, md); + case 4: + error = eli_metadata_decode_v1v2v3v4(data, md); break; default: error = EINVAL; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r212839 - in head: sbin/growfs tools/regression/sbin tools/regression/sbin/growfs
Author: brian Date: Sun Sep 19 08:18:56 2010 New Revision: 212839 URL: http://svn.freebsd.org/changeset/base/212839 Log: Revise r197763 which fixes filesystem corruption when extending into un-zeroed storage. The original patch was questioned by Kirk as it forces the filesystem to do excessive work initialising inodes on first use, and was never MFC'd. This change mimics the newfs(8) approach of zeroing two blocks of inodes for each new cylinder group. Reviewed by: mckusick MFC after:3 weeks Added: head/tools/regression/sbin/ head/tools/regression/sbin/Makefile (contents, props changed) head/tools/regression/sbin/growfs/ head/tools/regression/sbin/growfs/Makefile (contents, props changed) head/tools/regression/sbin/growfs/regress.t (contents, props changed) Modified: head/sbin/growfs/growfs.c Modified: head/sbin/growfs/growfs.c == --- head/sbin/growfs/growfs.c Sun Sep 19 05:42:29 2010(r212838) +++ head/sbin/growfs/growfs.c Sun Sep 19 08:18:56 2010(r212839) @@ -371,16 +371,16 @@ static void initcg(int cylno, time_t utime, int fso, unsigned int Nflag) { DBG_FUNC("initcg") - static void *iobuf; + static caddr_t iobuf; long blkno, start; ufs2_daddr_t i, cbase, dmax; struct ufs1_dinode *dp1; struct csum *cs; uint d, dupper, dlower; - if (iobuf == NULL && (iobuf = malloc(sblock.fs_bsize)) == NULL) { + if (iobuf == NULL && (iobuf = malloc(sblock.fs_bsize * 3)) == NULL) errx(37, "panic: cannot allocate I/O buffer"); - } + /* * Determine block bounds for cylinder group. * Allow space for super block summary information in first @@ -396,17 +396,12 @@ initcg(int cylno, time_t utime, int fso, dupper += howmany(sblock.fs_cssize, sblock.fs_fsize); cs = &fscs[cylno]; memset(&acg, 0, sblock.fs_cgsize); - /* -* Note that we do not set cg_initediblk at all. -* In this extension of a previous filesystem -* we have no inodes initialized for the cylinder -* group at all. The first access to that cylinder -* group will do the correct initialization. -*/ acg.cg_time = utime; acg.cg_magic = CG_MAGIC; acg.cg_cgx = cylno; acg.cg_niblk = sblock.fs_ipg; + acg.cg_initediblk = sblock.fs_ipg < 2 * INOPB(&sblock) ? + sblock.fs_ipg : 2 * INOPB(&sblock); acg.cg_ndblk = dmax - cbase; if (sblock.fs_contigsumsize > 0) acg.cg_nclusterblks = acg.cg_ndblk / sblock.fs_frag; @@ -419,6 +414,7 @@ initcg(int cylno, time_t utime, int fso, acg.cg_time = 0; acg.cg_old_niblk = acg.cg_niblk; acg.cg_niblk = 0; + acg.cg_initediblk = 0; acg.cg_old_btotoff = start; acg.cg_old_boff = acg.cg_old_btotoff + sblock.fs_old_cpg * sizeof(int32_t); @@ -538,11 +534,14 @@ initcg(int cylno, time_t utime, int fso, sblock.fs_cstotal.cs_nbfree += acg.cg_cs.cs_nbfree; sblock.fs_cstotal.cs_nifree += acg.cg_cs.cs_nifree; *cs = acg.cg_cs; + + memcpy(iobuf, &acg, sblock.fs_cgsize); + memset(iobuf + sblock.fs_cgsize, '\0', + sblock.fs_bsize * 3 - sblock.fs_cgsize); + wtfs(fsbtodb(&sblock, cgtod(&sblock, cylno)), - sblock.fs_bsize, (char *)&acg, fso, Nflag); - DBG_DUMP_CG(&sblock, - "new cg", - &acg); + sblock.fs_bsize * 3, iobuf, fso, Nflag); + DBG_DUMP_CG(&sblock, "new cg", &acg); DBG_LEAVE; return; Added: head/tools/regression/sbin/Makefile == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/sbin/Makefile Sun Sep 19 08:18:56 2010 (r212839) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +SUBDIR=growfs + +.include Added: head/tools/regression/sbin/growfs/Makefile == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/sbin/growfs/Makefile Sun Sep 19 08:18:56 2010 (r212839) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +all test: + prove -vmw regress.t + +clean: Added: head/tools/regression/sbin/growfs/regress.t == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/sbin/growfs/regress.t Sun Sep 19 08:18:56 2010 (r212839) @@ -0,0 +1,91 @@ +#! /usr/bin/perl +# +# $FreeBSD$ + +use strict; +use warnings; +use Test::More tests => 19; +use Fcntl qw(:DEFAULT :seek); + +use constant BLK => 512; +use constant BLKS_PER_MB => 2048; + +my $unit; +END { system "mdc
Re: svn commit: r212617 - head/sys/ufs/ffs
On Tue, 14 Sep 2010 18:04:05 + (UTC) Kirk McKusick wrote: > Author: mckusick > Date: Tue Sep 14 18:04:05 2010 > New Revision: 212617 > URL: http://svn.freebsd.org/changeset/base/212617 > > Log: > Update comments in soft updates code to more fully describe > the addition of journalling. Only functional change is to > tighten a KASSERT. > > Reviewed by:jeff Roberson > > Modified: > head/sys/ufs/ffs/ffs_softdep.c > head/sys/ufs/ffs/fs.h > head/sys/ufs/ffs/softdep.h > > Modified: head/sys/ufs/ffs/ffs_softdep.c > == > --- head/sys/ufs/ffs/ffs_softdep.cTue Sep 14 17:22:06 2010 > (r212616) > +++ head/sys/ufs/ffs/ffs_softdep.cTue Sep 14 18:04:05 2010 > (r212617) > @@ -2378,7 +2378,8 @@ remove_from_journal(wk) > /* >* We emulate a TAILQ to save space in most structures which do not >* require TAILQ semantics. Here we must update the tail position > - * when removing the tail which is not the final entry. > + * when removing the tail which is not the final entry. This works > + * only if the worklist linkage are at the beginning of the structure. >*/ > if (ump->softdep_journal_tail == wk) > ump->softdep_journal_tail = > @@ -2605,7 +2606,7 @@ jremref_write(jremref, jseg, data) > inoref_write(&jremref->jr_ref, jseg, rec); > } > > -static void > +static void > jmvref_write(jmvref, jseg, data) > struct jmvref *jmvref; > struct jseg *jseg; > @@ -2906,9 +2907,9 @@ complete_jseg(jseg) > waiting = wk->wk_state & IOWAITING; > wk->wk_state &= ~(IOSTARTED | IOWAITING); > wk->wk_state |= COMPLETE; > - KASSERT(i < jseg->js_cnt, > + KASSERT(i++ < jseg->js_cnt, > ("handle_written_jseg: overflow %d >= %d", [.] If INVARIANTS is not defined, the above i++ will not happen. -- Brian Somers Don't _EVER_ lose your sense of humour ! ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r212724 - head/sbin/fdisk
Author: brian Date: Thu Sep 16 08:16:53 2010 New Revision: 212724 URL: http://svn.freebsd.org/changeset/base/212724 Log: Add support for identifying a journaled root filesystem. Fix support for identifying the given /dev/vinum/root example. MFC after:3 weeks Modified: head/sbin/fdisk/fdisk.c Modified: head/sbin/fdisk/fdisk.c == --- head/sbin/fdisk/fdisk.c Thu Sep 16 07:56:34 2010(r212723) +++ head/sbin/fdisk/fdisk.c Thu Sep 16 08:16:53 2010(r212724) @@ -1462,6 +1462,7 @@ sanitize_partition(struct dos_partition * /dev/da0a => /dev/da0 * /dev/vinum/root => /dev/vinum/root * A ".eli" part is removed if it exists (see geli(8)). + * A ".journal" ending is removed if it exists (see gjournal(8)). */ static char * get_rootdisk(void) @@ -1476,7 +1477,7 @@ get_rootdisk(void) if (statfs("/", &rootfs) == -1) err(1, "statfs(\"/\")"); - if ((rv = regcomp(&re, "^(/dev/[a-z/]+[0-9]+)([sp][0-9]+)?[a-h]?$", + if ((rv = regcomp(&re, "^(/dev/[a-z/]+[0-9]*)([sp][0-9]+)?[a-h]?(\\.journal)?$", REG_EXTENDED)) != 0) errx(1, "regcomp() failed (%d)", rv); strlcpy(dev, rootfs.f_mntfromname, sizeof (dev)); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r212253 - head/sbin/dhclient
Author: brian Date: Mon Sep 6 09:59:10 2010 New Revision: 212253 URL: http://svn.freebsd.org/changeset/base/212253 Log: Document dhclient-enter-hooks and dhclient-exit-hooks and mention how to configure dhclient to clear the interface of IP numbers prior to configuring it. PR: 149351 MFC after:2 weeks Modified: head/sbin/dhclient/dhclient-script.8 Modified: head/sbin/dhclient/dhclient-script.8 == --- head/sbin/dhclient/dhclient-script.8Mon Sep 6 07:35:13 2010 (r212252) +++ head/sbin/dhclient/dhclient-script.8Mon Sep 6 09:59:10 2010 (r212253) @@ -38,7 +38,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 1, 1997 +.Dd September 6, 2010 .Dt DHCLIENT-SCRIPT 8 .Os .Sh NAME @@ -218,6 +218,29 @@ if it has reason to believe they are val If not, it should exit with a nonzero value. .El .Pp +Before taking action according to +.Va $reason , +.Nm +will check for the existence of +.Pa /etc/dhclient-enter-hooks . +If found, it will be sourced +.Pq see Xr sh 1 . +After taking action according to +.Va $reason , +.Nm +will check for the existence of +.Pa /etc/dhclient-exit-hooks . +If found, it will be sourced +.Pq see Xr sh 1 . +These hooks scripts can be used to dynamically modify the enviornment at +appropriate times during the DHCP negotiations. +For example, if the administrator wishes to disable alias IP numbers on +the DHCP interface, they might want to put the following in +.Pa /etc/dhclient-enter-hooks : +.Bd -literal -offset indent +[ ."$reason" = .PREINIT ] && ifconfig $interface 0.0.0.0 +.Ed +.Pp The usual way to test a lease is to set up the network as with .Li REBIND (since this may be called to test more than one lease) and then ping @@ -239,6 +262,7 @@ but current scripts do not do this. .\" and bear the names of the operating systems on which they are intended .\" to work. .Sh SEE ALSO +.Xr sh 1 , .Xr dhclient.conf 5 , .Xr dhclient.leases 5 , .Xr dhclient 8 , ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
Re: svn commit: r212247 - head/sbin/fdisk
On Mon, 6 Sep 2010 08:41:42 +0200 Pawel Jakub Dawidek wrote: > On Mon, Sep 06, 2010 at 04:15:49AM +0000, Brian Somers wrote: > > Author: brian > > Date: Mon Sep 6 04:15:49 2010 > > New Revision: 212247 > > URL: http://svn.freebsd.org/changeset/base/212247 > > > > Log: > > Handle geli-encrypted root disk devices. > [...] > > if ((rv = regcomp(&re, "^(/dev/[a-z/]+[0-9]+)([sp][0-9]+)?[a-h]?$", > > REG_EXTENDED)) != 0) > > errx(1, "regcomp() failed (%d)", rv); > > - if ((rv = regexec(&re, rootfs.f_mntfromname, NMATCHES, rm, 0)) != 0) > > + strlcpy(dev, rootfs.f_mntfromname, sizeof (dev)); > > + if ((s = strstr(dev, ".eli")) != NULL) > > + memmove(s, s+4, strlen(s + 4) + 1); > > + > > + if ((rv = regexec(&re, dev, NMATCHES, rm, 0)) != 0) > > errx(1, > > "mounted root fs resource doesn't match expectations (regexec returned > > %d)", > > rv); > > Your assumption that .eli can only be present at the end of provider name > is incorrect. It can be eg. /dev/ad0s1a.eli.journal. > > Another problem is that in memmove you cut the first 4 characters, not > the last 4 characters. > > I'm not sure, but can't you simply extend regular expression to: > > "^(/dev/[a-z/]+[0-9]+)([sp][0-9]+)?[a-h]?(\.eli)?$" You've lost me here. I remove .eli from the device name specifically so that we handle it being *anywhere* in the string. Your suggestion only handles it being at the end of the string. The memmove doesn't cut the first four characters, it cuts the ".eli" string doesn't it? -- Brian Somers Don't _EVER_ lose your sense of humour ! signature.asc Description: PGP signature
svn commit: r212247 - head/sbin/fdisk
Author: brian Date: Mon Sep 6 04:15:49 2010 New Revision: 212247 URL: http://svn.freebsd.org/changeset/base/212247 Log: Handle geli-encrypted root disk devices. MFC after:2 weeks Modified: head/sbin/fdisk/fdisk.c Modified: head/sbin/fdisk/fdisk.c == --- head/sbin/fdisk/fdisk.c Mon Sep 6 04:14:59 2010(r212246) +++ head/sbin/fdisk/fdisk.c Mon Sep 6 04:15:49 2010(r212247) @@ -1461,6 +1461,7 @@ sanitize_partition(struct dos_partition * /dev/ad0s1a => /dev/ad0 * /dev/da0a => /dev/da0 * /dev/vinum/root => /dev/vinum/root + * A ".eli" part is removed if it exists (see geli(8)). */ static char * get_rootdisk(void) @@ -1469,7 +1470,7 @@ get_rootdisk(void) regex_t re; #define NMATCHES 2 regmatch_t rm[NMATCHES]; - char *s; + char dev[PATH_MAX], *s; int rv; if (statfs("/", &rootfs) == -1) @@ -1478,7 +1479,11 @@ get_rootdisk(void) if ((rv = regcomp(&re, "^(/dev/[a-z/]+[0-9]+)([sp][0-9]+)?[a-h]?$", REG_EXTENDED)) != 0) errx(1, "regcomp() failed (%d)", rv); - if ((rv = regexec(&re, rootfs.f_mntfromname, NMATCHES, rm, 0)) != 0) + strlcpy(dev, rootfs.f_mntfromname, sizeof (dev)); + if ((s = strstr(dev, ".eli")) != NULL) + memmove(s, s+4, strlen(s + 4) + 1); + + if ((rv = regexec(&re, dev, NMATCHES, rm, 0)) != 0) errx(1, "mounted root fs resource doesn't match expectations (regexec returned %d)", rv); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r212137 - stable/8/sys/kern
Author: brian Date: Thu Sep 2 04:56:01 2010 New Revision: 212137 URL: http://svn.freebsd.org/changeset/base/212137 Log: MFC r211684 & r211818; return ENOENT if we fall off the end of the directory. Modified: stable/8/sys/kern/vfs_default.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/kern/vfs_default.c == --- stable/8/sys/kern/vfs_default.c Thu Sep 2 04:39:45 2010 (r212136) +++ stable/8/sys/kern/vfs_default.c Thu Sep 2 04:56:01 2010 (r212137) @@ -284,6 +284,9 @@ get_next_dirent(struct vnode *vp, struct *cpos = dirbuf; *len = (dirbuflen - uio.uio_resid); + + if (*len == 0) + return (ENOENT); } dp = (struct dirent *)(*cpos); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r211965 - head/bin/pax
Author: brian Date: Sun Aug 29 12:17:16 2010 New Revision: 211965 URL: http://svn.freebsd.org/changeset/base/211965 Log: Touch the man page date after updating the ustar limitations. MFC after:3 weeks Modified: head/bin/pax/pax.1 Modified: head/bin/pax/pax.1 == --- head/bin/pax/pax.1 Sun Aug 29 12:14:53 2010(r211964) +++ head/bin/pax/pax.1 Sun Aug 29 12:17:16 2010(r211965) @@ -33,7 +33,7 @@ .\"@(#)pax.1 8.4 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd July 3, 2004 +.Dd August 29, 2010 .Dt PAX 1 .Os .Sh NAME ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r211964 - in head/tools/regression/bin: . pax
Author: brian Date: Sun Aug 29 12:14:53 2010 New Revision: 211964 URL: http://svn.freebsd.org/changeset/base/211964 Log: Add a Makefile for tools/regression/bin and support 'all' in pax/Makefile. MFC after:3 weeks Added: head/tools/regression/bin/Makefile (contents, props changed) Modified: head/tools/regression/bin/pax/Makefile Added: head/tools/regression/bin/Makefile == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/Makefile Sun Aug 29 12:14:53 2010 (r211964) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +SUBDIR=date mv pax sh + +.include Modified: head/tools/regression/bin/pax/Makefile == --- head/tools/regression/bin/pax/Makefile Sun Aug 29 11:56:56 2010 (r211963) +++ head/tools/regression/bin/pax/Makefile Sun Aug 29 12:14:53 2010 (r211964) @@ -1,6 +1,6 @@ # $FreeBSD$ -test: +all test: prove -vmw regress.t clean: ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r211963 - in head: bin/pax tools/regression/bin/pax
Author: brian Date: Sun Aug 29 11:56:56 2010 New Revision: 211963 URL: http://svn.freebsd.org/changeset/base/211963 Log: Correct an out-by-one error when earlying out ustar filenames that are too long. Filenames escaping this test are caught later on, so the bug doesn't cause any breakage. Document the correct ustar limitations in pax. As I have no access to the IEEE 1003.2 spec, I can only assume that the limitations imposed are in fact correct. Add regression tests for the filename limitations imposed by pax. MFC after:3 weeks Added: head/tools/regression/bin/pax/ head/tools/regression/bin/pax/Makefile (contents, props changed) head/tools/regression/bin/pax/regress.t (contents, props changed) Modified: head/bin/pax/pax.1 head/bin/pax/tar.c Modified: head/bin/pax/pax.1 == --- head/bin/pax/pax.1 Sun Aug 29 11:32:41 2010(r211962) +++ head/bin/pax/pax.1 Sun Aug 29 11:56:56 2010(r211963) @@ -748,7 +748,9 @@ The extended tar interchange format spec .St -p1003.2 standard. The default blocksize for this format is 10240 bytes. -Pathnames stored by this format must be 250 characters or less in length. +Pathnames stored by this format must be 255 characters or less in length. +The directory part may be at most 155 characters and each path component +must be less than 100 characters. .El .Pp The Modified: head/bin/pax/tar.c == --- head/bin/pax/tar.c Sun Aug 29 11:32:41 2010(r211962) +++ head/bin/pax/tar.c Sun Aug 29 11:56:56 2010(r211963) @@ -1086,7 +1086,7 @@ name_split(char *name, int len) */ if (len <= TNMSZ) return(name); - if (len > (TPFSZ + TNMSZ + 1)) + if (len > TPFSZ + TNMSZ) return(NULL); /* Added: head/tools/regression/bin/pax/Makefile == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/pax/Makefile Sun Aug 29 11:56:56 2010 (r211963) @@ -0,0 +1,8 @@ +# $FreeBSD$ + +test: + prove -vmw regress.t + +clean: + rm -rf ustar-pathnames-[12] + rm -f ustar.ok ustar.fail* Added: head/tools/regression/bin/pax/regress.t == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/pax/regress.t Sun Aug 29 11:56:56 2010 (r211963) @@ -0,0 +1,91 @@ +#! /usr/bin/perl +# +# $FreeBSD$ + +use strict; +use warnings; + +use Test::More tests => 6; +use File::Path qw(rmtree mkpath); +use Cwd; + +my $n = 0; +sub create_file { +my $fn = shift; + +$n++; +(my $dir = $fn) =~ s,/[^/]+$,,; +mkpath $dir; +open my $fd, ">", $fn or die "$fn: $!"; +print $fd "file $n\n"; +} + + +ustar_pathnames: { SKIP: { +# Prove that pax breaks up ustar pathnames properly + +my $top = getcwd . "/ustar-pathnames-1"; +skip "Current path is too long", 6 if length $top > 92; +rmtree $top; +my $subdir = "x" . "x" x (92 - length $top); +my $work94 = "$top/$subdir"; +mkpath $work94;# $work is 94 characters long + +my $x49 = "x" x 49; +my $x50 = "x" x 50; +my $x60 = "x" x 60; +my $x95 = "x" x 95; + +my @paths = ( + "$work94/x099", # 99 chars + "$work94/xx100",# 100 chars + "$work94/xxx101", # 101 chars + "$work94/$x49/${x50}x199", # 199 chars + "$work94/$x49/${x50}xx200", # 200 chars + "$work94/$x49/${x50}xxx201",# 201 chars + "$work94/$x60/${x95}254", # 254 chars + "$work94/$x60/${x95}x255", # 255 chars +); + +my @l = map { length } @paths; + +my $n = 0; +create_file $_ for @paths; +system "pax -wf ustar.ok $work94"; +ok($? == 0, "Wrote 'ustar.ok' containing files with lengths @l"); + +(my $orig = $top) =~ s,1$,2,; +rmtree $orig; +rename $top, $orig; + +system "pax -rf ustar.ok"; +ok($? == 0, "Restored 'ustar.ok' containing files with lengths @l"); + +system "diff -ru $orig $top"; +ok($? == 0, "Restored files are identical"); + +rmtree $top; +rename $orig, $top; + +# 256 chars (with components < 100 chars) should not work +push @paths, "$work94/x$x60/${x95}x256"; # 256 chars +push @l, length $paths[-1]; +create_file $paths[-1]; +system "pax -wf ustar.fail1 $work94"; +ok($?, "Failed to write 'ustar.fail1' containing files with lengths @l"); + +# Components with 100 chars shouldn't work +unlink $paths[-1]; +$paths[-1] = "$work94/${x95}xc100";# 100 char filename +$l[-1] = length $paths[-1]; +create_file $paths[-1]; +system "pax -wf ustar.fail2 $work94"; +ok
svn commit: r211864 - head/bin/pax
Author: brian Date: Fri Aug 27 08:54:40 2010 New Revision: 211864 URL: http://svn.freebsd.org/changeset/base/211864 Log: Fix an off-by-one error where we try to split a path name that's more than 100 characters long and the 101th last character is a '/'. MFC after:3 weeks Modified: head/bin/pax/tar.c Modified: head/bin/pax/tar.c == --- head/bin/pax/tar.c Fri Aug 27 08:05:44 2010(r211863) +++ head/bin/pax/tar.c Fri Aug 27 08:54:40 2010(r211864) @@ -1095,7 +1095,7 @@ name_split(char *name, int len) * to find the biggest piece to fit in the name field (or the smallest * prefix we can find) */ - start = name + len - TNMSZ - 1; + start = name + len - TNMSZ; while ((*start != '\0') && (*start != '/')) ++start; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r211818 - head/sys/kern
Author: brian Date: Wed Aug 25 18:09:51 2010 New Revision: 211818 URL: http://svn.freebsd.org/changeset/base/211818 Log: If we read zero bytes from the directory, early out with ENOENT rather than forging ahead and interpreting garbage buffer content and dirent structures. This change backs out r211684 which was essentially a no-op. MFC after:1 week Modified: head/sys/kern/vfs_default.c Modified: head/sys/kern/vfs_default.c == --- head/sys/kern/vfs_default.c Wed Aug 25 16:23:50 2010(r211817) +++ head/sys/kern/vfs_default.c Wed Aug 25 18:09:51 2010(r211818) @@ -281,9 +281,13 @@ get_next_dirent(struct vnode *vp, struct if (error) return (error); - *cpos = dirbuf; - *len = uio.uio_offset - *off; *off = uio.uio_offset; + + *cpos = dirbuf; + *len = (dirbuflen - uio.uio_resid); + + if (*len == 0) + return (ENOENT); } dp = (struct dirent *)(*cpos); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
Re: svn commit: r211684 - head/sys/kern
On Wed, 25 Aug 2010 02:46:51 -0700 Brian Somers wrote: > On Mon, 23 Aug 2010 13:28:58 +0300 Kostik Belousov > wrote: > > On Mon, Aug 23, 2010 at 05:33:31AM +, Brian Somers wrote: > > > Author: brian > > > Date: Mon Aug 23 05:33:31 2010 > > > New Revision: 211684 > > > URL: http://svn.freebsd.org/changeset/base/211684 > > > > > > Log: > > > uio_resid isn't updated by VOP_READDIR for nfs filesystems. Use > > > the uio_offset adjustment instead to calculate a correct *len. > > Isn't this should be fixed in nfs instead ? Please note that the moral > > equivalent of the code is also present in compat/linux/linux_cwd.c: > > linux_getcwd_scandir(). I did not inspected other callers of > > VOP_READDIR. > > > > > > > > Without this change, we run off the end of the directory data > > > we're reading and panic horribly for nfs filesystems. > > > > > > MFC after: 1 week > > > > > > Modified: > > > head/sys/kern/vfs_default.c > > > > > > Modified: head/sys/kern/vfs_default.c > > > == > > > --- head/sys/kern/vfs_default.c Mon Aug 23 05:33:20 2010 > > > (r211683) > > > +++ head/sys/kern/vfs_default.c Mon Aug 23 05:33:31 2010 > > > (r211684) > > > @@ -281,10 +281,9 @@ get_next_dirent(struct vnode *vp, struct > > > if (error) > > > return (error); > > > > > > - *off = uio.uio_offset; > > > - > > > *cpos = dirbuf; > > > - *len = (dirbuflen - uio.uio_resid); > > > + *len = uio.uio_offset - *off; > > > + *off = uio.uio_offset; > > > } > > > > > > dp = (struct dirent *)(*cpos); > > I'm looking into why uio_resid isn't being updated - it's a bit awkward > as this is happening on a production box running 8.1 (just upgraded > from 7), so it may take a few days. Hmm, I've just seen a crash here with the new code (kgdb) p *len $2 = -35080 (kgdb) p uio.uio_offset $3 = 512 (kgdb) p uio.uio_resid $4 = 8192 So it looks like my fix is wrong (so much for real-world tests!). Note, the uio values above have survived on the stack from the first call to get_next_dirent() where *len was zero and we read the content of the directory. The directory file is 512 bytes and the crash happens when we run off the end of the 512 bytes read. (kgdb) p *(struct dirent *)(dirbuf + 512) $9 = {d_fileno = 680038892, d_reclen = 40, d_type = 12 '\f', d_namlen = 34 '"', d_name = "?\206\210(\000\000\000\000\025\000\000 ?\206\210(\004\222\210((\000\f\"?\206\210(\000\000\000\000\025\000\000 ?\206\210(\034\222\210((\000\f\"?\206\210(\000\000\000\000\025\000\000 ?\206\210(4\222\210((\000\f\"?\206\210(\000\000\000\000\025\000\000 \000\207\210(L\222\210((\000\f\"\000\207\210(\000\000\000\000\025\000\000 \020\207\210(d\222\210((\000\f\"\020\207\210(\000\000\000\000\025\000\000 \207\210(|\222\210((\000\f\" \207\210(\000\000\000\000\025\000\000 0\207\210(\224\222\210((\000\f\"0\207\210(\000\000\000\000\025\000\000 @\207\210(?\222\210((\000\f\"@\207\210(\000\000\000\000"...} (kgdb) p *(struct dirent *)(dirbuf + 552) $10 = {d_fileno = 536870933, d_reclen = 34528, d_type = 136 '\210', d_namlen = 40 '(', d_name = "\034\222\210((\000\f\"?\206\210(\000\000\000\000\025\000\000 ?\206\210(4\222\210((\000\f\"?\206\210(\000\000\000\000\025\000\000 \000\207\210(L\222\210((\000\f\"\000\207\210(\000\000\000\000\025\000\000 \020\207\210(d\222\210((\000\f\"\020\207\210(\000\000\000\000\025\000\000 \207\210(|\222\210((\000\f\" \207\210(\000\000\000\000\025\000\000 0\207\210(\224\222\210((\000\f\"0\207\210(\000\000\000\000\025\000\000 @\207\210(?\222\210((\000\f\"@\207\210(\000\000\000\000\025\000\000 P\207\210(?\222\210((\000\f\"P\207\210(\000\000\000\000\025\000\000 `\207\210(?\222\210((\000\f\""...} (kgdb) p dirbuf + 552 + 34528 $11 = 0xc8891908 So we can see that we're falling off the end of the 512 bytes we read because *len never reaches zero as it's intended to. The bit I can't understand yet is how len reaches -35080. That number is minus the sum of all the directory reclens and the two garbage dirents that we read from dirbuf + 512 and dirbuf + 552. This seems to imply that when we actually did the readdir(), we set *len to zero and then immediately adjusted it before returning from get_next_dirent(). This is exactly the deduction that made me make the original ch
Re: svn commit: r211684 - head/sys/kern
On Mon, 23 Aug 2010 13:28:58 +0300 Kostik Belousov wrote: > On Mon, Aug 23, 2010 at 05:33:31AM +0000, Brian Somers wrote: > > Author: brian > > Date: Mon Aug 23 05:33:31 2010 > > New Revision: 211684 > > URL: http://svn.freebsd.org/changeset/base/211684 > > > > Log: > > uio_resid isn't updated by VOP_READDIR for nfs filesystems. Use > > the uio_offset adjustment instead to calculate a correct *len. > Isn't this should be fixed in nfs instead ? Please note that the moral > equivalent of the code is also present in compat/linux/linux_cwd.c: > linux_getcwd_scandir(). I did not inspected other callers of > VOP_READDIR. > > > > > Without this change, we run off the end of the directory data > > we're reading and panic horribly for nfs filesystems. > > > > MFC after:1 week > > > > Modified: > > head/sys/kern/vfs_default.c > > > > Modified: head/sys/kern/vfs_default.c > > == > > --- head/sys/kern/vfs_default.c Mon Aug 23 05:33:20 2010 > > (r211683) > > +++ head/sys/kern/vfs_default.c Mon Aug 23 05:33:31 2010 > > (r211684) > > @@ -281,10 +281,9 @@ get_next_dirent(struct vnode *vp, struct > > if (error) > > return (error); > > > > - *off = uio.uio_offset; > > - > > *cpos = dirbuf; > > - *len = (dirbuflen - uio.uio_resid); > > + *len = uio.uio_offset - *off; > > + *off = uio.uio_offset; > > } > > > > dp = (struct dirent *)(*cpos); I'm looking into why uio_resid isn't being updated - it's a bit awkward as this is happening on a production box running 8.1 (just upgraded from 7), so it may take a few days. -- Brian Somers Don't _EVER_ lose your sense of humour ! signature.asc Description: PGP signature
Re: svn commit: r211609 - head/tools/regression/bin/sh/builtins
On Mon, 23 Aug 2010 23:58:50 +0200, Jilles Tjoelker wrote: [.] > > > == > > > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > > > +++ head/tools/regression/bin/sh/builtins/break3.0Sun Aug 22 > > > 11:04:30 2010(r211609) > > > @@ -0,0 +1,15 @@ > > > +# $FreeBSD$ > > > + > > > +# We accept this and people might rely on it. > > > +# However, various other shells do not accept it. > > > + > > > +f() { > > > + break > > > + echo bad1 > > > +} > > > + > > > +while :; do > > > + f > > > + echo bad2 > > > + exit 2 > > > +done [.] > > Having said that, this behaviour is the same in bash except that bash > > will complain if it's asked to break when the context is wrong, > > perhaps we should complain too? [.] > Warning messages to stderr mostly get lost in the noise, I don't really > like them. I do not expect people to test for failure of break and > continue, and bash even sets $? to 0 despite printing a warning. If this > error is so important as to need an error message I think should abort > the shell as well (via error(), so that "command break" will avoid > aborting). > > Furthermore note that bash disables these warnings in POSIX mode. [.] I agree then, no error seems like the right thing to do. Thanks. -- Brian Somers Don't _EVER_ lose your sense of humour ! ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
Re: svn commit: r211701 - in head: gnu/usr.bin share/mk sys/sys tools/build/options usr.bin
Is this a permanent switch or is there a list of issues to be resolved before switching back to the BSD grep? On Mon, 23 Aug 2010 10:04:26 + (UTC) Gabor Kovesdan wrote: > Author: gabor > Date: Mon Aug 23 10:04:26 2010 > New Revision: 211701 > URL: http://svn.freebsd.org/changeset/base/211701 > > Log: > - Change default grep back to GNU version. BSD grep can be built with the > WITH_BSD_GREP knob. > - Bump __FreeBSD_version > > Requested by: dougb > Approved by:delphij (mentor) > > Added: > head/tools/build/options/WITH_BSD_GREP (contents, props changed) > Deleted: > head/tools/build/options/WITH_GNU_GREP > Modified: > head/gnu/usr.bin/Makefile > head/share/mk/bsd.own.mk > head/sys/sys/param.h > head/usr.bin/Makefile > > Modified: head/gnu/usr.bin/Makefile > == > --- head/gnu/usr.bin/Makefile Mon Aug 23 09:54:32 2010(r211700) > +++ head/gnu/usr.bin/Makefile Mon Aug 23 10:04:26 2010(r211701) > @@ -28,6 +28,10 @@ _groff=groff > .endif > .endif > > +.if ${MK_BSD_GREP} != "yes" > +_grep= grep > +.endif > + > .if ${MK_CVS} != "no" > _cvs=cvs > .endif > @@ -36,10 +40,6 @@ _cvs= cvs > _dtc=dtc > .endif > > -.if ${MK_GNU_GREP} != "no" > -_grep= grep > -.endif > - > .if ${MK_INFO} != "no" > _texinfo=texinfo > .endif > > Modified: head/share/mk/bsd.own.mk > == > --- head/share/mk/bsd.own.mk Mon Aug 23 09:54:32 2010(r211700) > +++ head/share/mk/bsd.own.mk Mon Aug 23 10:04:26 2010(r211701) > @@ -419,9 +419,9 @@ MK_${var}:= yes > BIND_LIBS \ > BIND_SIGCHASE \ > BIND_XML \ > +BSD_GREP \ > ${_clang_no} \ > FDT \ > -GNU_GREP \ > HESIOD \ > IDEA > .if defined(WITH_${var}) && defined(WITHOUT_${var}) > > Modified: head/sys/sys/param.h > == > --- head/sys/sys/param.h Mon Aug 23 09:54:32 2010(r211700) > +++ head/sys/sys/param.h Mon Aug 23 10:04:26 2010(r211701) > @@ -58,7 +58,7 @@ > * in the range 5 to 9. > */ > #undef __FreeBSD_version > -#define __FreeBSD_version 900016 /* Master, propagated to newvers */ > +#define __FreeBSD_version 900017 /* Master, propagated to newvers */ > > #ifndef LOCORE > #include > > Added: head/tools/build/options/WITH_BSD_GREP > == > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/tools/build/options/WITH_BSD_GREPMon Aug 23 10:04:26 2010 > (r211701) > @@ -0,0 +1,2 @@ > +.\" $FreeBSD$ > +Build BSD-licensed grep instead of GNU grep. > > Modified: head/usr.bin/Makefile > == > --- head/usr.bin/Makefile Mon Aug 23 09:54:32 2010(r211700) > +++ head/usr.bin/Makefile Mon Aug 23 10:04:26 2010(r211701) > @@ -277,6 +277,10 @@ _bluetooth= bluetooth > _cpio= cpio > .endif > > +.if ${MK_BSD_GREP} != "no" > +_grep= grep > +.endif > + > .if ${MK_CALENDAR} != "no" > _calendar= calendar > .endif > @@ -285,10 +289,6 @@ _calendar= calendar > _clang= clang > .endif > > -.if ${MK_GNU_GREP} != "yes" > -_grep= grep > -.endif > - > .if ${MK_HESIOD} != "no" > _hesinfo=hesinfo > .endif > -- Brian Somers Don't _EVER_ lose your sense of humour ! signature.asc Description: PGP signature
svn commit: r211700 - stable/7/usr.sbin/newsyslog
Author: brian Date: Mon Aug 23 09:54:32 2010 New Revision: 211700 URL: http://svn.freebsd.org/changeset/base/211700 Log: MFC r210407: Add a -S switch to override syslogd's pidfile. Modified: stable/7/usr.sbin/newsyslog/newsyslog.8 stable/7/usr.sbin/newsyslog/newsyslog.c stable/7/usr.sbin/newsyslog/newsyslog.conf.5 Directory Properties: stable/7/usr.sbin/newsyslog/ (props changed) Modified: stable/7/usr.sbin/newsyslog/newsyslog.8 == --- stable/7/usr.sbin/newsyslog/newsyslog.8 Mon Aug 23 09:52:04 2010 (r211699) +++ stable/7/usr.sbin/newsyslog/newsyslog.8 Mon Aug 23 09:54:32 2010 (r211700) @@ -17,7 +17,7 @@ .\" the suitability of this software for any purpose. It is .\" provided "as is" without express or implied warranty. .\" -.Dd January 19, 2010 +.Dd July 23, 2010 .Dt NEWSYSLOG 8 .Os .Sh NAME @@ -27,6 +27,7 @@ .Nm .Op Fl CFNPnrsv .Op Fl R Ar tagname +.Op Fl S Ar pidfile .Op Fl a Ar directory .Op Fl d Ar directory .Op Fl f Ar config_file @@ -215,6 +216,12 @@ Skipping the signal step will also mean will return faster, since .Nm normally waits a few seconds after any signal that is sent. +.It Fl S Ar pidfile +Use +.Ar pidfile +as +.Xr syslogd 8 Ns 's +pidfile. .El .Pp If additional command line arguments are given, Modified: stable/7/usr.sbin/newsyslog/newsyslog.c == --- stable/7/usr.sbin/newsyslog/newsyslog.c Mon Aug 23 09:52:04 2010 (r211699) +++ stable/7/usr.sbin/newsyslog/newsyslog.c Mon Aug 23 09:54:32 2010 (r211700) @@ -186,6 +186,8 @@ char daytime[DAYTIME_LEN]; /* The curren * used for rotation-tracking messages. */ char hostname[MAXHOSTNAMELEN]; /* hostname */ +const char *path_syslogpid = _PATH_SYSLOGPID; + static struct conf_entry *get_worklist(char **files); static void parse_file(FILE *cf, const char *cfname, struct conf_entry **work_p, struct conf_entry **glob_p, struct conf_entry **defconf_p); @@ -632,6 +634,9 @@ parse_args(int argc, char **argv) rotatereq++; requestor = strdup(optarg); break; + case 'S': + path_syslogpid = optarg; + break; case 'm': /* Used by OpenBSD for "monitor mode" */ default: usage(); @@ -724,7 +729,7 @@ usage(void) fprintf(stderr, "usage: newsyslog [-CFNnrsv] [-a directory] [-d directory] [-f config-file]\n" - " [ [-R requestor] filename ... ]\n"); + " [-S pidfile] [ [-R requestor] filename ... ]\n"); exit(1); } @@ -1318,7 +1323,7 @@ no_trimat: working->flags &= ~CE_SIGNALGROUP; } if (needroot) - working->pid_file = strdup(_PATH_SYSLOGPID); + working->pid_file = strdup(path_syslogpid); } /* Modified: stable/7/usr.sbin/newsyslog/newsyslog.conf.5 == --- stable/7/usr.sbin/newsyslog/newsyslog.conf.5Mon Aug 23 09:52:04 2010(r211699) +++ stable/7/usr.sbin/newsyslog/newsyslog.conf.5Mon Aug 23 09:54:32 2010(r211700) @@ -21,7 +21,7 @@ .\" the suitability of this software for any purpose. It is .\" provided "as is" without express or implied warranty. .\" -.Dd November 27, 2006 +.Dd July 23, 2010 .Dt NEWSYSLOG.CONF 5 .Os .Sh NAME @@ -315,14 +315,17 @@ process ID or to find a group process ID flag was specified. If this field is present, a .Ar signal_number -is sent the process ID contained in this file. -If this field is not present, then a +is sent to the process ID contained in this file. +If this field is not present and the +.Cm N +flag has not been specified, then a .Dv SIGHUP signal will be sent to -.Xr syslogd 8 , -unless the -.Cm N -flag has been specified. +.Xr syslogd 8 +or to the process id found in the file specified by +.Xr newsyslog 8 Ns 's +.Fl S +switch. This field must start with .Ql / in order to be recognized properly. ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r211699 - stable/8/usr.sbin/newsyslog
Author: brian Date: Mon Aug 23 09:52:04 2010 New Revision: 211699 URL: http://svn.freebsd.org/changeset/base/211699 Log: MFC r210407: Add a -S switch to override syslogd's pidfile. Modified: stable/8/usr.sbin/newsyslog/newsyslog.8 stable/8/usr.sbin/newsyslog/newsyslog.c stable/8/usr.sbin/newsyslog/newsyslog.conf.5 Directory Properties: stable/8/usr.sbin/newsyslog/ (props changed) Modified: stable/8/usr.sbin/newsyslog/newsyslog.8 == --- stable/8/usr.sbin/newsyslog/newsyslog.8 Mon Aug 23 06:40:21 2010 (r211698) +++ stable/8/usr.sbin/newsyslog/newsyslog.8 Mon Aug 23 09:52:04 2010 (r211699) @@ -17,7 +17,7 @@ .\" the suitability of this software for any purpose. It is .\" provided "as is" without express or implied warranty. .\" -.Dd January 19, 2010 +.Dd July 23, 2010 .Dt NEWSYSLOG 8 .Os .Sh NAME @@ -27,6 +27,7 @@ .Nm .Op Fl CFNPnrsv .Op Fl R Ar tagname +.Op Fl S Ar pidfile .Op Fl a Ar directory .Op Fl d Ar directory .Op Fl f Ar config_file @@ -215,6 +216,12 @@ Skipping the signal step will also mean will return faster, since .Nm normally waits a few seconds after any signal that is sent. +.It Fl S Ar pidfile +Use +.Ar pidfile +as +.Xr syslogd 8 Ns 's +pidfile. .El .Pp If additional command line arguments are given, Modified: stable/8/usr.sbin/newsyslog/newsyslog.c == --- stable/8/usr.sbin/newsyslog/newsyslog.c Mon Aug 23 06:40:21 2010 (r211698) +++ stable/8/usr.sbin/newsyslog/newsyslog.c Mon Aug 23 09:52:04 2010 (r211699) @@ -186,6 +186,8 @@ char daytime[DAYTIME_LEN]; /* The curren * used for rotation-tracking messages. */ char hostname[MAXHOSTNAMELEN]; /* hostname */ +const char *path_syslogpid = _PATH_SYSLOGPID; + static struct conf_entry *get_worklist(char **files); static void parse_file(FILE *cf, const char *cfname, struct conf_entry **work_p, struct conf_entry **glob_p, struct conf_entry **defconf_p); @@ -632,6 +634,9 @@ parse_args(int argc, char **argv) rotatereq++; requestor = strdup(optarg); break; + case 'S': + path_syslogpid = optarg; + break; case 'm': /* Used by OpenBSD for "monitor mode" */ default: usage(); @@ -724,7 +729,7 @@ usage(void) fprintf(stderr, "usage: newsyslog [-CFNnrsv] [-a directory] [-d directory] [-f config-file]\n" - " [ [-R requestor] filename ... ]\n"); + " [-S pidfile] [ [-R requestor] filename ... ]\n"); exit(1); } @@ -1318,7 +1323,7 @@ no_trimat: working->flags &= ~CE_SIGNALGROUP; } if (needroot) - working->pid_file = strdup(_PATH_SYSLOGPID); + working->pid_file = strdup(path_syslogpid); } /* Modified: stable/8/usr.sbin/newsyslog/newsyslog.conf.5 == --- stable/8/usr.sbin/newsyslog/newsyslog.conf.5Mon Aug 23 06:40:21 2010(r211698) +++ stable/8/usr.sbin/newsyslog/newsyslog.conf.5Mon Aug 23 09:52:04 2010(r211699) @@ -21,7 +21,7 @@ .\" the suitability of this software for any purpose. It is .\" provided "as is" without express or implied warranty. .\" -.Dd November 27, 2006 +.Dd July 23, 2010 .Dt NEWSYSLOG.CONF 5 .Os .Sh NAME @@ -315,14 +315,17 @@ process ID or to find a group process ID flag was specified. If this field is present, a .Ar signal_number -is sent the process ID contained in this file. -If this field is not present, then a +is sent to the process ID contained in this file. +If this field is not present and the +.Cm N +flag has not been specified, then a .Dv SIGHUP signal will be sent to -.Xr syslogd 8 , -unless the -.Cm N -flag has been specified. +.Xr syslogd 8 +or to the process id found in the file specified by +.Xr newsyslog 8 Ns 's +.Fl S +switch. This field must start with .Ql / in order to be recognized properly. ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
Re: svn commit: r211609 - head/tools/regression/bin/sh/builtins
On Sun, 22 Aug 2010 11:04:30 + (UTC) Jilles Tjoelker wrote: > Author: jilles > Date: Sun Aug 22 11:04:30 2010 > New Revision: 211609 > URL: http://svn.freebsd.org/changeset/base/211609 > > Log: > sh: Add a test for breaking from a loop outside the current function. > > It is unwise to rely on this but I'd like to know if this would break. > > Added: > head/tools/regression/bin/sh/builtins/break3.0 (contents, props changed) > > Added: head/tools/regression/bin/sh/builtins/break3.0 > == > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/tools/regression/bin/sh/builtins/break3.0Sun Aug 22 11:04:30 > 2010(r211609) > @@ -0,0 +1,15 @@ > +# $FreeBSD$ > + > +# We accept this and people might rely on it. > +# However, various other shells do not accept it. > + > +f() { > + break > + echo bad1 > +} > + > +while :; do > + f > + echo bad2 > + exit 2 > +done This feature should be counted as a bug IMHO. How can f() possibly know whether there's a surrounding context to break from? Having said that, this behaviour is the same in bash except that bash will complain if it's asked to break when the context is wrong, perhaps we should complain too? $ bash -c 'f() { break; echo no break; }; for f in good bad; do echo $f; f; done' good $ sh -c 'f() { break; echo no break; }; for f in good bad; do echo $f; f; done' good $ bash -c 'f() { break; echo no break; }; f' bash: line 0: break: only meaningful in a `for', `while', or `until' loop no break $ bash -c 'f() { break 2>/dev/null; echo no break; }; f' no break $ sh -c 'f() { break; echo no break; }; f' no break -- Brian Somers Don't _EVER_ lose your sense of humour ! signature.asc Description: PGP signature
svn commit: r211684 - head/sys/kern
Author: brian Date: Mon Aug 23 05:33:31 2010 New Revision: 211684 URL: http://svn.freebsd.org/changeset/base/211684 Log: uio_resid isn't updated by VOP_READDIR for nfs filesystems. Use the uio_offset adjustment instead to calculate a correct *len. Without this change, we run off the end of the directory data we're reading and panic horribly for nfs filesystems. MFC after:1 week Modified: head/sys/kern/vfs_default.c Modified: head/sys/kern/vfs_default.c == --- head/sys/kern/vfs_default.c Mon Aug 23 05:33:20 2010(r211683) +++ head/sys/kern/vfs_default.c Mon Aug 23 05:33:31 2010(r211684) @@ -281,10 +281,9 @@ get_next_dirent(struct vnode *vp, struct if (error) return (error); - *off = uio.uio_offset; - *cpos = dirbuf; - *len = (dirbuflen - uio.uio_resid); + *len = uio.uio_offset - *off; + *off = uio.uio_offset; } dp = (struct dirent *)(*cpos); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r210916 - stable/7/sbin/dhclient
Author: brian Date: Fri Aug 6 08:21:03 2010 New Revision: 210916 URL: http://svn.freebsd.org/changeset/base/210916 Log: MFC r209756: Log dhclient's reason for exiting and change the 10 second ignore-routing-messages dhclient-script timeout to be effective from script completion rather than from script start time. Ignore RTM_DELADDR and RTM_NEWADDR messages when the message contains no interface address (which should not happen) rather than exiting. Modified: stable/7/sbin/dhclient/dhclient.c Directory Properties: stable/7/sbin/dhclient/ (props changed) Modified: stable/7/sbin/dhclient/dhclient.c == --- stable/7/sbin/dhclient/dhclient.c Fri Aug 6 08:17:44 2010 (r210915) +++ stable/7/sbin/dhclient/dhclient.c Fri Aug 6 08:21:03 2010 (r210916) @@ -126,7 +126,7 @@ int fork_privchld(int, int); ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) #defineADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) -time_t scripttime; +static time_t scripttime; int findproto(char *cp, int n) @@ -204,7 +204,7 @@ disassoc(void *arg) void routehandler(struct protocol *p) { - char msg[2048]; + char msg[2048], *addr; struct rt_msghdr *rtm; struct if_msghdr *ifm; struct ifa_msghdr *ifam; @@ -224,13 +224,6 @@ routehandler(struct protocol *p) switch (rtm->rtm_type) { case RTM_NEWADDR: - /* -* XXX: If someone other than us adds our address, -* we should assume they are taking over from us, -* delete the lease record, and exit without modifying -* the interface. -*/ - break; case RTM_DELADDR: ifam = (struct ifa_msghdr *)rtm; @@ -243,7 +236,7 @@ routehandler(struct protocol *p) sa = get_ifa((char *)(ifam + 1), ifam->ifam_addrs); if (sa == NULL) - goto die; + break; if ((a.len = sizeof(struct in_addr)) > sizeof(a.iabuf)) error("king bula sez: len mismatch"); @@ -255,21 +248,42 @@ routehandler(struct protocol *p) if (addr_eq(a, l->address)) break; - if (l == NULL) /* deleted addr is not the one we set */ + if (l == NULL) /* added/deleted addr is not the one we set */ break; - goto die; + + addr = inet_ntoa(((struct sockaddr_in *)sa)->sin_addr); + if (rtm->rtm_type == RTM_NEWADDR) { + /* +* XXX: If someone other than us adds our address, +* should we assume they are taking over from us, +* delete the lease record, and exit without modifying +* the interface? +*/ + warning("My address (%s) was re-added", addr); + } else { + warning("My address (%s) was deleted, dhclient exiting", + addr); + goto die; + } + break; case RTM_IFINFO: ifm = (struct if_msghdr *)rtm; if (ifm->ifm_index != ifi->index) break; - if ((rtm->rtm_flags & RTF_UP) == 0) + if ((rtm->rtm_flags & RTF_UP) == 0) { + warning("Interface %s is down, dhclient exiting", + ifi->name); goto die; + } break; case RTM_IFANNOUNCE: ifan = (struct if_announcemsghdr *)rtm; if (ifan->ifan_what == IFAN_DEPARTURE && - ifan->ifan_index == ifi->index) + ifan->ifan_index == ifi->index) { + warning("Interface %s is gone, dhclient exiting", + ifi->name); goto die; + } break; case RTM_IEEE80211: ifan = (struct if_announcemsghdr *)rtm; @@ -2110,8 +2124,6 @@ script_go(void) struct buf *buf; int ret; - scripttime = time(NULL); - hdr.code = IMSG_SCRIPT_GO; hdr.len = sizeof(struct imsg_hdr); @@ -2132,6 +2144,8 @@ script_go(void) error("received corrupted message"); buf_read(privfd, &ret, sizeof(ret)); + scripttime = time(NULL); + return (ret); } ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r210915 - stable/8/sbin/dhclient
Author: brian Date: Fri Aug 6 08:17:44 2010 New Revision: 210915 URL: http://svn.freebsd.org/changeset/base/210915 Log: MFC r209756: Log dhclient's reason for exiting and change the 10 second ignore-routing-messages dhclient-script timeout to be effective from script completion rather than from script start time. Ignore RTM_DELADDR and RTM_NEWADDR messages when the message contains no interface address (which should not happen) rather than exiting. Modified: stable/8/sbin/dhclient/dhclient.c Directory Properties: stable/8/sbin/dhclient/ (props changed) Modified: stable/8/sbin/dhclient/dhclient.c == --- stable/8/sbin/dhclient/dhclient.c Fri Aug 6 07:32:33 2010 (r210914) +++ stable/8/sbin/dhclient/dhclient.c Fri Aug 6 08:17:44 2010 (r210915) @@ -126,7 +126,7 @@ int fork_privchld(int, int); ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) #defineADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) -time_t scripttime; +static time_t scripttime; int findproto(char *cp, int n) @@ -204,7 +204,7 @@ disassoc(void *arg) void routehandler(struct protocol *p) { - char msg[2048]; + char msg[2048], *addr; struct rt_msghdr *rtm; struct if_msghdr *ifm; struct ifa_msghdr *ifam; @@ -224,13 +224,6 @@ routehandler(struct protocol *p) switch (rtm->rtm_type) { case RTM_NEWADDR: - /* -* XXX: If someone other than us adds our address, -* we should assume they are taking over from us, -* delete the lease record, and exit without modifying -* the interface. -*/ - break; case RTM_DELADDR: ifam = (struct ifa_msghdr *)rtm; @@ -243,7 +236,7 @@ routehandler(struct protocol *p) sa = get_ifa((char *)(ifam + 1), ifam->ifam_addrs); if (sa == NULL) - goto die; + break; if ((a.len = sizeof(struct in_addr)) > sizeof(a.iabuf)) error("king bula sez: len mismatch"); @@ -255,21 +248,42 @@ routehandler(struct protocol *p) if (addr_eq(a, l->address)) break; - if (l == NULL) /* deleted addr is not the one we set */ + if (l == NULL) /* added/deleted addr is not the one we set */ break; - goto die; + + addr = inet_ntoa(((struct sockaddr_in *)sa)->sin_addr); + if (rtm->rtm_type == RTM_NEWADDR) { + /* +* XXX: If someone other than us adds our address, +* should we assume they are taking over from us, +* delete the lease record, and exit without modifying +* the interface? +*/ + warning("My address (%s) was re-added", addr); + } else { + warning("My address (%s) was deleted, dhclient exiting", + addr); + goto die; + } + break; case RTM_IFINFO: ifm = (struct if_msghdr *)rtm; if (ifm->ifm_index != ifi->index) break; - if ((rtm->rtm_flags & RTF_UP) == 0) + if ((rtm->rtm_flags & RTF_UP) == 0) { + warning("Interface %s is down, dhclient exiting", + ifi->name); goto die; + } break; case RTM_IFANNOUNCE: ifan = (struct if_announcemsghdr *)rtm; if (ifan->ifan_what == IFAN_DEPARTURE && - ifan->ifan_index == ifi->index) + ifan->ifan_index == ifi->index) { + warning("Interface %s is gone, dhclient exiting", + ifi->name); goto die; + } break; case RTM_IEEE80211: ifan = (struct if_announcemsghdr *)rtm; @@ -2110,8 +2124,6 @@ script_go(void) struct buf *buf; int ret; - scripttime = time(NULL); - hdr.code = IMSG_SCRIPT_GO; hdr.len = sizeof(struct imsg_hdr); @@ -2132,6 +2144,8 @@ script_go(void) error("received corrupted message"); buf_read(privfd, &ret, sizeof(ret)); + scripttime = time(NULL); + return (ret); } ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
Re: svn commit: r210389 - in head: . share/mk tools/build/options usr.bin usr.bin/grep usr.bin/grep/nls
On Thu, 22 Jul 2010 19:11:57 + (UTC) Gabor Kovesdan wrote: > Author: gabor > Date: Thu Jul 22 19:11:57 2010 > New Revision: 210389 > URL: http://svn.freebsd.org/changeset/base/210389 > > Log: > Add BSD grep to the base system and make it our default grep. > > Deliverables: Small and clean code (1,4 KSLOC vs GNU's 8,5 KSLOC), > lower memory usage than GNU grep, GNU compatibility, > BSD license. > > TODO: Performance is somewhat behind GNU grep but it is only > significant for bigger searches. The reason is complex, the > most important factor is that GNU grep uses lots of > optimizations to improve the speed of the regex library. > First, we need a modern regex library (practically by adopting > TRE), add support for GNU-style non-standard regexes and then > reevalute the performance issues and look for bottlenecks. In > the meantime, for those, who need better performance, it is > possible to build GNU grep by setting WITH_GNU_GREP. > > Approved by:delphij (mentor) > Obtained from: OpenBSD > (http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/grep/), > freegrep (http://github.com/howardjp/freegrep) > Sponsored by: Google SoC 2008 > Portbuild tests run by: kris, pav, erwin > Acknowledgements to:fjoe (as SoC 2008 mentor), > everyone who helped in reviewing and testing Very nice!! -- Brian Somers Don't _EVER_ lose your sense of humour ! signature.asc Description: PGP signature
svn commit: r210407 - head/usr.sbin/newsyslog
Author: brian Date: Fri Jul 23 09:11:47 2010 New Revision: 210407 URL: http://svn.freebsd.org/changeset/base/210407 Log: Add a -S switch to override the default syslog pid file. This can be useful if syslogd's -P switch or a syslogd alternative is being used. MFC after:3 weeks Modified: head/usr.sbin/newsyslog/newsyslog.8 head/usr.sbin/newsyslog/newsyslog.c head/usr.sbin/newsyslog/newsyslog.conf.5 Modified: head/usr.sbin/newsyslog/newsyslog.8 == --- head/usr.sbin/newsyslog/newsyslog.8 Fri Jul 23 09:01:12 2010 (r210406) +++ head/usr.sbin/newsyslog/newsyslog.8 Fri Jul 23 09:11:47 2010 (r210407) @@ -17,7 +17,7 @@ .\" the suitability of this software for any purpose. It is .\" provided "as is" without express or implied warranty. .\" -.Dd January 19, 2010 +.Dd July 23, 2010 .Dt NEWSYSLOG 8 .Os .Sh NAME @@ -27,6 +27,7 @@ .Nm .Op Fl CFNPnrsv .Op Fl R Ar tagname +.Op Fl S Ar pidfile .Op Fl a Ar directory .Op Fl d Ar directory .Op Fl f Ar config_file @@ -246,6 +247,12 @@ Skipping the signal step will also mean will return faster, since .Nm normally waits a few seconds after any signal that is sent. +.It Fl S Ar pidfile +Use +.Ar pidfile +as +.Xr syslogd 8 Ns 's +pidfile. .El .Pp If additional command line arguments are given, Modified: head/usr.sbin/newsyslog/newsyslog.c == --- head/usr.sbin/newsyslog/newsyslog.c Fri Jul 23 09:01:12 2010 (r210406) +++ head/usr.sbin/newsyslog/newsyslog.c Fri Jul 23 09:11:47 2010 (r210407) @@ -206,6 +206,8 @@ char daytime[DAYTIME_LEN]; /* The curren * used for rotation-tracking messages. */ char hostname[MAXHOSTNAMELEN]; /* hostname */ +const char *path_syslogpid = _PATH_SYSLOGPID; + static struct cflist *get_worklist(char **files); static void parse_file(FILE *cf, struct cflist *work_p, struct cflist *glob_p, struct conf_entry *defconf_p, struct ilist *inclist); @@ -655,6 +657,9 @@ parse_args(int argc, char **argv) rotatereq++; requestor = strdup(optarg); break; + case 'S': + path_syslogpid = optarg; + break; case 'm': /* Used by OpenBSD for "monitor mode" */ default: usage(); @@ -747,7 +752,7 @@ usage(void) fprintf(stderr, "usage: newsyslog [-CFNnrsv] [-a directory] [-d directory] [-f config-file]\n" - " [-t timefmt ] [ [-R requestor] filename ... ]\n"); + " [-S pidfile] [-t timefmt ] [ [-R requestor] filename ... ]\n"); exit(1); } @@ -1355,7 +1360,7 @@ no_trimat: working->flags &= ~CE_SIGNALGROUP; } if (needroot) - working->pid_file = strdup(_PATH_SYSLOGPID); + working->pid_file = strdup(path_syslogpid); } /* Modified: head/usr.sbin/newsyslog/newsyslog.conf.5 == --- head/usr.sbin/newsyslog/newsyslog.conf.5Fri Jul 23 09:01:12 2010 (r210406) +++ head/usr.sbin/newsyslog/newsyslog.conf.5Fri Jul 23 09:11:47 2010 (r210407) @@ -21,7 +21,7 @@ .\" the suitability of this software for any purpose. It is .\" provided "as is" without express or implied warranty. .\" -.Dd November 27, 2006 +.Dd July 23, 2010 .Dt NEWSYSLOG.CONF 5 .Os .Sh NAME @@ -320,14 +320,17 @@ process ID or to find a group process ID flag was specified. If this field is present, a .Ar signal_number -is sent the process ID contained in this file. -If this field is not present, then a +is sent to the process ID contained in this file. +If this field is not present and the +.Cm N +flag has not been specified, then a .Dv SIGHUP signal will be sent to -.Xr syslogd 8 , -unless the -.Cm N -flag has been specified. +.Xr syslogd 8 +or to the process id found in the file specified by +.Xr newsyslog 8 Ns 's +.Fl S +switch. This field must start with .Ql / in order to be recognized properly. ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
Re: svn commit: r210321 - head/lib/libelf
On Wed, 21 Jul 2010 19:51:49 +1000 (EST) Bruce Evans wrote: > On Wed, 21 Jul 2010, Alexey Dokuchaev wrote: > > > On Wed, Jul 21, 2010 at 08:43:48AM +, Kai Wang wrote: > >> Log: > >> Remove a superfluous comment. > >> > >> Obtained from:elftoolchain > >> MFC after:1 month > > > > (Just picking random of the similar commits): guys, please, try to > > uniformly align commit meta tags: > > It is perfectly aligned with tabs (and no 2-char commit mail indentation, > and no N-char mailer quoting). > > > Obtained from: somewhere > > MFC after: sometime > > Foo bar:baz qux ... > > > > Broken alignment considerably pessimizes commit log grasping, as it > > requires more post-processing work after reading it off. > > Do you mean for human grasping and automated post-processing? The automation > should have no problems with the whitespace but might with the mailer quoting. > > "tags" should mean the part before the ":". Aligning those by making them > all of the same length would help. Alternatively, indenting commit mail sections with a tab rather than two spaces would preserve the visual alignment. -- Brian Somers Don't _EVER_ lose your sense of humour ! ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r210106 - stable/8/bin/pkill
Author: brian Date: Thu Jul 15 07:14:57 2010 New Revision: 210106 URL: http://svn.freebsd.org/changeset/base/210106 Log: MFC r209924; Add -l to the synopsis Submitted by: jhell at dataix dot net Modified: stable/8/bin/pkill/pkill.1 Directory Properties: stable/8/bin/pkill/ (props changed) Modified: stable/8/bin/pkill/pkill.1 == --- stable/8/bin/pkill/pkill.1 Thu Jul 15 03:56:08 2010(r210105) +++ stable/8/bin/pkill/pkill.1 Thu Jul 15 07:14:57 2010(r210106) @@ -60,7 +60,7 @@ .Ar pattern ... .Nm pkill .Op Fl Ar signal -.Op Fl ILafinovx +.Op Fl ILafilnovx .Op Fl F Ar pidfile .Op Fl G Ar gid .Op Fl M Ar core ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
Re: svn commit: r209912 - stable/8/bin/pkill
Oops, thanks for the heads up. I've updated head and will merge the change back into 8 in three days. Chers. On Sun, 11 Jul 2010 20:52:33 -0400 jhell wrote: > On 07/11/2010 17:50, Brian Somers wrote: > > Author: brian > > Date: Sun Jul 11 21:50:05 2010 > > New Revision: 209912 > > URL: http://svn.freebsd.org/changeset/base/209912 > > > > Log: > > MFC r209363: Recognise the -l switch in pkill. > > > > PR: 143558 > > Submitted by: eitanadlerlist at gmail dot com > > > > Modified: > > stable/8/bin/pkill/pkill.1 > > stable/8/bin/pkill/pkill.c > > Directory Properties: > > stable/8/bin/pkill/ (props changed) > > > > pkill.1 seems to be missing this: > > Index: bin/pkill/pkill.1 > === > --- bin/pkill/pkill.1 (revision 209914) > +++ bin/pkill/pkill.1 (working copy) > @@ -60,7 +60,7 @@ > .Ar pattern ... > .Nm pkill > .Op Fl Ar signal > -.Op Fl ILafinovx > +.Op Fl ILafilnovx > .Op Fl F Ar pidfile > .Op Fl G Ar gid > .Op Fl M Ar core > > > Regards, > > -- > > +-+-+-+-+-+ > |j|h|e|l|l| > +-+-+-+-+-+ > -- Brian Somers Don't _EVER_ lose your sense of humour ! signature.asc Description: PGP signature
svn commit: r209924 - head/bin/pkill
Author: brian Date: Mon Jul 12 01:58:46 2010 New Revision: 209924 URL: http://svn.freebsd.org/changeset/base/209924 Log: Add -l to the synopsis Submitted by: jhell at dataix dot net MFC after:3 days Modified: head/bin/pkill/pkill.1 Modified: head/bin/pkill/pkill.1 == --- head/bin/pkill/pkill.1 Mon Jul 12 01:08:59 2010(r209923) +++ head/bin/pkill/pkill.1 Mon Jul 12 01:58:46 2010(r209924) @@ -53,7 +53,7 @@ .Ar pattern ... .Nm pkill .Op Fl Ar signal -.Op Fl ILafinovx +.Op Fl ILafilnovx .Op Fl F Ar pidfile .Op Fl G Ar gid .Op Fl M Ar core ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
Re: svn commit: r209914 - stable/8/sbin/fsck_msdosfs
On Sun, 11 Jul 2010 22:00:40 + (UTC) Brian Somers wrote: > Author: brian > Date: Sun Jul 11 22:00:40 2010 > New Revision: 209914 > URL: http://svn.freebsd.org/changeset/base/209914 > > Log: > MFC r209364: Fix some (not all) style(9) and casting errors. > > PR: 209364 > Submitted by: giffunip at tutopia dot com > Obtained from: NetBSD Oops, that would be PR 142384 -- Brian Somers Don't _EVER_ lose your sense of humour ! signature.asc Description: PGP signature
svn commit: r209914 - stable/8/sbin/fsck_msdosfs
Author: brian Date: Sun Jul 11 22:00:40 2010 New Revision: 209914 URL: http://svn.freebsd.org/changeset/base/209914 Log: MFC r209364: Fix some (not all) style(9) and casting errors. PR: 209364 Submitted by: giffunip at tutopia dot com Obtained from:NetBSD Modified: stable/8/sbin/fsck_msdosfs/Makefile stable/8/sbin/fsck_msdosfs/boot.c stable/8/sbin/fsck_msdosfs/check.c stable/8/sbin/fsck_msdosfs/dir.c stable/8/sbin/fsck_msdosfs/fat.c Directory Properties: stable/8/sbin/fsck_msdosfs/ (props changed) Modified: stable/8/sbin/fsck_msdosfs/Makefile == --- stable/8/sbin/fsck_msdosfs/Makefile Sun Jul 11 21:57:18 2010 (r209913) +++ stable/8/sbin/fsck_msdosfs/Makefile Sun Jul 11 22:00:40 2010 (r209914) @@ -9,6 +9,6 @@ MAN=fsck_msdosfs.8 SRCS= main.c check.c boot.c fat.c dir.c fsutil.c CFLAGS+= -I${FSCK} -WARNS?=0 +WARNS?=2 .include Modified: stable/8/sbin/fsck_msdosfs/boot.c == --- stable/8/sbin/fsck_msdosfs/boot.c Sun Jul 11 21:57:18 2010 (r209913) +++ stable/8/sbin/fsck_msdosfs/boot.c Sun Jul 11 22:00:40 2010 (r209914) @@ -48,13 +48,14 @@ readboot(int dosfs, struct bootblock *bo int ret = FSOK; int i; - if ((size_t)read(dosfs, block, sizeof block) != sizeof block) { + if (read(dosfs, block, sizeof block) != sizeof block) { perror("could not read boot block"); return FSFATAL; } if (block[510] != 0x55 || block[511] != 0xaa) { - pfatal("Invalid signature in boot block: %02x%02x", block[511], block[510]); + pfatal("Invalid signature in boot block: %02x%02x", + block[511], block[510]); return FSFATAL; } @@ -72,8 +73,10 @@ readboot(int dosfs, struct bootblock *bo boot->bpbFATsmall = block[22] + (block[23] << 8); boot->SecPerTrack = block[24] + (block[25] << 8); boot->bpbHeads = block[26] + (block[27] << 8); - boot->bpbHiddenSecs = block[28] + (block[29] << 8) + (block[30] << 16) + (block[31] << 24); - boot->bpbHugeSectors = block[32] + (block[33] << 8) + (block[34] << 16) + (block[35] << 24); + boot->bpbHiddenSecs = block[28] + (block[29] << 8) + + (block[30] << 16) + (block[31] << 24); + boot->bpbHugeSectors = block[32] + (block[33] << 8) + + (block[34] << 16) + (block[35] << 24); boot->FATsecs = boot->bpbFATsmall; @@ -97,10 +100,9 @@ readboot(int dosfs, struct bootblock *bo boot->bpbFSInfo = block[48] + (block[49] << 8); boot->bpbBackup = block[50] + (block[51] << 8); - if (lseek(dosfs, boot->bpbFSInfo * boot->bpbBytesPerSec, SEEK_SET) - != boot->bpbFSInfo * boot->bpbBytesPerSec - || read(dosfs, fsinfo, sizeof fsinfo) - != sizeof fsinfo) { + if (lseek(dosfs, boot->bpbFSInfo * boot->bpbBytesPerSec, + SEEK_SET) != boot->bpbFSInfo * boot->bpbBytesPerSec + || read(dosfs, fsinfo, sizeof fsinfo) != sizeof fsinfo) { perror("could not read fsinfo block"); return FSFATAL; } @@ -124,7 +126,8 @@ readboot(int dosfs, struct bootblock *bo fsinfo[0x3fc] = fsinfo[0x3fd] = 0; fsinfo[0x3fe] = 0x55; fsinfo[0x3ff] = 0xaa; - if (lseek(dosfs, boot->bpbFSInfo * boot->bpbBytesPerSec, SEEK_SET) + if (lseek(dosfs, boot->bpbFSInfo * + boot->bpbBytesPerSec, SEEK_SET) != boot->bpbFSInfo * boot->bpbBytesPerSec || write(dosfs, fsinfo, sizeof fsinfo) != sizeof fsinfo) { @@ -144,7 +147,8 @@ readboot(int dosfs, struct bootblock *bo + (fsinfo[0x1ef] << 24); } - if (lseek(dosfs, boot->bpbBackup * boot->bpbBytesPerSec, SEEK_SET) + if (lseek(dosfs, boot->bpbBackup * boot->bpbBytesPerSec, + SEEK_SET) != boot->bpbBackup * boot->bpbBytesPerSec || read(dosfs, backup, sizeof backup) != sizeof backup) { perror("could not read backup bootblock"); @@ -172,11 +176,10 @@ readboot(int dosfs, struct bootblock *bo /* Check backup bpbFSInfo? XXX */ } - boot->ClusterOffset = (boot->bpbRootDirEnts * 32 + boot->bpbBytesPerSec - 1) - / boot->bpbBytesPerSec - + boot->bpbResSectors - + boot->bpbFATs * boot->
svn commit: r209912 - stable/8/bin/pkill
Author: brian Date: Sun Jul 11 21:50:05 2010 New Revision: 209912 URL: http://svn.freebsd.org/changeset/base/209912 Log: MFC r209363: Recognise the -l switch in pkill. PR: 143558 Submitted by: eitanadlerlist at gmail dot com Modified: stable/8/bin/pkill/pkill.1 stable/8/bin/pkill/pkill.c Directory Properties: stable/8/bin/pkill/ (props changed) Modified: stable/8/bin/pkill/pkill.1 == --- stable/8/bin/pkill/pkill.1 Sun Jul 11 21:47:38 2010(r209911) +++ stable/8/bin/pkill/pkill.1 Sun Jul 11 21:50:05 2010(r209912) @@ -163,14 +163,16 @@ The value matches processes not in jail. .It Fl l Long output. -Print the process name in addition to the process ID for each matching +For +.Nm pgrep , +print the process name in addition to the process ID for each matching process. If used in conjunction with .Fl f , print the process ID and the full argument list for each matching process. -This option can only be used with the -.Nm pgrep -command. +For +.Nm pkill , +display the kill command used for each process killed. .It Fl n Select only the newest (most recently started) of the matching processes. .It Fl o Modified: stable/8/bin/pkill/pkill.c == --- stable/8/bin/pkill/pkill.c Sun Jul 11 21:47:38 2010(r209911) +++ stable/8/bin/pkill/pkill.c Sun Jul 11 21:50:05 2010(r209912) @@ -133,7 +133,7 @@ main(int argc, char **argv) { char buf[_POSIX2_LINE_MAX], *mstr, **pargv, *p, *q, *pidfile; const char *execf, *coref; - int ancestors, debug_opt; + int ancestors, debug_opt, did_action; int i, ch, bestidx, rv, criteria, pidfromfile, pidfilelock; size_t jsz; int (*action)(const struct kinfo_proc *); @@ -246,8 +246,6 @@ main(int argc, char **argv) criteria = 1; break; case 'l': - if (!pgrep) - usage(); longfmt = 1; break; case 'n': @@ -529,16 +527,24 @@ main(int argc, char **argv) /* * Take the appropriate action for each matched process, if any. */ + did_action = 0; for (i = 0, rv = 0, kp = plist; i < nproc; i++, kp++) { if (PSKIP(kp)) continue; if (selected[i]) { + if (longfmt && !pgrep) { + did_action = 1; + printf("kill -%d %d\n", signum, kp->ki_pid); + } if (inverse) continue; } else if (!inverse) continue; rv |= (*action)(kp); } + if (!did_action && !pgrep && longfmt) + fprintf(stderr, + "No matching processes belonging to you were found\n"); exit(rv ? STATUS_MATCH : STATUS_NOMATCH); } @@ -551,7 +557,7 @@ usage(void) if (pgrep) ustr = "[-LSfilnovx] [-d delim]"; else - ustr = "[-signal] [-ILfinovx]"; + ustr = "[-signal] [-ILfilnovx]"; fprintf(stderr, "usage: %s %s [-F pidfile] [-G gid] [-M core] [-N system]\n" ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r209911 - stable/8/usr.bin/du
Author: brian Date: Sun Jul 11 21:47:38 2010 New Revision: 209911 URL: http://svn.freebsd.org/changeset/base/209911 Log: MFC r209362: Add a -t switch for masking output based on size. PR: 144192 Submitted by: gk Modified: stable/8/usr.bin/du/du.1 stable/8/usr.bin/du/du.c Directory Properties: stable/8/usr.bin/du/ (props changed) Modified: stable/8/usr.bin/du/du.1 == --- stable/8/usr.bin/du/du.1Sun Jul 11 21:12:42 2010(r209910) +++ stable/8/usr.bin/du/du.1Sun Jul 11 21:47:38 2010(r209911) @@ -42,7 +42,7 @@ .Nm .Op Fl A .Op Fl H | L | P -.Op Fl a | s | d Ar depth +.Op Fl a | s | d Ar depth | Fl t Ar threshold .Op Fl c .Op Fl l .Op Fl h | k | m | B Ar blocksize @@ -107,6 +107,14 @@ This option exists solely for conformanc Display an entry for each specified file. (Equivalent to .Fl d Li 0 ) +.It Fl t Ar threshold +Display only entries for which size exceeds +.Ar threshold . +If +.Ar threshold +is negative, display only entries for which size is less than the absolute +value of +.Ar threshold . .It Fl d Ar depth Display an entry for all files and directories .Ar depth Modified: stable/8/usr.bin/du/du.c == --- stable/8/usr.bin/du/du.cSun Jul 11 21:12:42 2010(r209910) +++ stable/8/usr.bin/du/du.cSun Jul 11 21:47:38 2010(r209911) @@ -90,6 +90,7 @@ main(int argc, char *argv[]) FTS *fts; FTSENT *p; off_t savednumber, curblocks; + off_t threshold, threshold_sign; int ftsoptions; int listall; int depth; @@ -106,12 +107,14 @@ main(int argc, char *argv[]) save = argv; ftsoptions = 0; savednumber = 0; + threshold = 0; + threshold_sign = 1; cblocksize = DEV_BSIZE; blocksize = 0; depth = INT_MAX; SLIST_INIT(&ignores); - while ((ch = getopt(argc, argv, "AB:HI:LPasd:chklmnrx")) != -1) + while ((ch = getopt(argc, argv, "AB:HI:LPasd:chklmnrt:x")) != -1) switch (ch) { case 'A': Aflag = 1; @@ -179,6 +182,14 @@ main(int argc, char *argv[]) break; case 'r':/* Compatibility. */ break; + case 't' : + if (expand_number(optarg, &threshold) != 0 || + threshold == 0) { + warnx("invalid threshold: %s", optarg); + usage(); + } else if (threshold < 0) + threshold_sign = -1; + break; case 'x': ftsoptions |= FTS_XDEV; break; @@ -248,6 +259,10 @@ main(int argc, char *argv[]) blocksize /= DEV_BSIZE; } + if (threshold != 0) + threshold = howmany(threshold / DEV_BSIZE * cblocksize, + blocksize); + rval = 0; (void)signal(SIGINFO, siginfo); @@ -271,7 +286,9 @@ main(int argc, char *argv[]) p->fts_parent->fts_bignum += p->fts_bignum += curblocks; - if (p->fts_level <= depth) { + if (p->fts_level <= depth && threshold <= + threshold_sign * howmany(p->fts_bignum * + cblocksize, blocksize)) { if (hflag) { prthumanval(p->fts_bignum); (void)printf("\t%s\n", p->fts_path); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r209756 - head/sbin/dhclient
Author: brian Date: Wed Jul 7 06:06:54 2010 New Revision: 209756 URL: http://svn.freebsd.org/changeset/base/209756 Log: When dhclient obtains a lease, it runs dhclient-script and expects it to configure the interface. When the script is complete, dhclient monitors the routing socket and will terminate if its address is deleted or if its interface is removed or brought down. Because the routing socket is already open when dhclient-script is run, dhclient ignores address deletions for 10 seconds after the script was run. If the address that will be obtained is already configured on the interface before dhclient starts, and if dhclient-script takes more than 10 seconds (perhaps due to dhclient-*-hooks latencies), on script completion, dhclient will immediately and silently exit when it sees the RTM_DELADDR routing message resulting from the script reassigning the address to the interface. This change logs dhclient's reason for exiting and also changes the 10 second timeout to be effective from completion of dhclient-script rather than from when it was started. We now ignore RTM_DELADDR and RTM_NEWADDR messages when the message contains no interface address (which should not happen) rather than exiting. Not reviewed by: brooks (timeout) MFC after:3 weeks Modified: head/sbin/dhclient/dhclient.c Modified: head/sbin/dhclient/dhclient.c == --- head/sbin/dhclient/dhclient.c Wed Jul 7 04:06:38 2010 (r209755) +++ head/sbin/dhclient/dhclient.c Wed Jul 7 06:06:54 2010 (r209756) @@ -126,7 +126,7 @@ int fork_privchld(int, int); ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) #defineADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) -time_t scripttime; +static time_t scripttime; int findproto(char *cp, int n) @@ -204,7 +204,7 @@ disassoc(void *arg) void routehandler(struct protocol *p) { - char msg[2048]; + char msg[2048], *addr; struct rt_msghdr *rtm; struct if_msghdr *ifm; struct ifa_msghdr *ifam; @@ -224,13 +224,6 @@ routehandler(struct protocol *p) switch (rtm->rtm_type) { case RTM_NEWADDR: - /* -* XXX: If someone other than us adds our address, -* we should assume they are taking over from us, -* delete the lease record, and exit without modifying -* the interface. -*/ - break; case RTM_DELADDR: ifam = (struct ifa_msghdr *)rtm; @@ -243,7 +236,7 @@ routehandler(struct protocol *p) sa = get_ifa((char *)(ifam + 1), ifam->ifam_addrs); if (sa == NULL) - goto die; + break; if ((a.len = sizeof(struct in_addr)) > sizeof(a.iabuf)) error("king bula sez: len mismatch"); @@ -255,21 +248,42 @@ routehandler(struct protocol *p) if (addr_eq(a, l->address)) break; - if (l == NULL) /* deleted addr is not the one we set */ + if (l == NULL) /* added/deleted addr is not the one we set */ break; - goto die; + + addr = inet_ntoa(((struct sockaddr_in *)sa)->sin_addr); + if (rtm->rtm_type == RTM_NEWADDR) { + /* +* XXX: If someone other than us adds our address, +* should we assume they are taking over from us, +* delete the lease record, and exit without modifying +* the interface? +*/ + warning("My address (%s) was re-added", addr); + } else { + warning("My address (%s) was deleted, dhclient exiting", + addr); + goto die; + } + break; case RTM_IFINFO: ifm = (struct if_msghdr *)rtm; if (ifm->ifm_index != ifi->index) break; - if ((rtm->rtm_flags & RTF_UP) == 0) + if ((rtm->rtm_flags & RTF_UP) == 0) { + warning("Interface %s is down, dhclient exiting", + ifi->name); goto die; + } break; case RTM_IFANNOUNCE: ifan = (struct if_announcemsghdr *)rtm; if (ifan->ifan_what == IFAN_DEPARTURE && - ifan->ifan_index == ifi->index) + ifan->ifan_index == ifi->index) { + warning("Interface %s is gone, dhclient exiting", + ifi->name); goto die; + }
svn commit: r209563 - stable/8/sys/boot/ficl
Author: brian Date: Mon Jun 28 07:15:30 2010 New Revision: 209563 URL: http://svn.freebsd.org/changeset/base/209563 Log: MFC r209361; Add a missing prototype PR: 145232 Submitted by: gcooper Modified: stable/8/sys/boot/ficl/ficl.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/boot/ficl/ficl.h == --- stable/8/sys/boot/ficl/ficl.h Mon Jun 28 07:03:18 2010 (r209562) +++ stable/8/sys/boot/ficl/ficl.h Mon Jun 28 07:15:30 2010 (r209563) @@ -757,6 +757,7 @@ voiddictAppendUNS (FICL_DICT *p int dictCellsAvail (FICL_DICT *pDict); int dictCellsUsed (FICL_DICT *pDict); voiddictCheck (FICL_DICT *pDict, FICL_VM *pVM, int n); +voiddictCheckThreshold(FICL_DICT* dp); FICL_DICT *dictCreate(unsigned nCELLS); FICL_DICT *dictCreateHashed(unsigned nCells, unsigned nHash); FICL_HASH *dictCreateWordlist(FICL_DICT *dp, int nBuckets); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r209562 - in stable/8/release: picobsd/floppy.tree/sbin scripts
Author: brian Date: Mon Jun 28 07:03:18 2010 New Revision: 209562 URL: http://svn.freebsd.org/changeset/base/209562 Log: MFC r209332: Shoot a stray cat! PR: 145447 Submitted by: u at netbeisser dot de Modified: stable/8/release/scripts/ports-install.sh Directory Properties: stable/8/release/ (props changed) stable/8/release/doc/en_US.ISO8859-1/hardware/ (props changed) stable/8/release/picobsd/ (props changed) stable/8/release/picobsd/floppy.tree/sbin/ (props changed) stable/8/release/picobsd/floppy.tree/sbin/dhclient-script (props changed) stable/8/release/picobsd/qemu/ (props changed) Modified: stable/8/release/scripts/ports-install.sh == --- stable/8/release/scripts/ports-install.sh Mon Jun 28 06:59:57 2010 (r209561) +++ stable/8/release/scripts/ports-install.sh Mon Jun 28 07:03:18 2010 (r209562) @@ -8,5 +8,5 @@ if [ "`id -u`" != "0" ]; then exit 1 fi echo "Extracting ports tarball into ${DESTDIR}/usr" -cat ports.tgz | tar --unlink -xpzf - -C ${DESTDIR}/usr +tar --unlink -xpzf ports.tgz -C ${DESTDIR}/usr exit 0 ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r209561 - in stable/8: etc tools/regression/lib/msun tools/regression/usr.bin/pkill tools/tools/ath/common tools/tools/termcap tools/tools/tinybsd/conf/default tools/tools/tinybsd/conf/vpn
Author: brian Date: Mon Jun 28 06:59:57 2010 New Revision: 209561 URL: http://svn.freebsd.org/changeset/base/209561 Log: MFC r209331 at stable/8/etc and stable/8/tools; Remove vestiges of 'slip'. PR: 145648 Submitted by: alexbestms at wwu dot de and spam at rm-rf dot kiev dot ua Modified: stable/8/etc/login.conf stable/8/tools/tools/tinybsd/conf/default/TINYBSD stable/8/tools/tools/tinybsd/conf/vpn/TINYBSD Directory Properties: stable/8/etc/ (props changed) stable/8/tools/ (props changed) stable/8/tools/build/mk/ (props changed) stable/8/tools/build/options/ (props changed) stable/8/tools/kerneldoc/subsys/ (props changed) stable/8/tools/regression/acltools/ (props changed) stable/8/tools/regression/aio/aiotest/ (props changed) stable/8/tools/regression/bin/sh/ (props changed) stable/8/tools/regression/fifo/ (props changed) stable/8/tools/regression/geom/ (props changed) stable/8/tools/regression/lib/libc/ (props changed) stable/8/tools/regression/lib/msun/test-conj.t (props changed) stable/8/tools/regression/mqueue/mqtest1/ (props changed) stable/8/tools/regression/mqueue/mqtest2/ (props changed) stable/8/tools/regression/mqueue/mqtest3/ (props changed) stable/8/tools/regression/mqueue/mqtest4/ (props changed) stable/8/tools/regression/mqueue/mqtest5/ (props changed) stable/8/tools/regression/poll/ (props changed) stable/8/tools/regression/posixsem/ (props changed) stable/8/tools/regression/priv/ (props changed) stable/8/tools/regression/usr.bin/pkill/pgrep-_g.t (props changed) stable/8/tools/regression/usr.bin/pkill/pgrep-_s.t (props changed) stable/8/tools/regression/usr.bin/pkill/pkill-_g.t (props changed) stable/8/tools/regression/usr.bin/sed/ (props changed) stable/8/tools/test/ (props changed) stable/8/tools/tools/ath/ (props changed) stable/8/tools/tools/ath/common/dumpregs.h (props changed) stable/8/tools/tools/ath/common/dumpregs_5210.c (props changed) stable/8/tools/tools/ath/common/dumpregs_5211.c (props changed) stable/8/tools/tools/ath/common/dumpregs_5212.c (props changed) stable/8/tools/tools/ath/common/dumpregs_5416.c (props changed) stable/8/tools/tools/nanobsd/ (props changed) stable/8/tools/tools/netrate/tcpp/ (props changed) stable/8/tools/tools/termcap/termcap.pl (props changed) stable/8/tools/tools/vimage/ (props changed) Modified: stable/8/etc/login.conf == --- stable/8/etc/login.conf Mon Jun 28 04:54:16 2010(r209560) +++ stable/8/etc/login.conf Mon Jun 28 06:59:57 2010(r209561) @@ -228,7 +228,7 @@ russian|Russian Users Accounts:\ # # ## -## The dialer class should be used for a dialup PPP/SLIP accounts +## The dialer class should be used for a dialup PPP account ## Welcome messages/news suppressed ## #dialer:\ @@ -247,7 +247,7 @@ russian|Russian Users Accounts:\ # # ## -## Site full-time 24/7 PPP/SLIP connections +## Site full-time 24/7 PPP connection ## - no time accounting, restricted to access via dialin lines ## #site:\ @@ -306,11 +306,6 @@ russian|Russian Users Accounts:\ # :tc=subscriber: # # -#subslip|SLIP Subscriber Accounts:\ -# :tc=dialer:\ -# :tc=subscriber: -# -# #subshell|Shell Subscriber Accounts:\ # :tc=subscriber: # Modified: stable/8/tools/tools/tinybsd/conf/default/TINYBSD == --- stable/8/tools/tools/tinybsd/conf/default/TINYBSD Mon Jun 28 04:54:16 2010(r209560) +++ stable/8/tools/tools/tinybsd/conf/default/TINYBSD Mon Jun 28 06:59:57 2010(r209561) @@ -143,7 +143,6 @@ device wi # WaveLAN/Intersil/Symbol 80 device loop# Network loopback device random # Entropy device device ether # Ethernet support -#devicesl # Kernel SLIP device ppp # Kernel PPP device tun # Packet tunnel. device pty # Pseudo-ttys (telnet etc) Modified: stable/8/tools/tools/tinybsd/conf/vpn/TINYBSD == --- stable/8/tools/tools/tinybsd/conf/vpn/TINYBSD Mon Jun 28 04:54:16 2010(r209560) +++ stable/8/tools/tools/tinybsd/conf/vpn/TINYBSD Mon Jun 28 06:59:57 2010(r209561) @@ -133,7 +133,6 @@ device xe # Xircom pccard Ethernet device loop# Network loopback device random # Entropy device device ether # Ethernet support -#devicesl # Kernel SLIP device ppp # Kernel PPP device tun # Packet tunnel. device pty # Pseudo-ttys (telnet etc) __
svn commit: r209560 - stable/8/sys/dev/agp
Author: brian Date: Mon Jun 28 04:54:16 2010 New Revision: 209560 URL: http://svn.freebsd.org/changeset/base/209560 Log: MFC r209329; add a missing linefeed PR: 147337 Submitted by: cyberleo at cyberleo dot net Modified: stable/8/sys/dev/agp/agp_nvidia.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/dev/agp/agp_nvidia.c == --- stable/8/sys/dev/agp/agp_nvidia.c Mon Jun 28 01:46:26 2010 (r209559) +++ stable/8/sys/dev/agp/agp_nvidia.c Mon Jun 28 04:54:16 2010 (r209560) @@ -282,7 +282,7 @@ agp_nvidia_get_aperture(device_t dev) case 14: return (64 * 1024 * 1024); break; case 15: return (32 * 1024 * 1024); break; default: - device_printf(dev, "Invalid aperture setting 0x%x", + device_printf(dev, "Invalid aperture setting 0x%x\n", pci_read_config(dev, AGP_NVIDIA_0_APSIZE, 1)); return 0; } ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r209364 - head/sbin/fsck_msdosfs
Author: brian Date: Sun Jun 20 09:40:54 2010 New Revision: 209364 URL: http://svn.freebsd.org/changeset/base/209364 Log: Fix some style(9), although there's a lot more issues here. Fix some casting errors. PR: 142384 Submitted by: giffunip at tutopia dot com Obtained from:NetBSD MFC after:3 weeks Modified: head/sbin/fsck_msdosfs/Makefile head/sbin/fsck_msdosfs/boot.c head/sbin/fsck_msdosfs/check.c head/sbin/fsck_msdosfs/dir.c head/sbin/fsck_msdosfs/fat.c Modified: head/sbin/fsck_msdosfs/Makefile == --- head/sbin/fsck_msdosfs/Makefile Sun Jun 20 08:48:30 2010 (r209363) +++ head/sbin/fsck_msdosfs/Makefile Sun Jun 20 09:40:54 2010 (r209364) @@ -9,6 +9,6 @@ MAN=fsck_msdosfs.8 SRCS= main.c check.c boot.c fat.c dir.c fsutil.c CFLAGS+= -I${FSCK} -WARNS?=0 +WARNS?=2 .include Modified: head/sbin/fsck_msdosfs/boot.c == --- head/sbin/fsck_msdosfs/boot.c Sun Jun 20 08:48:30 2010 (r209363) +++ head/sbin/fsck_msdosfs/boot.c Sun Jun 20 09:40:54 2010 (r209364) @@ -48,13 +48,14 @@ readboot(int dosfs, struct bootblock *bo int ret = FSOK; int i; - if ((size_t)read(dosfs, block, sizeof block) != sizeof block) { + if (read(dosfs, block, sizeof block) != sizeof block) { perror("could not read boot block"); return FSFATAL; } if (block[510] != 0x55 || block[511] != 0xaa) { - pfatal("Invalid signature in boot block: %02x%02x", block[511], block[510]); + pfatal("Invalid signature in boot block: %02x%02x", + block[511], block[510]); return FSFATAL; } @@ -72,8 +73,10 @@ readboot(int dosfs, struct bootblock *bo boot->bpbFATsmall = block[22] + (block[23] << 8); boot->SecPerTrack = block[24] + (block[25] << 8); boot->bpbHeads = block[26] + (block[27] << 8); - boot->bpbHiddenSecs = block[28] + (block[29] << 8) + (block[30] << 16) + (block[31] << 24); - boot->bpbHugeSectors = block[32] + (block[33] << 8) + (block[34] << 16) + (block[35] << 24); + boot->bpbHiddenSecs = block[28] + (block[29] << 8) + + (block[30] << 16) + (block[31] << 24); + boot->bpbHugeSectors = block[32] + (block[33] << 8) + + (block[34] << 16) + (block[35] << 24); boot->FATsecs = boot->bpbFATsmall; @@ -97,10 +100,9 @@ readboot(int dosfs, struct bootblock *bo boot->bpbFSInfo = block[48] + (block[49] << 8); boot->bpbBackup = block[50] + (block[51] << 8); - if (lseek(dosfs, boot->bpbFSInfo * boot->bpbBytesPerSec, SEEK_SET) - != boot->bpbFSInfo * boot->bpbBytesPerSec - || read(dosfs, fsinfo, sizeof fsinfo) - != sizeof fsinfo) { + if (lseek(dosfs, boot->bpbFSInfo * boot->bpbBytesPerSec, + SEEK_SET) != boot->bpbFSInfo * boot->bpbBytesPerSec + || read(dosfs, fsinfo, sizeof fsinfo) != sizeof fsinfo) { perror("could not read fsinfo block"); return FSFATAL; } @@ -124,7 +126,8 @@ readboot(int dosfs, struct bootblock *bo fsinfo[0x3fc] = fsinfo[0x3fd] = 0; fsinfo[0x3fe] = 0x55; fsinfo[0x3ff] = 0xaa; - if (lseek(dosfs, boot->bpbFSInfo * boot->bpbBytesPerSec, SEEK_SET) + if (lseek(dosfs, boot->bpbFSInfo * + boot->bpbBytesPerSec, SEEK_SET) != boot->bpbFSInfo * boot->bpbBytesPerSec || write(dosfs, fsinfo, sizeof fsinfo) != sizeof fsinfo) { @@ -144,7 +147,8 @@ readboot(int dosfs, struct bootblock *bo + (fsinfo[0x1ef] << 24); } - if (lseek(dosfs, boot->bpbBackup * boot->bpbBytesPerSec, SEEK_SET) + if (lseek(dosfs, boot->bpbBackup * boot->bpbBytesPerSec, + SEEK_SET) != boot->bpbBackup * boot->bpbBytesPerSec || read(dosfs, backup, sizeof backup) != sizeof backup) { perror("could not read backup bootblock"); @@ -172,11 +176,10 @@ readboot(int dosfs, struct bootblock *bo /* Check backup bpbFSInfo? XXX */ } - boot->ClusterOffset = (boot->bpbRootDirEnts * 32 + boot->bpbBytesPerSec - 1) - / boot->bpbBytesPerSec - + boot->bpbResSectors - + boot->bpbFATs * boot->FATsecs - - CLUST_FIRST * boot->bpbSec
svn commit: r209363 - head/bin/pkill
Author: brian Date: Sun Jun 20 08:48:30 2010 New Revision: 209363 URL: http://svn.freebsd.org/changeset/base/209363 Log: Recognise the -l switch with pkill - list kill command(s) used. PR: 143558 Submitted by: eitanadlerlist at gmail dot com MFC after:3 weeks Modified: head/bin/pkill/pkill.1 head/bin/pkill/pkill.c Modified: head/bin/pkill/pkill.1 == --- head/bin/pkill/pkill.1 Sun Jun 20 08:27:03 2010(r209362) +++ head/bin/pkill/pkill.1 Sun Jun 20 08:48:30 2010(r209363) @@ -156,14 +156,16 @@ The value matches processes not in jail. .It Fl l Long output. -Print the process name in addition to the process ID for each matching +For +.Nm pgrep , +print the process name in addition to the process ID for each matching process. If used in conjunction with .Fl f , print the process ID and the full argument list for each matching process. -This option can only be used with the -.Nm pgrep -command. +For +.Nm pkill , +display the kill command used for each process killed. .It Fl n Select only the newest (most recently started) of the matching processes. .It Fl o Modified: head/bin/pkill/pkill.c == --- head/bin/pkill/pkill.c Sun Jun 20 08:27:03 2010(r209362) +++ head/bin/pkill/pkill.c Sun Jun 20 08:48:30 2010(r209363) @@ -128,7 +128,7 @@ main(int argc, char **argv) { char buf[_POSIX2_LINE_MAX], *mstr, **pargv, *p, *q, *pidfile; const char *execf, *coref; - int ancestors, debug_opt; + int ancestors, debug_opt, did_action; int i, ch, bestidx, rv, criteria, pidfromfile, pidfilelock; size_t jsz; int (*action)(const struct kinfo_proc *); @@ -242,8 +242,6 @@ main(int argc, char **argv) criteria = 1; break; case 'l': - if (!pgrep) - usage(); longfmt = 1; break; case 'n': @@ -530,16 +528,24 @@ main(int argc, char **argv) /* * Take the appropriate action for each matched process, if any. */ + did_action = 0; for (i = 0, rv = 0, kp = plist; i < nproc; i++, kp++) { if (PSKIP(kp)) continue; if (selected[i]) { + if (longfmt && !pgrep) { + did_action = 1; + printf("kill -%d %d\n", signum, kp->ki_pid); + } if (inverse) continue; } else if (!inverse) continue; rv |= (*action)(kp); } + if (!did_action && !pgrep && longfmt) + fprintf(stderr, + "No matching processes belonging to you were found\n"); exit(rv ? STATUS_MATCH : STATUS_NOMATCH); } @@ -552,7 +558,7 @@ usage(void) if (pgrep) ustr = "[-LSfilnoqvx] [-d delim]"; else - ustr = "[-signal] [-ILfinovx]"; + ustr = "[-signal] [-ILfilnovx]"; fprintf(stderr, "usage: %s %s [-F pidfile] [-G gid] [-M core] [-N system]\n" ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r209362 - head/usr.bin/du
Author: brian Date: Sun Jun 20 08:27:03 2010 New Revision: 209362 URL: http://svn.freebsd.org/changeset/base/209362 Log: Add a -t switch for masking output that's above or below certain thresholds. This switch makes it a lot easier to locate problem areas when a process is threatening to consume all of your disk space. PR: 144192 Submitted by: gk MFC after:3 weeks Modified: head/usr.bin/du/du.1 head/usr.bin/du/du.c Modified: head/usr.bin/du/du.1 == --- head/usr.bin/du/du.1Sun Jun 20 08:03:06 2010(r209361) +++ head/usr.bin/du/du.1Sun Jun 20 08:27:03 2010(r209362) @@ -42,7 +42,7 @@ .Nm .Op Fl A .Op Fl H | L | P -.Op Fl a | s | d Ar depth +.Op Fl a | s | d Ar depth | Fl t Ar threshold .Op Fl c .Op Fl l .Op Fl h | k | m | B Ar blocksize @@ -107,6 +107,14 @@ This option exists solely for conformanc Display an entry for each specified file. (Equivalent to .Fl d Li 0 ) +.It Fl t Ar threshold +Display only entries for which size exceeds +.Ar threshold . +If +.Ar threshold +is negative, display only entries for which size is less than the absolute +value of +.Ar threshold . .It Fl d Ar depth Display an entry for all files and directories .Ar depth Modified: head/usr.bin/du/du.c == --- head/usr.bin/du/du.cSun Jun 20 08:03:06 2010(r209361) +++ head/usr.bin/du/du.cSun Jun 20 08:27:03 2010(r209362) @@ -90,6 +90,7 @@ main(int argc, char *argv[]) FTS *fts; FTSENT *p; off_t savednumber, curblocks; + off_t threshold, threshold_sign; int ftsoptions; int listall; int depth; @@ -106,12 +107,14 @@ main(int argc, char *argv[]) save = argv; ftsoptions = 0; savednumber = 0; + threshold = 0; + threshold_sign = 1; cblocksize = DEV_BSIZE; blocksize = 0; depth = INT_MAX; SLIST_INIT(&ignores); - while ((ch = getopt(argc, argv, "AB:HI:LPasd:chklmnrx")) != -1) + while ((ch = getopt(argc, argv, "AB:HI:LPasd:chklmnrt:x")) != -1) switch (ch) { case 'A': Aflag = 1; @@ -179,6 +182,14 @@ main(int argc, char *argv[]) break; case 'r':/* Compatibility. */ break; + case 't' : + if (expand_number(optarg, &threshold) != 0 || + threshold == 0) { + warnx("invalid threshold: %s", optarg); + usage(); + } else if (threshold < 0) + threshold_sign = -1; + break; case 'x': ftsoptions |= FTS_XDEV; break; @@ -248,6 +259,10 @@ main(int argc, char *argv[]) blocksize /= DEV_BSIZE; } + if (threshold != 0) + threshold = howmany(threshold / DEV_BSIZE * cblocksize, + blocksize); + rval = 0; (void)signal(SIGINFO, siginfo); @@ -271,7 +286,9 @@ main(int argc, char *argv[]) p->fts_parent->fts_bignum += p->fts_bignum += curblocks; - if (p->fts_level <= depth) { + if (p->fts_level <= depth && threshold <= + threshold_sign * howmany(p->fts_bignum * + cblocksize, blocksize)) { if (hflag) { prthumanval(p->fts_bignum); (void)printf("\t%s\n", p->fts_path); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r209361 - head/sys/boot/ficl
Author: brian Date: Sun Jun 20 08:03:06 2010 New Revision: 209361 URL: http://svn.freebsd.org/changeset/base/209361 Log: Add a missing prototype PR: 145232 Submitted by: gcooper MFC after:1 week Modified: head/sys/boot/ficl/ficl.h Modified: head/sys/boot/ficl/ficl.h == --- head/sys/boot/ficl/ficl.h Sun Jun 20 06:52:10 2010(r209360) +++ head/sys/boot/ficl/ficl.h Sun Jun 20 08:03:06 2010(r209361) @@ -757,6 +757,7 @@ voiddictAppendUNS (FICL_DICT *p int dictCellsAvail (FICL_DICT *pDict); int dictCellsUsed (FICL_DICT *pDict); voiddictCheck (FICL_DICT *pDict, FICL_VM *pVM, int n); +voiddictCheckThreshold(FICL_DICT* dp); FICL_DICT *dictCreate(unsigned nCELLS); FICL_DICT *dictCreateHashed(unsigned nCells, unsigned nHash); FICL_HASH *dictCreateWordlist(FICL_DICT *dp, int nBuckets); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r209332 - head/release/scripts
Author: brian Date: Sat Jun 19 09:33:11 2010 New Revision: 209332 URL: http://svn.freebsd.org/changeset/base/209332 Log: Remove an unnecessary cat. PR: 145447 Submitted by: u at netbeisser dot de MFC after:1 week Modified: head/release/scripts/ports-install.sh Modified: head/release/scripts/ports-install.sh == --- head/release/scripts/ports-install.sh Sat Jun 19 09:21:34 2010 (r209331) +++ head/release/scripts/ports-install.sh Sat Jun 19 09:33:11 2010 (r209332) @@ -8,5 +8,5 @@ if [ "`id -u`" != "0" ]; then exit 1 fi echo "Extracting ports tarball into ${DESTDIR}/usr" -cat ports.tgz | tar --unlink -xpzf - -C ${DESTDIR}/usr +tar --unlink -xpzf ports.tgz -C ${DESTDIR}/usr exit 0 ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r209331 - in head: etc tools/tools/tinybsd/conf/default tools/tools/tinybsd/conf/vpn
Author: brian Date: Sat Jun 19 09:21:34 2010 New Revision: 209331 URL: http://svn.freebsd.org/changeset/base/209331 Log: Remove vestiges of 'slip'. PR: 145648 Submitted by: alexbestms at wwu dot de and spam at rm-rf dot kiev dot ua MFC after:1 week Modified: head/etc/login.conf head/tools/tools/tinybsd/conf/default/TINYBSD head/tools/tools/tinybsd/conf/vpn/TINYBSD Modified: head/etc/login.conf == --- head/etc/login.conf Sat Jun 19 08:46:17 2010(r209330) +++ head/etc/login.conf Sat Jun 19 09:21:34 2010(r209331) @@ -228,7 +228,7 @@ russian|Russian Users Accounts:\ # # ## -## The dialer class should be used for a dialup PPP/SLIP accounts +## The dialer class should be used for a dialup PPP account ## Welcome messages/news suppressed ## #dialer:\ @@ -247,7 +247,7 @@ russian|Russian Users Accounts:\ # # ## -## Site full-time 24/7 PPP/SLIP connections +## Site full-time 24/7 PPP connection ## - no time accounting, restricted to access via dialin lines ## #site:\ @@ -306,11 +306,6 @@ russian|Russian Users Accounts:\ # :tc=subscriber: # # -#subslip|SLIP Subscriber Accounts:\ -# :tc=dialer:\ -# :tc=subscriber: -# -# #subshell|Shell Subscriber Accounts:\ # :tc=subscriber: # Modified: head/tools/tools/tinybsd/conf/default/TINYBSD == --- head/tools/tools/tinybsd/conf/default/TINYBSD Sat Jun 19 08:46:17 2010(r209330) +++ head/tools/tools/tinybsd/conf/default/TINYBSD Sat Jun 19 09:21:34 2010(r209331) @@ -143,7 +143,6 @@ device wi # WaveLAN/Intersil/Symbol 80 device loop# Network loopback device random # Entropy device device ether # Ethernet support -#devicesl # Kernel SLIP device ppp # Kernel PPP device tun # Packet tunnel. device pty # Pseudo-ttys (telnet etc) Modified: head/tools/tools/tinybsd/conf/vpn/TINYBSD == --- head/tools/tools/tinybsd/conf/vpn/TINYBSD Sat Jun 19 08:46:17 2010 (r209330) +++ head/tools/tools/tinybsd/conf/vpn/TINYBSD Sat Jun 19 09:21:34 2010 (r209331) @@ -133,7 +133,6 @@ device xe # Xircom pccard Ethernet device loop# Network loopback device random # Entropy device device ether # Ethernet support -#devicesl # Kernel SLIP device ppp # Kernel PPP device tun # Packet tunnel. device pty # Pseudo-ttys (telnet etc) ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r209329 - head/sys/dev/agp
Author: brian Date: Sat Jun 19 08:42:29 2010 New Revision: 209329 URL: http://svn.freebsd.org/changeset/base/209329 Log: Add a missing linefeed PR: 147337 Submitted by: cyberleo at cyberleo dot net MFC after:1 week Modified: head/sys/dev/agp/agp_nvidia.c Modified: head/sys/dev/agp/agp_nvidia.c == --- head/sys/dev/agp/agp_nvidia.c Sat Jun 19 08:36:12 2010 (r209328) +++ head/sys/dev/agp/agp_nvidia.c Sat Jun 19 08:42:29 2010 (r209329) @@ -282,7 +282,7 @@ agp_nvidia_get_aperture(device_t dev) case 14: return (64 * 1024 * 1024); break; case 15: return (32 * 1024 * 1024); break; default: - device_printf(dev, "Invalid aperture setting 0x%x", + device_printf(dev, "Invalid aperture setting 0x%x\n", pci_read_config(dev, AGP_NVIDIA_0_APSIZE, 1)); return 0; } ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r209284 - stable/8/usr.bin/jot
Author: brian Date: Fri Jun 18 07:19:30 2010 New Revision: 209284 URL: http://svn.freebsd.org/changeset/base/209284 Log: MFC r208728 - Fix stuttering sequences and reverse ranges PR: 123635 Submitted by: Ulrich Spörlein, uqs at spoerlein dot net Modified: stable/8/usr.bin/jot/jot.1 stable/8/usr.bin/jot/jot.c Directory Properties: stable/8/usr.bin/jot/ (props changed) Modified: stable/8/usr.bin/jot/jot.1 == --- stable/8/usr.bin/jot/jot.1 Fri Jun 18 06:24:40 2010(r209283) +++ stable/8/usr.bin/jot/jot.1 Fri Jun 18 07:19:30 2010(r209284) @@ -32,7 +32,7 @@ .\"@(#)jot.1 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd November 6, 2006 +.Dd June 2, 2010 .Dt JOT 1 .Os .Sh NAME @@ -167,6 +167,86 @@ The name derives in part from .Nm iota , a function in APL. +.Ss Rounding and truncation +The +.Nm +utility uses double precision floating point arithmetic internally. +Before printing a number, it is converted depending on the output +format used. +.Pp +If no output format is specified or the output format is a +floating point format +.Po +.Sq E , +.Sq G , +.Sq e , +.Sq f , +or +.Sq g +.Pc , +the value is rounded using the +.Xr printf 3 +function, taking into account the requested precision. +.Pp +If the output format is an integer format +.Po +.Sq D , +.Sq O , +.Sq U , +.Sq X , +.Sq c , +.Sq d , +.Sq i , +.Sq o , +.Sq u , +or +.Sq x +.Pc , +the value is converted to an integer value by truncation. +.Pp +As an illustration, consider the following command: +.Bd -literal -offset indent +$ jot 6 1 10 0.5 +1 +2 +2 +2 +3 +4 +.Ed +.Pp +By requesting an explicit precision of 1, the values generated before rounding +can be seen. +The .5 values are rounded down if the integer part is even, +up otherwise. +.Bd -literal -offset indent +$ jot -p 1 6 1 10 0.5 +1.0 +1.5 +2.0 +2.5 +3.0 +3.5 +.Ed +.Pp +By offsetting the values slightly, the values generated by the following +command are always rounded down: +.Bd -literal -offset indent +$ jot -p 0 6 .99 10 0.5 +1 +1 +2 +2 +3 +3 +.Ed +.Pp +Another way of achieving the same result is to force truncation by +specifying an integer format: +.Bd -literal -offset indent +$ jot -w %d 6 1 10 0.5 +.Ed +.Pp .Sh EXIT STATUS .Ex -std .Sh EXAMPLES @@ -201,9 +281,9 @@ the result of .Dl jot -w %ds/old/new/ 30 2 - 5 .Pp The stuttering sequence 9, 9, 8, 8, 7, etc.\& can be -produced by suitable choice of step size, +produced by truncating the output precision and a suitable choice of step size, as in -.Dl jot - 9 0 -.5 +.Dl jot -w %d - 9.5 0 -.5 .Pp and a file containing exactly 1024 bytes is created with .Dl jot -b x 512 > block Modified: stable/8/usr.bin/jot/jot.c == --- stable/8/usr.bin/jot/jot.c Fri Jun 18 06:24:40 2010(r209283) +++ stable/8/usr.bin/jot/jot.c Fri Jun 18 07:19:30 2010(r209284) @@ -77,7 +77,7 @@ __FBSDID("$FreeBSD$"); #defineis_default(s) (*(s) == 0 || strcmp((s), "-") == 0) static boolboring; -static int prec; +static int prec = -1; static boollongdata; static boolintdata; static boolchardata; @@ -128,7 +128,7 @@ main(int argc, char **argv) break; case 'p': prec = atoi(optarg); - if (prec <= 0) + if (prec < 0) errx(1, "bad precision value"); have_format = true; break; @@ -159,7 +159,7 @@ main(int argc, char **argv) if (!sscanf(argv[2], "%lf", &ender)) ender = argv[2][strlen(argv[2])-1]; mask |= HAVE_ENDER; - if (!prec) + if (prec < 0) n = getprec(argv[2]); } /* FALLTHROUGH */ @@ -168,7 +168,7 @@ main(int argc, char **argv) if (!sscanf(argv[1], "%lf", &begin)) begin = argv[1][strlen(argv[1])-1]; mask |= HAVE_BEGIN; - if (!prec) + if (prec < 0) prec = getprec(argv[1]); if (n > prec) /* maximum precision */ prec = n; @@ -188,6 +188,10 @@ main(int argc, char **argv) argv[4]); } getformat(); + + if (prec == -1) + prec = 0; + while (mask)/* 4 bit mask has 1's where last 4 args were given */ switch (mask) { /* fill in the 0's by default or computation */ case HAVE_STEP: @@ -284,13 +288,16 @@ main(int argc, char **argv) if (!have_format && prec == 0 && begin >= 0 && begin < diviso
Re: svn commit: r209221 - head/bin/sh
On Wed, 16 Jun 2010 03:30:45 +0200 Dag-Erling Smørgrav wrote: > Jilles Tjoelker writes: > > Log: > > sh: Add filename completion. > > Wonderful! Now I'll never have to use csh again :) Is there a plan to change root's shell from csh to sh? If not, should there be? I've been doing this locally for 17 years. -- Brian Somers Don't _EVER_ lose your sense of humour ! ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r209086 - stable/8/bin/date
Author: brian Date: Sat Jun 12 02:00:15 2010 New Revision: 209086 URL: http://svn.freebsd.org/changeset/base/209086 Log: MFC r208795; additional date -v detail PR: 147354 Approved by: re (kib) Modified: stable/8/bin/date/date.1 Directory Properties: stable/8/bin/date/ (props changed) Modified: stable/8/bin/date/date.1 == --- stable/8/bin/date/date.1Sat Jun 12 01:45:29 2010(r209085) +++ stable/8/bin/date/date.1Sat Jun 12 02:00:15 2010(r209086) @@ -32,7 +32,7 @@ .\" @(#)date.1 8.3 (Berkeley) 4/28/95 .\" $FreeBSD$ .\" -.Dd June 2, 2007 +.Dd June 3, 2010 .Dt DATE 1 .Os .Sh NAME @@ -219,6 +219,14 @@ When the date is adjusted to a specific the resulting timezone will be set so that the date matches the earlier of the two times. .Pp +It is not possible to adjust a date to an invalid absolute day, so using +the switches +.Fl v No 31d Fl v No 12m +will simply fail five months of the year. +It is therefore usual to set the month before setting the day; using +.Fl v No 12m Fl v No 31d +always works. +.Pp Adjusting the date by months is inherently ambiguous because a month is a unit of variable length depending on the current date. This kind of date adjustment is applied in the most intuitive way. @@ -339,9 +347,9 @@ will display the last day of February in .Pp .Dl "Tue Feb 29 03:18:00 GMT 2000" .Pp -So will do the command: +So will the command: .Pp -.Dl "date -v30d -v3m -v0y -v-1m" +.Dl "date -v3m -v30d -v0y -v-1m" .Pp because there is no such date as the 30th of February. .Pp ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r208937 - stable/7/lib/libthr/thread
Author: brian Date: Wed Jun 9 07:36:35 2010 New Revision: 208937 URL: http://svn.freebsd.org/changeset/base/208937 Log: MFC r197477 - clean up keys deleted via pthread_key_delete() PR: 135462 Modified: stable/7/lib/libthr/thread/thr_spec.c Directory Properties: stable/7/lib/libthr/ (props changed) Modified: stable/7/lib/libthr/thread/thr_spec.c == --- stable/7/lib/libthr/thread/thr_spec.c Wed Jun 9 07:31:41 2010 (r208936) +++ stable/7/lib/libthr/thread/thr_spec.c Wed Jun 9 07:36:35 2010 (r208937) @@ -131,9 +131,19 @@ _thread_cleanupspecific(void) curthread->specific[key].data = NULL; curthread->specific_data_count--; } + else if (curthread->specific[key].data != NULL) { + /* +* This can happen if the key is deleted via +* pthread_key_delete without first setting the value +* to NULL in all threads. POSIX says that the +* destructor is not invoked in this case. +*/ + curthread->specific[key].data = NULL; + curthread->specific_data_count--; + } /* -* If there is a destructore, call it +* If there is a destructor, call it * with the key table entry unlocked: */ if (destructor != NULL) { ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r208936 - stable/8/lib/libthr/thread
Author: brian Date: Wed Jun 9 07:31:41 2010 New Revision: 208936 URL: http://svn.freebsd.org/changeset/base/208936 Log: MFC r197477 - clean up keys deleted via pthread_key_delete() PR: 135462 Approved by: re (kib) Nod timeout: davidxu Modified: stable/8/lib/libthr/thread/thr_spec.c Directory Properties: stable/8/lib/libthr/ (props changed) Modified: stable/8/lib/libthr/thread/thr_spec.c == --- stable/8/lib/libthr/thread/thr_spec.c Wed Jun 9 07:31:32 2010 (r208935) +++ stable/8/lib/libthr/thread/thr_spec.c Wed Jun 9 07:31:41 2010 (r208936) @@ -131,9 +131,19 @@ _thread_cleanupspecific(void) curthread->specific[key].data = NULL; curthread->specific_data_count--; } + else if (curthread->specific[key].data != NULL) { + /* +* This can happen if the key is deleted via +* pthread_key_delete without first setting the value +* to NULL in all threads. POSIX says that the +* destructor is not invoked in this case. +*/ + curthread->specific[key].data = NULL; + curthread->specific_data_count--; + } /* -* If there is a destructore, call it +* If there is a destructor, call it * with the key table entry unlocked: */ if (destructor != NULL) { ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r208795 - head/bin/date
Author: brian Date: Fri Jun 4 06:56:58 2010 New Revision: 208795 URL: http://svn.freebsd.org/changeset/base/208795 Log: Explain that setting an absolute day value can fail and that the month should usually be set first when using -v. Adjust an example that sets the day to 30 before setting the month to 3 in accordance with this approach as the example would always fail in February! PR: 147354 MFC after:2 weeks Modified: head/bin/date/date.1 Modified: head/bin/date/date.1 == --- head/bin/date/date.1Fri Jun 4 06:35:36 2010(r208794) +++ head/bin/date/date.1Fri Jun 4 06:56:58 2010(r208795) @@ -32,7 +32,7 @@ .\" @(#)date.1 8.3 (Berkeley) 4/28/95 .\" $FreeBSD$ .\" -.Dd June 2, 2007 +.Dd June 3, 2010 .Dt DATE 1 .Os .Sh NAME @@ -219,6 +219,14 @@ When the date is adjusted to a specific the resulting timezone will be set so that the date matches the earlier of the two times. .Pp +It is not possible to adjust a date to an invalid absolute day, so using +the switches +.Fl v No 31d Fl v No 12m +will simply fail five months of the year. +It is therefore usual to set the month before setting the day; using +.Fl v No 12m Fl v No 31d +always works. +.Pp Adjusting the date by months is inherently ambiguous because a month is a unit of variable length depending on the current date. This kind of date adjustment is applied in the most intuitive way. @@ -339,9 +347,9 @@ will display the last day of February in .Pp .Dl "Tue Feb 29 03:18:00 GMT 2000" .Pp -So will do the command: +So will the command: .Pp -.Dl "date -v30d -v3m -v0y -v-1m" +.Dl "date -v3m -v30d -v0y -v-1m" .Pp because there is no such date as the 30th of February. .Pp ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r208728 - in head: tools/regression/usr.bin/jot usr.bin/jot
Author: brian Date: Wed Jun 2 07:47:29 2010 New Revision: 208728 URL: http://svn.freebsd.org/changeset/base/208728 Log: Fix stuttering sequences and reverse ranges PR: 123635 Submitted by: Ulrich Spörlein, uqs at spoerlein dot net Added: head/tools/regression/usr.bin/jot/regress.rand1.out (contents, props changed) head/tools/regression/usr.bin/jot/regress.rand2.out (contents, props changed) head/tools/regression/usr.bin/jot/regress.stutter2.out (contents, props changed) Modified: head/tools/regression/usr.bin/jot/regress.sh head/usr.bin/jot/jot.1 head/usr.bin/jot/jot.c Added: head/tools/regression/usr.bin/jot/regress.rand1.out == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/usr.bin/jot/regress.rand1.out Wed Jun 2 07:47:29 2010(r208728) @@ -0,0 +1,10 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 Added: head/tools/regression/usr.bin/jot/regress.rand2.out == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/usr.bin/jot/regress.rand2.out Wed Jun 2 07:47:29 2010(r208728) @@ -0,0 +1,10 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 Modified: head/tools/regression/usr.bin/jot/regress.sh == --- head/tools/regression/usr.bin/jot/regress.shWed Jun 2 07:28:12 2010(r208727) +++ head/tools/regression/usr.bin/jot/regress.shWed Jun 2 07:47:29 2010(r208728) @@ -1,6 +1,6 @@ # $FreeBSD$ -echo 1..57 +echo 1..60 REGRESSION_START($1) @@ -32,12 +32,15 @@ REGRESSION_TEST(`hddd2', `jot 30 - - -') REGRESSION_TEST(`dhhh2', `jot - 20 160 2') REGRESSION_TEST(`dhhd2', `jot - 20 160 -') REGRESSION_TEST(`ddhh2', `jot - - 160 2') +REGRESSION_TEST(`rand1', `jot -r 1 0 9 | sort -u') +REGRESSION_TEST(`rand2', `jot -r 1 9 0 | sort -u') REGRESSION_TEST(`n21', `jot 21 -1 1.00') REGRESSION_TEST(`ascii', `jot -c 128 0') REGRESSION_TEST(`xaa', `jot -w xa%c 26 a') REGRESSION_TEST(`yes', `jot -b yes 10') REGRESSION_TEST(`ed', `jot -w %ds/old/new/ 30 2 - 5') REGRESSION_TEST(`stutter', `jot - 9 0 -.5') +REGRESSION_TEST(`stutter2', `jot -w %d - 9.5 0 -.5') REGRESSION_TEST(`block', `jot -b x 512') REGRESSION_TEST(`tabs', `jot -s, - 10 132 4') REGRESSION_TEST(`grep', `jot -s "" -b . 80') Added: head/tools/regression/usr.bin/jot/regress.stutter2.out == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/usr.bin/jot/regress.stutter2.out Wed Jun 2 07:47:29 2010(r208728) @@ -0,0 +1,20 @@ +9 +9 +8 +8 +7 +7 +6 +6 +5 +5 +4 +4 +3 +3 +2 +2 +1 +1 +0 +0 Modified: head/usr.bin/jot/jot.1 == --- head/usr.bin/jot/jot.1 Wed Jun 2 07:28:12 2010(r208727) +++ head/usr.bin/jot/jot.1 Wed Jun 2 07:47:29 2010(r208728) @@ -32,7 +32,7 @@ .\"@(#)jot.1 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd February 19, 2010 +.Dd June 2, 2010 .Dt JOT 1 .Os .Sh NAME @@ -167,6 +167,86 @@ The name derives in part from .Nm iota , a function in APL. +.Ss Rounding and truncation +The +.Nm +utility uses double precision floating point arithmetic internally. +Before printing a number, it is converted depending on the output +format used. +.Pp +If no output format is specified or the output format is a +floating point format +.Po +.Sq E , +.Sq G , +.Sq e , +.Sq f , +or +.Sq g +.Pc , +the value is rounded using the +.Xr printf 3 +function, taking into account the requested precision. +.Pp +If the output format is an integer format +.Po +.Sq D , +.Sq O , +.Sq U , +.Sq X , +.Sq c , +.Sq d , +.Sq i , +.Sq o , +.Sq u , +or +.Sq x +.Pc , +the value is converted to an integer value by truncation. +.Pp +As an illustration, consider the following command: +.Bd -literal -offset indent +$ jot 6 1 10 0.5 +1 +2 +2 +2 +3 +4 +.Ed +.Pp +By requesting an explicit precision of 1, the values generated before rounding +can be seen. +The .5 values are rounded down if the integer part is even, +up otherwise. +.Bd -literal -offset indent +$ jot -p 1 6 1 10 0.5 +1.0 +1.5 +2.0 +2.5 +3.0 +3.5 +.Ed +.Pp +By offsetting the values slightly, the values generated by the following +command are always rounded down: +.Bd -literal -offset indent +$ jot -p 0 6 .99 10 0.5 +1 +1 +2 +2 +3 +3 +.Ed +.Pp +Another way of achieving the same result is to force truncation by +specifying an integer format: +.Bd -literal -offset indent +$ jot -w %d 6 1 10 0.5 +.Ed +.Pp .Sh EXIT STATUS .Ex -std .Sh EXAMPLES @@ -201,9 +281,9 @@ the result of .Dl jot -w %ds/old/new/ 30 2 - 5 .Pp The stuttering sequence 9, 9, 8, 8, 7, etc.\& can be -produced by suitable choice of s
svn commit: r196793 - stable/7/usr.sbin/ppp
Author: brian Date: Thu Sep 3 18:16:03 2009 New Revision: 196793 URL: http://svn.freebsd.org/changeset/base/196793 Log: MFC r196530: Document that ppp handles pipe(2) descriptors specially in -direct mode. Modified: stable/7/usr.sbin/ppp/ (props changed) stable/7/usr.sbin/ppp/ppp.8.m4 Modified: stable/7/usr.sbin/ppp/ppp.8.m4 == --- stable/7/usr.sbin/ppp/ppp.8.m4 Thu Sep 3 17:37:23 2009 (r196792) +++ stable/7/usr.sbin/ppp/ppp.8.m4 Thu Sep 3 18:16:03 2009 (r196793) @@ -27,7 +27,7 @@ changecom(,)dnl .\" .\" $FreeBSD$ .\" -.Dd May 24, 2007 +.Dd August 25, 2009 .Dt PPP 8 .Os .Sh NAME @@ -171,6 +171,17 @@ If callback is configured, will use the .Dq set device information when dialing back. +.Pp +When run in +.Fl direct +mode, +.Nm +will behave slightly differently if descriptor 0 was created by +.Xr pipe 2 . +As pipes are not bi-directional, ppp will redirect all writes to descriptor +1 (standard output), leaving only reads acting on descriptor 0. +No special action is taken if descriptor 0 was created by +.Xr socketpair 2 . .It Fl dedicated This option is designed for machines connected with a dedicated wire. @@ -6070,6 +6081,8 @@ This socket is used to pass links betwee .Xr tcpdump 1 , .Xr telnet 1 , .Xr kldload 2 , +.Xr pipe 2 , +.Xr socketpair 2 , ifdef({LOCALNAT},{},{.Xr libalias 3 , })dnl ifdef({LOCALRAD},{},{.Xr libradius 3 , ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r196639 - stable/8/usr.sbin/ppp
Author: brian Date: Sat Aug 29 04:15:37 2009 New Revision: 196639 URL: http://svn.freebsd.org/changeset/base/196639 Log: MFC r196530: Document that ppp handles pipe(2) descriptors specially in -direct mode. Approved by: re (kib) Modified: stable/8/usr.sbin/ppp/ (props changed) stable/8/usr.sbin/ppp/ppp.8.m4 Modified: stable/8/usr.sbin/ppp/ppp.8.m4 == --- stable/8/usr.sbin/ppp/ppp.8.m4 Sat Aug 29 03:17:24 2009 (r196638) +++ stable/8/usr.sbin/ppp/ppp.8.m4 Sat Aug 29 04:15:37 2009 (r196639) @@ -27,7 +27,7 @@ changecom(,)dnl .\" .\" $FreeBSD$ .\" -.Dd May 24, 2007 +.Dd August 25, 2009 .Dt PPP 8 .Os .Sh NAME @@ -171,6 +171,17 @@ If callback is configured, will use the .Dq set device information when dialing back. +.Pp +When run in +.Fl direct +mode, +.Nm +will behave slightly differently if descriptor 0 was created by +.Xr pipe 2 . +As pipes are not bi-directional, ppp will redirect all writes to descriptor +1 (standard output), leaving only reads acting on descriptor 0. +No special action is taken if descriptor 0 was created by +.Xr socketpair 2 . .It Fl dedicated This option is designed for machines connected with a dedicated wire. @@ -6055,6 +6066,8 @@ This socket is used to pass links betwee .Xr tcpdump 1 , .Xr telnet 1 , .Xr kldload 2 , +.Xr pipe 2 , +.Xr socketpair 2 , ifdef({LOCALNAT},{},{.Xr libalias 3 , })dnl ifdef({LOCALRAD},{},{.Xr libradius 3 , ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r196578 - stable/7/usr.sbin/ppp
Author: brian Date: Thu Aug 27 07:11:47 2009 New Revision: 196578 URL: http://svn.freebsd.org/changeset/base/196578 Log: MFC: When ``ppp -direct'' is invoked by a program that uses pipe(2) to create stdin and stdout, don't blindly try to use stdin as a bi-directional channel. Instead, detect the pipe and set up a special exec handler that indirects write() calls through stdout. This fixes the problem where ``set device "!ssh -e none host ppp -direct label"'' no longer works with an openssh-5.2 server side as that version of openssh ignores the USE_PIPES config setting and *always* uses pipes (rather than socketpair) for stdin/stdout channels. Modified: stable/7/usr.sbin/ppp/ (props changed) stable/7/usr.sbin/ppp/exec.c stable/7/usr.sbin/ppp/exec.h stable/7/usr.sbin/ppp/main.c stable/7/usr.sbin/ppp/physical.c Modified: stable/7/usr.sbin/ppp/exec.c == --- stable/7/usr.sbin/ppp/exec.cThu Aug 27 07:10:57 2009 (r196577) +++ stable/7/usr.sbin/ppp/exec.cThu Aug 27 07:11:47 2009 (r196578) @@ -35,7 +35,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -63,24 +65,106 @@ #include "cbcp.h" #include "datalink.h" #include "id.h" +#include "main.h" #include "exec.h" -static struct device execdevice = { + +struct execdevice { + struct device dev; /* What struct physical knows about */ + int fd_out; /* output descriptor */ +}; + +#define device2exec(d) ((d)->type == EXEC_DEVICE ? (struct execdevice *)d : NULL) + +unsigned +exec_DeviceSize(void) +{ + return sizeof(struct execdevice); +} + +static void +exec_Free(struct physical *p) +{ + struct execdevice *dev = device2exec(p->handler); + + if (dev->fd_out != -1) +close(dev->fd_out); + free(dev); +} + +static void +exec_device2iov(struct device *d, struct iovec *iov, int *niov, + int maxiov __unused, int *auxfd, int *nauxfd) +{ + struct execdevice *dev; + int sz = physical_MaxDeviceSize(); + + iov[*niov].iov_base = d = realloc(d, sz); + if (d == NULL) { +log_Printf(LogALERT, "Failed to allocate memory: %d\n", sz); +AbortProgram(EX_OSERR); + } + iov[*niov].iov_len = sz; + (*niov)++; + + dev = device2exec(d); + if (dev->fd_out >= 0) { +*auxfd = dev->fd_out; +(*nauxfd)++; + } +} + +static int +exec_RemoveFromSet(struct physical *p, fd_set *r, fd_set *w, fd_set *e) +{ + struct execdevice *dev = device2exec(p->handler); + int sets; + + p->handler->removefromset = NULL; + sets = physical_RemoveFromSet(p, r, w, e); + p->handler->removefromset = exec_RemoveFromSet; + + if (dev->fd_out >= 0) { +if (w && FD_ISSET(dev->fd_out, w)) { + FD_CLR(dev->fd_out, w); + log_Printf(LogTIMER, "%s: fdunset(w) %d\n", p->link.name, dev->fd_out); + sets++; +} +if (e && FD_ISSET(dev->fd_out, e)) { + FD_CLR(dev->fd_out, e); + log_Printf(LogTIMER, "%s: fdunset(e) %d\n", p->link.name, dev->fd_out); + sets++; +} + } + + return sets; +} + +static ssize_t +exec_Write(struct physical *p, const void *v, size_t n) +{ + struct execdevice *dev = device2exec(p->handler); + int fd = dev->fd_out == -1 ? p->fd : dev->fd_out; + + return write(fd, v, n); +} + +static struct device baseexecdevice = { EXEC_DEVICE, "exec", 0, { CD_NOTREQUIRED, 0 }, NULL, + exec_RemoveFromSet, NULL, NULL, NULL, NULL, NULL, + exec_Free, NULL, - NULL, - NULL, - NULL, - NULL, + exec_Write, + exec_device2iov, NULL, NULL, NULL @@ -88,146 +172,238 @@ static struct device execdevice = { struct device * exec_iov2device(int type, struct physical *p, struct iovec *iov, -int *niov, int maxiov __unused, int *auxfd __unused, - int *nauxfd __unused) +int *niov, int maxiov __unused, int *auxfd, int *nauxfd) { if (type == EXEC_DEVICE) { -free(iov[(*niov)++].iov_base); -physical_SetupStack(p, execdevice.name, PHYSICAL_NOFORCE); -return &execdevice; +struct execdevice *dev = (struct execdevice *)iov[(*niov)++].iov_base; + +dev = realloc(dev, sizeof *dev); /* Reduce to the correct size */ +if (dev == NULL) { + log_Printf(LogALERT, "Failed to allocate memory: %d\n", + (int)(sizeof *dev)); + AbortProgram(EX_OSERR); +} + +if (*nauxfd) { + dev->fd_out = *auxfd; + (*nauxfd)--; +} else + dev->fd_out = -1; + +/* Refresh function pointers etc */ +memcpy(&dev->dev, &baseexecdevice, sizeof dev->dev); + +physical_SetupStack(p, dev->dev.name, PHYSICAL_NOFORCE); +return &dev->dev; } return NULL; } +static int +exec_UpdateSet(struct fdescriptor *d, fd_set *r, fd_set *w, fd_set *e, int *n) +{ + struct physical *p = descriptor2physical(d); + struct execdevice *dev = device2exec(p->handler); + in
svn commit: r196577 - stable/7/usr.sbin/ppp
Author: brian Date: Thu Aug 27 07:10:57 2009 New Revision: 196577 URL: http://svn.freebsd.org/changeset/base/196577 Log: MFC: When realloc()ing device memory for transfer to another ppp process, don't continue to use the realloc()d pointer - it might have changed! Remove some stray diagnostics while I'm here. Modified: stable/7/usr.sbin/ppp/ (props changed) stable/7/usr.sbin/ppp/ether.c stable/7/usr.sbin/ppp/netgraph.c stable/7/usr.sbin/ppp/tty.c Modified: stable/7/usr.sbin/ppp/ether.c == --- stable/7/usr.sbin/ppp/ether.c Thu Aug 27 07:07:38 2009 (r196576) +++ stable/7/usr.sbin/ppp/ether.c Thu Aug 27 07:10:57 2009 (r196577) @@ -193,17 +193,18 @@ static void ether_device2iov(struct device *d, struct iovec *iov, int *niov, int maxiov __unused, int *auxfd, int *nauxfd) { - struct etherdevice *dev = device2ether(d); + struct etherdevice *dev; int sz = physical_MaxDeviceSize(); - iov[*niov].iov_base = realloc(d, sz); - if (iov[*niov].iov_base == NULL) { + iov[*niov].iov_base = d = realloc(d, sz); + if (d == NULL) { log_Printf(LogALERT, "Failed to allocate memory: %d\n", sz); AbortProgram(EX_OSERR); } iov[*niov].iov_len = sz; (*niov)++; + dev = device2ether(d); if (dev->cs >= 0) { *auxfd = dev->cs; (*nauxfd)++; Modified: stable/7/usr.sbin/ppp/netgraph.c == --- stable/7/usr.sbin/ppp/netgraph.cThu Aug 27 07:07:38 2009 (r196576) +++ stable/7/usr.sbin/ppp/netgraph.cThu Aug 27 07:10:57 2009 (r196577) @@ -235,7 +235,6 @@ ng_Read(struct physical *p, void *v, siz { char hook[NG_HOOKSIZ]; -log_Printf(LogDEBUG, "ng_Read\n"); switch (p->dl->state) { case DATALINK_DIAL: case DATALINK_LOGIN: @@ -282,17 +281,18 @@ static void ng_device2iov(struct device *d, struct iovec *iov, int *niov, int maxiov __unused, int *auxfd, int *nauxfd) { - struct ngdevice *dev = device2ng(d); + struct ngdevice *dev; int sz = physical_MaxDeviceSize(); - iov[*niov].iov_base = realloc(d, sz); - if (iov[*niov].iov_base == NULL) { + iov[*niov].iov_base = d = realloc(d, sz); + if (d == NULL) { log_Printf(LogALERT, "Failed to allocate memory: %d\n", sz); AbortProgram(EX_OSERR); } iov[*niov].iov_len = sz; (*niov)++; + dev = device2ng(d); *auxfd = dev->cs; (*nauxfd)++; } Modified: stable/7/usr.sbin/ppp/tty.c == --- stable/7/usr.sbin/ppp/tty.c Thu Aug 27 07:07:38 2009(r196576) +++ stable/7/usr.sbin/ppp/tty.c Thu Aug 27 07:10:57 2009(r196577) @@ -384,7 +384,6 @@ UnloadLineDiscipline(struct physical *p) struct ttydevice *dev = device2tty(p->handler); if (isngtty(dev)) { -log_Printf(LogPHASE, "back to speed %d\n", dev->real.speed); if (!physical_SetSpeed(p, dev->real.speed)) log_Printf(LogWARN, "Couldn't reset tty speed to %d\n", dev->real.speed); dev->real.speed = 0; @@ -582,17 +581,19 @@ tty_device2iov(struct device *d, struct #endif ) { - struct ttydevice *dev = device2tty(d); + struct ttydevice *dev; int sz = physical_MaxDeviceSize(); - iov[*niov].iov_base = realloc(d, sz); - if (iov[*niov].iov_base == NULL) { + iov[*niov].iov_base = d = realloc(d, sz); + if (d == NULL) { log_Printf(LogALERT, "Failed to allocate memory: %d\n", sz); AbortProgram(EX_OSERR); } iov[*niov].iov_len = sz; (*niov)++; + dev = device2tty(d); + #ifndef NONETGRAPH if (dev->cs >= 0) { *auxfd = dev->cs; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r196576 - stable/8/usr.sbin/ppp
Author: brian Date: Thu Aug 27 07:07:38 2009 New Revision: 196576 URL: http://svn.freebsd.org/changeset/base/196576 Log: MFC: When ``ppp -direct'' is invoked by a program that uses pipe(2) to create stdin and stdout, don't blindly try to use stdin as a bi-directional channel. Instead, detect the pipe and set up a special exec handler that indirects write() calls through stdout. This fixes the problem where ``set device "!ssh -e none host ppp -direct label"'' no longer works with an openssh-5.2 server side as that version of openssh ignores the USE_PIPES config setting and *always* uses pipes (rather than socketpair) for stdin/stdout channels. Approved by: re (kib) Modified: stable/8/usr.sbin/ppp/ (props changed) stable/8/usr.sbin/ppp/exec.c stable/8/usr.sbin/ppp/exec.h stable/8/usr.sbin/ppp/main.c stable/8/usr.sbin/ppp/physical.c Modified: stable/8/usr.sbin/ppp/exec.c == --- stable/8/usr.sbin/ppp/exec.cThu Aug 27 07:05:46 2009 (r196575) +++ stable/8/usr.sbin/ppp/exec.cThu Aug 27 07:07:38 2009 (r196576) @@ -35,7 +35,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -63,24 +65,106 @@ #include "cbcp.h" #include "datalink.h" #include "id.h" +#include "main.h" #include "exec.h" -static struct device execdevice = { + +struct execdevice { + struct device dev; /* What struct physical knows about */ + int fd_out; /* output descriptor */ +}; + +#define device2exec(d) ((d)->type == EXEC_DEVICE ? (struct execdevice *)d : NULL) + +unsigned +exec_DeviceSize(void) +{ + return sizeof(struct execdevice); +} + +static void +exec_Free(struct physical *p) +{ + struct execdevice *dev = device2exec(p->handler); + + if (dev->fd_out != -1) +close(dev->fd_out); + free(dev); +} + +static void +exec_device2iov(struct device *d, struct iovec *iov, int *niov, + int maxiov __unused, int *auxfd, int *nauxfd) +{ + struct execdevice *dev; + int sz = physical_MaxDeviceSize(); + + iov[*niov].iov_base = d = realloc(d, sz); + if (d == NULL) { +log_Printf(LogALERT, "Failed to allocate memory: %d\n", sz); +AbortProgram(EX_OSERR); + } + iov[*niov].iov_len = sz; + (*niov)++; + + dev = device2exec(d); + if (dev->fd_out >= 0) { +*auxfd = dev->fd_out; +(*nauxfd)++; + } +} + +static int +exec_RemoveFromSet(struct physical *p, fd_set *r, fd_set *w, fd_set *e) +{ + struct execdevice *dev = device2exec(p->handler); + int sets; + + p->handler->removefromset = NULL; + sets = physical_RemoveFromSet(p, r, w, e); + p->handler->removefromset = exec_RemoveFromSet; + + if (dev->fd_out >= 0) { +if (w && FD_ISSET(dev->fd_out, w)) { + FD_CLR(dev->fd_out, w); + log_Printf(LogTIMER, "%s: fdunset(w) %d\n", p->link.name, dev->fd_out); + sets++; +} +if (e && FD_ISSET(dev->fd_out, e)) { + FD_CLR(dev->fd_out, e); + log_Printf(LogTIMER, "%s: fdunset(e) %d\n", p->link.name, dev->fd_out); + sets++; +} + } + + return sets; +} + +static ssize_t +exec_Write(struct physical *p, const void *v, size_t n) +{ + struct execdevice *dev = device2exec(p->handler); + int fd = dev->fd_out == -1 ? p->fd : dev->fd_out; + + return write(fd, v, n); +} + +static struct device baseexecdevice = { EXEC_DEVICE, "exec", 0, { CD_NOTREQUIRED, 0 }, NULL, + exec_RemoveFromSet, NULL, NULL, NULL, NULL, NULL, + exec_Free, NULL, - NULL, - NULL, - NULL, - NULL, + exec_Write, + exec_device2iov, NULL, NULL, NULL @@ -88,146 +172,238 @@ static struct device execdevice = { struct device * exec_iov2device(int type, struct physical *p, struct iovec *iov, -int *niov, int maxiov __unused, int *auxfd __unused, - int *nauxfd __unused) +int *niov, int maxiov __unused, int *auxfd, int *nauxfd) { if (type == EXEC_DEVICE) { -free(iov[(*niov)++].iov_base); -physical_SetupStack(p, execdevice.name, PHYSICAL_NOFORCE); -return &execdevice; +struct execdevice *dev = (struct execdevice *)iov[(*niov)++].iov_base; + +dev = realloc(dev, sizeof *dev); /* Reduce to the correct size */ +if (dev == NULL) { + log_Printf(LogALERT, "Failed to allocate memory: %d\n", + (int)(sizeof *dev)); + AbortProgram(EX_OSERR); +} + +if (*nauxfd) { + dev->fd_out = *auxfd; + (*nauxfd)--; +} else + dev->fd_out = -1; + +/* Refresh function pointers etc */ +memcpy(&dev->dev, &baseexecdevice, sizeof dev->dev); + +physical_SetupStack(p, dev->dev.name, PHYSICAL_NOFORCE); +return &dev->dev; } return NULL; } +static int +exec_UpdateSet(struct fdescriptor *d, fd_set *r, fd_set *w, fd_set *e, int *n) +{ + struct physical *p = descriptor2physical(d); + struct execdevice *dev = de
svn commit: r196575 - stable/8/usr.sbin/ppp
Author: brian Date: Thu Aug 27 07:05:46 2009 New Revision: 196575 URL: http://svn.freebsd.org/changeset/base/196575 Log: MFC: When realloc()ing device memory for transfer to another ppp process, don't continue to use the realloc()d pointer - it might have changed! Remove some stray diagnostics while I'm here. Approved by: re (kib) Modified: stable/8/usr.sbin/ppp/ (props changed) stable/8/usr.sbin/ppp/ether.c stable/8/usr.sbin/ppp/netgraph.c stable/8/usr.sbin/ppp/tty.c Modified: stable/8/usr.sbin/ppp/ether.c == --- stable/8/usr.sbin/ppp/ether.c Thu Aug 27 00:45:00 2009 (r196574) +++ stable/8/usr.sbin/ppp/ether.c Thu Aug 27 07:05:46 2009 (r196575) @@ -193,17 +193,18 @@ static void ether_device2iov(struct device *d, struct iovec *iov, int *niov, int maxiov __unused, int *auxfd, int *nauxfd) { - struct etherdevice *dev = device2ether(d); + struct etherdevice *dev; int sz = physical_MaxDeviceSize(); - iov[*niov].iov_base = realloc(d, sz); - if (iov[*niov].iov_base == NULL) { + iov[*niov].iov_base = d = realloc(d, sz); + if (d == NULL) { log_Printf(LogALERT, "Failed to allocate memory: %d\n", sz); AbortProgram(EX_OSERR); } iov[*niov].iov_len = sz; (*niov)++; + dev = device2ether(d); if (dev->cs >= 0) { *auxfd = dev->cs; (*nauxfd)++; Modified: stable/8/usr.sbin/ppp/netgraph.c == --- stable/8/usr.sbin/ppp/netgraph.cThu Aug 27 00:45:00 2009 (r196574) +++ stable/8/usr.sbin/ppp/netgraph.cThu Aug 27 07:05:46 2009 (r196575) @@ -235,7 +235,6 @@ ng_Read(struct physical *p, void *v, siz { char hook[NG_HOOKSIZ]; -log_Printf(LogDEBUG, "ng_Read\n"); switch (p->dl->state) { case DATALINK_DIAL: case DATALINK_LOGIN: @@ -282,17 +281,18 @@ static void ng_device2iov(struct device *d, struct iovec *iov, int *niov, int maxiov __unused, int *auxfd, int *nauxfd) { - struct ngdevice *dev = device2ng(d); + struct ngdevice *dev; int sz = physical_MaxDeviceSize(); - iov[*niov].iov_base = realloc(d, sz); - if (iov[*niov].iov_base == NULL) { + iov[*niov].iov_base = d = realloc(d, sz); + if (d == NULL) { log_Printf(LogALERT, "Failed to allocate memory: %d\n", sz); AbortProgram(EX_OSERR); } iov[*niov].iov_len = sz; (*niov)++; + dev = device2ng(d); *auxfd = dev->cs; (*nauxfd)++; } Modified: stable/8/usr.sbin/ppp/tty.c == --- stable/8/usr.sbin/ppp/tty.c Thu Aug 27 00:45:00 2009(r196574) +++ stable/8/usr.sbin/ppp/tty.c Thu Aug 27 07:05:46 2009(r196575) @@ -384,7 +384,6 @@ UnloadLineDiscipline(struct physical *p) struct ttydevice *dev = device2tty(p->handler); if (isngtty(dev)) { -log_Printf(LogPHASE, "back to speed %d\n", dev->real.speed); if (!physical_SetSpeed(p, dev->real.speed)) log_Printf(LogWARN, "Couldn't reset tty speed to %d\n", dev->real.speed); dev->real.speed = 0; @@ -582,17 +581,19 @@ tty_device2iov(struct device *d, struct #endif ) { - struct ttydevice *dev = device2tty(d); + struct ttydevice *dev; int sz = physical_MaxDeviceSize(); - iov[*niov].iov_base = realloc(d, sz); - if (iov[*niov].iov_base == NULL) { + iov[*niov].iov_base = d = realloc(d, sz); + if (d == NULL) { log_Printf(LogALERT, "Failed to allocate memory: %d\n", sz); AbortProgram(EX_OSERR); } iov[*niov].iov_len = sz; (*niov)++; + dev = device2tty(d); + #ifndef NONETGRAPH if (dev->cs >= 0) { *auxfd = dev->cs; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r196530 - head/usr.sbin/ppp
Author: brian Date: Tue Aug 25 07:52:09 2009 New Revision: 196530 URL: http://svn.freebsd.org/changeset/base/196530 Log: Document that ppp handles pipe(2) descriptors specially in -direct mode. MFC after:3 days Modified: head/usr.sbin/ppp/ppp.8.m4 Modified: head/usr.sbin/ppp/ppp.8.m4 == --- head/usr.sbin/ppp/ppp.8.m4 Tue Aug 25 06:25:59 2009(r196529) +++ head/usr.sbin/ppp/ppp.8.m4 Tue Aug 25 07:52:09 2009(r196530) @@ -27,7 +27,7 @@ changecom(,)dnl .\" .\" $FreeBSD$ .\" -.Dd May 24, 2007 +.Dd August 25, 2009 .Dt PPP 8 .Os .Sh NAME @@ -171,6 +171,17 @@ If callback is configured, will use the .Dq set device information when dialing back. +.Pp +When run in +.Fl direct +mode, +.Nm +will behave slightly differently if descriptor 0 was created by +.Xr pipe 2 . +As pipes are not bi-directional, ppp will redirect all writes to descriptor +1 (standard output), leaving only reads acting on descriptor 0. +No special action is taken if descriptor 0 was created by +.Xr socketpair 2 . .It Fl dedicated This option is designed for machines connected with a dedicated wire. @@ -6055,6 +6066,8 @@ This socket is used to pass links betwee .Xr tcpdump 1 , .Xr telnet 1 , .Xr kldload 2 , +.Xr pipe 2 , +.Xr socketpair 2 , ifdef({LOCALNAT},{},{.Xr libalias 3 , })dnl ifdef({LOCALRAD},{},{.Xr libradius 3 , ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r196514 - head/usr.sbin/ppp
Author: brian Date: Mon Aug 24 17:19:45 2009 New Revision: 196514 URL: http://svn.freebsd.org/changeset/base/196514 Log: When ``ppp -direct'' is invoked by a program that uses pipe(2) to create stdin and stdout, don't blindly try to use stdin as a bi-directional channel. Instead, detect the pipe and set up a special exec handler that indirects write() calls through stdout. This fixes the problem where ``set device "!ssh -e none host ppp -direct label"'' no longer works with an openssh-5.2 server side as that version of openssh ignores the USE_PIPES config setting and *always* uses pipes (rather than socketpair) for stdin/stdout channels. MFC after:3 days Modified: head/usr.sbin/ppp/exec.c head/usr.sbin/ppp/exec.h head/usr.sbin/ppp/main.c head/usr.sbin/ppp/physical.c Modified: head/usr.sbin/ppp/exec.c == --- head/usr.sbin/ppp/exec.cMon Aug 24 17:18:17 2009(r196513) +++ head/usr.sbin/ppp/exec.cMon Aug 24 17:19:45 2009(r196514) @@ -35,7 +35,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -63,24 +65,106 @@ #include "cbcp.h" #include "datalink.h" #include "id.h" +#include "main.h" #include "exec.h" -static struct device execdevice = { + +struct execdevice { + struct device dev; /* What struct physical knows about */ + int fd_out; /* output descriptor */ +}; + +#define device2exec(d) ((d)->type == EXEC_DEVICE ? (struct execdevice *)d : NULL) + +unsigned +exec_DeviceSize(void) +{ + return sizeof(struct execdevice); +} + +static void +exec_Free(struct physical *p) +{ + struct execdevice *dev = device2exec(p->handler); + + if (dev->fd_out != -1) +close(dev->fd_out); + free(dev); +} + +static void +exec_device2iov(struct device *d, struct iovec *iov, int *niov, + int maxiov __unused, int *auxfd, int *nauxfd) +{ + struct execdevice *dev; + int sz = physical_MaxDeviceSize(); + + iov[*niov].iov_base = d = realloc(d, sz); + if (d == NULL) { +log_Printf(LogALERT, "Failed to allocate memory: %d\n", sz); +AbortProgram(EX_OSERR); + } + iov[*niov].iov_len = sz; + (*niov)++; + + dev = device2exec(d); + if (dev->fd_out >= 0) { +*auxfd = dev->fd_out; +(*nauxfd)++; + } +} + +static int +exec_RemoveFromSet(struct physical *p, fd_set *r, fd_set *w, fd_set *e) +{ + struct execdevice *dev = device2exec(p->handler); + int sets; + + p->handler->removefromset = NULL; + sets = physical_RemoveFromSet(p, r, w, e); + p->handler->removefromset = exec_RemoveFromSet; + + if (dev->fd_out >= 0) { +if (w && FD_ISSET(dev->fd_out, w)) { + FD_CLR(dev->fd_out, w); + log_Printf(LogTIMER, "%s: fdunset(w) %d\n", p->link.name, dev->fd_out); + sets++; +} +if (e && FD_ISSET(dev->fd_out, e)) { + FD_CLR(dev->fd_out, e); + log_Printf(LogTIMER, "%s: fdunset(e) %d\n", p->link.name, dev->fd_out); + sets++; +} + } + + return sets; +} + +static ssize_t +exec_Write(struct physical *p, const void *v, size_t n) +{ + struct execdevice *dev = device2exec(p->handler); + int fd = dev->fd_out == -1 ? p->fd : dev->fd_out; + + return write(fd, v, n); +} + +static struct device baseexecdevice = { EXEC_DEVICE, "exec", 0, { CD_NOTREQUIRED, 0 }, NULL, + exec_RemoveFromSet, NULL, NULL, NULL, NULL, NULL, + exec_Free, NULL, - NULL, - NULL, - NULL, - NULL, + exec_Write, + exec_device2iov, NULL, NULL, NULL @@ -88,146 +172,238 @@ static struct device execdevice = { struct device * exec_iov2device(int type, struct physical *p, struct iovec *iov, -int *niov, int maxiov __unused, int *auxfd __unused, - int *nauxfd __unused) +int *niov, int maxiov __unused, int *auxfd, int *nauxfd) { if (type == EXEC_DEVICE) { -free(iov[(*niov)++].iov_base); -physical_SetupStack(p, execdevice.name, PHYSICAL_NOFORCE); -return &execdevice; +struct execdevice *dev = (struct execdevice *)iov[(*niov)++].iov_base; + +dev = realloc(dev, sizeof *dev); /* Reduce to the correct size */ +if (dev == NULL) { + log_Printf(LogALERT, "Failed to allocate memory: %d\n", + (int)(sizeof *dev)); + AbortProgram(EX_OSERR); +} + +if (*nauxfd) { + dev->fd_out = *auxfd; + (*nauxfd)--; +} else + dev->fd_out = -1; + +/* Refresh function pointers etc */ +memcpy(&dev->dev, &baseexecdevice, sizeof dev->dev); + +physical_SetupStack(p, dev->dev.name, PHYSICAL_NOFORCE); +return &dev->dev; } return NULL; } +static int +exec_UpdateSet(struct fdescriptor *d, fd_set *r, fd_set *w, fd_set *e, int *n) +{ + struct physical *p = descriptor2physical(d); + struct execdevice *dev = device2exec(p->handler); + int result = 0; + + if (w && dev->fd_out >= 0) { +FD_SET(dev->fd_out, w); +log_Printf(Log
svn commit: r196513 - head/usr.sbin/ppp
Author: brian Date: Mon Aug 24 17:18:17 2009 New Revision: 196513 URL: http://svn.freebsd.org/changeset/base/196513 Log: When realloc()ing device memory for transfer to another ppp process, don't continue to use the realloc()d pointer - it might have changed! Remove some stray diagnostics while I'm here. MFC after:3 days Modified: head/usr.sbin/ppp/ether.c head/usr.sbin/ppp/netgraph.c head/usr.sbin/ppp/tty.c Modified: head/usr.sbin/ppp/ether.c == --- head/usr.sbin/ppp/ether.c Mon Aug 24 16:19:47 2009(r196512) +++ head/usr.sbin/ppp/ether.c Mon Aug 24 17:18:17 2009(r196513) @@ -193,17 +193,18 @@ static void ether_device2iov(struct device *d, struct iovec *iov, int *niov, int maxiov __unused, int *auxfd, int *nauxfd) { - struct etherdevice *dev = device2ether(d); + struct etherdevice *dev; int sz = physical_MaxDeviceSize(); - iov[*niov].iov_base = realloc(d, sz); - if (iov[*niov].iov_base == NULL) { + iov[*niov].iov_base = d = realloc(d, sz); + if (d == NULL) { log_Printf(LogALERT, "Failed to allocate memory: %d\n", sz); AbortProgram(EX_OSERR); } iov[*niov].iov_len = sz; (*niov)++; + dev = device2ether(d); if (dev->cs >= 0) { *auxfd = dev->cs; (*nauxfd)++; Modified: head/usr.sbin/ppp/netgraph.c == --- head/usr.sbin/ppp/netgraph.cMon Aug 24 16:19:47 2009 (r196512) +++ head/usr.sbin/ppp/netgraph.cMon Aug 24 17:18:17 2009 (r196513) @@ -235,7 +235,6 @@ ng_Read(struct physical *p, void *v, siz { char hook[NG_HOOKSIZ]; -log_Printf(LogDEBUG, "ng_Read\n"); switch (p->dl->state) { case DATALINK_DIAL: case DATALINK_LOGIN: @@ -282,17 +281,18 @@ static void ng_device2iov(struct device *d, struct iovec *iov, int *niov, int maxiov __unused, int *auxfd, int *nauxfd) { - struct ngdevice *dev = device2ng(d); + struct ngdevice *dev; int sz = physical_MaxDeviceSize(); - iov[*niov].iov_base = realloc(d, sz); - if (iov[*niov].iov_base == NULL) { + iov[*niov].iov_base = d = realloc(d, sz); + if (d == NULL) { log_Printf(LogALERT, "Failed to allocate memory: %d\n", sz); AbortProgram(EX_OSERR); } iov[*niov].iov_len = sz; (*niov)++; + dev = device2ng(d); *auxfd = dev->cs; (*nauxfd)++; } Modified: head/usr.sbin/ppp/tty.c == --- head/usr.sbin/ppp/tty.c Mon Aug 24 16:19:47 2009(r196512) +++ head/usr.sbin/ppp/tty.c Mon Aug 24 17:18:17 2009(r196513) @@ -384,7 +384,6 @@ UnloadLineDiscipline(struct physical *p) struct ttydevice *dev = device2tty(p->handler); if (isngtty(dev)) { -log_Printf(LogPHASE, "back to speed %d\n", dev->real.speed); if (!physical_SetSpeed(p, dev->real.speed)) log_Printf(LogWARN, "Couldn't reset tty speed to %d\n", dev->real.speed); dev->real.speed = 0; @@ -582,17 +581,19 @@ tty_device2iov(struct device *d, struct #endif ) { - struct ttydevice *dev = device2tty(d); + struct ttydevice *dev; int sz = physical_MaxDeviceSize(); - iov[*niov].iov_base = realloc(d, sz); - if (iov[*niov].iov_base == NULL) { + iov[*niov].iov_base = d = realloc(d, sz); + if (d == NULL) { log_Printf(LogALERT, "Failed to allocate memory: %d\n", sz); AbortProgram(EX_OSERR); } iov[*niov].iov_len = sz; (*niov)++; + dev = device2tty(d); + #ifndef NONETGRAPH if (dev->cs >= 0) { *auxfd = dev->cs; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
Re: svn commit: r196392 - in head: etc share/man/man5 usr.sbin/freebsd-update
On Wed, 19 Aug 2009 20:47:31 + (UTC) "Simon L. Nielsen" wrote: > Author: simon > Date: Wed Aug 19 20:47:31 2009 > New Revision: 196392 > URL: http://svn.freebsd.org/changeset/base/196392 > > Log: > Add support for backing up the old kernel when installing a new kernel > using freebsd-update. This applies to using freebsd-update in "upgrade > mode" and normal freebsd-update on a security branch. > > The backup kernel will be written to /boot/kernel.old, if the directory > does not exist, or the directory was created by freebsd-update in a > previous backup. Otherwise freebsd-update will generate a new directory > name for use by the backup. By default symbol files are not backed up > to save diskspace and avoid filling up the root partition. > > This feature is fully configurable in the freebsd-update config file, > but defaults to enabled. > > MFC after: 1 week (stable/7) > Reviewed by:cperciva > Approved by:re (kib) This should really have the same behaviour as ``make installkernel''. After moving the kernel to kernel.old it should update kern.bootfile and it should not backup kernel => kernel.old if kern.bootfile already points at kernel.old. It's bad if two kernel upgrades without an intervening reboot blow away your running kernel :( -- Brian Somers Don't _EVER_ lose your sense of humour ! ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r196088 - stable/7/usr.sbin/ppp
Author: brian Date: Sun Aug 9 18:39:23 2009 New Revision: 196088 URL: http://svn.freebsd.org/changeset/base/196088 Log: MFC: Don't get stuck in an infinite loop comparing (short++ <= maxshort) PR: 136893 Submitted by: Aragon Gouveia - aragon at phat dot za dot net (mostly) Modified: stable/7/usr.sbin/ppp/ (props changed) stable/7/usr.sbin/ppp/nat_cmd.c Modified: stable/7/usr.sbin/ppp/nat_cmd.c == --- stable/7/usr.sbin/ppp/nat_cmd.c Sun Aug 9 11:47:39 2009 (r196087) +++ stable/7/usr.sbin/ppp/nat_cmd.c Sun Aug 9 18:39:23 2009 (r196088) @@ -173,7 +173,7 @@ nat_RedirectPort(struct cmdargs const *a return -1; } -while (laliasport <= haliasport) { +do { link = PacketAliasRedirectPort(localaddr, htons(llocalport), remoteaddr, htons(lremoteport), aliasaddr, htons(laliasport), @@ -185,10 +185,9 @@ nat_RedirectPort(struct cmdargs const *a return 1; } llocalport++; - laliasport++; if (hremoteport) lremoteport++; -} +} while (laliasport++ < haliasport); return 0; } ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r196050 - stable/7/bin/ps
Author: brian Date: Mon Aug 3 09:58:46 2009 New Revision: 196050 URL: http://svn.freebsd.org/changeset/base/196050 Log: MFC: Add the -d switch to the usage message. Modified: stable/7/bin/ps/ (props changed) stable/7/bin/ps/ps.c Modified: stable/7/bin/ps/ps.c == --- stable/7/bin/ps/ps.cMon Aug 3 09:55:03 2009(r196049) +++ stable/7/bin/ps/ps.cMon Aug 3 09:58:46 2009(r196050) @@ -1331,7 +1331,7 @@ check_procfs(void) static void usage(void) { -#defineSINGLE_OPTS "[-aCce" OPT_LAZY_f "HhjlmrSTuvwXxZ]" +#defineSINGLE_OPTS "[-aCcde" OPT_LAZY_f "HhjlmrSTuvwXxZ]" (void)fprintf(stderr, "%s\n%s\n%s\n%s\n", "usage: ps " SINGLE_OPTS " [-O fmt | -o fmt] [-G gid[,gid...]]", ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r196049 - in stable/7: tools/regression/usr.bin/jot usr.bin/jot
Author: brian Date: Mon Aug 3 09:55:03 2009 New Revision: 196049 URL: http://svn.freebsd.org/changeset/base/196049 Log: MFC: Fix some uninitialised variables. PR: 136383 Submitted by: Ulrich Spoerlein - uqs at spoerlein dot net Added: stable/7/tools/regression/usr.bin/jot/regress..out - copied unchanged from r195443, head/tools/regression/usr.bin/jot/regress..out Modified: stable/7/tools/regression/usr.bin/jot/ (props changed) stable/7/tools/regression/usr.bin/jot/regress.sh stable/7/usr.bin/jot/ (props changed) stable/7/usr.bin/jot/jot.c Copied: stable/7/tools/regression/usr.bin/jot/regress..out (from r195443, head/tools/regression/usr.bin/jot/regress..out) == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/7/tools/regression/usr.bin/jot/regress..out Mon Aug 3 09:55:03 2009(r196049, copy of r195443, head/tools/regression/usr.bin/jot/regress..out) @@ -0,0 +1,100 @@ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 Modified: stable/7/tools/regression/usr.bin/jot/regress.sh == --- stable/7/tools/regression/usr.bin/jot/regress.shMon Aug 3 09:43:06 2009(r196048) +++ stable/7/tools/regression/usr.bin/jot/regress.shMon Aug 3 09:55:03 2009(r196049) @@ -1,6 +1,6 @@ # $FreeBSD$ -echo 1..56 +echo 1..57 REGRESSION_START($1) @@ -20,6 +20,7 @@ REGRESSION_TEST(`dhdd', `jot - 20 - -') REGRESSION_TEST(`ddhh', `jot - - 120 2') REGRESSION_TEST(`ddhd', `jot - - 120 -') REGRESSION_TEST(`dddh', `jot - - - 2') +REGRESSION_TEST(`', `jot - - - -') REGRESSION_TEST(`2', `jot 30 20 160 2') REGRESSION_TEST(`hhhd2', `jot 30 20 160 -') REGRESSION_TEST(`hhdh2', `jot 30 20 - 2') Modified: stable/7/usr.bin/jot/jot.c == --- stable/7/usr.bin/jot/jot.c Mon Aug 3 09:43:06 2009(r196048) +++ stable/7/usr.bin/jot/jot.c Mon Aug 3 09:55:03 2009(r196049) @@ -101,13 +101,13 @@ main(int argc, char **argv) int ch; int mask = 0; int n = 0; - double begin; + double begin = BEGIN_DEF; double divisor; - double ender; - double s; + double ender = ENDER_DEF; + double s = STEP_DEF; double x, y; longi; - longreps; + longreps = REPS_DEF; while ((ch = getopt(argc, argv, "b:cnp:rs:w:")) != -1) switch (ch) { ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r196048 - stable/7/usr.sbin/ppp
Author: brian Date: Mon Aug 3 09:43:06 2009 New Revision: 196048 URL: http://svn.freebsd.org/changeset/base/196048 Log: MFC: Add a missing phrase. Submitted by: Jason McIntyre jmc at kerhand dot co dot uk Obtained from:OpenBSD Modified: stable/7/usr.sbin/ppp/ (props changed) stable/7/usr.sbin/ppp/ppp.8.m4 Modified: stable/7/usr.sbin/ppp/ppp.8.m4 == --- stable/7/usr.sbin/ppp/ppp.8.m4 Mon Aug 3 09:42:11 2009 (r196047) +++ stable/7/usr.sbin/ppp/ppp.8.m4 Mon Aug 3 09:43:06 2009 (r196048) @@ -5471,7 +5471,7 @@ keywords. .It RAD_FRAMED_IPV6_PREFIX If this attribute is supplied, the value is substituted for IPV6PREFIX in a command. -You may pass it to such as DHCPv6 for delegating an +You may pass it to an upper layer protocol such as DHCPv6 for delegating an IPv6 prefix to a peer. .It RAD_FRAMED_IPV6_ROUTE The received string is expected to be in the format ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
Re: svn commit: r195829 - stable/7/sys/dev/usb
On Thu, 23 Jul 2009 20:03:38 +0100, Bruce Simpson wrote: > Perhaps a purchase of the Subversion book is in my future. You can download the pdf for free - it's worth reading. IMHO the svn:mergeinfo idea is flawed. It doesn't handle hierarchies with mixed --depth values at all - it should at least handle merges to trees with non-infinity-depth nodes by duplicating the mergeinfo for each non-infinity-depth node from it's closest parent and not merging to the node. The observant committer would of course not commit such a thing (and would set their depth to infinity on these nodes first). -- Brian Somers Don't _EVER_ lose your sense of humour ! ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r195830 - head/bin/ps
Author: brian Date: Thu Jul 23 10:20:12 2009 New Revision: 195830 URL: http://svn.freebsd.org/changeset/base/195830 Log: Add the -d switch to the usage message. Submitted by: Emil Mikulic - emil at dmr dot ath dot cx Approved by: re (kib) MFC after:1 week Modified: head/bin/ps/ps.c Modified: head/bin/ps/ps.c == --- head/bin/ps/ps.cThu Jul 23 01:35:13 2009(r195829) +++ head/bin/ps/ps.cThu Jul 23 10:20:12 2009(r195830) @@ -1331,7 +1331,7 @@ check_procfs(void) static void usage(void) { -#defineSINGLE_OPTS "[-aCce" OPT_LAZY_f "HhjlmrSTuvwXxZ]" +#defineSINGLE_OPTS "[-aCcde" OPT_LAZY_f "HhjlmrSTuvwXxZ]" (void)fprintf(stderr, "%s\n%s\n%s\n%s\n", "usage: ps " SINGLE_OPTS " [-O fmt | -o fmt] [-G gid[,gid...]]", ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"