Explorar el Código

Added comments to the code

svn path=/trunk/mcs/; revision=12394
Per Arneng hace 23 años
padre
commit
cfda453755

+ 9 - 2
mcs/class/System.Web/System.Web.Mail/Base64AttachmentEncoder.cs

@@ -1,11 +1,18 @@
-// Per Arneng <[email protected]>
+//
+// System.Web.Mail.Base64AttachmentEncoder.cs
+//
+// Author(s):
+//   Per Arneng <[email protected]>
+//
+//
 using System;
 using System.IO;
 using System.Text;
 using System.Security.Cryptography;
 
 namespace System.Web.Mail {
-
+    
+    // a class that handles Base64 encoding for attachments
     internal class Base64AttachmentEncoder : IAttachmentEncoder {
 	
 	// reads bytes from a stream and writes the encoded

+ 9 - 2
mcs/class/System.Web/System.Web.Mail/IAttachmentEncoder.cs

@@ -1,9 +1,16 @@
-// Per Arneng <[email protected]>
+//
+// System.Web.Mail.IAttachmentEncoder.cs
+//
+// Author(s):
+//   Per Arneng <[email protected]>
+//
+//
 using System;
 using System.IO;
 
 namespace System.Web.Mail {
-
+    
+    // An interface for attachment encoders ex Base64, UUEncode
     interface IAttachmentEncoder {
 	void EncodeStream(  Stream ins , Stream outs );	
     }

+ 7 - 2
mcs/class/System.Web/System.Web.Mail/SmtpClient.cs

@@ -1,5 +1,10 @@
-// SmtpClient.cs
-// author: Per Arneng <[email protected]>
+//
+// System.Web.Mail.SmtpClient.cs
+//
+// Author(s):
+//   Per Arneng <[email protected]>
+//
+//
 using System;
 using System.Net;
 using System.IO;

+ 8 - 0
mcs/class/System.Web/System.Web.Mail/SmtpException.cs

@@ -1,7 +1,15 @@
+//
+// System.Web.Mail.SmtpException.cs
+//
+// Author(s):
+//   Per Arneng <[email protected]>
+//
+//
 using System.IO;
 
 namespace System.Web.Mail {
 
+    // an exception thrown when an smtp exception occurs
     internal class SmtpException : IOException {
 	public SmtpException( string message ) : base( message ) {}
     }

+ 7 - 2
mcs/class/System.Web/System.Web.Mail/SmtpResponse.cs

@@ -1,5 +1,10 @@
-// SmtpResponse.cs
-// author: Per Arneng <[email protected]>
+//
+// System.Web.Mail.SmtpResponse.cs
+//
+// Author(s):
+//   Per Arneng <[email protected]>
+//
+//
 using System;
 
 namespace System.Web.Mail {

+ 7 - 2
mcs/class/System.Web/System.Web.Mail/SmtpStream.cs

@@ -1,5 +1,10 @@
-// SmtpStream.cs
-// author: Per Arneng <[email protected]>
+//
+// System.Web.Mail.SmtpStream.cs
+//
+// Author(s):
+//   Per Arneng <[email protected]>
+//
+//
 using System;
 using System.IO;
 using System.Collections;

+ 21 - 6
mcs/class/System.Web/System.Web.Mail/ToUUEncodingTransform.cs

@@ -1,10 +1,16 @@
-// Per Arneng <[email protected]>
+//
+// System.Web.Mail.ToUUEncodingTransform.cs
+//
+// Author(s):
+//   Per Arneng <[email protected]>
+//
+//
 using System;
 using System.Security.Cryptography;
 
 namespace System.Web.Mail {
 
-    
+    // This class transforms blocks of plaintext to UU encoding
     internal class ToUUEncodingTransform : ICryptoTransform {
 	
 	public int InputBlockSize { get { return 45; } }
@@ -13,7 +19,7 @@ namespace System.Web.Mail {
 	public bool CanTransformMultipleBlocks { get { return true; } }
 	public bool CanReuseTransform { get { return true; } }
     
-	
+	// transforms a block of bytes to UU encoding
 	public int TransformBlock( byte[] inputBuffer,
 				   int inputOffset,
 				   int inputCount,
@@ -21,8 +27,10 @@ namespace System.Web.Mail {
 				   int outputOffset
 				   ) {
 	    
+	    // write the line length length+0x20
 	    outputBuffer[ 0 ] = (byte)'M';
 	    
+	    // transform the block 3bytes at a time
 	    for( int i=0;i<15;i++ ) {
 		
 		TransformTriplet( inputBuffer , inputOffset + i * 3 , 3,
@@ -31,23 +39,28 @@ namespace System.Web.Mail {
 	    }
 	    
 	    
-	    return 61;
+	    return OutputBlockSize;
 	}
 	
+	// make a final uu transformations
 	public byte[] TransformFinalBlock(byte[] inputBuffer,
 					  int inputOffset,
 					  int inputCount
 					  ) {
 	    
-	    	    
+	    // calculate how many 4-byte blocks there are
 	    int tripletBlocks = inputCount / 3 + 1;
 	    
+	    // create a new buffer and copy the input data into that
 	    byte[] buffer = new byte[ tripletBlocks * 3 ];
 	    Buffer.BlockCopy( inputBuffer,inputOffset, buffer,0,inputCount);
 	    
+	    // create the outpur buffer and set the first byte
+	    // to the length+0x20
 	    byte[] outputBuffer = new byte[ tripletBlocks * 4 + 1 ];
 	    outputBuffer[ 0 ] = (byte)(inputCount+0x20);
 	    
+	    // transform the block 3bytes at a time
 	    for( int i =0 ; i < tripletBlocks ; i++ ) {
 		TransformTriplet( inputBuffer , inputOffset + i * 3 , 3,
 				  outputBuffer , i * 4 + 1);
@@ -58,7 +71,8 @@ namespace System.Web.Mail {
 	    return outputBuffer;
 	    	    
 	}
-
+	
+	// transforms a 3byte buffer to a 4byte uuencoded buffer
 	protected int TransformTriplet( byte[] inputBuffer,
 					int inputOffset,
 					int inputCount,
@@ -82,6 +96,7 @@ namespace System.Web.Mail {
 	    outputBuffer[ outputOffset + 3 ] = 
 		(byte)(0x20 + (( c                         ) & 0x3F));
 	    
+	    // tanslate all 0x20 to 0x60 according to specs
 	    for( int i = 0; i < 4; i++ ) {
 		if( outputBuffer[ outputOffset + i ] == 0x20 ) {
 		    outputBuffer[ outputOffset + i ] = 0x60;

+ 15 - 2
mcs/class/System.Web/System.Web.Mail/UUAttachmentEncoder.cs

@@ -1,10 +1,17 @@
-// Per Arneng <[email protected]>
+//
+// System.Web.Mail.UUAttachmentEncoder.cs
+//
+// Author(s):
+//   Per Arneng <[email protected]>
+//
+//
 using System;
 using System.IO;
 using System.Text;
 
 namespace System.Web.Mail {
 
+    // a class that handles UU encoding for attachments
     internal class UUAttachmentEncoder : IAttachmentEncoder {
 	
 	protected byte[] beginTag;
@@ -23,20 +30,25 @@ namespace System.Web.Mail {
 	    endl = Encoding.ASCII.GetBytes( endlstr );
 	}
 	
+	// uu encodes a stream in to another stream
 	public void EncodeStream(  Stream ins , Stream outs ) {
 	    
+	    // write the start tag
 	    outs.Write( beginTag , 0 , beginTag.Length );	   
 	    
+	    // create the uu transfom and the buffers
 	    ToUUEncodingTransform tr = new ToUUEncodingTransform();
 	    byte[] input = new byte[ tr.InputBlockSize ];
 	    byte[] output = new byte[ tr.OutputBlockSize ];
 	    
 	    while( true ) {
 			
-				
+		// read from the stream until no more data is available
 		int check = ins.Read( input , 0 , input.Length );
 		if( check < 1 ) break;
 		
+		// if the read length is not InputBlockSize
+		// write a the final block
 		if( check == tr.InputBlockSize ) {
 		    tr.TransformBlock( input , 0 , check , output , 0 );
 		    outs.Write( output , 0 , output.Length );
@@ -50,6 +62,7 @@ namespace System.Web.Mail {
 				
 	    }
 	    
+	    // write the end tag.
 	    outs.Write( endTag , 0 , endTag.Length );
         }