PERFORCE change 77402 for review

Peter Wemm peter at FreeBSD.org
Tue May 24 19:18:46 GMT 2005


http://perforce.freebsd.org/chv.cgi?CH=77402

Change 77402 by peter at peter_daintree on 2005/05/24 19:18:34

	IFC @77401

Affected files ...

.. //depot/projects/hammer/MAINTAINERS#32 integrate
.. //depot/projects/hammer/Makefile.inc1#92 integrate
.. //depot/projects/hammer/contrib/bsnmp/NEWS#7 integrate
.. //depot/projects/hammer/contrib/bsnmp/VERSION#7 integrate
.. //depot/projects/hammer/contrib/bsnmp/lib/bsnmpclient.3#6 integrate
.. //depot/projects/hammer/contrib/bsnmp/lib/snmpclient.c#4 integrate
.. //depot/projects/hammer/contrib/bsnmp/lib/snmpclient.h#4 integrate
.. //depot/projects/hammer/contrib/bsnmp/oid-list#3 integrate
.. //depot/projects/hammer/contrib/bsnmp/snmp_mibII/mibII.c#6 integrate
.. //depot/projects/hammer/contrib/bsnmp/snmp_mibII/mibII.h#4 integrate
.. //depot/projects/hammer/contrib/bsnmp/snmp_mibII/mibII_interfaces.c#6 integrate
.. //depot/projects/hammer/contrib/bsnmp/snmp_mibII/mibII_ip.c#4 integrate
.. //depot/projects/hammer/contrib/bsnmp/snmp_mibII/mibII_route.c#4 integrate
.. //depot/projects/hammer/contrib/bsnmp/snmp_mibII/mibII_tcp.c#4 integrate
.. //depot/projects/hammer/contrib/bsnmp/snmp_mibII/mibII_udp.c#4 integrate
.. //depot/projects/hammer/contrib/bsnmp/snmp_mibII/snmp_mibII.3#6 integrate
.. //depot/projects/hammer/contrib/bsnmp/snmp_mibII/snmp_mibII.h#5 integrate
.. //depot/projects/hammer/contrib/bsnmp/snmp_ntp/snmp_ntp.c#2 integrate
.. //depot/projects/hammer/contrib/bsnmp/snmpd/main.c#7 integrate
.. //depot/projects/hammer/contrib/bsnmp/snmpd/snmpmod.3#6 integrate
.. //depot/projects/hammer/contrib/bsnmp/snmpd/snmpmod.h#4 integrate
.. //depot/projects/hammer/contrib/ngatm/man/libngatm.3#3 integrate
.. //depot/projects/hammer/contrib/ngatm/man/uniaddr.3#3 integrate
.. //depot/projects/hammer/contrib/ngatm/man/unifunc.3#3 integrate
.. //depot/projects/hammer/contrib/ngatm/man/unimsg.3#2 integrate
.. //depot/projects/hammer/contrib/ngatm/man/unisap.3#2 integrate
.. //depot/projects/hammer/contrib/ngatm/man/unistruct.3#3 integrate
.. //depot/projects/hammer/contrib/ngatm/snmp_atm/atm.h#2 integrate
.. //depot/projects/hammer/contrib/ngatm/snmp_atm/snmp_atm.3#2 integrate
.. //depot/projects/hammer/contrib/ngatm/snmp_atm/snmp_atm.c#2 integrate
.. //depot/projects/hammer/contrib/ngatm/sscop/common.c#5 integrate
.. //depot/projects/hammer/contrib/ngatm/sscop/common.h#5 integrate
.. //depot/projects/hammer/contrib/ngatm/sscop/sscop_main.c#5 integrate
.. //depot/projects/hammer/contrib/texinfo/AUTHORS#4 integrate
.. //depot/projects/hammer/contrib/texinfo/ChangeLog#4 integrate
.. //depot/projects/hammer/contrib/texinfo/ChangeLog.46#1 branch
.. //depot/projects/hammer/contrib/texinfo/FREEBSD-Xlist#4 integrate
.. //depot/projects/hammer/contrib/texinfo/FREEBSD-upgrade#4 integrate
.. //depot/projects/hammer/contrib/texinfo/INSTALL#3 integrate
.. //depot/projects/hammer/contrib/texinfo/INTRODUCTION#3 integrate
.. //depot/projects/hammer/contrib/texinfo/NEWS#4 integrate
.. //depot/projects/hammer/contrib/texinfo/README#3 integrate
.. //depot/projects/hammer/contrib/texinfo/README.dev#1 branch
.. //depot/projects/hammer/contrib/texinfo/TODO#4 integrate
.. //depot/projects/hammer/contrib/texinfo/config.h#4 integrate
.. //depot/projects/hammer/contrib/texinfo/config.h.in#4 integrate
.. //depot/projects/hammer/contrib/texinfo/doc/README#3 integrate
.. //depot/projects/hammer/contrib/texinfo/doc/help2man#3 delete
.. //depot/projects/hammer/contrib/texinfo/doc/info-stnd.texi#4 integrate
.. //depot/projects/hammer/contrib/texinfo/doc/info.1#4 integrate
.. //depot/projects/hammer/contrib/texinfo/doc/info.5#3 integrate
.. //depot/projects/hammer/contrib/texinfo/doc/info.texi#3 integrate
.. //depot/projects/hammer/contrib/texinfo/doc/infokey.1#1 branch
.. //depot/projects/hammer/contrib/texinfo/doc/install-info.1#4 integrate
.. //depot/projects/hammer/contrib/texinfo/doc/makeinfo.1#4 integrate
.. //depot/projects/hammer/contrib/texinfo/doc/texindex.1#4 integrate
.. //depot/projects/hammer/contrib/texinfo/doc/texinfo.5#3 integrate
.. //depot/projects/hammer/contrib/texinfo/doc/texinfo.txi#4 integrate
.. //depot/projects/hammer/contrib/texinfo/doc/version-stnd.texi#4 integrate
.. //depot/projects/hammer/contrib/texinfo/doc/version.texi#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/README#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/dir.c#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/display.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/display.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/doc.c#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/doc.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/dribble.c#2 integrate
.. //depot/projects/hammer/contrib/texinfo/info/dribble.h#2 integrate
.. //depot/projects/hammer/contrib/texinfo/info/echo-area.c#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/echo-area.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/filesys.c#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/filesys.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/footnotes.c#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/footnotes.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/funs.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/gc.c#2 integrate
.. //depot/projects/hammer/contrib/texinfo/info/gc.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/indices.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/indices.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/info-utils.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/info-utils.h#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/info.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/info.h#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/infodoc.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/infokey.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/infokey.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/infomap.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/infomap.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/key.c#2 integrate
.. //depot/projects/hammer/contrib/texinfo/info/m-x.c#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/man.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/man.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/nodemenu.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/nodes.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/nodes.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/search.c#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/search.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/session.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/session.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/signals.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/signals.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/termdep.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/terminal.c#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/terminal.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/tilde.c#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/tilde.h#2 integrate
.. //depot/projects/hammer/contrib/texinfo/info/variables.c#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/variables.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/info/window.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/info/window.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/lib/README#3 integrate
.. //depot/projects/hammer/contrib/texinfo/lib/gettext.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/lib/substring.c#3 integrate
.. //depot/projects/hammer/contrib/texinfo/lib/system.h#4 integrate
.. //depot/projects/hammer/contrib/texinfo/lib/xalloc.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/lib/xexit.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/lib/xmalloc.c#2 integrate
.. //depot/projects/hammer/contrib/texinfo/lib/xstrdup.c#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/README#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/cmds.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/cmds.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/defun.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/defun.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/files.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/files.h#4 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/float.c#1 branch
.. //depot/projects/hammer/contrib/texinfo/makeinfo/float.h#1 branch
.. //depot/projects/hammer/contrib/texinfo/makeinfo/footnote.c#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/footnote.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/html.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/html.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/index.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/index.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/insertion.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/insertion.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/lang.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/lang.h#4 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/macro.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/macro.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/makeinfo.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/makeinfo.h#4 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/multi.c#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/multi.h#1 branch
.. //depot/projects/hammer/contrib/texinfo/makeinfo/node.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/node.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/sectioning.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/sectioning.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/texinfo.dtd#3 delete
.. //depot/projects/hammer/contrib/texinfo/makeinfo/texinfo.xsl#3 delete
.. //depot/projects/hammer/contrib/texinfo/makeinfo/toc.c#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/toc.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/xml.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/xml.h#3 integrate
.. //depot/projects/hammer/contrib/texinfo/makeinfo/xref.c#1 branch
.. //depot/projects/hammer/contrib/texinfo/makeinfo/xref.h#1 branch
.. //depot/projects/hammer/contrib/texinfo/util/README#3 integrate
.. //depot/projects/hammer/contrib/texinfo/util/install-info.c#4 integrate
.. //depot/projects/hammer/contrib/texinfo/util/texindex.c#4 integrate
.. //depot/projects/hammer/etc/devd.conf#20 integrate
.. //depot/projects/hammer/etc/rc.d/named#13 integrate
.. //depot/projects/hammer/etc/rc.subr#22 integrate
.. //depot/projects/hammer/gnu/usr.bin/texinfo/infokey/Makefile#4 integrate
.. //depot/projects/hammer/gnu/usr.bin/texinfo/makeinfo/Makefile#3 integrate
.. //depot/projects/hammer/lib/libgeom/geom_xml2tree.c#4 integrate
.. //depot/projects/hammer/release/Makefile#72 integrate
.. //depot/projects/hammer/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#77 integrate
.. //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#96 integrate
.. //depot/projects/hammer/release/doc/share/misc/dev.archlist.txt#28 integrate
.. //depot/projects/hammer/sbin/Makefile#34 integrate
.. //depot/projects/hammer/sbin/mount_reiserfs/Makefile#1 branch
.. //depot/projects/hammer/sbin/mount_reiserfs/mount_reiserfs.8#1 branch
.. //depot/projects/hammer/sbin/mount_reiserfs/mount_reiserfs.c#1 branch
.. //depot/projects/hammer/sbin/route/route.c#10 integrate
.. //depot/projects/hammer/share/man/man4/sk.4#9 integrate
.. //depot/projects/hammer/share/man/man4/snd_ad1816.4#4 integrate
.. //depot/projects/hammer/share/man/man4/snd_als4000.4#4 integrate
.. //depot/projects/hammer/share/man/man4/snd_cmi.4#4 integrate
.. //depot/projects/hammer/share/man/man4/snd_cs4281.4#4 integrate
.. //depot/projects/hammer/share/man/man4/snd_csa.4#3 integrate
.. //depot/projects/hammer/share/man/man4/snd_ds1.4#4 integrate
.. //depot/projects/hammer/share/man/man4/snd_emu10k1.4#4 integrate
.. //depot/projects/hammer/share/man/man4/snd_es137x.4#4 integrate
.. //depot/projects/hammer/share/man/man4/snd_ess.4#3 integrate
.. //depot/projects/hammer/share/man/man4/snd_gusc.4#3 integrate
.. //depot/projects/hammer/share/man/man4/snd_sbc.4#4 integrate
.. //depot/projects/hammer/share/man/man4/snd_solo.4#4 integrate
.. //depot/projects/hammer/share/man/man9/VOP_IOCTL.9#6 integrate
.. //depot/projects/hammer/sys/alpha/osf1/osf1_mount.c#10 integrate
.. //depot/projects/hammer/sys/amd64/amd64/exception.S#36 integrate
.. //depot/projects/hammer/sys/amd64/amd64/local_apic.c#50 integrate
.. //depot/projects/hammer/sys/amd64/amd64/mp_machdep.c#95 integrate
.. //depot/projects/hammer/sys/amd64/amd64/trap.c#60 integrate
.. //depot/projects/hammer/sys/amd64/conf/GENERIC#72 integrate
.. //depot/projects/hammer/sys/amd64/include/bus.h#12 integrate
.. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_misc.c#24 integrate
.. //depot/projects/hammer/sys/compat/linux/linux_stats.c#19 integrate
.. //depot/projects/hammer/sys/conf/NOTES#90 integrate
.. //depot/projects/hammer/sys/conf/files.i386#58 integrate
.. //depot/projects/hammer/sys/conf/options.i386#35 integrate
.. //depot/projects/hammer/sys/contrib/ngatm/netnatm/api/ccpriv.h#2 integrate
.. //depot/projects/hammer/sys/contrib/ngatm/netnatm/api/unisap.h#2 integrate
.. //depot/projects/hammer/sys/contrib/ngatm/netnatm/msg/uni_ie.c#4 integrate
.. //depot/projects/hammer/sys/dev/hme/if_hme.c#18 integrate
.. //depot/projects/hammer/sys/dev/ipw/if_ipw.c#2 integrate
.. //depot/projects/hammer/sys/dev/iwi/if_iwi.c#3 integrate
.. //depot/projects/hammer/sys/dev/iwi/if_iwireg.h#2 integrate
.. //depot/projects/hammer/sys/dev/iwi/if_iwivar.h#3 integrate
.. //depot/projects/hammer/sys/dev/ral/if_ral.c#2 integrate
.. //depot/projects/hammer/sys/dev/sound/pci/maestro3.c#11 integrate
.. //depot/projects/hammer/sys/dev/usb/if_ural.c#2 integrate
.. //depot/projects/hammer/sys/geom/mirror/g_mirror.c#23 integrate
.. //depot/projects/hammer/sys/gnu/reiserfs/README#1 branch
.. //depot/projects/hammer/sys/gnu/reiserfs/reiserfs_fs.h#1 branch
.. //depot/projects/hammer/sys/gnu/reiserfs/reiserfs_fs_i.h#1 branch
.. //depot/projects/hammer/sys/gnu/reiserfs/reiserfs_fs_sb.h#1 branch
.. //depot/projects/hammer/sys/gnu/reiserfs/reiserfs_hashes.c#1 branch
.. //depot/projects/hammer/sys/gnu/reiserfs/reiserfs_inode.c#1 branch
.. //depot/projects/hammer/sys/gnu/reiserfs/reiserfs_item_ops.c#1 branch
.. //depot/projects/hammer/sys/gnu/reiserfs/reiserfs_mount.h#1 branch
.. //depot/projects/hammer/sys/gnu/reiserfs/reiserfs_namei.c#1 branch
.. //depot/projects/hammer/sys/gnu/reiserfs/reiserfs_prints.c#1 branch
.. //depot/projects/hammer/sys/gnu/reiserfs/reiserfs_stree.c#1 branch
.. //depot/projects/hammer/sys/gnu/reiserfs/reiserfs_vfsops.c#1 branch
.. //depot/projects/hammer/sys/gnu/reiserfs/reiserfs_vnops.c#1 branch
.. //depot/projects/hammer/sys/i386/conf/GENERIC#37 integrate
.. //depot/projects/hammer/sys/i386/conf/NOTES#69 integrate
.. //depot/projects/hammer/sys/i386/i386/mp_machdep.c#44 integrate
.. //depot/projects/hammer/sys/kern/kern_exit.c#46 integrate
.. //depot/projects/hammer/sys/kern/kern_switch.c#43 integrate
.. //depot/projects/hammer/sys/kern/kern_synch.c#50 integrate
.. //depot/projects/hammer/sys/kern/vfs_syscalls.c#46 integrate
.. //depot/projects/hammer/sys/libkern/iconv_xlat16.c#3 integrate
.. //depot/projects/hammer/sys/modules/Makefile#77 integrate
.. //depot/projects/hammer/sys/modules/reiserfs/Makefile#1 branch
.. //depot/projects/hammer/sys/net/pfil.c#8 integrate
.. //depot/projects/hammer/sys/netgraph/ng_socket.c#15 integrate
.. //depot/projects/hammer/sys/netgraph/ng_split.c#4 integrate
.. //depot/projects/hammer/sys/netinet/tcp.h#12 integrate
.. //depot/projects/hammer/sys/netinet/tcp_sack.c#16 integrate
.. //depot/projects/hammer/sys/pc98/conf/GENERIC#32 integrate
.. //depot/projects/hammer/sys/sys/iconv.h#6 integrate
.. //depot/projects/hammer/sys/sys/proc.h#81 integrate
.. //depot/projects/hammer/sys/vm/vm_glue.c#41 integrate
.. //depot/projects/hammer/usr.bin/make/Makefile#19 integrate
.. //depot/projects/hammer/usr.bin/make/Makefile.dist#3 integrate
.. //depot/projects/hammer/usr.bin/make/arch.c#19 integrate
.. //depot/projects/hammer/usr.bin/make/cond.c#21 integrate
.. //depot/projects/hammer/usr.bin/make/job.c#27 integrate
.. //depot/projects/hammer/usr.bin/make/job.h#15 integrate
.. //depot/projects/hammer/usr.bin/make/main.c#35 integrate
.. //depot/projects/hammer/usr.bin/make/make.1#21 integrate
.. //depot/projects/hammer/usr.bin/make/make.c#15 integrate
.. //depot/projects/hammer/usr.bin/make/parse.c#31 integrate
.. //depot/projects/hammer/usr.bin/make/proc.c#1 branch
.. //depot/projects/hammer/usr.bin/make/proc.h#1 branch
.. //depot/projects/hammer/usr.bin/make/shell.c#1 branch
.. //depot/projects/hammer/usr.bin/make/shell.h#1 branch
.. //depot/projects/hammer/usr.bin/make/str.c#15 integrate
.. //depot/projects/hammer/usr.bin/make/str.h#4 integrate
.. //depot/projects/hammer/usr.bin/make/suff.c#19 integrate
.. //depot/projects/hammer/usr.bin/make/var.c#29 integrate
.. //depot/projects/hammer/usr.bin/make/var.h#10 integrate
.. //depot/projects/hammer/usr.sbin/adduser/rmuser.sh#4 integrate
.. //depot/projects/hammer/usr.sbin/bsnmpd/modules/Makefile.inc#2 integrate
.. //depot/projects/hammer/usr.sbin/bsnmpd/modules/snmp_atm/Makefile#2 integrate
.. //depot/projects/hammer/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.c#2 integrate
.. //depot/projects/hammer/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c#3 integrate
.. //depot/projects/hammer/usr.sbin/pkg_install/version/main.c#5 integrate
.. //depot/projects/hammer/usr.sbin/pkg_install/version/perform.c#7 integrate
.. //depot/projects/hammer/usr.sbin/pkg_install/version/pkg_version.1#9 integrate
.. //depot/projects/hammer/usr.sbin/pkg_install/version/version.h#4 integrate

