Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ TryUpdateResponseUri()

void System.Net.FtpControlStream.TryUpdateResponseUri ( string str,
FtpWebRequest request )
inlineprivate

Definition at line 715 of file FtpControlStream.cs.

716 {
717 Uri uri = request.RequestUri;
718 int num = str.IndexOf("for ", StringComparison.Ordinal);
719 if (num == -1)
720 {
721 return;
722 }
723 num += 4;
724 int num2 = str.LastIndexOf('(');
725 if (num2 == -1)
726 {
727 num2 = str.Length;
728 }
729 if (num2 > num)
730 {
731 string text = str.Substring(num, num2 - num);
732 text = text.TrimEnd(' ', '.', '\r', '\n');
733 string text2 = text.Replace("%", "%25");
734 text2 = text2.Replace("#", "%23");
735 string absolutePath = uri.AbsolutePath;
736 if (absolutePath.Length > 0 && absolutePath[absolutePath.Length - 1] != '/')
737 {
738 UriBuilder uriBuilder = new UriBuilder(uri);
739 uriBuilder.Path = absolutePath + "/";
740 uri = uriBuilder.Uri;
741 }
742 if (!Uri.TryCreate(uri, text2, out Uri result))
743 {
744 throw new FormatException(System.SR.Format(System.SR.net_ftp_invalid_response_filename, text));
745 }
746 if (!uri.IsBaseOf(result) || uri.Segments.Length != result.Segments.Length - 1)
747 {
748 throw new FormatException(System.SR.Format(System.SR.net_ftp_invalid_response_filename, text));
749 }
750 _responseUri = result;
751 }
752 }
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string net_ftp_invalid_response_filename
Definition SR.cs:90
Definition SR.cs:7

References System.Net.FtpControlStream._responseUri, System.Uri.AbsolutePath, System.SR.Format(), System.Uri.IsBaseOf(), System.SR.net_ftp_invalid_response_filename, System.Uri.Segments, System.str, System.text, and System.Uri.TryCreate().

Referenced by System.Net.FtpControlStream.PipelineCallback().