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
e2b7c308
Commit
e2b7c308
authored
8 years ago
by
Max Kellermann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
event/BufferedSocket: pass std::exception_ptr to OnSocketError()
parent
c8bb3c0b
sisyphus
0.23.15-alt1
0.23.14-alt1
0.23.13-alt1
0.23.12-alt1
0.23.11-alt1
0.23.8-alt3
0.23.8-alt2
0.23.8-alt1
0.21.24-alt1.1
0.21.24-alt1
0.20.23-alt3
0.20.23-alt2
0.20.23-alt1
0.20.21-alt1
0.20.15-alt1
mpd/0.20.6-alt1
gb-sisyphus-task339776.6100
gb-sisyphus-task337393.100
gb-sisyphus-task337176.300
gb-sisyphus-task334590.100
gb-sisyphus-task333607.100
gb-sisyphus-task331543.2500
gb-sisyphus-task328663.4700
gb-sisyphus-task325064.100
gb-sisyphus-task319111.4000
gb-sisyphus-task313704.100
gb-sisyphus-task312885.100
gb-sisyphus-task308905.3200
gb-sisyphus-task305294.500
gb-sisyphus-task304007.100
gb-sisyphus-task303674.1700
gb-sisyphus-task298681.300
gb-sisyphus-task296051.1000
gb-sisyphus-task274827.100
gb-sisyphus-task269249.2000
gb-sisyphus-task266579.400
gb-sisyphus-task258132.600
gb-sisyphus-task254601.200
gb-sisyphus-task253310.100
gb-sisyphus-task252214.300
gb-sisyphus-task251539.6100
gb-sisyphus-task247988.7000
gb-sisyphus-task238768.6000
gb-sisyphus-task229151.100
gb-sisyphus-task227574.200
gb-sisyphus-task226762.6000
gb-sisyphus-task219546.1700
gb-sisyphus-task213491.100
gb-sisyphus-task198806.100
gb-sisyphus-task181400.100
gb-p9-task277538.2600
gb-c9f2-task327704.1100
No related merge requests found
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
13 additions
and
25 deletions
+13
-25
Client.hxx
src/client/Client.hxx
+1
-1
ClientEvent.cxx
src/client/ClientEvent.cxx
+2
-2
BufferedSocket.cxx
src/event/BufferedSocket.cxx
+2
-9
BufferedSocket.hxx
src/event/BufferedSocket.hxx
+3
-2
FullyBufferedSocket.cxx
src/event/FullyBufferedSocket.cxx
+2
-8
HttpdClient.cxx
src/output/plugins/httpd/HttpdClient.cxx
+2
-2
HttpdClient.hxx
src/output/plugins/httpd/HttpdClient.hxx
+1
-1
No files found.
src/client/Client.hxx
View file @
e2b7c308
...
...
@@ -200,7 +200,7 @@ public:
private
:
/* virtual methods from class BufferedSocket */
virtual
InputResult
OnSocketInput
(
void
*
data
,
size_t
length
)
override
;
v
irtual
void
OnSocketError
(
Error
&&
error
)
override
;
v
oid
OnSocketError
(
std
::
exception_ptr
ep
)
override
;
virtual
void
OnSocketClosed
()
override
;
/* virtual methods from class TimeoutMonitor */
...
...
This diff is collapsed.
Click to expand it.
src/client/ClientEvent.cxx
View file @
e2b7c308
...
...
@@ -22,9 +22,9 @@
#include "Log.hxx"
void
Client
::
OnSocketError
(
Error
&&
error
)
Client
::
OnSocketError
(
std
::
exception_ptr
ep
)
{
FormatError
(
e
rror
,
"error on client %d"
,
num
);
FormatError
(
e
p
,
"error on client %d"
,
num
);
SetExpired
();
}
...
...
This diff is collapsed.
Click to expand it.
src/event/BufferedSocket.cxx
View file @
e2b7c308
...
...
@@ -20,8 +20,6 @@
#include "config.h"
#include "BufferedSocket.hxx"
#include "net/SocketError.hxx"
#include "util/Error.hxx"
#include "util/Domain.hxx"
#include "Compiler.h"
#include <algorithm>
...
...
@@ -45,7 +43,7 @@ BufferedSocket::DirectRead(void *data, size_t length)
if
(
IsSocketErrorClosed
(
code
))
OnSocketClosed
();
else
OnSocketError
(
NewSocketError
(
code
));
OnSocketError
(
std
::
make_exception_ptr
(
MakeSocketError
(
code
,
"Failed to receive from socket"
)
));
return
-
1
;
}
...
...
@@ -80,12 +78,7 @@ BufferedSocket::ResumeInput()
switch
(
result
)
{
case
InputResult
:
:
MORE
:
if
(
input
.
IsFull
())
{
// TODO
static
constexpr
Domain
buffered_socket_domain
(
"buffered_socket"
);
Error
error
;
error
.
Set
(
buffered_socket_domain
,
"Input buffer is full"
);
OnSocketError
(
std
::
move
(
error
));
OnSocketError
(
std
::
make_exception_ptr
(
std
::
runtime_error
(
"Input buffer is full"
)));
return
false
;
}
...
...
This diff is collapsed.
Click to expand it.
src/event/BufferedSocket.hxx
View file @
e2b7c308
...
...
@@ -24,10 +24,11 @@
#include "SocketMonitor.hxx"
#include "util/StaticFifoBuffer.hxx"
#include <exception>
#include <assert.h>
#include <stdint.h>
class
Error
;
class
EventLoop
;
/**
...
...
@@ -109,7 +110,7 @@ protected:
*/
virtual
InputResult
OnSocketInput
(
void
*
data
,
size_t
length
)
=
0
;
virtual
void
OnSocketError
(
Error
&&
error
)
=
0
;
virtual
void
OnSocketError
(
std
::
exception_ptr
ep
)
=
0
;
virtual
void
OnSocketClosed
()
=
0
;
virtual
bool
OnSocketReady
(
unsigned
flags
)
override
;
...
...
This diff is collapsed.
Click to expand it.
src/event/FullyBufferedSocket.cxx
View file @
e2b7c308
...
...
@@ -20,8 +20,6 @@
#include "config.h"
#include "FullyBufferedSocket.hxx"
#include "net/SocketError.hxx"
#include "util/Error.hxx"
#include "util/Domain.hxx"
#include "Compiler.h"
#include <assert.h>
...
...
@@ -42,7 +40,7 @@ FullyBufferedSocket::DirectWrite(const void *data, size_t length)
if
(
IsSocketErrorClosed
(
code
))
OnSocketClosed
();
else
OnSocketError
(
NewSocketError
(
code
));
OnSocketError
(
std
::
make_exception_ptr
(
MakeSocketError
(
code
,
"Failed to send to socket"
)
));
}
return
nbytes
;
...
...
@@ -85,11 +83,7 @@ FullyBufferedSocket::Write(const void *data, size_t length)
const
bool
was_empty
=
output
.
IsEmpty
();
if
(
!
output
.
Append
(
data
,
length
))
{
// TODO
static
constexpr
Domain
buffered_socket_domain
(
"buffered_socket"
);
Error
error
;
error
.
Set
(
buffered_socket_domain
,
"Output buffer is full"
);
OnSocketError
(
std
::
move
(
error
));
OnSocketError
(
std
::
make_exception_ptr
(
std
::
runtime_error
(
"Output buffer is full"
)));
return
false
;
}
...
...
This diff is collapsed.
Click to expand it.
src/output/plugins/httpd/HttpdClient.cxx
View file @
e2b7c308
...
...
@@ -474,9 +474,9 @@ HttpdClient::OnSocketInput(void *data, size_t length)
}
void
HttpdClient
::
OnSocketError
(
Error
&&
error
)
HttpdClient
::
OnSocketError
(
std
::
exception_ptr
ep
)
{
LogError
(
e
rror
);
LogError
(
e
p
);
}
void
...
...
This diff is collapsed.
Click to expand it.
src/output/plugins/httpd/HttpdClient.hxx
View file @
e2b7c308
...
...
@@ -191,7 +191,7 @@ private:
protected
:
virtual
bool
OnSocketReady
(
unsigned
flags
)
override
;
virtual
InputResult
OnSocketInput
(
void
*
data
,
size_t
length
)
override
;
v
irtual
void
OnSocketError
(
Error
&&
error
)
override
;
v
oid
OnSocketError
(
std
::
exception_ptr
ep
)
override
;
virtual
void
OnSocketClosed
()
override
;
};
...
...
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