Differences ...

==== //depot/projects/hammer/MAINTAINERS#32 (text+ko) ====

@@ -1,4 +1,4 @@
-$FreeBSD: src/MAINTAINERS,v 1.103 2005/03/13 15:30:01 pjd Exp $
+$FreeBSD: src/MAINTAINERS,v 1.104 2005/05/24 08:23:01 krion Exp $
 
 subsystem	login	notes
 -----------------------------
@@ -105,7 +105,7 @@
 rpc.lockd	alfred	Will be happy to review code, but not mandatory.
 truss		alfred	Will be happy to review code, but not mandatory.
 rpc		alfred	Pre-commit review requested.
-pkg_install	eik	Pre-commit review or approval from portmgr@ requested.
+pkg_install	krion	Pre-commit review or approval from portmgr@ requested.
 
 Following are the entries from the Makefiles, and a few other sources.
 Please remove stale entries from both their origin, and this file.

==== //depot/projects/hammer/Makefile.inc1#92 (text+ko) ====

@@ -1,5 +1,5 @@
 #
-# $FreeBSD: src/Makefile.inc1,v 1.494 2005/05/01 17:36:09 imp Exp $
+# $FreeBSD: src/Makefile.inc1,v 1.495 2005/05/23 11:15:16 ru Exp $
 #
 # Make command line options:
 #	-DNO_DYNAMICROOT do not link /bin and /sbin dynamically
