
Received: from gateway0.EECS.Berkeley.EDU (gateway0.EECS.Berkeley.EDU [169.229.60.93]) by webbie.berkeley.intel-research.net (8.11.6/8.11.6) with ESMTP id j7NJLGV32426 for <dtn-users@mailman.dtnrg.org>; Tue, 23 Aug 2005 12:21:16 -0700
Received: from frontier.cs.berkeley.edu (frontier.CS.Berkeley.EDU [128.32.37.187]) (authenticated bits=0) by gateway0.EECS.Berkeley.EDU (8.13.4/8.13.3) with ESMTP id j7NJLGNu006051 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT) for <dtn-users@mailman.dtnrg.org>; Tue, 23 Aug 2005 12:21:16 -0700 (PDT)
Received: by frontier.cs.berkeley.edu (Postfix, from userid 12812) id F195B194FB; Tue, 23 Aug 2005 12:20:31 -0700 (PDT)
Date: Tue, 23 Aug 2005 12:20:31 -0700
From: Bowei Du <bowei@cs.berkeley.edu>
To: dtn-users@mailman.dtnrg.org
Subject: Re: [dtn-users] Timers
Message-ID: <20050823192031.GA14864@frontier.cs.berkeley.edu>
References: <90FD5793-005F-4556-B048-B2380A3E6883@virgin.net> <1124822960.430b6fb009aa8@portal.student.luth.se>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <1124822960.430b6fb009aa8@portal.student.luth.se>
User-Agent: Mutt/1.5.6+20040907i
Sender: dtn-users-admin@mailman.dtnrg.org
Errors-To: dtn-users-admin@mailman.dtnrg.org
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.0.13
Precedence: bulk
Reply-To: dtn-users@mailman.dtnrg.org
List-Unsubscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Id: discussion/answers list for users of the dtn reference implementation <dtn-users.mailman.dtnrg.org>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
List-Archive: <http://mailman.dtnrg.org/pipermail/dtn-users/>

Hi Isidro,

Try looking at servlib/bundling/ExpirationTimer.cc|h for an example of
a class using the oasys::Timer object. Override the timeout() method
to modify how the timer behaves when it times out and use the
schedule_at() method to schedule the timer. For an example on how
ExpirationTimer is used, look at servlib/bundling/BundleDaemon.cc|h
around lines 508.

Bowei

On Tue, Aug 23, 2005 at 08:49:20PM +0200, Isidro Nistal Garrido wrote:
> hello
> 
> I would like to use one timer to resend bundles in the DTN2 code, I am trying to
> use the one that is implemented in oasys "thread/timer.h" but I don't know how
> to create it or to assign events to it, could you tell me some place in the code
> where a Timer is used (I havent found any) or some advices about how to schedule
> a timer that ,if is not cancelled, when it finish resend the bundles from a
> BundleList
> 
> Thanks 
> 
> Isidro Nistal Garrido
> Spanish Exchange Student in Luleå
> Tfn: +46 730 583 165
> 
> _______________________________________________
> dtn-users mailing list
> dtn-users@mailman.dtnrg.org
> http://mailman.dtnrg.org/mailman/listinfo/dtn-users


Received: from gepetto.dc.ltu.se (gepetto.dc.ltu.se [130.240.42.40]) by webbie.berkeley.intel-research.net (8.11.6/8.11.6) with ESMTP id j7NInMV32195 for <dtn-users@mailman.dtnrg.org>; Tue, 23 Aug 2005 11:49:23 -0700
Received: from localhost (wc-special5.dc.ltu.se [130.240.42.175]) by gepetto.dc.ltu.se (8.12.5/8.12.5) with ESMTP id j7NInKDT017437 for <dtn-users@mailman.dtnrg.org>; Tue, 23 Aug 2005 20:49:20 +0200 (MEST)
Received: from 130.240.42.170 ( [130.240.42.170]) as user isinis-4@imaphost.student.ltu.se by portal.student.luth.se with HTTP; Tue, 23 Aug 2005 20:49:20 +0200
Message-ID: <1124822960.430b6fb009aa8@portal.student.luth.se>
Date: Tue, 23 Aug 2005 20:49:20 +0200
From: Isidro Nistal Garrido <isinis-4@student.ltu.se>
To: dtn-users@mailman.dtnrg.org
References: <90FD5793-005F-4556-B048-B2380A3E6883@virgin.net>
In-Reply-To: <90FD5793-005F-4556-B048-B2380A3E6883@virgin.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
User-Agent: Internet Messaging Program (IMP) 3.1
X-Originating-IP: 130.240.42.170
Subject: [dtn-users] Timers
Sender: dtn-users-admin@mailman.dtnrg.org
Errors-To: dtn-users-admin@mailman.dtnrg.org
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.0.13
Precedence: bulk
Reply-To: dtn-users@mailman.dtnrg.org
List-Unsubscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Id: discussion/answers list for users of the dtn reference implementation <dtn-users.mailman.dtnrg.org>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
List-Archive: <http://mailman.dtnrg.org/pipermail/dtn-users/>

hello

I would like to use one timer to resend bundles in the DTN2 code, I am trying to
use the one that is implemented in oasys "thread/timer.h" but I don't know how
to create it or to assign events to it, could you tell me some place in the code
where a Timer is used (I havent found any) or some advices about how to schedule
a timer that ,if is not cancelled, when it finish resend the bundles from a
BundleList

Thanks 

Isidro Nistal Garrido
Spanish Exchange Student in Luleå
Tfn: +46 730 583 165



Received: from pisco.CS.Berkeley.EDU (Debian-exim@pisco.CS.Berkeley.EDU [128.32.37.175]) by webbie.berkeley.intel-research.net (8.11.6/8.11.6) with ESMTP id j7IGwjV08827 for <dtn-users@mailman.dtnrg.org>; Thu, 18 Aug 2005 09:58:45 -0700
Received: from demmer by pisco.CS.Berkeley.EDU with local (Exim 4.50) id 1E5nmI-0005aY-5A for dtn-users@mailman.dtnrg.org; Thu, 18 Aug 2005 10:02:06 -0700
Date: Thu, 18 Aug 2005 10:02:06 -0700
From: Michael Demmer <demmer@cs.berkeley.edu>
To: dtn-users@mailman.dtnrg.org
Subject: Re: [dtn-users] Last cvs
Message-ID: <20050818170206.GC21272@pisco.cs.berkeley.edu>
References: <1123513235.42f77393be2a5@portal.student.luth.se>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1123513235.42f77393be2a5@portal.student.luth.se>
User-Agent: Mutt/1.5.9i
Sender: dtn-users-admin@mailman.dtnrg.org
Errors-To: dtn-users-admin@mailman.dtnrg.org
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.0.13
Precedence: bulk
Reply-To: dtn-users@mailman.dtnrg.org
List-Unsubscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Id: discussion/answers list for users of the dtn reference implementation <dtn-users.mailman.dtnrg.org>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
List-Archive: <http://mailman.dtnrg.org/pipermail/dtn-users/>

> Hello everybody and sorry for bother you so much,
> 
>  you told me like 2 weeks ago that there was somebody working on custody
> transfer, I have found in the last dtnsend appplication from cvs that feature
> implemented, but it doesn't work properly,could you tell me who is working on
> that so I can ask him some stuff, 

I believe you're confusing the state of the implementation. We do have
an individual working on custody transfer currently but it is not yet
completed and therefore not checked into the repository.

You may be noticing that some applications (dtnsend in particular)
allow the user to specify that custody transfer is requested, but the
dtnd implementation will silently ignore the request currently.

I expect that in a month or so we will announce a new major release
that includes updates to the latest version of the bundling spec as
fully as possible (including custody transfer).

-m


