On Friday 14 November 2008 00:20, Daniel Cheng wrote:
> On Fri, Nov 14, 2008 at 7:39 AM,  <[EMAIL PROTECTED]> wrote:
> > Author: toad
> > Date: 2008-11-13 23:39:17 +0000 (Thu, 13 Nov 2008)
> > New Revision: 23542
> >
> > Modified:
> >   trunk/freenet/src/freenet/node/FNPPacketMangler.java
> >   trunk/freenet/src/freenet/node/OutgoingPacketMangler.java
> >   trunk/freenet/src/freenet/node/PeerNode.java
> > Log:
> > Send a packet even if we get a WouldBlockException...
> >
> >
> > Modified: trunk/freenet/src/freenet/node/PeerNode.java
> > ===================================================================
> > --- trunk/freenet/src/freenet/node/PeerNode.java        2008-11-13 
20:02:47 UTC (rev 23541)
> > +++ trunk/freenet/src/freenet/node/PeerNode.java        2008-11-13 
23:39:17 UTC (rev 23542)
> > @@ -2407,7 +2407,7 @@
> >        * @throws PacketSequenceException If there is an error sending the 
packet
> >        * caused by a sequence inconsistency.
> >        */
> > -       public boolean sendAnyUrgentNotifications(boolean 
forceSendPrimary) throws PacketSequenceException {
> > +       public boolean sendAnyUrgentNotifications(boolean 
forceSendPrimary) {
> >                boolean sent = false;
> >                if(logMINOR)
> >                        Logger.minor(this, "sendAnyUrgentNotifications");
> > @@ -2433,6 +2433,8 @@
> >                                // Ignore
> >                                } catch(WouldBlockException e) {
> >                                // Impossible, ignore
> > +                               } catch(PacketSequenceException e) {
> > +                                       // Impossible, ignore
> 
> better log the impossible error

Done.
> 
> >                                }
> >                        }
> >                }
> > @@ -2451,6 +2453,8 @@
> >                                // Ignore
> >                                } catch(WouldBlockException e) {
> >                                        Logger.error(this, "Impossible: " + 
e, e);
> > +                               } catch(PacketSequenceException e) {
> > +                                       // Impossible, ignore
> 
> same here

Also done.
> 
> >                                }
> >                }
> >                return sent;
> > @@ -4014,10 +4018,12 @@
> >        public boolean maybeSendPacket(long now, Vector<ResendPacketItem> 
rpiTemp, int[] rpiIntTemp) {
> >                // If there are any urgent notifications, we must send a 
packet.
> >                boolean mustSend = false;
> > +               boolean mustSendPacket = false;
> >                if(mustSendNotificationsNow(now)) {
> >                        if(logMINOR)
> >                                Logger.minor(this, "Sending notification");
> >                        mustSend = true;
> > +                       mustSendPacket = true;
> >                }
> >                // Any packets to resend? If so, resend ONE packet and then 
return.
> >                for(int j = 0; j < 2; j++) {
> > @@ -4074,6 +4080,7 @@
> >                                Logger.minor(this, "Sending keepalive");
> >                        keepalive = true;
> >                        mustSend = true;
> > +                       mustSendPacket = true;
> >                }
> >
> >                ArrayList<MessageItem> messages = new 
ArrayList<MessageItem>(10);
> > @@ -4122,17 +4129,17 @@
> >                        // Send packets, right now, blocking, including any 
active notifications
> >                        // Note that processOutgoingOrRequeue will drop 
messages from the end
> >                        // if necessary to fit the messages into a single 
packet.
> > -                       
getOutgoingMangler().processOutgoingOrRequeue(messages.toArray(new 
MessageItem[messages.size()]), this, true, false, true);
> > +                       
if(!getOutgoingMangler().processOutgoingOrRequeue(messages.toArray(new 
MessageItem[messages.size()]), this, true, false, true)) {
> > +                               if(mustSendPacket) {
> > +                                       
if(!sendAnyUrgentNotifications(false))
> > +                                               
sendAnyUrgentNotifications(true);
> > +                               }
> > +                       }
> >                        return true;
> >                } else {
> >                        if(mustSend) {
> > -                               try {
> >                                        
if(sendAnyUrgentNotifications(false))
> >                                                return true;
> > -                               } catch (PacketSequenceException e) {
> > -                                       Logger.error(this, "Caught "+e, 
e);
> > -                                       return false;
> > -                               }
> >                                // Can happen occasionally as a race 
condition...
> >                                Logger.normal(this, "No notifications sent 
despite no messages and mustSend=true for "+this);
> >                        }
> >
> > _______________________________________________
> > cvs mailing list
> > [EMAIL PROTECTED]
> > http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
> >
> _______________________________________________
> Devl mailing list
> Devl@freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
> 
> 

Attachment: pgpiPMzK9e55o.pgp
Description: PGP signature

_______________________________________________
Devl mailing list
Devl@freenetproject.org
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to