Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mpd
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Иван Мажукин
mpd
Commits
ea5e6d8f
Commit
ea5e6d8f
authored
6 years ago
by
Max Kellermann
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'v0.21.x'
parents
c1272c72
f6941f9a
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
45 additions
and
17 deletions
+45
-17
NEWS
NEWS
+7
-0
AndroidManifest.xml
android/AndroidManifest.xml
+2
-2
ProxyDatabasePlugin.cxx
src/db/plugins/ProxyDatabasePlugin.cxx
+4
-2
BufferedSocket.cxx
src/event/BufferedSocket.cxx
+1
-7
BufferedSocket.hxx
src/event/BufferedSocket.hxx
+5
-0
FullyBufferedSocket.hxx
src/event/FullyBufferedSocket.hxx
+5
-0
SocketMonitor.cxx
src/event/SocketMonitor.cxx
+2
-2
IPv4Address.hxx
src/net/IPv4Address.hxx
+1
-1
IPv6Address.hxx
src/net/IPv6Address.hxx
+1
-1
HttpdClient.cxx
src/output/plugins/httpd/HttpdClient.cxx
+2
-1
HttpdClient.hxx
src/output/plugins/httpd/HttpdClient.hxx
+2
-0
HttpdInternal.hxx
src/output/plugins/httpd/HttpdInternal.hxx
+12
-0
ZeroconfBonjour.cxx
src/zeroconf/ZeroconfBonjour.cxx
+1
-1
No files found.
NEWS
View file @
ea5e6d8f
...
...
@@ -8,6 +8,13 @@ ver 0.22 (not yet released)
- ffmpeg: new plugin based on FFmpeg's libavfilter library
- hdcd: new plugin based on FFmpeg's "af_hdcd" for HDCD playback
ver 0.21.8 (not yet released)
* output
- httpd: add missing mutex lock
- httpd: fix use-after-free bug
* fix Bonjour bug
* fix build failure with GCC 9
ver 0.21.7 (2019/04/03)
* input
- qobuz/tidal: scan tags when loading a playlist
...
...
This diff is collapsed.
Click to expand it.
android/AndroidManifest.xml
View file @
ea5e6d8f
...
...
@@ -2,8 +2,8 @@
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
package=
"org.musicpd"
android:installLocation=
"auto"
android:versionCode=
"
29
"
android:versionName=
"0.21.
7
"
>
android:versionCode=
"
30
"
android:versionName=
"0.21.
8
"
>
<uses-sdk
android:minSdkVersion=
"21"
android:targetSdkVersion=
"26"
/>
...
...
This diff is collapsed.
Click to expand it.
src/db/plugins/ProxyDatabasePlugin.cxx
View file @
ea5e6d8f
...
...
@@ -568,7 +568,8 @@ ProxyDatabase::OnSocketReady(gcc_unused unsigned flags) noexcept
if
(
!
is_idle
)
{
// TODO: can this happen?
IdleMonitor
::
Schedule
();
return
false
;
SocketMonitor
::
Cancel
();
return
true
;
}
unsigned
idle
=
(
unsigned
)
mpd_recv_idle
(
connection
,
false
);
...
...
@@ -586,7 +587,8 @@ ProxyDatabase::OnSocketReady(gcc_unused unsigned flags) noexcept
idle_received
|=
idle
;
is_idle
=
false
;
IdleMonitor
::
Schedule
();
return
false
;
SocketMonitor
::
Cancel
();
return
true
;
}
void
...
...
This diff is collapsed.
Click to expand it.
src/event/BufferedSocket.cxx
View file @
ea5e6d8f
...
...
@@ -110,15 +110,9 @@ BufferedSocket::OnSocketReady(unsigned flags) noexcept
if
(
flags
&
READ
)
{
assert
(
!
input
.
IsFull
());
if
(
!
ReadToBuffer
())
if
(
!
ReadToBuffer
()
||
!
ResumeInput
()
)
return
false
;
if
(
!
ResumeInput
())
/* we must return "true" here or
SocketMonitor::Dispatch() will call
Cancel() on a freed object */
return
true
;
if
(
!
input
.
IsFull
())
ScheduleRead
();
}
...
...
This diff is collapsed.
Click to expand it.
src/event/BufferedSocket.hxx
View file @
ea5e6d8f
...
...
@@ -47,6 +47,11 @@ public:
using
SocketMonitor
::
Close
;
private
:
/**
* @return the number of bytes read from the socket, 0 if the
* socket isn't ready for reading, -1 on error (the socket has
* been closed and probably destructed)
*/
ssize_t
DirectRead
(
void
*
data
,
size_t
length
)
noexcept
;
/**
...
...
This diff is collapsed.
Click to expand it.
src/event/FullyBufferedSocket.hxx
View file @
ea5e6d8f
...
...
@@ -46,6 +46,11 @@ public:
}
private
:
/**
* @return the number of bytes written to the socket, 0 if the
* socket isn't ready for writing, -1 on error (the socket has
* been closed and probably destructed)
*/
ssize_t
DirectWrite
(
const
void
*
data
,
size_t
length
)
noexcept
;
protected
:
...
...
This diff is collapsed.
Click to expand it.
src/event/SocketMonitor.cxx
View file @
ea5e6d8f
...
...
@@ -33,8 +33,8 @@ SocketMonitor::Dispatch(unsigned flags) noexcept
{
flags
&=
GetScheduledFlags
();
if
(
flags
!=
0
&&
!
OnSocketReady
(
flags
)
&&
IsDefined
()
)
Cancel
(
);
if
(
flags
!=
0
)
OnSocketReady
(
flags
);
}
SocketMonitor
::~
SocketMonitor
()
noexcept
...
...
This diff is collapsed.
Click to expand it.
src/net/IPv4Address.hxx
View file @
ea5e6d8f
...
...
@@ -168,7 +168,7 @@ public:
}
constexpr
operator
SocketAddress
()
const
noexcept
{
return
SocketAddress
((
const
struct
sockaddr
*
)
&
address
,
return
SocketAddress
((
const
struct
sockaddr
*
)
(
const
void
*
)
&
address
,
sizeof
(
address
));
}
...
...
This diff is collapsed.
Click to expand it.
src/net/IPv6Address.hxx
View file @
ea5e6d8f
...
...
@@ -135,7 +135,7 @@ public:
}
constexpr
operator
SocketAddress
()
const
noexcept
{
return
SocketAddress
((
const
struct
sockaddr
*
)
&
address
,
return
SocketAddress
((
const
struct
sockaddr
*
)
(
const
void
*
)
&
address
,
sizeof
(
address
));
}
...
...
This diff is collapsed.
Click to expand it.
src/output/plugins/httpd/HttpdClient.cxx
View file @
ea5e6d8f
...
...
@@ -154,7 +154,7 @@ HttpdClient::SendResponse() noexcept
FormatWarning
(
httpd_output_domain
,
"failed to write to client: %s"
,
(
const
char
*
)
msg
);
Close
();
Lock
Close
();
return
false
;
}
...
...
@@ -428,6 +428,7 @@ void
HttpdClient
::
OnSocketError
(
std
::
exception_ptr
ep
)
noexcept
{
LogError
(
ep
);
LockClose
();
}
void
...
...
This diff is collapsed.
Click to expand it.
src/output/plugins/httpd/HttpdClient.hxx
View file @
ea5e6d8f
...
...
@@ -142,6 +142,8 @@ public:
/**
* Frees the client and removes it from the server's client list.
*
* Caller must lock the mutex.
*/
void
Close
()
noexcept
;
...
...
This diff is collapsed.
Click to expand it.
src/output/plugins/httpd/HttpdInternal.hxx
View file @
ea5e6d8f
...
...
@@ -208,10 +208,15 @@ public:
return
HasClients
();
}
/**
* Caller must lock the mutex.
*/
void
AddClient
(
UniqueSocketDescriptor
fd
)
noexcept
;
/**
* Removes a client from the httpd_output.clients linked list.
*
* Caller must lock the mutex.
*/
void
RemoveClient
(
HttpdClient
&
client
)
noexcept
;
...
...
@@ -239,10 +244,14 @@ public:
/**
* Broadcasts data from the encoder to all clients.
*
* Mutext must not be locked.
*/
void
BroadcastFromEncoder
();
/**
* Mutext must not be locked.
*
* Throws #std::runtime_error on error.
*/
void
EncodeAndPlay
(
const
void
*
chunk
,
size_t
size
);
...
...
@@ -251,6 +260,9 @@ public:
size_t
Play
(
const
void
*
chunk
,
size_t
size
)
override
;
/**
* Mutext must not be locked.
*/
void
CancelAllClients
()
noexcept
;
void
Cancel
()
noexcept
override
;
...
...
This diff is collapsed.
Click to expand it.
src/zeroconf/ZeroconfBonjour.cxx
View file @
ea5e6d8f
...
...
@@ -50,7 +50,7 @@ protected:
/* virtual methods from class SocketMonitor */
bool
OnSocketReady
(
gcc_unused
unsigned
flags
)
noexcept
override
{
DNSServiceProcessResult
(
service_ref
);
return
fals
e
;
return
tru
e
;
}
};
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment