Peter Urbanec 2c66335a9b upnpevents: Fix leaked sockets
Commit f9a78d598e48132a8c6cf9ce31b51163b6bd2f67 refactored the code, but
in the process introduced a socket leak. When connect() is called on a
socket set to non-blocking mode, the returned error code is EINPROGRESS.
In that case, the code never initialises the ev structure and the socket
reference is lost. Given enough time (on my network about a day and a half)
this will eventually lead to a non-responsive server because the process
runs out of fds. Netstat will show an excessive number of sockets stuck in
CLOSE_WAIT state forever and ls /proc/<pid>/fd will confirm a lot of open
sockets.

Initialising the ev struct before a call to connect() ensures that the
socket reference is not lost. Verifying with netstat, one can see the
sockets in TIME_WAIT state for a brief period of time and /proc/<pid>/fd
shows a reasonable number of sockets being open.
2022-02-11 00:30:04 -08:00
2017-04-28 01:18:53 -07:00
2022-02-11 00:30:04 -08:00
2020-11-18 14:45:11 -08:00
2018-01-23 22:01:10 -08:00
2018-01-23 22:01:10 -08:00
2020-11-18 14:45:11 -08:00
2017-08-22 15:30:10 -07:00
2018-01-11 16:09:15 -08:00
2018-01-11 16:09:15 -08:00
2018-01-11 16:09:15 -08:00
2020-11-24 10:53:50 -08:00
2017-08-22 15:30:10 -07:00
2017-08-22 15:30:10 -07:00
2018-01-16 16:55:26 -08:00
2017-08-23 23:43:42 -07:00
2018-01-16 16:53:10 -08:00
2022-02-11 00:30:04 -08:00
2018-01-23 22:01:10 -08:00
2020-11-24 10:53:50 -08:00
2018-01-16 16:49:49 -08:00
2018-01-03 23:01:46 -08:00
2018-05-04 16:11:25 -07:00
2020-11-18 14:45:11 -08:00

MiniDLNA project
(c) 2009 Justin Maggard
Portions (c) 2006-2007 Thomas Bernard
webpage: http://sourceforge.net/projects/minidlna/

This directory contains the MiniDLNA daemon software.
This software is subject to the conditions detailed in
the LICENCE file provided with this distribution.

Parts of the software including the discovery code are
licensed under the BSD revised license which is detailed
in the LICENSE.miniupnpd file provided with the distribution.
More information on MiniUPnPd can be found at http://miniupnp.free.fr.


The MiniDLNA daemon is an UPnP-A/V and DLNA service which
serves multimedia content to compatible clients on the network.
See http://www.upnp.org/ for more details on UPnP
and http://www.dlna.org/ for mode details on DLNA.

Prerequisites
==================

- libexif
- libjpeg
- libid3tag
- libFLAC
- libvorbis
- libsqlite3
- libavformat (the ffmpeg libraries)


Justin Maggard
Description
A fork of readymedia/minidlna with opus support added
Readme 1.6 MiB
Languages
C 96.4%
M4 2.2%
Roff 0.8%
Shell 0.3%
Makefile 0.3%