<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -6,6 +6,7 @@ module TunnelSplitter
     extend Forwardable
 
     attr_reader :tunnel_addresses, :tunnel_group
+    attr_accessor :swallow_pings
     def_delegator :@tunnel_group, :max_pending_acks=
 
     def initialize(listen_address, *tunnel_addresses)
@@ -70,7 +71,12 @@ module TunnelSplitter
         @connection_id = @client.create_connection(self)
       end
 
+      def swallow_pings(data)
+        data.gsub!(/^PING (\S+)\r\n/, '')
+      end
+
       def receive_data(data)
+        swallow_pings(data)  if @client.swallow_pings
         @client.connection_for(@connection_id).queue_out(data)
         @tunnel_group.flush_outgoing_queue
       end</diff>
      <filename>lib/tunnel_splitter/client.rb</filename>
    </modified>
    <modified>
      <diff>@@ -48,9 +48,10 @@ module TunnelSplitter
       @tunneled_connections.values
     end
 
-    def clear_connections
+    def reset_connections
       @tunneled_connections.values.each {|conn| conn.connection_closed }
       @tunneled_connections.clear
+      @cleared_connections.clear
     end
 
     class TunnelConnection &lt; EventMachine::Connection
@@ -83,7 +84,7 @@ module TunnelSplitter
           when Command::Ack
             @tunnel_group.receive_ack(self, cmd)
           when Command::ResetConnections
-            @server.clear_connections
+            @server.reset_connections
           end
         end
       end
@@ -107,7 +108,7 @@ module TunnelSplitter
       end
 
       def handle_pings(data)
-        while data.sub!(/PING (\S+).+?\r\n/, '')
+        while data.sub!(/^PING (\S+)\r\n/, '')
           send_data(&quot;PONG #$1\r\n&quot;)
         end
       end</diff>
      <filename>lib/tunnel_splitter/server.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,14 +3,20 @@ require 'tunnel_splitter'
 require 'optparse'
 
 p = nil
+i = nil
 opts = OptionParser.new do |o|
   o.on &quot;-p&quot;, &quot;--max-pending-acks N&quot; do |p|
     p = p.to_i
   end
+
+  o.on &quot;-i&quot;, &quot;--swallow-pings&quot; do
+    i = true
+  end
 end
 opts.parse!  rescue (puts opts; exit 1)
 
 client = TunnelSplitter::Client.new(ARGV[0].dup, ARGV[1..-1].map{|a|a.dup})
 client.max_pending_acks = p  if p
+client.swallow_pings = i
 
 EventMachine.run { client.start }</diff>
      <filename>ts_client.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>8a996c8cc2a93fd8d85927beaa6147c2d1314971</id>
    </parent>
  </parents>
  <author>
    <name>steve</name>
    <email>coderrr.contact@gmail.com</email>
  </author>
  <url>http://github.com/coderrr/tunnel_splitter/commit/d70bbd8306ed471347fbc20d6db88f92d53e0d97</url>
  <id>d70bbd8306ed471347fbc20d6db88f92d53e0d97</id>
  <committed-date>2009-06-25T10:15:59-07:00</committed-date>
  <authored-date>2009-06-25T10:15:59-07:00</authored-date>
  <message>fix resetting of connections; add swallow pings options to client, to prevent excess flood on long delayed reconnect</message>
  <tree>4220d606505113f4a3f690380026d488dccea113</tree>
  <committer>
    <name>steve</name>
    <email>coderrr.contact@gmail.com</email>
  </committer>
</commit>