Received: from zproxy.gmail.com (zproxy.gmail.com [64.233.162.204]) by webbie.berkeley.intel-research.net (8.11.6/8.11.6) with ESMTP id j7FH0KV10202 for <dtn-users@mailman.dtnrg.org>; Mon, 15 Aug 2005 10:00:20 -0700
Received: by zproxy.gmail.com with SMTP id i1so776196nzh for <dtn-users@mailman.dtnrg.org>; Mon, 15 Aug 2005 10:00:14 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=MBvAxA3Khp5oG1sAcOEft5k20hmq2mxXH13KuT/3ftCyy3Tmn9p6MXVmNX9UHh+WKxDOq4Iz45z+ifQhTYlEsaLh3ofaW4eCO9jPW1T++cdb+/XUzldLv8Xstx+1fvhJD9Q7jPqwIN2hoILWppDW40viPq9Tegd2qBYqukx0VpE=
Received: by 10.36.37.12 with SMTP id k12mr2581665nzk; Mon, 15 Aug 2005 10:00:14 -0700 (PDT)
Received: by 10.36.38.19 with HTTP; Mon, 15 Aug 2005 10:00:14 -0700 (PDT)
Message-ID: <bccc8ac80508151000db9d901@mail.gmail.com>
Date: Mon, 15 Aug 2005 11:00:14 -0600
From: Jeff Allen <jeff.allen@gmail.com>
To: dtn-users@mailman.dtnrg.org, dtn-bugs@mailman.dtnrg.org
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by webbie.berkeley.intel-research.net id j7FH0KV10202
Subject: [dtn-users] dtn_bind now takes two args
Sender: dtn-users-admin@mailman.dtnrg.org
Errors-To: dtn-users-admin@mailman.dtnrg.org
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.0.13
Precedence: bulk
Reply-To: dtn-users@mailman.dtnrg.org
X-Reply-To: jra@nella.org
List-Unsubscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Id: discussion/answers list for users of the dtn reference implementation <dtn-users.mailman.dtnrg.org>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
List-Archive: <http://mailman.dtnrg.org/pipermail/dtn-users/>

I've just checked in some changes to make dtn_bind in the DTN API only
take two args instead of three.

THIS IS AN INCOMPATIBLE CHANGE, and you'll need to go edit any program
of yours that calls dtn_bind to remove the endpoint argument.

Mike asked me to do this a while ago when I pointed out that the regid
forms a unique key for the registration table and that the endpoint is
just a distraction.

  -jra


Received: from smtp-bedford-dr.mitre.org (smtp-bedford-dr-x.mitre.org [192.160.51.65]) by webbie.berkeley.intel-research.net (8.11.6/8.11.6) with ESMTP id j7ADx7V12602 for <dtn-users@mailman.dtnrg.org>; Wed, 10 Aug 2005 06:59:07 -0700
Received: from smtp-bedford-dr.mitre.org (localhost.localdomain [127.0.0.1]) by smtp-bedford-dr.mitre.org (8.11.6/8.11.6) with SMTP id j7ADx6127798 for <dtn-users@mailman.dtnrg.org>; Wed, 10 Aug 2005 09:59:06 -0400
Received: from smtp-bedford-dr.mitre.org (localhost.localdomain [127.0.0.1]) by smtp-bedford-dr.mitre.org (Postfix) with ESMTP id 189AF4F8D9 for <dtn-users@mailman.dtnrg.org>; Wed, 10 Aug 2005 09:59:06 -0400 (EDT)
Received: from imcfe2.MITRE.ORG (imcfe2.mitre.org [129.83.29.4]) by smtp-bedford-dr.mitre.org (8.11.6/8.11.6) with ESMTP id j7ADx5M27701; Wed, 10 Aug 2005 09:59:05 -0400
Received: from IMCSRV4.MITRE.ORG ([129.83.20.161]) by imcfe2.MITRE.ORG with Microsoft SMTPSVC(6.0.3790.211); Wed, 10 Aug 2005 09:59:04 -0400
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
X-MIMEOLE: Produced By Microsoft Exchange V6.5.7226.0
Subject: RE: [dtn-users] Implement routing protocol in Python?
Date: Wed, 10 Aug 2005 09:59:04 -0400
Message-ID: <3B660B4ACB06BE488E3938F95115E4DE33E8C2@IMCSRV4.MITRE.ORG>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: [dtn-users] Implement routing protocol in Python?
Thread-Index: AcWdsSpvhuC5+pIMS6q2hu5PmlW5OwAAROHQ
From: "Durst,Robert C." <DURST@mitre.org>
To: <dtn-users@mailman.dtnrg.org>, "Anders Lindgren" <dugdale@sm.luth.se>
Cc: "Pierre Fransson" <pierre@sm.luth.se>
X-OriginalArrivalTime: 10 Aug 2005 13:59:04.0865 (UTC) FILETIME=[AB4E0110:01C59DB3]
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by webbie.berkeley.intel-research.net id j7ADx7V12602
Sender: dtn-users-admin@mailman.dtnrg.org
Errors-To: dtn-users-admin@mailman.dtnrg.org
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.0.13
Precedence: bulk
Reply-To: dtn-users@mailman.dtnrg.org
List-Unsubscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Id: discussion/answers list for users of the dtn reference implementation <dtn-users.mailman.dtnrg.org>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
List-Archive: <http://mailman.dtnrg.org/pipermail/dtn-users/>

I am working on an interface for DTN2 that makes DTN2 events and actions
available via an RPC-like interface.  The goal of this is exactly what
you describe:  to be able to run different routing algorithms external
to DTN2.  If I'm successful, you'll be able to "walk up" to a running
DTN2 and, possibly with proper authentication, register an external
routing module and have it participate.

Mike Demmer is off-line right now (just got married -- Congratulations,
Mike!), but is working on an extension to DTN2 that will allow multiple
routing algorithms to run simultaneously, in case you want to have yours
compare answers with an internal module.

I haven't made as much progress on this interface as I'd like due to
some personal issues going on, but am very happy that you are interested
in pursuing this, particularly as an external Python routing algorithm
allows us to really test the "tool chain independence" goal of the
interface.  

I'll send more details as they become available.

Best regards,
Bob Durst  

-----Original Message-----
From: dtn-users-admin@mailman.dtnrg.org
[mailto:dtn-users-admin@mailman.dtnrg.org] On Behalf Of Anders Lindgren
Sent: Wednesday, August 10, 2005 9:40 AM
To: dtn-users@mailman.dtnrg.org
Cc: Pierre Fransson
Subject: [dtn-users] Implement routing protocol in Python?


Hi,

We would like to implement our routing protocol for intermittently
connected networks, PRoPHET (as described in
draft-lindgren-dtnrg-prophet-01.txt) in Python to have a nice and clean
reference implementation. We would however also like the protocol to be
able to work with the DTN2 bundling implementation so that the protocol
would be usable with applications that have been adapted for the DTN2
implementation (so that the routing protocol e.g. gets the bundles to
send from that code, and delivers bundles there as well).

Our question is now how feasible this is with the current structure of
the
code. Is it possible to create a routing protocol that is relatively
"external" to the rest of the code and only uses some interfaces into
the
DTN2 code for necessary thing (i.e., are there such interfaces?), or is
the only reasonable way to do a protocol that interacts with the DTN2
code
to do it intermingled with that code (preferrably in C++)??

Any ideas, clarifications, and suggestions are welcome.

/Anders and Pierre
_______________________________________________
dtn-users mailing list
dtn-users@mailman.dtnrg.org
http://mailman.dtnrg.org/mailman/listinfo/dtn-users


