2 // System.Net.FtpWebResponse.cs
5 // Carlos Alberto Cortez (calberto.cortez@gmail.com)
7 // (c) Copyright 2006 Novell, Inc. (http://www.novell.com)
12 using System.Runtime.Serialization;
19 public class FtpWebResponse : WebResponse
23 FtpStatusCode statusCode;
24 DateTime lastModified = DateTime.MinValue;
25 string bannerMessage = String.Empty;
26 string welcomeMessage = String.Empty;
27 string exitMessage = String.Empty;
28 string statusDescription;
32 internal long contentLength = -1;
34 internal FtpWebResponse (Uri uri, string method, bool keepAlive)
38 //this.keepAlive = keepAlive;
41 internal FtpWebResponse (Uri uri, string method, FtpStatusCode statusCode, string statusDescription) {
44 this.statusCode = statusCode;
45 this.statusDescription = statusDescription;
48 internal FtpWebResponse (Uri uri, string method, FtpStatus status) :
49 this (uri, method, status.StatusCode, status.StatusDescription)
53 public override long ContentLength {
59 public override WebHeaderCollection Headers {
61 return new WebHeaderCollection ();
65 public override Uri ResponseUri {
71 public DateTime LastModified {
80 public string BannerMessage {
85 bannerMessage = value;
89 public string WelcomeMessage {
91 return welcomeMessage;
94 welcomeMessage = value;
98 public string ExitMessage {
107 public FtpStatusCode StatusCode {
116 public string StatusDescription {
118 return statusDescription;
121 statusDescription = value;
125 public override void Close ()
136 public override Stream GetResponseStream ()
138 if (stream == null) {
139 throw new InvalidOperationException ();
142 if (method != WebRequestMethods.Ftp.DownloadFile &&
143 method != WebRequestMethods.Ftp.ListDirectory)
149 internal Stream Stream {
154 get { return stream; }
157 internal void UpdateStatus (FtpStatus status) {
158 statusCode = status.StatusCode;
159 statusDescription = status.StatusDescription;
162 void CheckDisposed ()
165 throw new ObjectDisposedException (GetType ().FullName);
168 internal bool IsFinal () {
169 return ((int) statusCode >= 200);