diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-10-27 21:07:40 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-10-27 21:07:40 -0400 |
| commit | ce043225c4096b2082bdf351bd5d59848f4eb533 (patch) | |
| tree | 2978843a59e7df933451a438226c7a91497e9bce /Mono.Nat/Upnp/Messages/Requests/CreatePortMappingMessage.cs | |
| parent | 8e57296f6986f13578f37647640fcaf49c9981f1 (diff) | |
update port mapper
Diffstat (limited to 'Mono.Nat/Upnp/Messages/Requests/CreatePortMappingMessage.cs')
| -rw-r--r-- | Mono.Nat/Upnp/Messages/Requests/CreatePortMappingMessage.cs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Mono.Nat/Upnp/Messages/Requests/CreatePortMappingMessage.cs b/Mono.Nat/Upnp/Messages/Requests/CreatePortMappingMessage.cs index da650fb41..2d128f8e7 100644 --- a/Mono.Nat/Upnp/Messages/Requests/CreatePortMappingMessage.cs +++ b/Mono.Nat/Upnp/Messages/Requests/CreatePortMappingMessage.cs @@ -29,6 +29,7 @@ using System.IO; using System.Globalization; using System.Text; using System.Xml; +using MediaBrowser.Common.Net; namespace Mono.Nat.Upnp { @@ -51,6 +52,25 @@ namespace Mono.Nat.Upnp } #endregion + public override HttpRequestOptions Encode() + { + CultureInfo culture = CultureInfo.InvariantCulture; + + StringBuilder builder = new StringBuilder(256); + XmlWriter writer = CreateWriter(builder); + + WriteFullElement(writer, "NewRemoteHost", string.Empty); + WriteFullElement(writer, "NewExternalPort", this.mapping.PublicPort.ToString(culture)); + WriteFullElement(writer, "NewProtocol", this.mapping.Protocol == Protocol.Tcp ? "TCP" : "UDP"); + WriteFullElement(writer, "NewInternalPort", this.mapping.PrivatePort.ToString(culture)); + WriteFullElement(writer, "NewInternalClient", this.localIpAddress.ToString()); + WriteFullElement(writer, "NewEnabled", "1"); + WriteFullElement(writer, "NewPortMappingDescription", string.IsNullOrEmpty(mapping.Description) ? "Mono.Nat" : mapping.Description); + WriteFullElement(writer, "NewLeaseDuration", mapping.Lifetime.ToString()); + + writer.Flush(); + return CreateRequest("AddPortMapping", builder.ToString()); + } public override WebRequest Encode(out byte[] body) { |