Received: from sm.luth.se (lisa.sm.luth.se [130.240.3.1]) by webbie.berkeley.intel-research.net (8.11.6/8.11.6) with ESMTP id j7ADeSV12474 for <dtn-users@mailman.dtnrg.org>; Wed, 10 Aug 2005 06:40:29 -0700
Received: from delta3.sm.luth.se (delta3.sm.luth.se [130.240.3.33]) by sm.luth.se (8.12.9/8.13.0) with ESMTP id j7ADePM9006941 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 10 Aug 2005 15:40:26 +0200 (MEST)
Date: Wed, 10 Aug 2005 15:40:25 +0200 (MEST)
From: Anders Lindgren <dugdale@sm.luth.se>
To: dtn-users@mailman.dtnrg.org
cc: Pierre Fransson <pierre@sm.luth.se>
In-Reply-To: <000b01c58d3a$9d44ab70$7b14010a@Flyingmobile>
Message-ID: <Pine.GSO.4.58.0508101534160.1858@delta3.sm.luth.se>
References: <000b01c58d3a$9d44ab70$7b14010a@Flyingmobile>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Subject: [dtn-users] Implement routing protocol in Python?
Sender: dtn-users-admin@mailman.dtnrg.org
Errors-To: dtn-users-admin@mailman.dtnrg.org
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.0.13
Precedence: bulk
Reply-To: dtn-users@mailman.dtnrg.org
List-Unsubscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Id: discussion/answers list for users of the dtn reference implementation <dtn-users.mailman.dtnrg.org>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
List-Archive: <http://mailman.dtnrg.org/pipermail/dtn-users/>

Hi,

We would like to implement our routing protocol for intermittently
connected networks, PRoPHET (as described in
draft-lindgren-dtnrg-prophet-01.txt) in Python to have a nice and clean
reference implementation. We would however also like the protocol to be
able to work with the DTN2 bundling implementation so that the protocol
would be usable with applications that have been adapted for the DTN2
implementation (so that the routing protocol e.g. gets the bundles to
send from that code, and delivers bundles there as well).

Our question is now how feasible this is with the current structure of the
code. Is it possible to create a routing protocol that is relatively
"external" to the rest of the code and only uses some interfaces into the
DTN2 code for necessary thing (i.e., are there such interfaces?), or is
the only reasonable way to do a protocol that interacts with the DTN2 code
to do it intermingled with that code (preferrably in C++)??

Any ideas, clarifications, and suggestions are welcome.

/Anders and Pierre


Received: from gepetto.dc.ltu.se (gepetto.dc.ltu.se [130.240.42.40]) by webbie.berkeley.intel-research.net (8.11.6/8.11.6) with ESMTP id j78F0gV28023 for <dtn-users@mailman.dtnrg.org>; Mon, 8 Aug 2005 08:00:43 -0700
Received: from localhost (wc-special6.dc.ltu.se [130.240.42.176]) by gepetto.dc.ltu.se (8.12.5/8.12.5) with ESMTP id j78F0ZDT006811 for <dtn-users@mailman.dtnrg.org>; Mon, 8 Aug 2005 17:00:36 +0200 (MEST)
Received: from 130.240.42.170 ( [130.240.42.170]) as user isinis-4@imaphost.student.ltu.se by portal.student.luth.se with HTTP; Mon,  8 Aug 2005 17:00:35 +0200
Message-ID: <1123513235.42f77393be2a5@portal.student.luth.se>
Date: Mon,  8 Aug 2005 17:00:35 +0200
From: Isidro Nistal Garrido <isinis-4@student.ltu.se>
To: dtn-users@mailman.dtnrg.org
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
User-Agent: Internet Messaging Program (IMP) 3.1
X-Originating-IP: 130.240.42.170
Subject: [dtn-users] Last cvs
Sender: dtn-users-admin@mailman.dtnrg.org
Errors-To: dtn-users-admin@mailman.dtnrg.org
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.0.13
Precedence: bulk
Reply-To: dtn-users@mailman.dtnrg.org
List-Unsubscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Id: discussion/answers list for users of the dtn reference implementation <dtn-users.mailman.dtnrg.org>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
List-Archive: <http://mailman.dtnrg.org/pipermail/dtn-users/>

Hello everybody and sorry for bother you so much,

 you told me like 2 weeks ago that there was somebody working on custody
transfer, I have found in the last dtnsend appplication from cvs that feature
implemented, but it doesn't work properly,could you tell me who is working on
that so I can ask him some stuff, 

Thanks in advance

Isidro Nistal Garrido
Spanish Exchange Student in Luleå
Tfn: +46 730 583 165



Received: from n082.sc1.cp.net (sp0211.sc1.cp.net [64.97.136.211]) by webbie.berkeley.intel-research.net (8.11.6/8.11.6) with ESMTP id j74K7bV07482 for <dtn-users@mailman.dtnrg.org>; Thu, 4 Aug 2005 13:07:37 -0700
Received: from [192.168.0.6] (82.12.226.22) by n082.sc1.cp.net (7.0.038) id 42D6F9E90035AEFB for dtn-users@mailman.dtnrg.org; Thu, 4 Aug 2005 20:07:32 +0000
Mime-Version: 1.0 (Apple Message framework v733)
In-Reply-To: <8c325be60508040929555dd420@mail.gmail.com>
References: <8c325be605080216147d0f3f13@mail.gmail.com> <20050802232536.GB14406@pisco.cs.berkeley.edu> <8c325be60508040929555dd420@mail.gmail.com>
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <06274F61-D0B2-4BC9-BBF1-4441DCD931A1@virgin.net>
Content-Transfer-Encoding: 7bit
From: Darren Long <darren.long@virgin.net>
Subject: Re: [dtn-users] Link timing
Date: Thu, 4 Aug 2005 21:07:32 +0100
To: dtn-users@mailman.dtnrg.org
X-Mailer: Apple Mail (2.733)
Sender: dtn-users-admin@mailman.dtnrg.org
Errors-To: dtn-users-admin@mailman.dtnrg.org
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.0.13
Precedence: bulk
Reply-To: dtn-users@mailman.dtnrg.org
List-Unsubscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Id: discussion/answers list for users of the dtn reference implementation <dtn-users.mailman.dtnrg.org>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
List-Archive: <http://mailman.dtnrg.org/pipermail/dtn-users/>

I resorted to commenting out the ASSERT and rebuilding it.  This  
seems reasonable when you look at the state machine's description in  
the header file, but it remains a temporary hack until Mike confirms  
the expected behaviour!  At least it doesn't die now.

That hasn't helped much, though as there till seems to be issues that  
could be a result of a bug that is causing the ASSERT to fail.

I'm looking at using ssh tunnels for use over GPRS/UMTS and from  
public hotspots.  They might offer you a good way of creating and  
tearing down links, too.  That said, with the quality of the GPRS  
connection I was getting in Crawley, It would be better to run ssh  
over DTN.  The GPRS (or possibly bluetooth) connection wouldn't stay  
up long enough to set up the tunnels.

Darren

On 4 Aug 2005, at 17:29, Joshua Schoolcraft wrote:

> What's the best way to go about changing DTN topology mid-flight
> without unplugging cables?  'link close' tends to cause the target
> daemon to spit out
>
> [1123159379.120409 /assert critical] ASSERTION FAILED (state_ ==  
> UNAVAILABLE) at
>  bundling/Link.cc:132
>
> and then quit.
>
> On 8/2/05, Michael Demmer <demmer@cs.berkeley.edu> wrote:
>
>>
>>
>>> For simulation purposes, is there a way to bring routes up and down
>>> based upon a preset schedule?  I would like to run scripted  
>>> scenarios
>>> where I can pick the availability of specific routes ahead of time.
>>>
>>
>> The configuration file is parsed and executed by a standard tcl
>> interpreter, so you can set up a script to run in each daemon that
>> will periodically change the link topology by using tcl builtins like
>> the 'after' command.
>>
>> -m
>>
>> _______________________________________________
>> dtn-users mailing list
>> dtn-users@mailman.dtnrg.org
>> http://mailman.dtnrg.org/mailman/listinfo/dtn-users
>>
>>
> _______________________________________________
> dtn-users mailing list
> dtn-users@mailman.dtnrg.org
> http://mailman.dtnrg.org/mailman/listinfo/dtn-users
>



