Exemple #1
0
static void psync_syncer_thread(){
  int64_t syncid;
  psync_sql_lock();
  if (psync_sql_cellint("SELECT COUNT(*) FROM task", -1)==0)
    psync_sql_statement("DELETE FROM syncfolder WHERE folderid IS NULL");
  while ((syncid=psync_sql_cellint("SELECT id FROM syncfolder WHERE flags=0", -1))!=-1)
    psync_sync_newsyncedfolder(syncid);
  psync_sql_unlock();
}
void cache_account_teams() {
  psync_userid_t *teamids = 0;
  void *params = 0;
  psync_sql_res *q;
  
  psync_sql_lock();
  q=psync_sql_prep_statement("DELETE FROM baccountteam ");
  psync_sql_run_free(q);
  do_psync_account_teams(teamids, 0, &insert_cache_team, params);
  psync_sql_unlock();
}
void cache_account_emails() {
  psync_userid_t *userids = 0;
  void *params = 0;
  psync_sql_res *q;
  
  psync_sql_lock();
  q=psync_sql_prep_statement("DELETE FROM baccountemail ");
  psync_sql_run_free(q);
  
  do_psync_account_users(userids, 0, &insert_cache_email, params);
  psync_sql_unlock();
}
void cache_ba_my_teams() {
  psync_socket *sock;
  binresult *bres;
  int i;
  const binresult *users;
  const binresult *user;
  const binresult *teams;
  psync_sql_res *q;
  psync_sql_lock();
  
  q=psync_sql_prep_statement("DELETE FROM myteams ");
  psync_sql_run_free(q);
  
  binparam params[] = { P_STR("auth", psync_my_auth), P_STR("timeformat", "timestamp"), P_STR("userids", "me"), P_STR("showteams", "1"), P_STR("showeveryone", "1") };

    sock = psync_apipool_get();
    bres = send_command(sock, "account_users", params);

  if (likely(bres))
    psync_apipool_release(sock);
  else {
    psync_apipool_release_bad(sock);
    debug(D_WARNING, "Send command returned invalid result.\n");
    return;
  }
  
  
  users = psync_find_result(bres, "users", PARAM_ARRAY);
  
  if (!users->length) {
    psync_free(bres);
    debug(D_WARNING, "Account_users returned empty result!\n");
    return;
  } else {
    user =  users->array[0];
    teams = psync_find_result(user, "teams", PARAM_ARRAY);
    if (teams->length) {
       for (i = 0; i < teams->length; ++i)
         cache_my_team(teams->array[i]);
    }
  }
  
  psync_free(bres);
  psync_sql_unlock();
}