dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] pnetlib/System/Net BasicClient.cs,1.1,1.2


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] pnetlib/System/Net BasicClient.cs,1.1,1.2
Date: Wed, 26 Nov 2003 01:07:12 +0000

Update of /cvsroot/dotgnu-pnet/pnetlib/System/Net
In directory subversions:/tmp/cvs-serv8863/System/Net

Modified Files:
        BasicClient.cs 
Log Message:


Fix some profile-related build issues.


Index: BasicClient.cs
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnetlib/System/Net/BasicClient.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** BasicClient.cs      14 Nov 2003 05:04:31 -0000      1.1
--- BasicClient.cs      26 Nov 2003 01:07:10 -0000      1.2
***************
*** 65,69 ****
                byte[] buf=Encoding.Default.GetBytes(response);
                
!               return new Authorization("Basic "+Convert.ToBase64String(buf));
        }
  
--- 65,69 ----
                byte[] buf=Encoding.Default.GetBytes(response);
                
!               return new Authorization("Basic "+ToBase64String(buf));
        }
  
***************
*** 86,89 ****
--- 86,157 ----
                }
        }
+ 
+       // Characters to use to encode 6-bit values in base64.
+       private const String base64Chars =
+               
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ 
+       // Convert an array of bytes into a base64 string.
+       private static String ToBase64String(byte[] inArray)
+                       {
+                               if(inArray == null)
+                               {
+                                       throw new 
ArgumentNullException("inArray");
+                               }
+                               return ToBase64String(inArray, 0, 
inArray.Length);
+                       }
+       private static String ToBase64String(byte[] inArray, int offset, int 
length)
+                       {
+                               // Validate the parameters.
+                               if(inArray == null)
+                               {
+                                       throw new 
ArgumentNullException("inArray");
+                               }
+                               if(offset < 0 || offset > inArray.Length)
+                               {
+                                       throw new ArgumentOutOfRangeException
+                                               ("offset", 
S._("ArgRange_Array"));
+                               }
+                               if(length < 0 || length > (inArray.Length - 
offset))
+                               {
+                                       throw new ArgumentOutOfRangeException
+                                               ("length", 
S._("ArgRange_Array"));
+                               }
+ 
+                               // Convert the bytes.
+                               StringBuilder builder =
+                                       new StringBuilder
+                                               ((int)(((((long)length) + 2L) * 
4L) / 3L));
+                               int bits = 0;
+                               int numBits = 0;
+                               String base64 = base64Chars;
+                               int size = length;
+                               while(size > 0)
+                               {
+                                       bits = (bits << 8) + inArray[offset++];
+                                       numBits += 8;
+                                       --size;
+                                       while(numBits >= 6)
+                                       {
+                                               numBits -= 6;
+                                               builder.Append(base64[bits >> 
numBits]);
+                                               bits &= ((1 << numBits) - 1);
+                                       }
+                               }
+                               length %= 3;
+                               if(length == 1)
+                               {
+                                       builder.Append(base64[bits << (6 - 
numBits)]);
+                                       builder.Append('=');
+                                       builder.Append('=');
+                               }
+                               else if(length == 2)
+                               {
+                                       builder.Append(base64[bits << (6 - 
numBits)]);
+                                       builder.Append('=');
+                               }
+ 
+                               // Finished.
+                               return builder.ToString();
+                       }
  
  }; // class BasicClient





reply via email to

[Prev in Thread] Current Thread [Next in Thread]