@@ -778,6 +778,10 @@
 .endif
 .endif
 
+.if ${BOOTSTRAPPING} < 600029
+_texinfo=	gnu/usr.bin/texinfo
+.endif
+
 .if ${BOOTSTRAPPING} < 600015
 _cap_mkdb=	usr.bin/cap_mkdb
 .endif
@@ -808,7 +812,7 @@
     ${_strfile} \
     ${_gperf} \
     ${_groff} \
-    gnu/usr.bin/texinfo \
+    ${_texinfo} \
     ${_cap_mkdb} \
     ${_colldef} \
     ${_gencat} \

==== //depot/projects/hammer/contrib/bsnmp/NEWS#7 (text+ko) ====

@@ -1,3 +1,16 @@
+1.10
+	Change all the tick handling in the daemon from 32-bit to 64-bit.
+	Bump the modules' major version number to 3.
+
+	snmp_dialog: make the syntax of the variable bindings in the outgoing
+	message SNMP_SYNTAX_NULL regardless of the syntax given by the user.
+
+	Fix an error in timer handling in the LIBBEGEMOT case.
+
+	snmpd/main.c: Fix a 64-bit warning.
+
+	lib/snmpclient: Add snmp_parse_server().
+
 1.9
 	tcpwrapper support from glebius at freebsd.org.
 

