You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by dc...@apache.org on 2019/11/09 22:21:19 UTC

[thrift] branch master updated: THRIFT-4914: Add GetResponseHeadersFromClient helper function

This is an automated email from the ASF dual-hosted git repository.

dcelasun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/thrift.git


The following commit(s) were added to refs/heads/master by this push:
     new 24fa9d0  THRIFT-4914: Add GetResponseHeadersFromClient helper function
24fa9d0 is described below

commit 24fa9d0728c5893b11901f6ffb25a9e74a4647c8
Author: Yuxuan 'fishy' Wang <yu...@reddit.com>
AuthorDate: Sat Nov 9 14:21:10 2019 -0800

    THRIFT-4914: Add GetResponseHeadersFromClient helper function
    
    This is the fourth and final part of THRIFT-4914, which handles the
    client reading part in the response (server -> client direction).
    
    Client: go
    
    This closes #1926.
---
 lib/go/thrift/header_protocol.go | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/lib/go/thrift/header_protocol.go b/lib/go/thrift/header_protocol.go
index 46205b2..99deaf7 100644
--- a/lib/go/thrift/header_protocol.go
+++ b/lib/go/thrift/header_protocol.go
@@ -303,3 +303,17 @@ func (p *THeaderProtocol) ReadBinary() (value []byte, err error) {
 func (p *THeaderProtocol) Skip(fieldType TType) error {
 	return p.protocol.Skip(fieldType)
 }
+
+// GetResponseHeadersFromClient is a helper function to get the read THeaderMap
+// from the last response received from the given client.
+//
+// If the last response was not sent over THeader protocol,
+// a nil map will be returned.
+func GetResponseHeadersFromClient(c TClient) THeaderMap {
+	if sc, ok := c.(*TStandardClient); ok {
+		if hp, ok := sc.iprot.(*THeaderProtocol); ok {
+			return hp.transport.readHeaders
+		}
+	}
+	return nil
+}