Esempio n. 1
0
static const char *
get_current_session_id (struct tr_rpc_server * server)
{
  return tr_session_id_get_current (server->session->session_id);
}
Esempio n. 2
0
static int
test_session_id (void)
{
  tr_session_id_t session_id;
  const char * session_id_str_1 = NULL;
  const char * session_id_str_2 = NULL;
  const char * session_id_str_3 = NULL;

  check (!tr_session_id_is_local (NULL));
  check (!tr_session_id_is_local (""));
  check (!tr_session_id_is_local ("test"));

  session_id = tr_session_id_new ();
  check (session_id != NULL);

  tr_timeUpdate (0);

  session_id_str_1 = tr_session_id_get_current (session_id);
  check (session_id_str_1 != NULL);
  check (strlen (session_id_str_1) == 48);
  session_id_str_1 = tr_strdup (session_id_str_1);

  check (tr_session_id_is_local (session_id_str_1));

  tr_timeUpdate (60 * 60 - 1);

  check (tr_session_id_is_local (session_id_str_1));

  session_id_str_2 = tr_session_id_get_current (session_id);
  check (session_id_str_2 != NULL);
  check (strlen (session_id_str_2) == 48);
  check (strcmp (session_id_str_2, session_id_str_1) == 0);

  tr_timeUpdate (60 * 60);

  check (tr_session_id_is_local (session_id_str_1));

  session_id_str_2 = tr_session_id_get_current (session_id);
  check (session_id_str_2 != NULL);
  check (strlen (session_id_str_2) == 48);
  check (strcmp (session_id_str_2, session_id_str_1) != 0);
  session_id_str_2 = tr_strdup (session_id_str_2);

  check (tr_session_id_is_local (session_id_str_2));
  check (tr_session_id_is_local (session_id_str_1));

  tr_timeUpdate (60 * 60 * 2);

  check (tr_session_id_is_local (session_id_str_2));
  check (tr_session_id_is_local (session_id_str_1));

  session_id_str_3 = tr_session_id_get_current (session_id);
  check (session_id_str_3 != NULL);
  check (strlen (session_id_str_3) == 48);
  check (strcmp (session_id_str_3, session_id_str_2) != 0);
  check (strcmp (session_id_str_3, session_id_str_1) != 0);
  session_id_str_3 = tr_strdup (session_id_str_3);

  check (tr_session_id_is_local (session_id_str_3));
  check (tr_session_id_is_local (session_id_str_2));
  check (!tr_session_id_is_local (session_id_str_1));

  tr_timeUpdate (60 * 60 * 10);

  check (tr_session_id_is_local (session_id_str_3));
  check (tr_session_id_is_local (session_id_str_2));
  check (!tr_session_id_is_local (session_id_str_1));

  check (!tr_session_id_is_local (NULL));
  check (!tr_session_id_is_local (""));
  check (!tr_session_id_is_local ("test"));

  tr_session_id_free (session_id);

  check (!tr_session_id_is_local (session_id_str_3));
  check (!tr_session_id_is_local (session_id_str_2));
  check (!tr_session_id_is_local (session_id_str_1));

  tr_free (session_id_str_3);
  tr_free (session_id_str_2);
  tr_free (session_id_str_1);

  return 0;
}