Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: Freenet/message/QueryRestarted.java


1   package Freenet.message;
2   import Freenet.*;
3   import Freenet.node.*;
4   import Freenet.support.*;
5   
6   public class QueryRestarted extends Message
7   {
8   
9       public static final String messageName = "QueryRestarted";
10  
11      public QueryRestarted(RawMessage m) throws InvalidMessageException
12      {
13    super(m);
14      }
15  
16      public QueryRestarted(long idnum, long htl)
17      {
18    super(idnum, htl, (long)0);
19      }
20  
21      
22      public RawMessage toRawMessage()
23      {
24    RawMessage raw=super.toRawMessage();
25    raw.messageType="QueryRestarted";
26    raw.trailingFieldName="EndMessage";
27    return raw;
28      }
29  
30  
31      public MessageMemory pReceived(Node n, MessageMemory sb)
32      {
33    if (sb==null) { // already lost mm
34        return null;
35    } else {
36        if( sb instanceof KeyedMM ) {
37          KeyedMM kmm = (KeyedMM) sb;
38          if (!kmm.lastAddr.equals(source)) {
39      // Stale QueryRestarted from a node we gave up on
40      Logger.log("message/QueryRestarted.java","Stale QueryRestarted from " + source + ", expected from " + kmm.lastAddr,Logger.DEBUG);
41      return sb;
42          }
43        }
44        Callback cb = Node.timer.cancel(id);
45        try {
46      sb.replyCon = sendBack(n, sb);
47      if (!(cb instanceof RequestCB)) return sb; //WTF have you been shoving up my timer?!? :-)
48      RequestCB rcb = (RequestCB) cb;
49      Node.timer.add(id, rcb.hopsToLive * Node.timePerHop, rcb);
50        } catch (SendFailedException sfe) {
51      Logger.log("message/QueryRestarted.java","Send failed on return to " + sfe.peer,Logger.NORMAL);
52        }
53        return sb;
54    }
55      }
56  
57      protected MessageMemory timeOut(Node n, MessageMemory sb)
58      {
59    Logger.log("message/QueryRestarted.java","Errant QueryRestarted message died",Logger.NORMAL);
60    return null;
61      }
62  }