==== //depot/projects/hammer/contrib/bsnmp/VERSION#7 (text+ko) ====

@@ -1,1 +1,1 @@
-1.9
+1.10

==== //depot/projects/hammer/contrib/bsnmp/lib/bsnmpclient.3#6 (text+ko) ====

@@ -1,4 +1,7 @@
 .\"
+.\" Copyright (c) 2004-2005
+.\"	Hartmut Brandt.
+.\"	All rights reserved.
 .\" Copyright (c) 2001-2003
 .\"	Fraunhofer Institute for Open Communication Systems (FhG Fokus).
 .\"	All rights reserved.
@@ -26,9 +29,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $Begemot: bsnmp/lib/bsnmpclient.3,v 1.8 2005/02/25 11:55:58 brandt_h Exp $
+.\" $Begemot: bsnmp/lib/bsnmpclient.3,v 1.9 2005/05/23 11:10:12 brandt_h Exp $
 .\"
-.Dd August 15, 2002
+.Dd May 23, 2005
 .Dt BSNMPCLIENT 3
 .Os
 .Sh NAME
@@ -44,6 +47,7 @@
 .Nm snmp_pdu_check ,
 .Nm snmp_pdu_send ,
 .Nm snmp_oid_append ,
+.Nm snmp_parse_server ,
 .Nm snmp_receive ,
 .Nm snmp_table_cb_f ,
 .Nm snmp_table_fetch ,
