ERROR("%s - Connection failed: %s", tconn->conn->name, fr_syserror(fd_errno));
- connection_signal_reconnect(tconn->conn, connection_FAILED);
+ connection_signal_reconnect(tconn->conn, CONNECTION_FAILED);
}
/** Setup callbacks requested by LDAP trunk connections
ldap_conn_error,
tconn) < 0) {
PERROR("Failed inserting FD event");
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
}
}
ERROR("Invalid LDAP query for trunk connection");
error:
trunk_request_signal_fail(query->treq);
- if (status == LDAP_PROC_BAD_CONN) trunk_connection_signal_reconnect(tconn,
- connection_FAILED);
+ if (status == LDAP_PROC_BAD_CONN) trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
continue;
}
rcode = fr_ldap_error_check(NULL, ldap_conn, NULL, NULL);
if (rcode == LDAP_PROC_BAD_CONN) {
ERROR("Bad LDAP connection");
- connection_signal_reconnect(tconn->conn, connection_FAILED);
+ connection_signal_reconnect(tconn->conn, CONNECTION_FAILED);
}
return;
* seems to leave the connection in an unpredictable state
* so safer to restart.
*/
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
} else {
#endif
ldap_abandon_ext(ldap_conn->handle, bind->msgid, NULL, NULL);
case FR_LDAP_STATE_RUN: /* There's no next state for run, so this an error */
case FR_LDAP_STATE_ERROR:
STATE_TRANSITION(FR_LDAP_STATE_INIT);
- connection_signal_reconnect(c->conn, connection_FAILED);
+ connection_signal_reconnect(c->conn, CONNECTION_FAILED);
/*
* The old connection has been freed, so specifically return the INIT state
*/
DEBUG4("Signalled by hiredis, connection disconnected");
- connection_signal_reconnect(conn, connection_FAILED);
+ connection_signal_reconnect(conn, CONNECTION_FAILED);
}
/** Called by hiredis to indicate the connection is live
/*
* Connection state machine will handle reconnecting
*/
- connection_signal_reconnect(conn, connection_FAILED);
+ connection_signal_reconnect(conn, CONNECTION_FAILED);
}
/** Deal with the method hiredis uses to register/unregister interest in a file descriptor
break;
case CONNECTION_DSIGNAL_RECONNECT_FAILED: /* Reconnect - Failed */
- connection_signal_reconnect(conn, connection_FAILED);
+ connection_signal_reconnect(conn, CONNECTION_FAILED);
break;
case CONNECTION_DSIGNAL_RECONNECT_EXPIRED: /* Reconnect - Expired */
- connection_signal_reconnect(conn, connection_EXPIRED);
+ connection_signal_reconnect(conn, CONNECTION_EXPIRED);
break;
case CONNECTION_DSIGNAL_SHUTDOWN:
fr_table_str_by_value(connection_states, conn->pub.state, "<INVALID>"));
if (DEFER_SIGNALS(conn)) {
- if ((reason == connection_EXPIRED) && conn->shutdown) {
+ if ((reason == CONNECTION_EXPIRED) && conn->shutdown) {
connection_deferred_signal_add(conn, CONNECTION_DSIGNAL_RECONNECT_EXPIRED);
return;
}
break;
case CONNECTION_STATE_SHUTDOWN:
- if (reason == connection_EXPIRED) break; /* Already shutting down */
+ if (reason == CONNECTION_EXPIRED) break; /* Already shutting down */
connection_state_enter_failed(conn);
break;
case CONNECTION_STATE_CONNECTED:
- if (reason == connection_EXPIRED) {
+ if (reason == CONNECTION_EXPIRED) {
if (conn->shutdown) {
connection_state_enter_shutdown(conn);
break;
};
typedef enum {
- connection_FAILED = 0, //!< Connection is being reconnected because it failed.
- connection_EXPIRED //!< Connection is being reconnected because it's at
+ CONNECTION_FAILED = 0, //!< Connection is being reconnected because it failed.
+ CONNECTION_EXPIRED //!< Connection is being reconnected because it's at
///< the end of its life. In this case we enter the
///< closing state and try and close the connection
///< gracefully.
trunk_connection_t *tconn = talloc_get_type_abort(uctx, trunk_connection_t);
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
}
static void _conn_io_read(UNUSED fr_event_list_t *el, UNUSED int fd, UNUSED int flags, void *uctx)
TEST_CHECK(events == 0); /* I/O events should have been cleared */
TEST_MSG("Got %u events", events);
- trunk_reconnect(trunk, TRUNK_CONN_ACTIVE, connection_FAILED);
+ trunk_reconnect(trunk, TRUNK_CONN_ACTIVE, CONNECTION_FAILED);
test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(2));
events = fr_event_corral(el, test_time_base, true);
/*
* Trigger reconnection
*/
- connection_signal_reconnect(tconn->pub.conn, connection_FAILED);
+ connection_signal_reconnect(tconn->pub.conn, CONNECTION_FAILED);
test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_nsec(NSEC * 0.5));
events = fr_event_corral(el, test_time_base, false);
tconn = treq->pub.tconn; /* Store the conn the request was assigned to */
TEST_CHECK_LEN(trunk_request_count_by_state(trunk, TRUNK_CONN_ALL, TRUNK_REQUEST_STATE_PENDING), 1);
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
/*
* Should be reassigned to the other connection
/*
* Should be reassigned to the backlog
*/
- trunk_connection_signal_reconnect(treq->pub.tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(treq->pub.tconn, CONNECTION_FAILED);
TEST_CHECK_LEN(trunk_request_count_by_state(trunk, TRUNK_CONN_ALL, TRUNK_REQUEST_STATE_BACKLOG), 1);
TEST_CHECK(!treq->pub.tconn);
* then be re-assigned.
*/
tconn = treq->pub.tconn;
- trunk_connection_signal_reconnect(treq->pub.tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(treq->pub.tconn, CONNECTION_FAILED);
TEST_CHECK(preq->completed == false);
TEST_CHECK(preq->failed == false);
TEST_CHECK_LEN(trunk_request_count_by_state(trunk, TRUNK_CONN_ALL, TRUNK_REQUEST_STATE_SENT), 1);
tconn = treq->pub.tconn;
- trunk_connection_signal_reconnect(treq->pub.tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(treq->pub.tconn, CONNECTION_FAILED);
TEST_CHECK_LEN(trunk_request_count_by_state(trunk, TRUNK_CONN_ALL, TRUNK_REQUEST_STATE_PENDING), 1);
* freed instead of being moved between
* connections.
*/
- trunk_connection_signal_reconnect(tconn, connection_FAILED); /* treq->pub.tconn, now invalid due to cancel */
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED); /* treq->pub.tconn, now invalid due to cancel */
test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1));
fr_event_corral(el, test_time_base, false);
/*
* Trigger a reconnection
*/
- trunk_connection_signal_reconnect(treq->pub.tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(treq->pub.tconn, CONNECTION_FAILED);
test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1));
fr_event_corral(el, test_time_base, false);
/*
* Trigger a reconnection
*/
- trunk_connection_signal_reconnect(treq->pub.tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(treq->pub.tconn, CONNECTION_FAILED);
test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1));
fr_event_corral(el, test_time_base, false);
error:
talloc_free(dir_ctx);
if (local) talloc_free(local);
- connection_signal_reconnect(ldap_conn->conn, connection_FAILED);
+ connection_signal_reconnect(ldap_conn->conn, CONNECTION_FAILED);
return;
}
/*
* Something bad happened... Fix it...
*/
- connection_signal_reconnect(t->conn, connection_FAILED);
+ connection_signal_reconnect(t->conn, CONNECTION_FAILED);
}
/** Drain any data we received
case ETIMEDOUT:
case EIO:
case ENXIO:
- connection_signal_reconnect(t->conn, connection_FAILED);
+ connection_signal_reconnect(t->conn, CONNECTION_FAILED);
return;
/*
case ENXIO:
case EPIPE:
case ENETDOWN:
- connection_signal_reconnect(t->conn, connection_FAILED);
+ connection_signal_reconnect(t->conn, CONNECTION_FAILED);
return;
/*
ERROR("%s - Connection %s failed: %s", h->module_name, h->name, fr_syserror(fd_errno));
- connection_signal_reconnect(conn, connection_FAILED);
+ connection_signal_reconnect(conn, CONNECTION_FAILED);
}
/** Status check timer when opening the connection for the first time.
DEBUG("%s - Reached maximum_retransmit_count (%u > %u), failing status checks",
h->module_name, u->retry.count, u->retry.config->mrc);
fail:
- connection_signal_reconnect(conn, connection_FAILED);
+ connection_signal_reconnect(conn, CONNECTION_FAILED);
return;
case FR_RETRY_CONTINUE:
if (fr_event_fd_insert(h, NULL, el, h->fd, conn_writable_status_check, NULL,
conn_error_status_check, conn) < 0) {
PERROR("%s - Failed inserting FD event", h->module_name);
- connection_signal_reconnect(conn, connection_FAILED);
+ connection_signal_reconnect(conn, CONNECTION_FAILED);
}
return;
}
if (fr_event_fd_insert(h, NULL, el, h->fd, conn_writable_status_check, NULL, conn_error_status_check, conn) < 0) {
PERROR("%s - Failed inserting FD event", h->module_name);
- connection_signal_reconnect(conn, connection_FAILED);
+ connection_signal_reconnect(conn, CONNECTION_FAILED);
}
}
ERROR("%s - Failed reading response from socket: %s",
h->module_name, fr_syserror(errno));
- connection_signal_reconnect(conn, connection_FAILED);
+ connection_signal_reconnect(conn, CONNECTION_FAILED);
return;
}
* Set the timer for the next retransmit.
*/
if (fr_event_timer_at(h, el, &u->ev, u->retry.next, conn_status_check_again, conn) < 0) {
- connection_signal_reconnect(conn, connection_FAILED);
+ connection_signal_reconnect(conn, CONNECTION_FAILED);
}
return;
}
if (encode(h->inst, h->status_request, u, u->id) < 0) {
fail:
- connection_signal_reconnect(conn, connection_FAILED);
+ connection_signal_reconnect(conn, CONNECTION_FAILED);
return;
}
DEBUG3("Encoded packet");
case ENOTCONN:
case ETIMEDOUT:
ERROR("%s - Failed draining socket: %s", h->module_name, fr_syserror(errno));
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
break;
default:
ERROR("%s - Connection %s failed: %s", h->module_name, h->name, fr_syserror(fd_errno));
- connection_signal_reconnect(conn, connection_FAILED);
+ connection_signal_reconnect(conn, CONNECTION_FAILED);
}
static void thread_conn_notify(trunk_connection_t *tconn, connection_t *conn,
/*
* May free the connection!
*/
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
}
}
/*
* May free the connection!
*/
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
}
}
udp_handle_t *h = talloc_get_type_abort(tconn->conn->h, udp_handle_t);
INFO("%s - Reviving connection %s", h->module_name, h->name);
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
}
/** Mark a connection dead after "zombie_interval"
* then the connection will be marked "alive"
*/
if (h->inst->parent->status_check) {
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
return;
}
if (fr_event_timer_at(h, el, &h->zombie_ev,
fr_time_add(now, h->inst->parent->revive_interval), revive_timeout, tconn) < 0) {
ERROR("Failed inserting revive timeout for connection");
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
}
}
if (trunk_request_enqueue_on_conn(&h->status_r->treq, tconn, h->status_request,
h->status_u, h->status_r, true) != TRUNK_ENQUEUE_OK) {
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
}
} else {
if (fr_event_timer_at(h, el, &h->zombie_ev, fr_time_add(now, h->inst->parent->zombie_period),
zombie_timeout, tconn) < 0) {
ERROR("Failed inserting zombie timeout for connection");
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
}
}
* connection.
*/
h->status_checking = false;
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
}
static void request_mux(fr_event_list_t *el,
default:
ERROR("%s - Failed sending data over connection %s: %s",
h->module_name, h->name, fr_syserror(errno));
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
return;
}
}
default:
ERROR("%s - Failed sending data over connection %s: %s",
h->module_name, h->name, fr_syserror(errno));
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
return;
}
}
if (trunk_request_enqueue_on_conn(&h->status_r->treq, tconn, h->status_request,
h->status_u, h->status_r, true) != TRUNK_ENQUEUE_OK) {
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
}
}
* Set the timer for the next retransmit.
*/
if (fr_event_timer_at(h, h->thread->el, &u->ev, u->retry.next, status_check_next, treq->tconn) < 0) {
- trunk_connection_signal_reconnect(treq->tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(treq->tconn, CONNECTION_FAILED);
}
return;
}
ERROR("%s - Failed reading response from socket: %s",
h->module_name, fr_syserror(errno));
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
return;
}
connected:
if (!c->sock) {
ERROR("MySQL error: %s", mysql_error(&c->db));
- connection_signal_reconnect(c->conn, connection_FAILED);
+ connection_signal_reconnect(c->conn, CONNECTION_FAILED);
return;
}
{
trunk_connection_t *tconn = talloc_get_type_abort(uctx, trunk_connection_t);
ERROR("%s - Connection failed: %s", tconn->conn->name, fr_syserror(fd_errno));
- connection_signal_reconnect(tconn->conn, connection_FAILED);
+ connection_signal_reconnect(tconn->conn, CONNECTION_FAILED);
}
/** Allocate an SQL trunk connection
if (fr_event_fd_insert(sql_conn, NULL, el, sql_conn->fd, read_fn, write_fn, sql_conn_error, tconn) < 0) {
PERROR("Failed inserting FD event");
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
}
}
*/
if ((trunk_connection_pop_cancellation(&treq, tconn)) == 0) {
trunk_request_signal_cancel_complete(treq);
- connection_signal_reconnect(conn, connection_FAILED);
+ connection_signal_reconnect(conn, CONNECTION_FAILED);
}
}
* Welcome to the insanity that is TACACS+.
*/
if ((h->active == 0) && (h->id > 255)) {
- trunk_connection_signal_reconnect(h->tconn, connection_EXPIRED);
+ trunk_connection_signal_reconnect(h->tconn, CONNECTION_EXPIRED);
}
}
ERROR("%s - Connection %s failed: %s", h->module_name, h->name, fr_syserror(fd_errno));
- connection_signal_reconnect(conn, connection_FAILED);
+ connection_signal_reconnect(conn, CONNECTION_FAILED);
}
static void thread_conn_notify(trunk_connection_t *tconn, connection_t *conn,
/*
* May free the connection!
*/
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
}
}
udp_handle_t *h = talloc_get_type_abort(tconn->conn->h, udp_handle_t);
INFO("%s - Reviving connection %s", h->module_name, h->name);
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
}
/** Mark a connection dead after "zombie_interval"
if (fr_event_timer_at(h, el, &h->zombie_ev,
fr_time_add(now, h->inst->parent->revive_interval), revive_timeout, h) < 0) {
ERROR("Failed inserting revive timeout for connection");
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
}
}
if (fr_event_timer_at(h, el, &h->zombie_ev, fr_time_add(now, h->inst->parent->zombie_period),
zombie_timeout, h) < 0) {
ERROR("Failed inserting zombie timeout for connection");
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
}
return true;
default:
ERROR("%s - Failed sending data over connection %s: %s",
h->module_name, h->name, fr_syserror(errno));
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
return;
}
}
ERROR("%s - Failed reading response from socket: %s",
h->module_name, fr_syserror(errno));
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
return;
}
if (packet_len > h->inst->max_packet_size) {
ERROR("%s - Packet is larger than max_packet_size",
h->module_name);
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
return;
}
slen = decode(request->reply_ctx, &reply, &code, h, request, u, h->recv.read, packet_len);
if (slen < 0) {
// @todo - give real decode error?
- trunk_connection_signal_reconnect(tconn, connection_FAILED);
+ trunk_connection_signal_reconnect(tconn, CONNECTION_FAILED);
return;
}
h->recv.read += packet_len;