Received: from zproxy.gmail.com (zproxy.gmail.com [64.233.162.206]) by webbie.berkeley.intel-research.net (8.11.6/8.11.6) with ESMTP id j74IcZV06945 for <dtn-users@mailman.dtnrg.org>; Thu, 4 Aug 2005 11:38:35 -0700
Received: by zproxy.gmail.com with SMTP id i1so253638nzh for <dtn-users@mailman.dtnrg.org>; Thu, 04 Aug 2005 11:38:29 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=pkpGy72HYUiH954O+7KlGXFJ62pUf2AOmsFbcUQRRqpURkWbR9vSg0Vn0k0L37u2U70oyeUESRQNGtVWVXqYLHzrvr1KXStlP2Qp+jqZ1j0ZJN2O800JIuUe0r5dOA10rarBzaKAqOtJRmhBY7NUUDvBlJulmg+HrOUqv76EyyQ=
Received: by 10.37.18.41 with SMTP id v41mr921411nzi; Thu, 04 Aug 2005 11:38:29 -0700 (PDT)
Received: by 10.36.38.19 with HTTP; Thu, 4 Aug 2005 11:38:29 -0700 (PDT)
Message-ID: <bccc8ac805080411386886317@mail.gmail.com>
Date: Thu, 4 Aug 2005 12:38:29 -0600
From: Jeff Allen <jeff.allen@gmail.com>
To: dtn-users@mailman.dtnrg.org
Subject: Re: [dtn-users] Link timing
In-Reply-To: <8c325be60508040929555dd420@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Disposition: inline
References: <8c325be605080216147d0f3f13@mail.gmail.com> <20050802232536.GB14406@pisco.cs.berkeley.edu> <8c325be60508040929555dd420@mail.gmail.com>
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by webbie.berkeley.intel-research.net id j74IcZV06945
Sender: dtn-users-admin@mailman.dtnrg.org
Errors-To: dtn-users-admin@mailman.dtnrg.org
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.0.13
Precedence: bulk
Reply-To: dtn-users@mailman.dtnrg.org
X-Reply-To: jra@nella.org
List-Unsubscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Id: discussion/answers list for users of the dtn reference implementation <dtn-users.mailman.dtnrg.org>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
List-Archive: <http://mailman.dtnrg.org/pipermail/dtn-users/>

While you're waiting for a fix to the assert, you might be able to use
one of these methods from Unix:

  a. drop the link with "ifconfig eth0 down". With two interfaces, one
for testing, and one for accessing the box, it is not too
inconvenient.
  b. add a host route for the IP address of the destination on the
source machine, but have the route point at 127.0.0.1. When you want
the link to work again, remove the host route.

(b) is more surgical than (a). You can knock out a single IP, or a
range of IPs (by using a network route instead) instead of having to
take down the whole interface.

  -jra


Received: from zproxy.gmail.com (zproxy.gmail.com [64.233.162.200]) by webbie.berkeley.intel-research.net (8.11.6/8.11.6) with ESMTP id j74GU4V06260 for <dtn-users@mailman.dtnrg.org>; Thu, 4 Aug 2005 09:30:04 -0700
Received: by zproxy.gmail.com with SMTP id i1so238577nzh for <dtn-users@mailman.dtnrg.org>; Thu, 04 Aug 2005 09:29:59 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=RdQvFSeoGZCX45XWXrEmljSgoEjrUewr8/si4MfI4PRM0heeRIeXQy1GU8DTn7EGtvASZOjUzNHVFFQ95B5JiIXABpULBZL04ZKdp9huAIYQOF/o7PePJtplDLtjF6OikELy/pAP0vagOScQnwDDMeN20hxmGfWA2+3KgtcYG70=
Received: by 10.37.22.68 with SMTP id z68mr849594nzi; Thu, 04 Aug 2005 09:29:59 -0700 (PDT)
Received: by 10.36.138.8 with HTTP; Thu, 4 Aug 2005 09:29:59 -0700 (PDT)
Message-ID: <8c325be60508040929555dd420@mail.gmail.com>
Date: Thu, 4 Aug 2005 09:29:59 -0700
From: Joshua Schoolcraft <jschoolc.dtn@gmail.com>
To: dtn-users@mailman.dtnrg.org
Subject: Re: [dtn-users] Link timing
In-Reply-To: <20050802232536.GB14406@pisco.cs.berkeley.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Disposition: inline
References: <8c325be605080216147d0f3f13@mail.gmail.com> <20050802232536.GB14406@pisco.cs.berkeley.edu>
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by webbie.berkeley.intel-research.net id j74GU4V06260
Sender: dtn-users-admin@mailman.dtnrg.org
Errors-To: dtn-users-admin@mailman.dtnrg.org
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.0.13
Precedence: bulk
Reply-To: dtn-users@mailman.dtnrg.org
X-Reply-To: Joshua Schoolcraft <jschoolc.dtn@gmail.com>
List-Unsubscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Id: discussion/answers list for users of the dtn reference implementation <dtn-users.mailman.dtnrg.org>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
List-Archive: <http://mailman.dtnrg.org/pipermail/dtn-users/>

What's the best way to go about changing DTN topology mid-flight
without unplugging cables?  'link close' tends to cause the target
daemon to spit out

[1123159379.120409 /assert critical] ASSERTION FAILED (state_ == UNAVAILABLE) at
 bundling/Link.cc:132

and then quit.

On 8/2/05, Michael Demmer <demmer@cs.berkeley.edu> wrote:
> 
> > For simulation purposes, is there a way to bring routes up and down
> > based upon a preset schedule?  I would like to run scripted scenarios
> > where I can pick the availability of specific routes ahead of time.
> 
> The configuration file is parsed and executed by a standard tcl
> interpreter, so you can set up a script to run in each daemon that
> will periodically change the link topology by using tcl builtins like
> the 'after' command.
> 
> -m
> 
> _______________________________________________
> dtn-users mailing list
> dtn-users@mailman.dtnrg.org
> http://mailman.dtnrg.org/mailman/listinfo/dtn-users
>


Received: from pisco.CS.Berkeley.EDU (Debian-exim@pisco.CS.Berkeley.EDU [128.32.37.175]) by webbie.berkeley.intel-research.net (8.11.6/8.11.6) with ESMTP id j72NNJV22324 for <dtn-users@mailman.dtnrg.org>; Tue, 2 Aug 2005 16:23:19 -0700
Received: from demmer by pisco.CS.Berkeley.EDU with local (Exim 4.50) id 1E068e-0003vU-QL for dtn-users@mailman.dtnrg.org; Tue, 02 Aug 2005 16:25:36 -0700
Date: Tue, 2 Aug 2005 16:25:36 -0700
From: Michael Demmer <demmer@cs.berkeley.edu>
To: dtn-users@mailman.dtnrg.org
Subject: Re: [dtn-users] Link timing
Message-ID: <20050802232536.GB14406@pisco.cs.berkeley.edu>
References: <8c325be605080216147d0f3f13@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <8c325be605080216147d0f3f13@mail.gmail.com>
User-Agent: Mutt/1.5.9i
Sender: dtn-users-admin@mailman.dtnrg.org
Errors-To: dtn-users-admin@mailman.dtnrg.org
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.0.13
Precedence: bulk
Reply-To: dtn-users@mailman.dtnrg.org
List-Unsubscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Id: discussion/answers list for users of the dtn reference implementation <dtn-users.mailman.dtnrg.org>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
List-Archive: <http://mailman.dtnrg.org/pipermail/dtn-users/>

> For simulation purposes, is there a way to bring routes up and down
> based upon a preset schedule?  I would like to run scripted scenarios
> where I can pick the availability of specific routes ahead of time.

The configuration file is parsed and executed by a standard tcl
interpreter, so you can set up a script to run in each daemon that
will periodically change the link topology by using tcl builtins like
the 'after' command.

-m