@@ -87,6 +91,8 @@
 .Ft int
 .Fn snmp_oid_append "struct asn_oid *oid" "const char *fmt" "..."
 .Ft int
+.Fn snmp_parse_server "struct snmp_client *sc" "const char *str"
+.Ft int
 .Fn snmp_receive "int blocking"
 .Ft typedef void
 .Fn (*snmp_table_cb_f) "void *list" "void *arg" "int res"
@@ -571,6 +577,28 @@
 .Fa resp .
 If no reponse could be received after all timeouts and retries, the function
 returns -1. If a response was received 0 is returned.
+.Pp
+The function
+.Fn snmp_parse_server
+is used to parse an SNMP server specification string and fill in the
+fields of a
+.Vt struct snmp_client .
+The syntax of a server specification is
+.Pp
+.D1 [trans::][community@][server][:port]
+.Pp
+where
+.Va trans
+is the transport name (one of udp, stream or dgram),
+.Va community
+is the string to be used for both the read and the write community,
+.Va server
+is the server's host name in case of UDP and the path name in case
+of a local socket, and
+.Va port
+is the port in case of UDP transport.
+The function returns 0 in the case of success and return -1 and sets
+the error string in case of an error.
 .Sh DIAGNOSTICS
 If an error occures in any of the function an error indication as described
 above is returned. Additionally the function sets a printable error string

==== //depot/projects/hammer/contrib/bsnmp/lib/snmpclient.c#4 (text+ko) ====

@@ -1,4 +1,7 @@
 /*
+ * Copyright (c) 2004-2005
+ *	Hartmut Brandt.
+ *	All rights reserved.
  * Copyright (c) 2001-2003
  *	Fraunhofer Institute for Open Communication Systems (FhG Fokus).
  *	All rights reserved.
@@ -27,7 +30,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $Begemot: bsnmp/lib/snmpclient.c,v 1.29 2004/08/06 08:46:57 brandt Exp $
+ * $Begemot: bsnmp/lib/snmpclient.c,v 1.31 2005/05/23 11:10:13 brandt_h Exp $
  *
  * Support functions for SNMP clients.
  */
@@ -115,12 +118,12 @@
  * Set the error string
  */
 static void
-seterr(const char *fmt, ...)
+seterr(struct snmp_client *sc, const char *fmt, ...)
 {
 	va_list ap;
 
 	va_start(ap, fmt);
-	vsnprintf(snmp_client.error, sizeof(snmp_client.error), fmt, ap);
+	vsnprintf(sc->error, sizeof(sc->error), fmt, ap);
 	va_end(ap);
 }
 
@@ -186,11 +189,11 @@
 
 	/* Not found create new one */
 	if ((e = malloc(work->descr->entry_size)) == NULL) {
-		seterr("no memory for table entry");
+		seterr(&snmp_client, "no memory for table entry");
 		return (NULL);
 	}
 	if ((w = malloc(sizeof(*w))) == NULL) {
-		seterr("no memory for table entry");
+		seterr(&snmp_client, "no memory for table entry");
 		free(e);
 		return (NULL);
 	}
