gboolean remmina_nx_session_login (RemminaNXSession *nx, const gchar *username, const gchar *password) { gint response; /* Login to the NX server */ remmina_nx_session_send_command (nx, "login"); if (!remmina_nx_session_expect_status (nx, 101)) return FALSE; remmina_nx_session_send_command (nx, username); /* NoMachine Testdrive does not prompt for password, in which case 105 response is received without 102 */ response = remmina_nx_session_expect_status2 (nx, 102, 105); if (response == 102) { remmina_nx_session_send_command (nx, password); if (!remmina_nx_session_expect_status (nx, 105)) return FALSE; } else if (response != 105) { return FALSE; } return TRUE; }
static gboolean remmina_nx_session_expect_status(RemminaNXSession *nx, gint status) { return (remmina_nx_session_expect_status2(nx, status, 0) == status); }