Received: from zproxy.gmail.com (zproxy.gmail.com [64.233.162.202]) by webbie.berkeley.intel-research.net (8.11.6/8.11.6) with ESMTP id j72NEuV22260 for <dtn-users@mailman.dtnrg.org>; Tue, 2 Aug 2005 16:14:56 -0700
Received: by zproxy.gmail.com with SMTP id i1so1257nzh for <dtn-users@mailman.dtnrg.org>; Tue, 02 Aug 2005 16:14:50 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=TRPmrtJSMkNizpN9u7xMYUP0nNAw/JH5eMPLrPdq8kxBUcP9XddIYezd2e2uR0vFqePQw5YuZwYp38GJ1Iv9QmyREK0Wn/Z14ekIUqEts632fG+/QF61YFBkE4JDxVHTCVEzOChhZDgDt1Is1ykRZjXjAIXg5JlibfvnXSRxupQ=
Received: by 10.37.18.24 with SMTP id v24mr24584nzi; Tue, 02 Aug 2005 16:14:50 -0700 (PDT)
Received: by 10.36.138.8 with HTTP; Tue, 2 Aug 2005 16:14:50 -0700 (PDT)
Message-ID: <8c325be605080216147d0f3f13@mail.gmail.com>
Date: Tue, 2 Aug 2005 16:14:50 -0700
From: Joshua Schoolcraft <jschoolc.dtn@gmail.com>
To: dtn-users@mailman.dtnrg.org
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by webbie.berkeley.intel-research.net id j72NEuV22260
Subject: [dtn-users] Link timing
Sender: dtn-users-admin@mailman.dtnrg.org
Errors-To: dtn-users-admin@mailman.dtnrg.org
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.0.13
Precedence: bulk
Reply-To: dtn-users@mailman.dtnrg.org
X-Reply-To: Joshua Schoolcraft <jschoolc.dtn@gmail.com>
List-Unsubscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Id: discussion/answers list for users of the dtn reference implementation <dtn-users.mailman.dtnrg.org>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
List-Archive: <http://mailman.dtnrg.org/pipermail/dtn-users/>

For simulation purposes, is there a way to bring routes up and down
based upon a preset schedule?  I would like to run scripted scenarios
where I can pick the availability of specific routes ahead of time.

Thanks,
Josh


Received: from pisco.CS.Berkeley.EDU (Debian-exim@pisco.CS.Berkeley.EDU [128.32.37.175]) by webbie.berkeley.intel-research.net (8.11.6/8.11.6) with ESMTP id j71NtnV09920 for <dtn-users@mailman.dtnrg.org>; Mon, 1 Aug 2005 16:55:49 -0700
Received: from demmer by pisco.CS.Berkeley.EDU with local (Exim 4.50) id 1DzkAV-0003PU-S4 for dtn-users@mailman.dtnrg.org; Mon, 01 Aug 2005 16:58:03 -0700
Date: Mon, 1 Aug 2005 16:58:03 -0700
From: Michael Demmer <demmer@cs.berkeley.edu>
To: dtn-users@mailman.dtnrg.org
Subject: Re: [dtn-users] Problems with DTN from CVS (1 of 3)
Message-ID: <20050801235803.GN13970@pisco.cs.berkeley.edu>
References: <90FDBDC7-5072-4984-A293-A420015F7017@virgin.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <90FDBDC7-5072-4984-A293-A420015F7017@virgin.net>
User-Agent: Mutt/1.5.9i
Sender: dtn-users-admin@mailman.dtnrg.org
Errors-To: dtn-users-admin@mailman.dtnrg.org
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.0.13
Precedence: bulk
Reply-To: dtn-users@mailman.dtnrg.org
List-Unsubscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Id: discussion/answers list for users of the dtn reference implementation <dtn-users.mailman.dtnrg.org>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
List-Archive: <http://mailman.dtnrg.org/pipermail/dtn-users/>

Hi Darren,

Thanks for all the bug reports. I'm going to be out of town and
generally unreachable by email for the next few weeks, so
unfortunately I won't really be able to deal with these issues.

But, if you make any more progress tracking the problems down, please
continue to post the fixes here and I will make sure to propagate them
back to the CVS tree when I get back.

Thanks,
-mike


Received: from n068.sc1.cp.net (sp0209.sc1.cp.net [64.97.136.209]) by webbie.berkeley.intel-research.net (8.11.6/8.11.6) with ESMTP id j71HfqV07859 for <dtn-users@mailman.dtnrg.org>; Mon, 1 Aug 2005 10:41:52 -0700
Received: from [192.168.0.6] (82.12.226.22) by n068.sc1.cp.net (7.0.038) id 42E8AFDA000FA969 for dtn-users@mailman.dtnrg.org; Mon, 1 Aug 2005 17:41:46 +0000
Mime-Version: 1.0 (Apple Message framework v733)
In-Reply-To: <DF707846-C7DA-4E18-87D7-BFD6CDA998BE@virgin.net>
References: <DF707846-C7DA-4E18-87D7-BFD6CDA998BE@virgin.net>
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <C09B8AE1-1E0F-4478-BAB7-2089AF14B922@virgin.net>
Content-Transfer-Encoding: 7bit
From: Darren Long <darren.long@virgin.net>
Subject: Re: [dtn-users] Problems with DTN from CVS (2 of 3)
Date: Mon, 1 Aug 2005 18:41:39 +0100
To: dtn-users@mailman.dtnrg.org
X-Mailer: Apple Mail (2.733)
Sender: dtn-users-admin@mailman.dtnrg.org
Errors-To: dtn-users-admin@mailman.dtnrg.org
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.0.13
Precedence: bulk
Reply-To: dtn-users@mailman.dtnrg.org
List-Unsubscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Id: discussion/answers list for users of the dtn reference implementation <dtn-users.mailman.dtnrg.org>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
List-Archive: <http://mailman.dtnrg.org/pipermail/dtn-users/>

More on this issue...

i think the line from the log below is a hint at what is going wrong  
here:
     [1122726726.002382 /timer debug] scheduling timer 0x95ac6e0 in  
-2056476421 ms at 4148622193:261405

I've been playing with DTN2 in Cygwin too today, and haven't observed  
this problem.  Most notably, the scheduled timers appear to be in the  
future.  This may be a red herring though, as the Cygwin builds are  
not from the same CVS checkout.

Darren