@@ -204,11 +207,12 @@
 
 		  case SNMP_SYNTAX_INTEGER:
 			if (var->len < p + 1) {
-				seterr("bad index: need integer");
+				seterr(&snmp_client, "bad index: need integer");
 				goto err;
 			}
 			if (var->subs[p] > INT32_MAX) {
-				seterr("bad index: integer too large");
+				seterr(&snmp_client,
+				    "bad index: integer too large");
 				goto err;
 			}
 			*(int32_t *)(void *)((u_char *)e +
@@ -217,21 +221,25 @@
 
 		  case SNMP_SYNTAX_OCTETSTRING:
 			if (var->len < p + 1) {
-				seterr("bad index: need string length");
+				seterr(&snmp_client,
+				    "bad index: need string length");
 				goto err;
 			}
 			len = var->subs[p++];
 			if (var->len < p + len) {
-				seterr("bad index: string too short");
+				seterr(&snmp_client,
+				    "bad index: string too short");
 				goto err;
 			}
 			if ((ptr = malloc(len + 1)) == NULL) {
-				seterr("no memory for index string");
+				seterr(&snmp_client,
+				    "no memory for index string");
 				goto err;
 			}
 			for (j = 0; j < len; j++) {
 				if (var->subs[p] > UCHAR_MAX) {
-					seterr("bad index: char too large");
+					seterr(&snmp_client,
+					    "bad index: char too large");
 					free(ptr);
 					goto err;
 				}
@@ -247,12 +255,14 @@
 
 		  case SNMP_SYNTAX_OID:
 			if (var->len < p + 1) {
-				seterr("bad index: need oid length");
+				seterr(&snmp_client,
+				    "bad index: need oid length");
 				goto err;
 			}
 			oid.len = var->subs[p++];
 			if (var->len < p + oid.len) {
-				seterr("bad index: oid too short");
+				seterr(&snmp_client,
+				    "bad index: oid too short");
 				goto err;
 			}
 			for (j = 0; j < oid.len; j++)
@@ -263,12 +273,14 @@
 
 		  case SNMP_SYNTAX_IPADDRESS:
 			if (var->len < p + 4) {
-				seterr("bad index: need ip-address");
+				seterr(&snmp_client,
+				    "bad index: need ip-address");
 				goto err;
 			}
 			for (j = 0; j < 4; j++) {
 				if (var->subs[p] > 0xff) {
-					seterr("bad index: ipaddress too large");
+					seterr(&snmp_client,
+					    "bad index: ipaddress too large");
 					goto err;
 				}
 				((u_char *)e +
@@ -279,11 +291,13 @@
 
 		  case SNMP_SYNTAX_GAUGE:
 			if (var->len < p + 1) {
-				seterr("bad index: need unsigned");
+				seterr(&snmp_client,
+				    "bad index: need unsigned");
 				goto err;
 			}
 			if (var->subs[p] > UINT32_MAX) {
-				seterr("bad index: unsigned too large");
+				seterr(&snmp_client,
+				    "bad index: unsigned too large");
 				goto err;
 			}
 			*(uint32_t *)(void *)((u_char *)e +
@@ -357,7 +371,7 @@
 
 	/* check syntax */
 	if (b->syntax != descr->entries[i].syntax) {
-		seterr("bad syntax (%u instead of %u)", b->syntax,
+		seterr(&snmp_client, "bad syntax (%u instead of %u)", b->syntax,
 		    descr->entries[i].syntax);
 		return (-1);
 	}
@@ -371,7 +385,7 @@
 
 	  case SNMP_SYNTAX_OCTETSTRING:
 		if ((ptr = malloc(b->v.octetstring.len + 1)) == NULL) {
-			seterr("no memory for string");
+			seterr(&snmp_client, "no memory for string");
 			return (-1);
 		}
 		memcpy(ptr, b->v.octetstring.octets, b->v.octetstring.len);
@@ -460,7 +474,7 @@
 			/* EOT */
 			return (0);
 		/* Error */
-		seterr("error fetching table: status=%d index=%d",
+		seterr(&snmp_client, "error fetching table: status=%d index=%d",
 		    resp->error_status, resp->error_index);
 		return (-1);
 	}
@@ -470,11 +484,13 @@
 			if (!asn_is_suboid(&work->descr->last_change, &b->var) ||
 			    b->var.len != work->descr->last_change.len + 1 ||
 			    b->var.subs[work->descr->last_change.len] != 0) {
-				seterr("last_change: bad response");
+				seterr(&snmp_client,
+				    "last_change: bad response");
 				return (-1);
 			}
 			if (b->syntax != SNMP_SYNTAX_TIMETICKS) {
-				seterr("last_change: bad syntax %u", b->syntax);
+				seterr(&snmp_client,
+				    "last_change: bad syntax %u", b->syntax);
 				return (-1);
 			}
 			if (work->first) {
@@ -483,7 +499,8 @@
 
 			} else if (work->last_change != b->v.uint32) {
 				if (++work->iter >= work->descr->max_iter) {
-					seterr("max iteration count exceeded");
+					seterr(&snmp_client,
+					    "max iteration count exceeded");
 					return (-1);
 				}
 				table_free(work, 1);
@@ -517,12 +534,13 @@
 		    work->descr->req_mask) {
 			if (work->descr->last_change.len == 0) {
 				if (++work->iter >= work->descr->max_iter) {
-					seterr("max iteration count exceeded");
+					seterr(&snmp_client,
+					    "max iteration count exceeded");
 					return (-1);
 				}
 				return (-2);
 			}
-			seterr("inconsistency detected %llx %llx",
+			seterr(&snmp_client, "inconsistency detected %llx %llx",
 			    e->found, work->descr->req_mask);
 			return (-1);
 		}
@@ -608,7 +626,7 @@
 
 	if (resp == NULL) {
 		/* timeout */
-		seterr("no response to fetch table request");
+		seterr(&snmp_client, "no response to fetch table request");
 		table_free(work, 1);
 		work->callback(work->table, work->arg, -1);
 		free(work);
@@ -686,7 +704,7 @@
 	struct tabwork *work;
 
 	if ((work = malloc(sizeof(*work))) == NULL) {
-		seterr("%s", strerror(errno));
+		seterr(&snmp_client, "%s", strerror(errno));
 		return (-1);
 	}
 
@@ -859,14 +877,14 @@
 	if (snmp_client.chost == NULL) {
 		if ((snmp_client.chost = malloc(1 + sizeof(DEFAULT_HOST)))
 		    == NULL) {
-			seterr("%s", strerror(errno));
+			seterr(&snmp_client, "%s", strerror(errno));
 			return (-1);
 		}
 		strcpy(snmp_client.chost, DEFAULT_HOST);
 	}
 	if (host != NULL) {
 		if ((ptr = malloc(1 + strlen(host))) == NULL) {
-			seterr("%s", strerror(errno));
+			seterr(&snmp_client, "%s", strerror(errno));
 			return (-1);
 		}
 		free(snmp_client.chost);
@@ -876,14 +894,14 @@
 	if (snmp_client.cport == NULL) {
 		if ((snmp_client.cport = malloc(1 + sizeof(DEFAULT_PORT)))
 		    == NULL) {
-			seterr("%s", strerror(errno));
+			seterr(&snmp_client, "%s", strerror(errno));
 			return (-1);
 		}
 		strcpy(snmp_client.cport, DEFAULT_PORT);
 	}
 	if (port != NULL) {
 		if ((ptr = malloc(1 + strlen(port))) == NULL) {
-			seterr("%s", strerror(errno));
+			seterr(&snmp_client, "%s", strerror(errno));
 			return (-1);
 		}
 		free(snmp_client.cport);
@@ -899,7 +917,8 @@
 	hints.ai_protocol = 0;
 	error = getaddrinfo(snmp_client.chost, snmp_client.cport, &hints, &res0);
 	if (error != 0) {
-		seterr("%s: %s", snmp_client.chost, gai_strerror(error));
+		seterr(&snmp_client, "%s: %s", snmp_client.chost,
+		    gai_strerror(error));
 		return (-1);
 	}
 	res = res0;
@@ -907,14 +926,14 @@
 		if ((snmp_client.fd = socket(res->ai_family, res->ai_socktype,
 		    res->ai_protocol)) == -1) {
 			if ((res = res->ai_next) == NULL) {
-				seterr("%s", strerror(errno));
+				seterr(&snmp_client, "%s", strerror(errno));
 				freeaddrinfo(res0);
 				return (-1);
 			}
 		} else if (connect(snmp_client.fd, res->ai_addr,
 		    res->ai_addrlen) == -1) {
 			if ((res = res->ai_next) == NULL) {
-				seterr("%s", strerror(errno));
+				seterr(&snmp_client, "%s", strerror(errno));
 				freeaddrinfo(res0);
 				return (-1);
 			}
@@ -944,14 +963,14 @@
 	if (snmp_client.chost == NULL) {
 		if ((snmp_client.chost = malloc(1 + sizeof(DEFAULT_LOCAL)))
 		    == NULL) {
-			seterr("%s", strerror(errno));
+			seterr(&snmp_client, "%s", strerror(errno));
 			return (-1);
 		}
 		strcpy(snmp_client.chost, DEFAULT_LOCAL);
 	}
 	if (path != NULL) {
 		if ((ptr = malloc(1 + strlen(path))) == NULL) {
-			seterr("%s", strerror(errno));
+			seterr(&snmp_client, "%s", strerror(errno));
 			return (-1);
 		}
 		free(snmp_client.chost);
@@ -965,7 +984,7 @@
 		stype = SOCK_STREAM;
 
 	if ((snmp_client.fd = socket(PF_LOCAL, stype, 0)) == -1) {
-		seterr("%s", strerror(errno));
+		seterr(&snmp_client, "%s", strerror(errno));
 		return (-1);
 	}
 
@@ -973,7 +992,7 @@
 	    "%s", SNMP_LOCAL_PATH);
 
 	if (mktemp(snmp_client.local_path) == NULL) {
-		seterr("%s", strerror(errno));
+		seterr(&snmp_client, "%s", strerror(errno));
 		(void)close(snmp_client.fd);
 		snmp_client.fd = -1;
 		return (-1);
@@ -984,7 +1003,7 @@
 	strcpy(sa.sun_path, snmp_client.local_path);
 
 	if (bind(snmp_client.fd, (struct sockaddr *)&sa, sizeof(sa)) == -1) {
-		seterr("%s", strerror(errno));
+		seterr(&snmp_client, "%s", strerror(errno));
 		(void)close(snmp_client.fd);
 		snmp_client.fd = -1;
 		(void)remove(snmp_client.local_path);
@@ -999,7 +1018,7 @@
 	sa.sun_path[sizeof(sa.sun_path) - 1] = '\0';
 
 	if (connect(snmp_client.fd, (struct sockaddr *)&sa, sa.sun_len) == -1) {
-		seterr("%s", strerror(errno));
+		seterr(&snmp_client, "%s", strerror(errno));
 		(void)close(snmp_client.fd);
 		snmp_client.fd = -1;
 		(void)remove(snmp_client.local_path);
@@ -1020,7 +1039,7 @@
 	/* still open ? */
 	if (snmp_client.fd != -1) {
 		errno = EBUSY;
-		seterr("%s", strerror(errno));
+		seterr(&snmp_client, "%s", strerror(errno));
 		return (-1);
 	}
 
@@ -1046,14 +1065,14 @@
 		break;
 
 	  default:
-		seterr("bad transport mapping");
+		seterr(&snmp_client, "bad transport mapping");
 		return (-1);
 	}
 	tout.tv_sec = 0;
 	tout.tv_usec = 0;
 	if (setsockopt(snmp_client.fd, SOL_SOCKET, SO_SNDTIMEO,
 	    &tout, sizeof(struct timeval)) == -1) {
-		seterr("%s", strerror(errno));
+		seterr(&snmp_client, "%s", strerror(errno));
 		(void)close(snmp_client.fd);
 		snmp_client.fd = -1;
 		if (snmp_client.local_path[0] != '\0')
@@ -1175,7 +1194,7 @@
         ssize_t ret;
  
 	if ((buf = malloc(snmp_client.txbuflen)) == NULL) {
-		seterr("%s", strerror(errno));
+		seterr(&snmp_client, "%s", strerror(errno));
 		return (-1);
 	}
 
@@ -1184,7 +1203,7 @@
         b.asn_ptr = buf; 
         b.asn_len = snmp_client.txbuflen;
         if (snmp_pdu_encode(pdu, &b)) {
-		seterr("%s", strerror(errno));
+		seterr(&snmp_client, "%s", strerror(errno));
 		free(buf);
 		return (-1);
 	}
@@ -1193,7 +1212,7 @@
                 snmp_pdu_dump(pdu);
 
         if ((ret = send(snmp_client.fd, buf, b.asn_ptr - buf, 0)) == -1) {
-		seterr("%s", strerror(errno));
+		seterr(&snmp_client, "%s", strerror(errno));
 		free(buf);
                 return (-1);
 	}
@@ -1238,7 +1257,7 @@
 	int32_t id;
 
 	if ((listentry = malloc(sizeof(struct sent_pdu))) == NULL) {
-		seterr("%s", strerror(errno));
+		seterr(&snmp_client, "%s", strerror(errno));
 		return (-1);
 	}
 
@@ -1296,7 +1315,7 @@
 #endif
 
 	if ((buf = malloc(snmp_client.rxbuflen)) == NULL) {
-		seterr("%s", strerror(errno));
+		seterr(&snmp_client, "%s", strerror(errno));
 		return (-1);
 	}
 	dopoll = setpoll = 0;
@@ -1307,14 +1326,16 @@
 			/* wait with timeout */
 			if (setsockopt(snmp_client.fd, SOL_SOCKET, SO_RCVTIMEO,
 			    tv, sizeof(*tv)) == -1) {
-				seterr("setsockopt: %s", strerror(errno));
+				seterr(&snmp_client, "setsockopt: %s",
+				    strerror(errno));
 				free(buf);
 				return (-1);
 			}
 			optlen = sizeof(*tv);
 			if (getsockopt(snmp_client.fd, SOL_SOCKET, SO_RCVTIMEO,
 			    tv, &optlen) == -1) {
-				seterr("getsockopt: %s", strerror(errno));
+				seterr(&snmp_client, "getsockopt: %s",
+				    strerror(errno));
 				free(buf);
 				return (-1);
 			}
@@ -1330,7 +1351,8 @@
 			/* poll */
 			dopoll = 1;
 			if ((flags = fcntl(snmp_client.fd, F_GETFL, 0)) == -1) {
-				seterr("fcntl: %s", strerror(errno));
+				seterr(&snmp_client, "fcntl: %s",
+				    strerror(errno));
 				free(buf);
 				return (-1);
 			}
@@ -1338,7 +1360,8 @@
 				setpoll = 1;
 				flags |= O_NONBLOCK;
 				if (fcntl(snmp_client.fd, F_SETFL, flags) == -1) {
-					seterr("fcntl: %s", strerror(errno));
+					seterr(&snmp_client, "fcntl: %s",
+					    strerror(errno));
 					free(buf);
 					return (-1);
 				}
@@ -1364,14 +1387,14 @@
 		free(buf);
 		if (errno == EAGAIN || errno == EWOULDBLOCK)
 			return (0);
-		seterr("recv: %s", strerror(saved_errno));
+		seterr(&snmp_client, "recv: %s", strerror(saved_errno));
 		return (-1);
 	}
 	if (ret == 0) {
 		/* this happens when we have a streaming socket and the
 		 * remote side has closed it */
 		free(buf);
-		seterr("recv: socket closed by peer");
+		seterr(&snmp_client, "recv: socket closed by peer");
 		errno = EPIPE;
 		return (-1);
 	}
@@ -1380,7 +1403,7 @@
 	abuf.asn_len = ret;
 
 	if (SNMP_CODE_OK != (ret = snmp_pdu_decode(&abuf, pdu, &ip))) {
-		seterr("snmp_decode_pdu: failed %d", ret);
+		seterr(&snmp_client, "snmp_decode_pdu: failed %d", ret);
 		free(buf);
 		return (-1);
 	}
@@ -1428,7 +1451,7 @@
 
 	resp = malloc(sizeof(struct snmp_pdu));
 	if (resp == NULL) {
-		seterr("no memory for returning PDU");
+		seterr(&snmp_client, "no memory for returning PDU");
 		return (-1) ;
 	}
 
@@ -1614,11 +1637,23 @@
 	int ret;
         struct timeval tv = snmp_client.timeout;
 	struct timeval end;
+	struct snmp_pdu pdu;
 
+	/*
+	 * Make a copy of the request and replace the syntaxes by NULL
+	 * if this is a GET,GETNEXT or GETBULK.
+	 */
+	pdu = *req;
+	if (pdu.type == SNMP_PDU_GET || pdu.type == SNMP_PDU_GETNEXT ||
+	    pdu.type == SNMP_PDU_GETBULK) {
+		for (i = 0; i < pdu.nbindings; i++)
+			pdu.bindings[i].syntax = SNMP_SYNTAX_NULL;
+	}
+	
         for (i = 0; i <= snmp_client.retries; i++) {
 		(void)gettimeofday(&end, NULL);
 		timeradd(&end, &snmp_client.timeout, &end);
-                if ((reqid = snmp_send_packet(req)) == -1)
+                if ((reqid = snmp_send_packet(&pdu)) == -1)
 			return (-1);
 		for (;;) {
 			(void)gettimeofday(&tv, NULL);
@@ -1641,7 +1676,7 @@
 		}
         }
 	errno = ETIMEDOUT;
-	seterr("retry count exceeded");
+	seterr(&snmp_client, "retry count exceeded");
         return (-1);
 }
 
@@ -1684,3 +1719,102 @@
 	}
 	return (0);
 }
+
+/*
+ * parse a server specification
+ *
+ * [trans::][community@][server][:port]
+ */
+int
+snmp_parse_server(struct snmp_client *sc, const char *str)
+{
+	const char *p, *s = str;
+
+	/* look for a double colon */
+	for (p = s; *p != '\0'; p++) {
+		if (*p == '\\' && p[1] != '\0') {
+			p++;
+			continue;
+		}
+		if (*p == ':' && p[1] == ':')
+			break;
+	}
+	if (*p != '\0') {
+		if (p > s) {
+			if (p - s == 3 && strncmp(s, "udp", 3) == 0)
+				sc->trans = SNMP_TRANS_UDP;
+			else if (p - s == 6 && strncmp(s, "stream", 6) == 0)
+				sc->trans = SNMP_TRANS_LOC_STREAM;
+			else if (p - s == 5 && strncmp(s, "dgram", 5) == 0)
+				sc->trans = SNMP_TRANS_LOC_DGRAM;
+			else {
+				seterr(sc, "unknown SNMP transport '%.*s'",
+				    (int)(p - s), s);
+				return (-1);
+			}
+		}
+		s = p + 2;
+	}
+
+	/* look for a @ */
+	for (p = s; *p != '\0'; p++) {
+		if (*p == '\\' && p[1] != '\0') {
+			p++;
+			continue;
+		}
+		if (*p == '@')
+			break;
+	}
+
+	if (*p != '\0') {
+		if (p - s > SNMP_COMMUNITY_MAXLEN) {
+			seterr(sc, "community string too long");

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list