/*****************************************************************************/ int
scp_sync_wait_specific(struct trans *t, enum scp_msg_code wait_msgno)
{
int rv = 0; int available = 0;
while (rv == 0 && !available)
{ if ((rv = scp_msg_in_wait_available(t)) != 0)
{
LOG(LOG_LEVEL_ERROR, "Error waiting on sesman transport");
} else
{ enum scp_msg_code reply_msgno = scp_msg_in_get_msgno(t);
available = 1; if (reply_msgno != wait_msgno)
{ char buff[64];
scp_msgno_to_str(reply_msgno, buff, sizeof(buff));
/*****************************************************************************/ int
scp_sync_uds_login_request(struct trans *t)
{ int rv = scp_send_uds_login_request(t); if (rv == 0)
{ if ((rv = scp_sync_wait_specific(t, E_SCP_LOGIN_RESPONSE)) == 0)
{ enum scp_login_status login_result; int server_closed;
rv = scp_get_login_response(t, &login_result, &server_closed, NULL); if (rv == 0 && login_result != E_SCP_LOGIN_OK)
{ char msg[256];
scp_login_status_to_str(login_result, msg, sizeof(msg));
g_printf("Login failed; %s\n", msg);
rv = 1; if (!server_closed)
{
(void)scp_send_close_connection_request(t);
}
}
scp_msg_in_reset(t); // Done with this message
}
} return rv;
}
/*****************************************************************************/ struct list *
scp_sync_list_sessions_request(struct trans *t)
{ struct list *sessions = list_create(); if (sessions == NULL)
{
LOG(LOG_LEVEL_ERROR, "Out of memory for sessions list");
} else
{ int end_of_list = 0;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.