[1122726726.000787 /bundle/daemon debug] adding bundle bundle id 22  
bundles://internet/host://ibook12.dyndns.org/dtntunnel -> bundles:// 
internet/host://soltek/fred (12 bytes payload) to pending list
[1122726726.000807 /bundle/refs debug] bundle id 22: refcount 1 -> 2  
(0 mappings) add bundle_list pending_bundles
[1122726726.000818 /bundle/mapping debug] bundle id 22 add mapping  
[pending_bundles]
[1122726726.000835 /bundle/actions debug] adding bundle 22 to data store
[1122726726.000859 /berkeleydb/table(bundles) debug] put: serializing  
256 byte object
[1122726726.000871 /mutex/lock(0x95a2d64) debug] locked (count 1)
[1122726726.001015 /cl/tcp/conn/192.168.0.6:50924 debug] connection  
not idle: 41 <= 30000
[1122726726.001028 /cl/tcp/conn/192.168.0.6:50924 debug] recv_loop:  
blocking on frame typecode... (timeout 4000)
[1122726726.002335 /mutex/lock(0x95a2d64) debug] unlocked (count 0)
[1122726726.002354 /bundle/daemon debug] scheduling expiration timer  
for bundle id 22
[1122726726.002368 /bundle/refs debug] bundle id 22: refcount 2 -> 3  
(1 mappings) add expiration timer
[1122726726.002382 /timer debug] scheduling timer 0x95ac6e0 in  
-2056476421 ms at 4148622193:261405
[1122726726.002412 /timer debug] poll: events 0x1 timeout 1357011001  
revents 0x1 cc 1
[1122726726.002432 /timer debug] poll returned due to signal
[1122726726.002446 /timer/signal debug] drain_pipe: drained 1 byte(s)  
from pipe
[1122726726.002462 /timer debug] popping timer at 1122726726.2456
[1122726726.002474 /bundle/refs debug] bundle id 22: refcount 3 -> 4  
(1 mappings) add BundleExpiredEvent
[1122726726.002486 /bundle/daemon debug] posting event with type  
BUNDLE_EXPIRED
[1122726726.002499 /bundle/refs debug] bundle id 22: refcount 4 -> 3  
(1 mappings) del expiration timer
[1122726726.002518 /bundle/daemon debug] checking for matching  
registrations for bundle bundle id 22 bundles://internet/host:// 
ibook12.dyndns.org/dtntunnel -> bundles://internet/host://soltek/fred  
(12 bytes payload)
[1122726726.002564 /registration debug] get_matching bundles:// 
internet/host://soltek/fred
[1122726726.002602 /af/internet debug] match succeeded: pattern  
'soltek' admin 'soltek'
[1122726726.002615 /registration debug] matched registration 10  
bundles://internet/host://soltek/fred
[1122726726.002629 /registration debug] get_matching bundles:// 
internet/host://soltek/fred: returned 1 matches
[1122726726.002642 /bundle/daemon debug] delivering bundle bundle id  
22 bundles://internet/host://ibook12.dyndns.org/dtntunnel ->  
bundles://internet/host://soltek/fred (12 bytes payload) to  
registration bundles://internet/host://soltek/fred
[1122726726.002655 /registration/10 info] enqueue bundle id 22 for  
delivery to bundles://internet/host://soltek/fred
[1122726726.002669 /bundle/refs debug] bundle id 22: refcount 3 -> 4  
(1 mappings) add bundle_list /registration/10
[1122726726.002680 /bundle/mapping debug] bundle id 22 add mapping [/ 
registration/10]
[1122726726.002708 /notifier/0x95bf588 debug] poll: events 0x1  
timeout -1 revents 0x1 cc 1
[1122726726.002725 /notifier/0x95bf588 debug] drain_pipe: drained 1  
byte(s) from pipe
[1122726726.002740 /bundle/mapping debug] bundle id 22 del_bundle:  
deleting mapping [/registration/10]
[1122726726.002756 /apiclient/16 debug] handle_recv: popped bundle  
for registration 10 (timeout -1)
[1122726726.002787 /bundle/refs debug] bundle id 22: refcount 4 -> 5  
(1 mappings) add BundleTransmittedEvent
[1122726726.002799 /bundle/daemon debug] posting event with type  
BUNDLE_TRANSMITTED
[1122726726.002811 /bundle/refs debug] bundle id 22: refcount 5 -> 4  
(1 mappings) del api_client /registration/10
[1122726726.002824 /apiclient/16 debug] building reply: status  
(unknown type), length 904
[1122726726.002836 /apiclient/16 debug] sending 912 byte reply message
[1122726726.002927 /apiclient/16 debug] writeall 912/912
[1122726726.003229 /apiclient/16 debug] read 16/65536
[1122726726.003277 /apiclient/16 debug] got DTN_RECV (8/8 bytes)
[1122726726.003295 /apiclient/16 debug] handle_recv: blocking to get  
bundle for registration 10 (timeout -1)
[1122726726.003326 /route/static debug] dispatching event  
BUNDLE_RECEIVED
[1122726726.003339 /route/static debug] handle bundle received:  
bundle id 22 bundles://internet/host://ibook12.dyndns.org/dtntunnel - 
 > bundles://internet/host://soltek/fred (12 bytes payload)
[1122726726.003354 /route/static/table debug] get_matching bundles:// 
internet/host://soltek/fred
[1122726726.003366 /route/static/table debug] check entry bundles:// 
internet/host://ibook12.dyndns.org/* -> host://ibook12.dyndns.org: 
5000 (FORWARD_COPY)
[1122726726.003391 /af/internet debug] match failed: url hosts not  
equal ('ibook12.dyndns.org' != 'soltek')
[1122726726.003405 /route/static/table debug] get_matching bundles:// 
internet/host://soltek/fred done, 0 match(es)
[1122726726.003416 /route/static debug] fwd_to_matching bundles:// 
internet/host://soltek/fred: 0 matches
[1122726726.003429 /bundle/refs debug] bundle id 22: refcount 4 -> 3  
(1 mappings) del BundleReceivedEvent
[1122726726.003442 /bundle/daemon debug] dispatching event  
BUNDLE_EXPIRED
[1122726726.003453 /bundle/daemon info] BUNDLE_EXPIRED bundle id 22  
bundles://internet/host://ibook12.dyndns.org/dtntunnel -> bundles:// 
internet/host://soltek/fred (12 bytes payload)
[1122726726.003464 /bundle/daemon debug] removing bundle bundle id 22  
bundles://internet/host://ibook12.dyndns.org/dtntunnel -> bundles:// 
internet/host://soltek/fred (12 bytes payload) from pending list and  
persistent store
[1122726726.003476 /bundle/actions debug] removing bundle 22 from  
data store
[1122726726.003845 /bundle/mapping debug] bundle id 22 del_bundle:  
deleting mapping [pending_bundles]
[1122726726.003867 /bundle/refs debug] bundle id 22: refcount 3 -> 2  
(0 mappings) del bundle_list pending_bundles
[1122726726.003880 /route/static debug] dispatching event BUNDLE_EXPIRED
[1122726726.003891 /bundle/refs debug] bundle id 22: refcount 2 -> 1  
(0 mappings) del BundleExpiredEvent
[1122726726.003941 /bundle/daemon debug] dispatching event  
BUNDLE_TRANSMITTED
[1122726726.003952 /bundle/daemon info] BUNDLE_TRANSMITTED id:22 (12  
bytes) ACKED -> bundles://internet/host://soltek/fred
[1122726726.003963 /bundle/daemon debug] removing bundle bundle id 22  
bundles://internet/host://ibook12.dyndns.org/dtntunnel -> bundles:// 
internet/host://soltek/fred (12 bytes payload) from pending list and  
persistent store
[1122726726.003975 /bundle/actions debug] removing bundle 22 from  
data store
[1122726726.004003 /storage/bundles error] del bundle 22: bundle  
doesn't exist
[1122726726.004017 /bundle/daemon error] unexpected error removing  
bundle from pending list
[1122726726.004027 /route/static debug] dispatching event  
BUNDLE_TRANSMITTED
[1122726726.004038 /bundle/refs debug] bundle id 22: refcount 1 -> 0  
(0 mappings) del BundleTransmittedEvent
[1122726726.004049 /bundle debug] bundle id 22: no more references,  
deleting bundle



On 30 Jul 2005, at 12:16, Darren Long wrote:
> 2) dtnd fails an assertion when confused by bundle expirations  
> during inter-node pinging.  It actually makes for a fun game, like  
> "pass the hot potatoe", wondering which dtnd will get nailed ;-)   
> Most fun can be  had as it tries to delete a bundle after  
> transmission, which had jus expired.


Received: from n066.sc1.cp.net (sp0131.sc1.cp.net [64.97.136.131]) by webbie.berkeley.intel-research.net (8.11.6/8.11.6) with ESMTP id j71HXtV07785 for <dtn-users@mailman.dtnrg.org>; Mon, 1 Aug 2005 10:33:55 -0700
Received: from [192.168.0.6] (82.12.226.22) by n066.sc1.cp.net (7.0.038) id 42EE40EA00005426 for dtn-users@mailman.dtnrg.org; Mon, 1 Aug 2005 17:33:50 +0000
Mime-Version: 1.0 (Apple Message framework v733)
To: dtn-users@mailman.dtnrg.org
Message-Id: <90FD5793-005F-4556-B048-B2380A3E6883@virgin.net>
Content-Type: multipart/alternative; boundary=Apple-Mail-1-729017857
From: Darren Long <darren.long@virgin.net>
Date: Mon, 1 Aug 2005 18:33:42 +0100
X-Mailer: Apple Mail (2.733)
Subject: [dtn-users] Problems with DTN from CVS (3 of 3 resent)
Sender: dtn-users-admin@mailman.dtnrg.org
Errors-To: dtn-users-admin@mailman.dtnrg.org
X-BeenThere: dtn-users@mailman.dtnrg.org
X-Mailman-Version: 2.0.13
Precedence: bulk
Reply-To: dtn-users@mailman.dtnrg.org
List-Unsubscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=unsubscribe>
List-Id: discussion/answers list for users of the dtn reference implementation <dtn-users.mailman.dtnrg.org>
List-Post: <mailto:dtn-users@mailman.dtnrg.org>
List-Help: <mailto:dtn-users-request@mailman.dtnrg.org?subject=help>
List-Subscribe: <http://mailman.dtnrg.org/mailman/listinfo/dtn-users>, <mailto:dtn-users-request@mailman.dtnrg.org?subject=subscribe>
List-Archive: <http://mailman.dtnrg.org/pipermail/dtn-users/>

