Ken Gaillot
780f893122
Fix: valgrind "invalid file descriptor" warning
2015-08-18 09:14:50 -05:00
David Vossel
08356b84fa
Fix: ipcc: Properly timeout during recv when timeout value is provided
2014-03-12 14:05:13 -04:00
David Vossel
8bd36d3e5c
Feature: New api function to retrieve client buffer size
...
When server side buffer limits are in use, this is
necessary to determine the buffer size the server
is enforcing after the client connection is established.
2013-11-18 16:53:39 -06:00
David Vossel
b327dbec73
Low: ipc_socket: Fixes fd leak in socket ipc client disconnection
2013-09-16 18:38:20 -05:00
David Vossel
ff180f7a55
Fix: ipcs: Disconnect shm ipc connection when poll socket returns error on msg receive
2013-07-01 19:20:51 -05:00
Kazunori INOUE
1894470470
IPC: fix the connection state checking
2013-03-22 15:46:00 +09:00
Angus Salkeld
59243fb68c
IPC: clean up the connection state checking
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2013-02-18 23:02:30 +11:00
Angus Salkeld
31d9f0900d
Use dgram sockets for message oriented communications
...
This is to prevent partial sends and gettting stuck in
retry loops.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2013-02-18 20:51:33 +11:00
Angus Salkeld
dde6a46a83
IPC: make sure we return a consistent error when the message is too big.
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2013-01-25 11:20:19 +11:00
Andrew Beekhof
e771439c1c
IPC: Pass the timeout to poll() if the recv function returns EAGAIN
2012-10-23 11:14:59 +11:00
Angus Salkeld
c7810b38b1
Remove IPC_NEEDS_RESPONSE_ACK and turn off shm ipc on solaris
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-08-31 14:53:38 +10:00
Angus Salkeld
50632154ed
Catch disconnected sockets on Solaris
...
It seems like poll() was not producing a POLLHUP
so we rely on qb_ipc_us_recv() returning -ENOTCONN.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-08-24 11:49:07 +10:00
Angus Salkeld
3b31023d84
IPC: use calloc instead of malloc to fix valgrind warnings
...
This is to cleanup some valgrind warnings.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-07-17 12:22:17 +10:00
Angus Salkeld
73731f0643
IPC: if the server returns EAGAIN or ETIMEOUT the check the connection
...
Mainly useful for shm, as the ringbuffer doesn't know the state
of the connection.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-06-06 13:46:58 +10:00
Angus Salkeld
1e81530332
IPC: On bsd's use the notifier for responses
...
The point of this is to catch connection failures
more reliably.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-06-01 11:12:44 +10:00
Angus Salkeld
70a9623a48
Remove message queues
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-05-28 13:41:04 +10:00
Angus Salkeld
b29326a363
IPC: add a is_connected client side function.
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-05-01 12:43:22 +10:00
Angus Salkeld
0e140bbf0f
IPC: allow qb to bump the max_message_size
...
I think this is more user friendly.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-04-23 20:42:45 +10:00
Angus Salkeld
72033f2b4f
IPC: check for a sane minimum max_message_size
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-04-23 19:57:26 +10:00
Angus Salkeld
239ddc067f
Handle errors more consistently
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-04-04 21:57:49 +10:00
Angus Salkeld
b650bf29d6
call recv_ready on socket types
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-04-04 21:57:49 +10:00
Angus Salkeld
c2f5f94312
IPC: make sure that the wrong union member is not written to.
...
Move the connection type into the one_way struct. Seem
like a more obvious place for it next to the union.
Also it will help prevent issues like in qb_ipc_us_recv()
where there is a rather dodgy access of ctl->sent.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-03-09 12:18:02 +11:00
Angus Salkeld
d633b4e2fa
IPC: split up the recv into chuncks of 2 seconds.
...
This is because semaphores can't detect the other side has
failed/exited. So we rely on the socket poll to tell us.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-02-14 16:42:59 +11:00
Angus Salkeld
7a6382f0b6
Use safer versions of string functions (strcpy -> strlcpy)
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-02-08 22:00:49 +11:00
Angus Salkeld
18bcbef790
IPC: this 1 sec wait is slowing all normal dissconnects down
...
this works just as well with a timeout of 0
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-01-23 10:39:31 +11:00
Angus Salkeld
295f7e48bb
IPC: check for the server liveness before disconnecting.
...
if the server is dead then is_connected will cause the resourses
to be properly cleaned up.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-01-21 22:05:50 +11:00
Angus Salkeld
2f99276d16
IPC: add a context to the client interface
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-01-18 15:24:34 +11:00
Angus Salkeld
477fac4e01
IPC: fix resource cleanup if the server dies
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2012-01-12 15:09:58 +11:00
Angus Salkeld
ab3dc60f7f
Merge some portability changes from the mingw branch
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2011-12-21 14:23:43 +11:00
Andrew Beekhof
61d166abbc
Support compilation on Mac OSX
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2011-12-19 22:16:30 +11:00
Angus Salkeld
e0c5187023
IPC: provide finer grained flowcontrol
...
this will allow the user to control the behaviour better.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2011-12-14 00:55:06 +11:00
Angus Salkeld
ef77398738
Fix errors found by api-sanity-autotest
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2011-11-25 17:16:19 +11:00
Angus Salkeld
98493d9ae8
Change Lindent options to break the procedure type.
...
so change:
int foo(void)
to
int
foo(void)
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2011-06-22 14:19:14 +10:00
Angus Salkeld
7a2b77f575
IPC: set the return status before cleaning up.
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2011-05-18 11:49:51 +10:00
Angus Salkeld
943b1c646b
fix the FIXME's Jim pointed out
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2011-05-18 11:11:14 +10:00
Jim Meyering
9c467cb150
add FIXME comments for other NULL-deref-upon-OOM problems
...
* lib/ipc_us.c (handle_new_connection):
* lib/loop_job.c (qb_loop_jobs_create):
* lib/loop_poll.c (qb_loop_poll_create):
* lib/loop_timerlist.c (qb_loop_timer_create):
* lib/ringbuffer.c (qb_rb_open):
* lib/ipcc.c (qb_ipcc_connect): Likewise.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2011-05-17 21:32:29 +10:00
Angus Salkeld
7d46c9ad3f
IPC: use rb refcount to check for "connectiveness"
...
This makes it possible the detect the loss of the server
and return -ENOTCONN.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2010-12-16 22:09:52 +11:00
Angus Salkeld
43181d5a95
IPC: add a timeout to the client recv functions
...
Also allow the ringbuffer to pass ETIMEDOUT back to the
client applications.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2010-12-16 21:47:47 +11:00
Angus Salkeld
62cef166b4
IPC: improve shm performance by timing out earlier on poll()
...
My receint change adding in a call to recv_ready(, 10) was
really slowing down the shm performance.
So now I am rather retrying which doesn't slow it down
and also passes "make check".
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2010-12-14 22:54:16 +11:00
Angus Salkeld
7f0e653794
IPC: return the correct number of bytes sent
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2010-12-14 21:51:08 +11:00
Angus Salkeld
8e291c78d5
IPC: return EAGAIN from qb_ipcc_recv() if recv_ready() returns 0
...
found with corosync CTS
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2010-12-10 16:12:01 +11:00
Angus Salkeld
d0b14bdbdf
IPC: return -ENOTCONN when the other end exits
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2010-12-10 12:22:03 +11:00
Angus Salkeld
720adbdddf
IPC: add flow control & q_len to unix socket transport.
...
This uses a small (2*int32_t) shared memory segment.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2010-11-03 09:48:15 +11:00
Angus Salkeld
31ca215188
IPC: add support for unix sockets
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2010-10-17 14:23:53 +11:00
Angus Salkeld
e9d10dfdbe
IPC: remove flow control API and move functionality into send()
...
There is no point in a separate API.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2010-10-14 09:16:00 +11:00
Angus Salkeld
0d9f8720b9
IPC: add qb_ipcc_sendv_recv() convenience function.
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2010-10-13 10:01:30 +11:00
Angus Salkeld
e1686dbd6a
IPC: add support for flowcontrol & rate limiting
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2010-10-12 21:53:53 +11:00
Angus Salkeld
1a13b65de1
IPC: cleanup some formatting.
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2010-10-12 21:53:52 +11:00
Angus Salkeld
99a8264550
IPC: improve send/recv error handling
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2010-10-12 21:53:52 +11:00
Angus Salkeld
3dcd1126f6
IPC: remove qb_ipcc_event_release()
...
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
2010-10-12 21:46:53 +11:00