applayerpluginsandutils/httpprotocolplugins/httpclient/chttpclienttransaction.cpp
branchRCL_3
changeset 18 5f1cd966e0d9
parent 0 b16258d2340f
child 19 c0c2f28ace9c
--- a/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpclienttransaction.cpp	Thu Jul 15 19:14:59 2010 +0300
+++ b/applayerpluginsandutils/httpprotocolplugins/httpclient/chttpclienttransaction.cpp	Thu Aug 19 10:27:19 2010 +0300
@@ -110,3 +110,28 @@
 		}
 	return needDisconnectNotification;	
 	}
+
+
+TBool CHttpClientTransaction::PropogateDefaultError() const
+    {
+    TBool noRetry=EFalse;
+    RHTTPTransaction myTransaction = Transaction (); 
+    RHTTPSession mySession = myTransaction.Session ();
+    RStringPool myStringPool ( mySession.StringPool () );
+    RStringF retrySet = myStringPool.StringF( HTTP::ENotifyOnDisconnect, iStringTable );
+
+    RHTTPPropertySet transactionProperties = myTransaction.PropertySet();
+    RHTTPPropertySet sessionProperties = mySession.ConnectionInfo();
+        
+    THTTPHdrVal hdrVal;
+        
+    // Check the transaction properties for the disconnect notification
+    // If it is set then it should be used.
+    if ( transactionProperties.Property ( retrySet, hdrVal ) || sessionProperties.Property ( retrySet, hdrVal ) )   
+        {
+        __ASSERT_DEBUG( hdrVal.Type() == THTTPHdrVal::KStrFVal, User::Invariant() );
+            
+        noRetry = ( hdrVal.StrF().Index(iStringTable) == HTTP::EHttpPropagateDefaultError );
+        }
+    return noRetry;  
+    }