--Apple-Mail-1-729017857
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=US-ASCII;
	delsp=yes;
	format=flowed

[Trimmed 3 of 3]

3) Unit test bundle-list-test run-time seg fault on Mac OS X 10.4.2  
(Tiger) as previously reported.
On linux, FC4, this whole test runs ok, with gcc version as above.   
On Tiger, it segfaults.
gcc version 4.0.0 20041026 (Apple Computer, Inc. build 4061)

Tiger
MultipleLists...
[1122587949.901898 /bundle/refs debug] bundle id 0: refcount 1 -> 2  
(0 mappings) add bundle_list list1
[1122587949.901974 /bundle/mapping debug] bundle id 0 add mapping  
[list1]
[1122587949.902057 /bundle/refs debug] bundle id 0: refcount 2 -> 3  
(1 mappings) add bundle_list list2
<snip>
[1122587949.906137 /bundle/refs debug] bundle id 9: refcount 2 -> 3  
(1 mappings) add bundle_list list2
[1122587949.906211 /bundle/mapping debug] bundle id 9 add mapping  
[list2]
[1122587949.906287 /bundle/refs debug] bundle id 9: refcount 3 -> 4  
(2 mappings) add bundle_list list3
[1122587949.906398 /bundle/mapping debug] bundle id 9 add mapping  
[list3]
[1122587949.906472 /test debug] CHECK 'b->num_mappings()' (3) == '3' (3)
[1122587949.906607 /test debug] CHECK (l->contains(b)) ok
[1122587949.906889 /test debug] CHECK (l->contains(b)) ok
[1122587949.906984 /test debug] CHECK (l->contains(b)) ok
[1122587949.907048 /test critical] CHECK FAILED: 'b->num_mappings 
()' (3) != '0' (0) at unit_tests/bundle-list-test.cc:193
MultipleLists... Failed
MultipleListRemoval...
[1122587949.907236 /test debug] CHECK 'b->num_mappings()' (3) == '3' (3)
[1122587949.907313 /test debug] CHECK (l->contains(b)) ok
[1122587949.907383 /bundle/mapping debug] bundle id 7 del_bundle:  
deleting mapping [list1]
[1122587949.907507 /bundle/refs debug] bundle id 7: refcount 4 -> 3  
(2 mappings) del bundle_list list1
[1122587949.907925 /test debug] CHECK (l->erase(b)) ok
[1122587949.908018 /test debug] CHECK (! l->contains(b)) ok
Segmentation fault


Heres the code:

DECLARE_TEST(MultipleLists) {
     Bundle* b;
     BundleList* l;

     for (int i = 0; i < COUNT; ++i) {
         l1->push_back(bundles[i]);

         if ((i % 2) == 0) {
             l2->push_back(bundles[i]);
         } else {
             l2->push_front(bundles[i]);
         }

         if ((i % 3) == 0) {
             l3->push_back(bundles[i]);
         } else if ((i % 3) == 1) {
             l3->push_front(bundles[i]);
         }
     }

     b = bundles[0];
     CHECK_EQUAL(b->num_mappings(), 3);
     b->lock_.lock();
     for (map_iter = b->mappings_begin();
          map_iter != b->mappings_end();
          ++map_iter)
     {
         l = *map_iter;
         CHECK(l->contains(b));
     }

     for (map_iter = b->mappings_begin();
          map_iter != b->mappings_end();
          ++map_iter) ************************************ seg faults  
in here
     {
         l = *map_iter;
         CHECK(l->erase(b));
         CHECK(! l->contains(b));
     }

     b->lock_.unlock();
     CHECK_EQUAL(b->num_mappings(), 0);

     // list contents fall through to next test
     return UNIT_TEST_PASSED;
}

next up the call stack is

std::_Rb_tree_const_iterator<dtn::BundleList*>::operator++ at  
stl_tree.h:261

        _Self
       operator++(int)
       {
     _Self __tmp = *this;
     _M_node = _Rb_tree_increment(_M_node);
     return __tmp;
       }

 From there on up its into PowerPC assembler, which I haven't quite  
got my head round yet.  I haven't stopped laughing since discovering  
the eieio instruction. I haven't figured out the cause of this.

Darren





--Apple-Mail-1-729017857
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=ISO-8859-1

<HTML><BODY style=3D"word-wrap: break-word; -khtml-nbsp-mode: space; =
-khtml-line-break: after-white-space; "><DIV>[Trimmed 3 of =
3]</DIV><DIV><BR class=3D"khtml-block-placeholder"></DIV><DIV>3) Unit =
test bundle-list-test run-time seg fault on Mac OS X 10.4.2 (Tiger) as =
previously reported.</DIV><DIV>On linux, FC4, this whole test runs ok, =
with gcc version as above.=A0=A0On Tiger, it segfaults.=A0</DIV><DIV>gcc =
version 4.0.0 20041026 (Apple Computer, Inc. build 4061)</DIV><DIV><BR =
class=3D"khtml-block-placeholder"></DIV><DIV>Tiger</DIV><DIV>MultipleLists=
...</DIV><DIV>[1122587949.901898 /bundle/refs debug] bundle id 0: =
refcount 1 -&gt; 2 (0 mappings) add bundle_list =
list1</DIV><DIV>[1122587949.901974 /bundle/mapping debug] bundle id 0 =
add mapping [list1]</DIV><DIV>[1122587949.902057 /bundle/refs debug] =
bundle id 0: refcount 2 -&gt; 3 (1 mappings) add bundle_list =
list2</DIV><DIV>&lt;snip&gt;</DIV><DIV>[1122587949.906137 /bundle/refs =
debug] bundle id 9: refcount 2 -&gt; 3 (1 mappings) add bundle_list =
list2</DIV><DIV>[1122587949.906211 /bundle/mapping debug] bundle id 9 =
add mapping [list2]</DIV><DIV>[1122587949.906287 /bundle/refs debug] =
bundle id 9: refcount 3 -&gt; 4 (2 mappings) add bundle_list =
list3</DIV><DIV>[1122587949.906398 /bundle/mapping debug] bundle id 9 =
add mapping [list3]</DIV><DIV>[1122587949.906472 /test debug] CHECK =
'b-&gt;num_mappings()' (3) =3D=3D '3' (3)</DIV><DIV>[1122587949.906607 =
/test debug] CHECK (l-&gt;contains(b)) ok</DIV><DIV>[1122587949.906889 =
/test debug] CHECK (l-&gt;contains(b)) ok</DIV><DIV>[1122587949.906984 =
/test debug] CHECK (l-&gt;contains(b)) ok</DIV><DIV>[1122587949.907048 =
/test critical] CHECK FAILED: 'b-&gt;num_mappings()' (3) !=3D '0' (0) at =
unit_tests/bundle-list-test.cc:193</DIV><DIV>MultipleLists... =
Failed</DIV><DIV>MultipleListRemoval...</DIV><DIV>[1122587949.907236 =
/test debug] CHECK 'b-&gt;num_mappings()' (3) =3D=3D '3' =
(3)</DIV><DIV>[1122587949.907313 /test debug] CHECK (l-&gt;contains(b)) =
ok</DIV><DIV>[1122587949.907383 /bundle/mapping debug] bundle id 7 =
del_bundle: deleting mapping [list1]</DIV><DIV>[1122587949.907507 =
/bundle/refs debug] bundle id 7: refcount 4 -&gt; 3 (2 mappings) del =
bundle_list list1</DIV><DIV>[1122587949.907925 /test debug] CHECK =
(l-&gt;erase(b)) ok</DIV><DIV>[1122587949.908018 /test debug] CHECK (! =
l-&gt;contains(b)) ok</DIV><DIV>Segmentation fault</DIV><DIV><BR =
class=3D"khtml-block-placeholder"></DIV><DIV><BR =
class=3D"khtml-block-placeholder"></DIV><DIV>Heres the =
code:</DIV><DIV><BR class=3D"khtml-block-placeholder"></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">DECLARE_TEST(MultipleLists) {</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=
 =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">Bundle* b;</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">BundleList* l;</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: =
