Fixing this required the removal of the code that attempted to detect virtual interfaces. Not wanting to remove functionality, but not able to keep the code in place, I implemented a work around solution (see 4 below).
Whilst in the area, I also fixed a few minor bugs i encountered (1, 5, 6 below) and stopped SSDP messages from going out on non-LAN interfaces (3)
All these changes are related.
Changes
1 IsInPrivateAddressSpace - improved subnet code checking
2 interfaces with no gateway were being excluded from SSDP blasts
3 filtered SSDP blasts from not LAN addresses as defined on the network page.
4 removed #986 mod - as this was part of the issue of #2986. Interfaces can be excluded from the LAN by putting the LAN address in brackets. eg. [10.1.1.1] will exclude an interface with ip address 10.1.1.1 from SSDP
5 fixed a problem where an invalid LAN address causing the SSDP to crash
6 corrected local link filter (FilterIPAddress) to filter on 169.254. addresses
* Add analyzers to MediaBrowser.XbmcMetadata
* Enable TreatWarningsAsErrors for MediaBrowser.XbmcMetadata
* Add analyzers to MediaBrowser.WebDashboard
* Enable TreatWarningsAsErrors for MediaBrowser.WebDashboard
* Disable SA1600 in favor of CS1591
Previously, when responding to a DLNA "Browse" request, the
`StartingIndex` was not respected and all of the root items were
returned each time. This caused infinite loops with in DLNA clients that
ignored the `TotalMatches` data in the response and just continued
asking for the next page until they got an empty response.
This fix makes the root folder list respect the `StartingIndex` and
`RequestedCount` parameters like all other responses.
Fixes issue #2303
* Fix warnings, improve performance
`QueryResult.Items` is now a `IReadOnlyList` so we don't need to
allocate a new `Array` when we have a `List` (and `Items` shouldn't need to
be mutable anyway)
* Update Providers .csproj to latest C#
* Remove extra newline from DtoService.cs
* Remove extra newline from UserLibraryService.cs
* Compare the MD5 checksum when downloading plugins
* Reduced log spam due to http requests
* Removed 'GetTempFileResponse' function from HttpClientManager
* Fixed caching for HttpClientManager
This will be the right way for multiple interfaces, or the client will
receive all devices message with different IP addresses and could not
detect which one could access.
And provide one option DlnaOptions.SendOnlyMatchedHost to fallback to old
behaviour if this commit missed something.
Some VPN like ZerotierOne owns IP address but no gateway, and there is no
good idea in NetworkManager.GetIPsDefault() to filter such virtual interfaces,
so just provide one option to let user decide it.
Device.cs:
* Improve dispose function
* Style fixes
* Remove unused field
DidlBuilder.cs:
* Remove unused field
* Replace giant if chain with a switch statement
This makes resolving dependencies from the container much easier as
you cannot resolve with primitives parameters in a way that is any
more readable.
The aim of this commit is to change as little as possible with the end
result, loggers that were newed up for the parent object were given the same
name. Objects that used the base or app loggers, were given a new logger with
an appropriate name.
Also removed some unused dependencies.
Added ProductName and ServerVersion to API.
Added build version and build step. Addressed issues wtih indentation.
Made the BuildVersion an actual object. This lets up link to the github page of that commit.
Fixed class method type and styled link.
Fixed languages and split out the information in the UI.
Moved update-version script and gave it executable permissions. Windows correctly finds the .bat file. And linux takes the one without extension.
Removed tempfiles from replace sessions from csproj.
Updated version generation scripts. Will also work with pre existing version files. (Source tarballs etc.)
Added simple replace for ssh github links.
Add execute rights to update-version.
Wrapped long line in ApplicationHost.cs
Fixed some small issues.
Fixed some small issues, and flipped some if's around.
Converted parameter names to camelBack casing.
Sealed the attribute class.
Removed MPLv2 license.
Fixed file headers.
Added newline.
Moved links in *.csproj files as well.
Fix issues caused by rebase auto merging.
Removed default constructor and added init values to properties, also hid the Remote value form API.
Add Argument*Exceptions now use proper nameof operators.
Added exception messages to quite a few Argument*Exceptions.
Fixed rethorwing to be proper syntax.
Added a ton of null checkes. (This is only a start, there are about 500 places that need proper null handling)
Added some TODOs to log certain exceptions.
Fix sln again.
Fixed all AssemblyInfo's and added proper copyright (where I could find them)
We live in *current year*.
Fixed the use of braces.
Fixed a ton of properties, and made a fair amount of functions static that should be and can be static.
Made more Methods that should be static static.
You can now use static to find bad functions!
Removed unused variable. And added one more proper XML comment.
Replaced "Emby Green" with blue taken from artwork.
Replaced artwork.
Kept old "Emby Green" themes for future reuse and renamed them "classic".
Removed CSS element that was making the Jellyfin banner too small.