153 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| /***********************************************************************
 | |
|  * 
 | |
|  *  Copyright (C) 2005-2006 Novell, Inc.
 | |
|  *
 | |
|  *  This library is free software; you can redistribute it and/or
 | |
|  *  modify it under the terms of the GNU Lesser General Public
 | |
|  *  License as published by the Free Software Foundation; version 2.1
 | |
|  *  of the License.
 | |
|  *
 | |
|  *  This library is distributed in the hope that it will be useful,
 | |
|  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | |
|  *  Library General Public License for more details.
 | |
|  *
 | |
|  *  You should have received a copy of the GNU Lesser General Public
 | |
|  *  License along with this library; if not, write to the Free
 | |
|  *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | |
|  * 
 | |
|  *  To contact Novell about this file by physical or electronic mail, 
 | |
|  *  you may find current contact information at www.novell.com.
 | |
|  * 
 | |
|  ***********************************************************************/
 | |
| 
 | |
| using System;
 | |
| using System.Text;
 | |
| 
 | |
| namespace Novell.CASA.MiCasa.Common
 | |
| {
 | |
| 	/// <summary>
 | |
| 	/// Summary description for MessageObject.
 | |
| 	/// </summary>
 | |
| 	/// 
 | |
| 	[Serializable]
 | |
| 	public class WrappedObject
 | |
| 	{
 | |
| 		public static string DEFAULT_KEYCHAIN_ID = "SSCS_SESSION_KEY_CHAIN_ID\0";
 | |
| 
 | |
| 		private int m_verb = 0;
 | |
| 		private string m_KeychainID = null;
 | |
| 		private string m_SecretID = null;
 | |
| 		private string m_KeyID = null;		
 | |
| 
 | |
| 		private object m_object;
 | |
| 
 | |
| 		private int m_rcode = 0;
 | |
| 		private string m_errorMsg;
 | |
| 
 | |
| 		public WrappedObject(int rcode, string errorMsg)
 | |
| 		{
 | |
| 			m_rcode = rcode;
 | |
| 			m_errorMsg = errorMsg;
 | |
| 		}
 | |
| 
 | |
| 		public WrappedObject(int verb, string sKeychainID, string sSecretID, string sKeyID, object theObject)
 | |
| 		{
 | |
| 			m_verb = verb;
 | |
| 			if (sKeychainID != null)
 | |
| 				m_KeychainID = sKeychainID + '\0';
 | |
| 			else
 | |
| 				m_KeychainID = DEFAULT_KEYCHAIN_ID;
 | |
| 
 | |
| 			if (sSecretID != null)
 | |
| 			{
 | |
| 				if (sSecretID.StartsWith("SS_CredSet"))
 | |
| 					m_SecretID = "SS_CredSet:" + EscapeReservedChars(sSecretID.Substring(11)) + '\0';
 | |
| 				else
 | |
| 					m_SecretID = "SS_CredSet:" + EscapeReservedChars(sSecretID) + '\0';
 | |
| 			}
 | |
| 	
 | |
| 			if (sKeyID != null)
 | |
| 				m_KeyID = EscapeReservedChars(sKeyID); // + '\0';
 | |
| 
 | |
| 			// serialize the object
 | |
| 			m_object = theObject;						
 | |
| 		}
 | |
| 
 | |
| 		public string GetKeyID()
 | |
| 		{
 | |
| 			return m_KeyID;
 | |
| 		}
 | |
| 
 | |
| 		public string GetSecretID()
 | |
| 		{
 | |
| 			return m_SecretID;
 | |
| 		}
 | |
| 
 | |
| 		public string GetKeychainID()
 | |
| 		{
 | |
| 			return m_KeychainID;
 | |
| 		}
 | |
| 
 | |
| 		public object GetObject()
 | |
| 		{
 | |
| 			return m_object;
 | |
| 		}
 | |
| 
 | |
| 		public void SetObject(object theobject)
 | |
| 		{
 | |
| 			m_object = theobject;
 | |
| 		}
 | |
| 
 | |
| 		public int GetAction()
 | |
| 		{
 | |
| 			return m_verb;
 | |
| 		}
 | |
| 
 | |
| 		public void SetError(int rcode, string message)
 | |
| 		{
 | |
| 			m_rcode = rcode;
 | |
| 			m_errorMsg = message;						
 | |
| 		}
 | |
| 
 | |
| 		public int GetReturnCode()
 | |
| 		{
 | |
| 			return m_rcode;
 | |
| 		}
 | |
| 
 | |
| 		public string GetReturnMessage()
 | |
| 		{
 | |
| 			return m_errorMsg;
 | |
| 		}
 | |
| 
 | |
| 		private string EscapeReservedChars(string origString)
 | |
| 		{
 | |
| 			StringBuilder sb = new StringBuilder();
 | |
| 			for (int i=0; i<origString.Length; i++)
 | |
| 			{
 | |
| 				switch (origString[i])
 | |
| 				{
 | |
| 					case ':'  :	
 | |
| 					{
 | |
| 						sb.Append("\\");
 | |
| 						break;
 | |
| 					}
 | |
| 					case '\\' :		
 | |
| 					{
 | |
| 						sb.Append("\\");
 | |
| 						break;
 | |
| 					}
 | |
| 					case '='  :
 | |
| 					{
 | |
| 						sb.Append("\\");
 | |
| 						break;
 | |
| 					}					
 | |
| 					
 | |
| 				}
 | |
| 				sb.Append(origString[i]);				
 | |
| 			}
 | |
| 			return sb.ToString();
 | |
| 		}
 | |
| 	}
 | |
| }
 |