14px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=A0 =A0<BR =
class=3D"khtml-block-placeholder"></SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=
 =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">for</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;"> =
(</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">int</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;"> i =3D =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#0000FF" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">0</SPAN></FONT><FONT class=3D"Apple-style-span"=
 face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">; i &lt; COUNT; ++i) =
{</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">=A0 =A0 =A0 =A0 </SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
12px;">l1-&gt;push_back(bundles[i]);</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; font: normal normal normal 12px/normal Monaco; =
min-height: 16px; "><BR style=3D""></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">if</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;"> ((i % =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#0000FF" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">2</SPAN></FONT><FONT class=3D"Apple-style-span"=
 face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">) =3D=3D </SPAN></FONT><FONT =
class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">0</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">) =
{</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">=A0 =A0 =A0 =A0 =A0 =A0 </SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
12px;">l2-&gt;push_back(bundles[i]);</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=
 =A0 =A0 =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">} </SPAN></FONT><FONT =
class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">else</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;"> =
{</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">=A0 =A0 =A0 =A0 =A0 =A0 </SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
12px;">l2-&gt;push_front(bundles[i]);</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=
 =A0 =A0 =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">}</SPAN></FONT></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: =
normal normal normal 12px/normal Monaco; min-height: 16px; "><BR =
style=3D""></DIV><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">=A0 =A0 =A0 =A0 </SPAN></FONT><FONT =
class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">if</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;"> =
((i % </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#0000FF" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">3</SPAN></FONT><FONT class=3D"Apple-style-span"=
 face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">) =3D=3D </SPAN></FONT><FONT =
class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">0</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">) =
{</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">=A0 =A0 =A0 =A0 =A0 =A0 </SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
12px;">l3-&gt;push_back(bundles[i]);</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=
 =A0 =A0 =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">} </SPAN></FONT><FONT =
class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">else</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;"> =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">if</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;"> ((i % =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#0000FF" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">3</SPAN></FONT><FONT class=3D"Apple-style-span"=
 face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">) =3D=3D </SPAN></FONT><FONT =
class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">1</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">) =
{</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">=A0 =A0 =A0 =A0 =A0 =A0 </SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
12px;">l3-&gt;push_front(bundles[i]);</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=
 =A0 =A0 =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">}</SPAN></FONT></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">}</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal =
12px/normal Monaco; min-height: 16px; "><BR style=3D""></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=
 =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">b =
=3D bundles[</SPAN></FONT><FONT class=3D"Apple-style-span" =
color=3D"#0000FF" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
12px;">0</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">];</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">CHECK_EQUAL(b-&gt;num_mappings(), </SPAN></FONT><FONT =
class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">3</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">);</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">b-&gt;lock_.lock();</SPAN></FONT></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">for</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;"> (map_iter =3D =
b-&gt;mappings_begin();</SPAN></FONT></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=A0 =A0 =A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">map_iter !=3D b-&gt;mappings_end();</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">=A0=A0 =A0 =A0 =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">++map_iter)</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=
 =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">{</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">l =
=3D *map_iter;</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">CHECK(l-&gt;contains(b));</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=
 =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">}</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=A0 =A0<BR =
class=3D"khtml-block-placeholder"></SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=
 =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">for</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;"> (map_iter =3D =
b-&gt;mappings_begin();</SPAN></FONT></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=A0 =A0 =A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">map_iter !=3D b-&gt;mappings_end();</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">=A0=A0 =A0 =A0 =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">++map_iter) =
************************************ seg faults in =
here</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">{</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">l =
=3D *map_iter;</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">CHECK(l-&gt;erase(b));</SPAN></FONT></DIV><DIV style=3D"margin-top:=
 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">CHECK(! l-&gt;contains(b));</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=
 =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">}</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal =
12px/normal Monaco; min-height: 16px; "><BR style=3D""></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=
 =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">b-&gt;lock_.unlock();</SPAN></FONT></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">CHECK_EQUAL(b-&gt;num_mappings(), </SPAN></FONT><FONT =
class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">0</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">);</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal =
normal normal 12px/normal Monaco; min-height: 16px; "><BR =
style=3D""></DIV><DIV style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">=A0 =A0 </SPAN></FONT><FONT =
class=3D"Apple-style-span" color=3D"#236E25" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">// list contents fall through to next =
test</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">return</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;"> =
UNIT_TEST_PASSED;</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
12px;">}</SPAN></FONT></DIV><DIV><BR =
class=3D"khtml-block-placeholder"></DIV><DIV>next up the call stack =
is</DIV><DIV><BR =
class=3D"khtml-block-placeholder"></DIV><DIV>std::_Rb_tree_const_iterator&=
lt;dtn::BundleList*&gt;::operator++ at stl_tree.h:261</DIV><DIV><BR =
class=3D"khtml-block-placeholder"></DIV><DIV>=A0<FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0=A0 =
=A0</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">_Self</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">operator</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
12px;">++(</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50"=
 face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">int</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
12px;">)</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0 =A0 =A0 =
</SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">{</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-converted-tab"><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">=A0 =A0 </SPAN></FONT></SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">_Self __tmp =3D =
*</SPAN></FONT><FONT class=3D"Apple-style-span" color=3D"#760F50" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">this</SPAN></FONT><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: =
12px;">;</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-converted-tab"><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">=A0 =A0 </SPAN></FONT></SPAN><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;">_M_node =3D =
_Rb_tree_increment(_M_node);</SPAN></FONT></DIV><DIV style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><SPAN =
class=3D"Apple-converted-tab"><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;">=A0 =A0 </SPAN></FONT></SPAN><FONT =
class=3D"Apple-style-span" color=3D"#760F50" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">return</SPAN></FONT><FONT class=3D"Apple-style-span" =
face=3D"Monaco" size=3D"3"><SPAN class=3D"Apple-style-span" =
style=3D"font-size: 12px;"> __tmp;</SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: 12px;">=A0=
 =A0 =A0 </SPAN></FONT><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">}</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;"><BR =
class=3D"khtml-block-placeholder"></SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">=46rom there on up its into PowerPC assembler, which I haven't =
quite got my head round yet.=A0 I haven't stopped laughing since =
discovering the eieio instruction. I haven't figured out the cause of =
this.</SPAN></FONT></DIV><DIV style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; "><FONT =
class=3D"Apple-style-span" face=3D"Monaco" size=3D"3"><SPAN =
class=3D"Apple-style-span" style=3D"font-size: 12px;"><BR =
class=3D"khtml-block-placeholder"></SPAN></FONT></DIV><DIV =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><FONT class=3D"Apple-style-span" face=3D"Monaco" =
size=3D"3"><SPAN class=3D"Apple-style-span" style=3D"font-size: =
12px;">Darren</SPAN></FONT></DIV><DIV><BR =
class=3D"khtml-block-placeholder"></DIV><DIV><BR><BR><BR =
class=3D"khtml-block-placeholder"></DIV></BODY></HTML>=

--Apple-Mail-1-729017857--

