mirror of
https://github.com/schoebel/mars
synced 2025-02-10 09:08:41 +00:00
net: factor out SS_CONNECTED state checking and add SS_CONNECTING
This commit is contained in:
parent
fdb0b598b0
commit
701963fe28
@ -431,7 +431,8 @@ bool mars_socket_is_alive(struct mars_socket *msock)
|
||||
ok = mars_get_socket(msock);
|
||||
if (likely(ok)) {
|
||||
struct socket *sock = msock->s_socket;
|
||||
if (sock->state == SS_CONNECTED) {
|
||||
|
||||
if (!_socket_not_connected(sock)) {
|
||||
msock->s_connected = true;
|
||||
} else if (msock->s_connected) {
|
||||
MARS_DBG("#%d remote side hangup %p sock = %p\n", msock->s_debug_nr, msock, msock->s_socket);
|
||||
|
@ -163,6 +163,28 @@ extern long mars_socket_send_space_available(struct mars_socket *msock);
|
||||
extern int mars_send_raw(struct mars_socket *msock, const void *buf, int len, bool cork);
|
||||
extern int mars_recv_raw(struct mars_socket *msock, void *buf, int minlen, int maxlen);
|
||||
|
||||
extern inline bool _socket_is_connecting(struct socket *sock)
|
||||
{
|
||||
return (sock->state == SS_CONNECTING);
|
||||
}
|
||||
|
||||
extern inline bool _socket_not_connected(struct socket *sock)
|
||||
{
|
||||
return (sock->state != SS_CONNECTED);
|
||||
}
|
||||
|
||||
extern inline bool mars_socket_is_connecting(struct mars_socket *msock)
|
||||
{
|
||||
return msock->s_socket &&
|
||||
_socket_is_connecting(msock->s_socket);
|
||||
}
|
||||
|
||||
extern inline bool mars_socket_not_connected(struct mars_socket *msock)
|
||||
{
|
||||
return !msock->s_socket ||
|
||||
_socket_not_connected(msock->s_socket);
|
||||
}
|
||||
|
||||
/* Mid-level generic field data exchange
|
||||
*/
|
||||
extern int mars_send_struct(struct mars_socket *msock, const void *data, const struct meta *meta, bool cork);
|
||||
|
Loading…
Reference in New Issue
Block a user