Skip to content
Snippets Groups Projects
Commit ecc32885 authored by Makarand Dharmapurikar's avatar Makarand Dharmapurikar
Browse files

WIP

parent 4350e748
No related branches found
No related tags found
No related merge requests found
......@@ -113,9 +113,6 @@ class H2ProtocolBaseServer(Protocol):
return
while self._send_remaining[stream_id] > 0:
if self._stream_status[stream_id] is False:
logging.info('Stream %d is closed.'%stream_id)
break
lfcw = self._conn.local_flow_control_window(stream_id)
if lfcw == 0:
break
......@@ -125,7 +122,11 @@ class H2ProtocolBaseServer(Protocol):
(lfcw, self._send_offset, self._send_offset + bytes_to_send,
stream_id))
data = self._data_to_send[self._send_offset : self._send_offset + bytes_to_send]
self._conn.send_data(stream_id, data, False)
try:
self._conn.send_data(stream_id, data, False)
except ProtocolError:
logging.info('Stream %d is closed'%stream_id)
break
self._send_remaining[stream_id] -= bytes_to_send
self._send_offset += bytes_to_send
if self._send_remaining[stream_id] == 0:
......@@ -163,7 +164,7 @@ class H2ProtocolBaseServer(Protocol):
asked in request """
grpc_msg_size = struct.unpack('i',recv_buffer[1:5][::-1])[0]
if len(recv_buffer) != GRPC_HEADER_SIZE + grpc_msg_size:
logging.error('not enough data to decode req proto. size = %d, needed %s'%(len(recv_buffer), 5+grpc_msg_size))
#logging.error('not enough data to decode req proto. size = %d, needed %s'%(len(recv_buffer), 5+grpc_msg_size))
return None
req_proto_str = recv_buffer[5:5+grpc_msg_size]
sr = messages_pb2.SimpleRequest()
......
......@@ -21,6 +21,7 @@ class H2Factory(Factory):
def buildProtocol(self, addr):
self._num_streams += 1
logging.info('New Connection: %d'%self._num_streams)
if self._testcase == 'rst_after_header':
t = test_rst_after_header.TestcaseRstStreamAfterHeader()
elif self._testcase == 'rst_after_data':
......
import logging
import time
import http2_base_server
class TestcaseGoaway(object):
......@@ -23,11 +24,12 @@ class TestcaseGoaway(object):
def on_connection_lost(self, reason):
logging.info('Disconnect received. Count %d'%self._iteration)
# _iteration == 2 => Two different connections have been used.
if self._iteration == 2:
if self._iteration == 200:
self._base_server.on_connection_lost(reason)
def on_send_done(self, stream_id):
self._base_server.on_send_done_default(stream_id)
time.sleep(1)
logging.info('Sending GOAWAY for stream %d:'%stream_id)
self._base_server._conn.close_connection(error_code=0, additional_data=None, last_stream_id=stream_id)
self._base_server._stream_status[stream_id] = False
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment