PERFORCE change 174216 for review
Alexander Motin
mav at FreeBSD.org
Wed Feb 3 10:21:34 UTC 2010
http://p4web.freebsd.org/chv.cgi?CH=174216
Change 174216 by mav at mav_mavbook on 2010/02/03 10:20:37
IFC
Affected files ...
.. //depot/projects/scottl-camlock/src/gnu/usr.bin/binutils/Makefile.inc#2 integrate
.. //depot/projects/scottl-camlock/src/lib/libc/gen/rand48.3#2 integrate
.. //depot/projects/scottl-camlock/src/lib/libc/string/strndup.c#2 integrate
.. //depot/projects/scottl-camlock/src/lib/libpam/modules/pam_unix/pam_unix.c#3 integrate
.. //depot/projects/scottl-camlock/src/sbin/camcontrol/camcontrol.c#38 integrate
.. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.c#38 integrate
.. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#50 integrate
.. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#33 integrate
.. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#80 integrate
.. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#150 integrate
.. //depot/projects/scottl-camlock/src/sys/geom/geom_redboot.c#3 integrate
.. //depot/projects/scottl-camlock/src/sys/geom/virstor/g_virstor.c#4 integrate
.. //depot/projects/scottl-camlock/src/sys/kern/kern_shutdown.c#21 integrate
.. //depot/projects/scottl-camlock/src/sys/kern/kern_umtx.c#22 integrate
.. //depot/projects/scottl-camlock/src/sys/kern/vfs_lookup.c#22 integrate
.. //depot/projects/scottl-camlock/src/sys/mips/include/proc.h#3 integrate
.. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_adhoc.c#5 integrate
.. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_hostap.c#7 integrate
.. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_ioctl.h#17 integrate
.. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_mesh.c#8 integrate
.. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_sta.c#8 integrate
.. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_wds.c#6 integrate
.. //depot/projects/scottl-camlock/src/sys/netinet/in.c#31 integrate
.. //depot/projects/scottl-camlock/src/sys/sys/ata.h#23 integrate
.. //depot/projects/scottl-camlock/src/usr.sbin/rtsold/rtsold.c#4 integrate
Differences ...
==== //depot/projects/scottl-camlock/src/gnu/usr.bin/binutils/Makefile.inc#2 (text+ko) ====
@@ -1,9 +1,5 @@
-# $FreeBSD: src/gnu/usr.bin/binutils/Makefile.inc,v 1.9 2006/09/12 19:24:01 obrien Exp $
+# $FreeBSD: src/gnu/usr.bin/binutils/Makefile.inc,v 1.10 2010/02/03 02:39:08 imp Exp $
-.if (${TARGET_ARCH} == "alpha")
-WARNS?= 2
-.else
WARNS?= 3
-.endif
.include "../Makefile.inc"
==== //depot/projects/scottl-camlock/src/lib/libc/gen/rand48.3#2 (text+ko) ====
@@ -10,9 +10,9 @@
.\" to anyone/anything when using this software.
.\"
.\" @(#)rand48.3 V1.0 MB 8 Oct 1993
-.\" $FreeBSD: src/lib/libc/gen/rand48.3,v 1.17 2005/01/20 09:17:02 ru Exp $
+.\" $FreeBSD: src/lib/libc/gen/rand48.3,v 1.19 2010/02/02 19:44:51 gavin Exp $
.\"
-.Dd October 8, 1993
+.Dd February 2, 2010
.Dt RAND48 3
.Os
.Sh NAME
@@ -57,7 +57,7 @@
particular formula employed is
r(n+1) = (a * r(n) + c) mod m
where the default values are
-for the multiplicand a = 0xfdeece66d = 25214903917 and
+for the multiplicand a = 0x5deece66d = 25214903917 and
the addend c = 0xb = 11.
The modulo is always fixed at m = 2 ** 48.
r(n) is called the seed of the random number generator.
==== //depot/projects/scottl-camlock/src/lib/libc/string/strndup.c#2 (text+ko) ====
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libc/string/strndup.c,v 1.1 2008/12/06 09:37:54 kib Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/string/strndup.c,v 1.2 2010/02/02 19:02:08 ed Exp $");
#include <stddef.h>
#include <stdlib.h>
@@ -42,9 +42,7 @@
size_t len;
char *copy;
- for (len = 0; len < n && str[len]; len++)
- continue;
-
+ len = strnlen(str, n);
if ((copy = malloc(len + 1)) == NULL)
return (NULL);
memcpy(copy, str, len);
==== //depot/projects/scottl-camlock/src/lib/libpam/modules/pam_unix/pam_unix.c#3 (text+ko) ====
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_unix/pam_unix.c,v 1.53 2007/12/21 12:00:16 des Exp $");
+__FBSDID("$FreeBSD: src/lib/libpam/modules/pam_unix/pam_unix.c,v 1.54 2010/02/02 13:47:18 des Exp $");
#include <sys/param.h>
#include <sys/socket.h>
@@ -271,10 +271,11 @@
const void *yp_domain, *yp_server;
#endif
char salt[SALTSIZE + 1];
- login_cap_t * lc;
+ login_cap_t *lc;
struct passwd *pwd, *old_pwd;
const char *user, *old_pass, *new_pass;
char *encrypted;
+ time_t passwordtime;
int pfd, tfd, retval;
if (openpam_get_option(pamh, PAM_OPT_AUTH_AS_SELF))
@@ -377,11 +378,17 @@
if ((old_pwd = pw_dup(pwd)) == NULL)
return (PAM_BUF_ERR);
- pwd->pw_change = 0;
lc = login_getclass(pwd->pw_class);
if (login_setcryptfmt(lc, password_hash, NULL) == NULL)
openpam_log(PAM_LOG_ERROR,
"can't set password cipher, relying on default");
+
+ /* set password expiry date */
+ pwd->pw_change = 0;
+ passwordtime = login_getcaptime(lc, "passwordtime", 0, 0);
+ if (passwordtime > 0)
+ pwd->pw_change = time(NULL) + passwordtime;
+
login_close(lc);
makesalt(salt);
pwd->pw_passwd = crypt(new_pass, salt);
==== //depot/projects/scottl-camlock/src/sbin/camcontrol/camcontrol.c#38 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sbin/camcontrol/camcontrol.c,v 1.72 2010/01/20 13:31:12 mav Exp $");
+__FBSDID("$FreeBSD: src/sbin/camcontrol/camcontrol.c,v 1.73 2010/02/02 11:09:28 mav Exp $");
#include <sys/ioctl.h>
#include <sys/stdint.h>
==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.c#38 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/ata/ata_all.c,v 1.13 2010/01/28 08:41:30 mav Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/ata/ata_all.c,v 1.14 2010/02/03 10:06:03 mav Exp $");
#include <sys/param.h>
==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#50 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.15 2010/01/28 08:41:30 mav Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.16 2010/02/02 18:03:21 mav Exp $");
#include <sys/param.h>
==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#33 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/ata/ata_pmp.c,v 1.6 2010/01/28 08:41:30 mav Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/ata/ata_pmp.c,v 1.7 2010/02/02 18:03:21 mav Exp $");
#include <sys/param.h>
==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#80 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.21 2010/02/02 11:09:28 mav Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.23 2010/02/03 10:06:03 mav Exp $");
#include <sys/param.h>
#include <sys/bus.h>
==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#150 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.237 2010/01/28 08:41:30 mav Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.240 2010/02/03 08:42:08 mav Exp $");
#include <sys/param.h>
#include <sys/bus.h>
==== //depot/projects/scottl-camlock/src/sys/geom/geom_redboot.c#3 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/geom/geom_redboot.c,v 1.3 2009/06/24 06:42:13 jhay Exp $");
+__FBSDID("$FreeBSD: src/sys/geom/geom_redboot.c,v 1.4 2010/02/03 01:12:19 gonzo Exp $");
#include <sys/param.h>
#include <sys/errno.h>
@@ -252,7 +252,8 @@
if (!strcmp(pp->geom->class->name, REDBOOT_CLASS_NAME))
return (NULL);
/* XXX only taste flash providers */
- if (strncmp(pp->name, "cfi", 3))
+ if (strncmp(pp->name, "cfi", 3) &&
+ strncmp(pp->name, "flash/spi", 9))
return (NULL);
gp = g_slice_new(mp, REDBOOT_MAXSLICE, pp, &cp, &sc, sizeof(*sc),
g_redboot_start);
==== //depot/projects/scottl-camlock/src/sys/geom/virstor/g_virstor.c#4 (text+ko) ====
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/geom/virstor/g_virstor.c,v 1.5 2010/01/25 20:51:40 ivoras Exp $");
+__FBSDID("$FreeBSD: src/sys/geom/virstor/g_virstor.c,v 1.6 2010/02/02 22:25:22 delphij Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -311,6 +311,11 @@
snprintf(aname, sizeof aname, "arg%d", i);
prov_name = gctl_get_asciiparam(req, aname);
+ if (prov_name == NULL) {
+ gctl_error(req, "Error fetching argument '%s'", aname);
+ g_topology_unlock();
+ return;
+ }
if (strncmp(prov_name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
prov_name += strlen(_PATH_DEV);
@@ -565,6 +570,10 @@
sprintf(param, "arg%d", i);
prov_name = gctl_get_asciiparam(req, param);
+ if (prov_name == NULL) {
+ gctl_error(req, "Error fetching argument '%s'", param);
+ return;
+ }
if (strncmp(prov_name, _PATH_DEV, strlen(_PATH_DEV)) == 0)
prov_name += strlen(_PATH_DEV);
==== //depot/projects/scottl-camlock/src/sys/kern/kern_shutdown.c#21 (text+ko) ====
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_shutdown.c,v 1.201 2009/10/23 15:09:51 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_shutdown.c,v 1.202 2010/02/03 08:42:08 mav Exp $");
#include "opt_ddb.h"
#include "opt_kdb.h"
==== //depot/projects/scottl-camlock/src/sys/kern/kern_umtx.c#22 (text+ko) ====
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_umtx.c,v 1.79 2010/01/10 09:31:57 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_umtx.c,v 1.81 2010/02/03 07:21:20 davidxu Exp $");
#include "opt_compat.h"
#include <sys/param.h>
@@ -2526,6 +2526,12 @@
umtxq_busy(&uq->uq_key);
umtxq_unlock(&uq->uq_key);
+ /*
+ * re-read the state, in case it changed between the try-lock above
+ * and the check below
+ */
+ state = fuword32(__DEVOLATILE(int32_t *, &rwlock->rw_state));
+
/* set read contention bit */
while ((state & wrflags) && !(state & URWLOCK_READ_WAITERS)) {
oldstate = casuword32(&rwlock->rw_state, state, state | URWLOCK_READ_WAITERS);
@@ -2658,6 +2664,12 @@
umtxq_busy(&uq->uq_key);
umtxq_unlock(&uq->uq_key);
+ /*
+ * re-read the state, in case it changed between the try-lock above
+ * and the check below
+ */
+ state = fuword32(__DEVOLATILE(int32_t *, &rwlock->rw_state));
+
while (((state & URWLOCK_WRITE_OWNER) || URWLOCK_READER_COUNT(state) != 0) &&
(state & URWLOCK_WRITE_WAITERS) == 0) {
oldstate = casuword32(&rwlock->rw_state, state, state | URWLOCK_WRITE_WAITERS);
@@ -2852,8 +2864,7 @@
}
/*
- * The magic thing is we should set c_has_waiters to 1 before
- * releasing user mutex.
+ * set waiters byte and sleep.
*/
suword32(__DEVOLATILE(uint32_t *, &sem->_has_waiters), 1);
==== //depot/projects/scottl-camlock/src/sys/kern/vfs_lookup.c#22 (text+ko) ====
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/vfs_lookup.c,v 1.133 2009/11/10 11:50:37 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/vfs_lookup.c,v 1.134 2010/02/02 23:10:27 rwatson Exp $");
#include "opt_kdtrace.h"
#include "opt_ktrace.h"
@@ -162,11 +162,16 @@
error = copyinstr(ndp->ni_dirp, cnp->cn_pnbuf,
MAXPATHLEN, (size_t *)&ndp->ni_pathlen);
- /* If we are auditing the kernel pathname, save the user pathname. */
- if (cnp->cn_flags & AUDITVNODE1)
- AUDIT_ARG_UPATH1(td, cnp->cn_pnbuf);
- if (cnp->cn_flags & AUDITVNODE2)
- AUDIT_ARG_UPATH2(td, cnp->cn_pnbuf);
+ if (error == 0) {
+ /*
+ * If we are auditing the kernel pathname, save the user
+ * pathname.
+ */
+ if (cnp->cn_flags & AUDITVNODE1)
+ AUDIT_ARG_UPATH1(td, cnp->cn_pnbuf);
+ if (cnp->cn_flags & AUDITVNODE2)
+ AUDIT_ARG_UPATH2(td, cnp->cn_pnbuf);
+ }
/*
* Don't allow empty pathnames.
==== //depot/projects/scottl-camlock/src/sys/mips/include/proc.h#3 (text+ko) ====
@@ -33,7 +33,7 @@
*
* @(#)proc.h 8.1 (Berkeley) 6/10/93
* JNPR: proc.h,v 1.7.2.1 2007/09/10 06:25:24 girish
- * $FreeBSD: src/sys/mips/include/proc.h,v 1.2 2010/01/10 19:50:24 imp Exp $
+ * $FreeBSD: src/sys/mips/include/proc.h,v 1.3 2010/02/03 04:09:36 neel Exp $
*/
#ifndef _MACHINE_PROC_H_
@@ -44,7 +44,7 @@
*/
struct mdthread {
int md_flags; /* machine-dependent flags */
- int md_upte[KSTACK_PAGES]; /* ptes for mapping u pcb */
+ int md_upte[KSTACK_PAGES - 1]; /* ptes for mapping u pcb */
int md_ss_addr; /* single step address for ptrace */
int md_ss_instr; /* single step instruction for ptrace */
register_t md_saved_intr;
==== //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_adhoc.c#5 (text+ko) ====
@@ -25,7 +25,7 @@
#include <sys/cdefs.h>
#ifdef __FreeBSD__
-__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_adhoc.c,v 1.17 2009/07/05 17:59:19 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_adhoc.c,v 1.18 2010/02/03 10:07:43 rpaulo Exp $");
#endif
/*
@@ -293,7 +293,7 @@
struct ieee80211_frame *wh;
struct ieee80211_key *key;
struct ether_header *eh;
- int hdrspace, need_tap;
+ int hdrspace, need_tap = 1; /* mbuf need to be tapped. */
uint8_t dir, type, subtype, qos;
uint8_t *bssid;
uint16_t rxseq;
@@ -318,7 +318,6 @@
KASSERT(ni != NULL, ("null node"));
ni->ni_inact = ni->ni_inact_reload;
- need_tap = 1; /* mbuf need to be tapped. */
type = -1; /* undefined */
if (m->m_pkthdr.len < sizeof(struct ieee80211_frame_min)) {
==== //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_hostap.c#7 (text+ko) ====
@@ -25,7 +25,7 @@
#include <sys/cdefs.h>
#ifdef __FreeBSD__
-__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_hostap.c,v 1.28 2009/12/08 00:54:08 rpaulo Exp $");
+__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_hostap.c,v 1.29 2010/02/03 10:07:43 rpaulo Exp $");
#endif
/*
@@ -480,7 +480,7 @@
struct ieee80211_frame *wh;
struct ieee80211_key *key;
struct ether_header *eh;
- int hdrspace, need_tap;
+ int hdrspace, need_tap = 1; /* mbuf need to be tapped. */
uint8_t dir, type, subtype, qos;
uint8_t *bssid;
uint16_t rxseq;
@@ -505,7 +505,6 @@
KASSERT(ni != NULL, ("null node"));
ni->ni_inact = ni->ni_inact_reload;
- need_tap = 1; /* mbuf need to be tapped. */
type = -1; /* undefined */
if (m->m_pkthdr.len < sizeof(struct ieee80211_frame_min)) {
==== //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_ioctl.h#17 (text+ko) ====
@@ -23,7 +23,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/net80211/ieee80211_ioctl.h,v 1.42 2009/11/09 11:23:37 rpaulo Exp $
+ * $FreeBSD: src/sys/net80211/ieee80211_ioctl.h,v 1.43 2010/02/03 10:07:43 rpaulo Exp $
*/
#ifndef _NET80211_IEEE80211_IOCTL_H_
#define _NET80211_IEEE80211_IOCTL_H_
@@ -334,12 +334,12 @@
};
struct ieee80211req_mesh_route {
+ uint8_t imr_dest[IEEE80211_ADDR_LEN];
+ uint8_t imr_nexthop[IEEE80211_ADDR_LEN];
+ uint16_t imr_nhops;
uint8_t imr_flags;
#define IEEE80211_MESHRT_FLAGS_VALID 0x01
#define IEEE80211_MESHRT_FLAGS_PROXY 0x02
- uint8_t imr_dest[IEEE80211_ADDR_LEN];
- uint8_t imr_nexthop[IEEE80211_ADDR_LEN];
- uint16_t imr_nhops;
uint8_t imr_pad;
uint32_t imr_metric;
uint32_t imr_lifetime;
==== //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_mesh.c#8 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
#ifdef __FreeBSD__
-__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_mesh.c,v 1.13 2010/01/14 19:23:41 rpaulo Exp $");
+__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_mesh.c,v 1.14 2010/02/03 10:12:49 rpaulo Exp $");
#endif
/*
@@ -1468,11 +1468,12 @@
if (xrates != NULL)
IEEE80211_VERIFY_ELEMENT(xrates,
IEEE80211_RATE_MAXSIZE - rates[1], return);
- if (meshid != NULL)
+ if (meshid != NULL) {
IEEE80211_VERIFY_ELEMENT(meshid,
IEEE80211_MESHID_LEN, return);
- /* NB: meshid, not ssid */
- IEEE80211_VERIFY_SSID(vap->iv_bss, meshid, return);
+ /* NB: meshid, not ssid */
+ IEEE80211_VERIFY_SSID(vap->iv_bss, meshid, return);
+ }
/* XXX find a better class or define it's own */
IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_INPUT, wh->i_addr2,
==== //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_sta.c#8 (text+ko) ====
@@ -25,7 +25,7 @@
#include <sys/cdefs.h>
#ifdef __FreeBSD__
-__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_sta.c,v 1.28 2010/01/25 12:23:51 rpaulo Exp $");
+__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_sta.c,v 1.29 2010/02/03 10:07:43 rpaulo Exp $");
#endif
/*
@@ -517,7 +517,7 @@
struct ieee80211_frame *wh;
struct ieee80211_key *key;
struct ether_header *eh;
- int hdrspace, need_tap;
+ int hdrspace, need_tap = 1; /* mbuf need to be tapped. */
uint8_t dir, type, subtype, qos;
uint8_t *bssid;
uint16_t rxseq;
@@ -542,7 +542,6 @@
KASSERT(ni != NULL, ("null node"));
ni->ni_inact = ni->ni_inact_reload;
- need_tap = 1; /* mbuf need to be tapped. */
type = -1; /* undefined */
if (m->m_pkthdr.len < sizeof(struct ieee80211_frame_min)) {
==== //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_wds.c#6 (text+ko) ====
@@ -25,7 +25,7 @@
#include <sys/cdefs.h>
#ifdef __FreeBSD__
-__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_wds.c,v 1.15 2009/07/05 18:17:37 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/net80211/ieee80211_wds.c,v 1.16 2010/02/03 10:07:43 rpaulo Exp $");
#endif
/*
@@ -414,7 +414,7 @@
struct ieee80211_frame *wh;
struct ieee80211_key *key;
struct ether_header *eh;
- int hdrspace, need_tap;
+ int hdrspace, need_tap = 1; /* mbuf need to be tapped. */
uint8_t dir, type, subtype, qos;
uint16_t rxseq;
@@ -437,7 +437,6 @@
KASSERT(ni != NULL, ("null node"));
- need_tap = 1; /* mbuf need to be tapped. */
type = -1; /* undefined */
if (m->m_pkthdr.len < sizeof(struct ieee80211_frame_min)) {
==== //depot/projects/scottl-camlock/src/sys/netinet/in.c#31 (text+ko) ====
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/netinet/in.c,v 1.156 2010/01/08 17:49:24 qingli Exp $");
+__FBSDID("$FreeBSD: src/sys/netinet/in.c,v 1.157 2010/02/02 20:38:30 qingli Exp $");
#include "opt_carp.h"
@@ -921,6 +921,12 @@
if (ia->ia_addr.sin_addr.s_addr == INADDR_ANY)
return (0);
+ if (ifp->if_flags & IFF_POINTOPOINT) {
+ if (ia->ia_dstaddr.sin_addr.s_addr == ia->ia_addr.sin_addr.s_addr)
+ return (0);
+ }
+
+
/*
* add a loopback route to self
*/
==== //depot/projects/scottl-camlock/src/sys/sys/ata.h#23 (text+ko) ====
@@ -23,7 +23,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/sys/ata.h,v 1.48 2009/12/28 20:08:01 mav Exp $
+ * $FreeBSD: src/sys/sys/ata.h,v 1.49 2010/02/03 10:06:03 mav Exp $
*/
#ifndef _SYS_ATA_H_
==== //depot/projects/scottl-camlock/src/usr.sbin/rtsold/rtsold.c#4 (text+ko) ====
@@ -28,20 +28,25 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/usr.sbin/rtsold/rtsold.c,v 1.24 2009/09/12 22:14:58 hrs Exp $
+ * $FreeBSD: src/usr.sbin/rtsold/rtsold.c,v 1.26 2010/02/02 18:38:17 ume Exp $
*/
#include <sys/types.h>
+#include <sys/ioctl.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <sys/param.h>
#include <net/if.h>
#include <net/if_dl.h>
+#include <net/if_var.h>
#include <netinet/in.h>
#include <netinet/icmp6.h>
+#include <netinet/in_var.h>
+#include <netinet6/nd6.h>
+
#include <signal.h>
#include <unistd.h>
#include <syslog.h>
@@ -785,8 +790,9 @@
static char **argv = NULL;
static int n = 0;
char **a;
- int i, found;
+ int s, i, found;
struct ifaddrs *ifap, *ifa, *target;
+ struct in6_ndireq nd;
/* initialize */
while (n--)
@@ -800,6 +806,11 @@
if (getifaddrs(&ifap) != 0)
return NULL;
+ if (!Fflag && (s = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) {
+ err(1, "socket");
+ /* NOTREACHED */
+ }
+
target = NULL;
/* find an ethernet */
for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
@@ -825,6 +836,23 @@
if (found)
continue;
+ /*
+ * Skip the interfaces which IPv6 and/or accepting RA
+ * is disabled.
+ */
+ if (!Fflag) {
+ memset(&nd, 0, sizeof(nd));
+ strlcpy(nd.ifname, ifa->ifa_name, sizeof(nd.ifname));
+ if (ioctl(s, SIOCGIFINFO_IN6, (caddr_t)&nd) < 0) {
+ err(1, "ioctl(SIOCGIFINFO_IN6)");
+ /* NOTREACHED */
+ }
+ if ((nd.ndi.flags & ND6_IFF_IFDISABLED))
+ continue;
+ if (!(nd.ndi.flags & ND6_IFF_ACCEPT_RTADV))
+ continue;
+ }
+
/* if we find multiple candidates, just warn. */
if (n != 0 && dflag > 1)
warnx("multiple interfaces found");
@@ -837,7 +865,6 @@
if (!argv[n])
err(1, "malloc");
n++;
- argv[n] = NULL;
}
if (n) {
@@ -852,6 +879,8 @@
warnx("probing %s", argv[i]);
}
}
+ if (!Fflag)
+ close(s);
freeifaddrs(ifap);
return argv;
}
More information about the p4-projects
mailing list