static sigjmp_buf recon_jmp;
static void afp_dsi_close(AFPObj *obj)
{
- DSI *dsi = obj->handle;
+ DSI *dsi = obj->dsi;
close(obj->ipc_fd);
obj->ipc_fd = -1;
*/
static void afp_dsi_die(int sig)
{
- DSI *dsi = (DSI *)AFPobj->handle;
+ DSI *dsi = (DSI *)AFPobj->dsi;
if (dsi->flags & DSI_RECONINPROG) {
/* Primary reconnect succeeded, got SIGTERM from afpd parent */
exit(0);
}
- dsi_attention(AFPobj->handle, AFPATTN_SHUTDOWN);
+ dsi_attention(AFPobj->dsi, AFPATTN_SHUTDOWN);
afp_dsi_close(AFPobj);
if (sig) /* if no signal, assume dieing because logins are disabled &
don't log it (maintenance mode)*/
/* SIGQUIT handler */
static void ipc_reconnect_handler(int sig _U_)
{
- DSI *dsi = (DSI *)AFPobj->handle;
+ DSI *dsi = (DSI *)AFPobj->dsi;
if (reconnect_ipc(AFPobj) != 0) {
LOG(log_error, logtype_afpd, "ipc_reconnect_handler: failed IPC reconnect");
{
uint16_t dsiID;
int socket;
- DSI *dsi = (DSI *)AFPobj->handle;
+ DSI *dsi = (DSI *)AFPobj->dsi;
LOG(log_debug, logtype_afpd, "afp_dsi_transfer_session: got SIGURG, trying to receive session");
{
struct sigaction sv;
struct itimerval it;
- DSI *dsi = (DSI *)AFPobj->handle;
+ DSI *dsi = (DSI *)AFPobj->dsi;
dsi->flags |= DSI_DIE;
/* shutdown and don't reconnect. server going down in 5 minutes. */
setmessage("The server is going down for maintenance.");
- if (dsi_attention(AFPobj->handle, AFPATTN_SHUTDOWN | AFPATTN_NORECONNECT |
+ if (dsi_attention(AFPobj->dsi, AFPATTN_SHUTDOWN | AFPATTN_NORECONNECT |
AFPATTN_MESG | AFPATTN_TIME(5)) < 0) {
- DSI *dsi = (DSI *)AFPobj->handle;
+ DSI *dsi = (DSI *)AFPobj->dsi;
dsi->down_request = 1;
}
/* ---------------------- */
static void afp_dsi_getmesg (int sig _U_)
{
- DSI *dsi = (DSI *)AFPobj->handle;
+ DSI *dsi = (DSI *)AFPobj->dsi;
dsi->msg_request = 1;
- if (dsi_attention(AFPobj->handle, AFPATTN_MESG | AFPATTN_TIME(5)) < 0)
+ if (dsi_attention(AFPobj->dsi, AFPATTN_MESG | AFPATTN_TIME(5)) < 0)
dsi->msg_request = 2;
}
static void alarm_handler(int sig _U_)
{
int err;
- DSI *dsi = (DSI *)AFPobj->handle;
+ DSI *dsi = (DSI *)AFPobj->dsi;
/* we have to restart the timer because some libraries may use alarm() */
setitimer(ITIMER_REAL, &dsi->timer, NULL);
if ((err = pollvoltime(AFPobj)) == 0)
LOG(log_debug, logtype_afpd, "afp_alarm: sending DSI tickle");
- err = dsi_tickle(AFPobj->handle);
+ err = dsi_tickle(AFPobj->dsi);
if (err <= 0) {
if (geteuid() == 0) {
LOG(log_note, logtype_afpd, "afp_alarm: unauthenticated user, connection problem");
if (dsi->msg_request) {
if (dsi->msg_request == 2) {
/* didn't send it in signal handler */
- dsi_attention(AFPobj->handle, AFPATTN_MESG | AFPATTN_TIME(5));
+ dsi_attention(AFPobj->dsi, AFPATTN_MESG | AFPATTN_TIME(5));
}
dsi->msg_request = 0;
readmessage(AFPobj);
}
if (dsi->down_request) {
dsi->down_request = 0;
- dsi_attention(AFPobj->handle, AFPATTN_SHUTDOWN | AFPATTN_NORECONNECT |
+ dsi_attention(AFPobj->dsi, AFPATTN_SHUTDOWN | AFPATTN_NORECONNECT |
AFPATTN_MESG | AFPATTN_TIME(5));
}
}
*/
void afp_over_dsi(AFPObj *obj)
{
- DSI *dsi = (DSI *) obj->handle;
+ DSI *dsi = (DSI *) obj->dsi;
int rc_idx;
uint32_t err, cmd;
uint8_t function;