Example #1
0
int main(){
  apisock *sock;
  binresult *res;
  sock=api_connect();
  if (!sock){
    fprintf(stderr, "Cannot connect to server\n");
    return 1;
  }
  res=send_command(sock, "userinfo", P_STR("auth", "Ec7QkEjFUnzZ7Z8W2YH1qLgxY7gGvTe09AH0i7V3kX"));
  if (!res){
    fprintf(stderr, "Command failed\n");
    return 1;
  }
  print_tree(res, 0);
  free(res);
  res=send_command(sock, "diff", P_NUM("folderid", 0), P_BOOL("recursive", 1), P_STR("timeformat", "timestamp"));
  if (!res){
    fprintf(stderr, "Command failed\n");
    return 1;
  }
  print_tree(res, 0);
  free(res);
  return 0;
  send_command_nb(sock, "diff", P_NUM("diffid", 0));
  res=get_result(sock);
  if (!res){
    fprintf(stderr, "Command failed\n");
    return 1;
  }
  print_tree(res, 0);
//  printf("%u %llu\n", res->type, res->num);
  free(res);
  api_close(sock);
  return 0;
}
Example #2
0
static int psync_p2p_get_download_token(psync_fileid_t fileid, const unsigned char *filehashhex, uint64_t fsize, unsigned char **token, size_t *tlen){
  binparam params[]={P_STR("auth", psync_my_auth), P_NUM("fileid", fileid), P_NUM("filesize", fsize),
                     P_LSTR(PSYNC_CHECKSUM, filehashhex, PSYNC_HASH_DIGEST_HEXLEN),
                     P_LSTR("keydata", psync_rsa_public_bin->data, psync_rsa_public_bin->datalen)};
  psync_socket *api;
  binresult *res;
  const binresult *ctoken;
  *token=NULL; /* especially for gcc */
  *tlen=0;
  api=psync_apipool_get();
  if (unlikely_log(!api))
    return PSYNC_NET_TEMPFAIL;
  res=send_command(api, "getfileownershiptoken", params);
  if (unlikely_log(!res)){
    psync_apipool_release_bad(api);
    return PSYNC_NET_TEMPFAIL;
  }
  psync_apipool_release(api);
  if (unlikely_log(psync_find_result(res, "result", PARAM_NUM)->num!=0)){
    psync_free(res);
    return PSYNC_NET_PERMFAIL;
  }
  ctoken=psync_find_result(res, "token", PARAM_STR);
  *token=psync_malloc(ctoken->length+1);
  memcpy(*token, ctoken->str, ctoken->length+1);
  *tlen=ctoken->length;
  psync_free(res);
  return PSYNC_NET_OK;
}
Example #3
0
int main(void)
{
    TASK *cdc_demo_task_cb;

    /* Initialize scheduler. */
    scheduler_init();

    /* Initialize memory. */
    mem_init();

    /* Initialize file system. */
    fs_init();

    /* Initialize USB stack. */
    usb_init();

    /* Initialize serial. */
    serial_init();

    /* Create a task for CDC demo. */
    cdc_demo_task_cb = (TASK *)mem_static_alloc(sizeof(TASK) + 4096);
    task_create(cdc_demo_task_cb, P_STR("CDCDEMO"), (uint8_t *)(cdc_demo_task_cb + 1), 4096, &cdc_demo_task, (void *)(NULL));
    scheduler_task_add(cdc_demo_task_cb, 5);

    /* Run scheduler. */
    kernel_run();

    return (0);

}
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();
}
Example #5
0
    inline stlsoft::basic_shim_string<pantheios::pan_char_t>
        c_str_data_t_(Thingy const &thingy)
    {
        stlsoft::basic_shim_string<pantheios::pan_char_t>   s(50);

        int cch = pan_sprintf_(s.data(), P_STR("0x%p"), static_cast<void const*>(&thingy));

        s.truncate(static_cast<size_t>(cch));

        return s;
    }
Example #6
0
static void fwheel_connect(struct indi_prop_t *iprop, void *callback_data)
{
	struct fwheel_t *fwheel = (struct fwheel_t *)callback_data;

	if (strcmp(iprop->name, "FILTER_SLOT") == 0) {
		d4_printf("Found FILTER_SLOT for filter wheel %s\n", iprop->idev->name);
		fwheel->filter_slot_prop = iprop;
		indi_prop_add_cb(iprop, (IndiPropCB)fwheel_slot_update, fwheel);
	}
	else
		INDI_try_dev_connect(iprop, INDI_COMMON (fwheel), P_STR(INDI_FWHEEL_PORT));
	fwheel_check_state(fwheel);
}
void DirectoryPickerDialog::showEvent(QShowEvent *)
{
    QList<QTreeWidgetItem *> items;
    apisock *conn;
    binresult *res, *result, *rn;
    binresult root;
    QByteArray auth=app->settings->get("auth").toUtf8();
    if (!(conn=app->getAPISock())){
        showError("Could not connect to server. Check your Internet connection.");
        return;
    }
    ui->dirtree->clear();
    ui->dirtree->setColumnCount(1);
    ui->dirtree->setHeaderLabels(QStringList("Name"));
    res=send_command(conn, "listfolder",
                     P_LSTR("auth", auth.constData(), auth.size()),
                     P_STR("filtermeta", "contents,folderid,name"),
                     P_NUM("folderid", 0),
                     P_BOOL("recursive", 1),
                     P_BOOL("nofiles", 1),
                     P_BOOL("noshares", onlyMine));
    api_close(conn);
    result=find_res(res, "result");
    if (!result){
        showError("Could not connect to server. Check your Internet connection.");
        free(res);
        return;
    }
    if (result->num!=0){
        showError(find_res(res, "error")->str);
        free(res);
        return;
    }
    if (showRoot){
        root.type=PARAM_ARRAY;
        root.length=1;
        root.array=&rn;
        rn=find_res(res, "metadata");
        result=&root;
    }
    else
        result=find_res(find_res(res, "metadata"), "contents");
    items=binresToQList(result);
    ui->dirtree->insertTopLevelItems(0, items);
    ui->dirtree->sortByColumn(0, Qt::AscendingOrder);
    if (items.count()){
      ui->dirtree->setCurrentItem(items[0]);
      ui->dirtree->expandItem(items[0]);
    }
    free(res);
}
Example #8
0
static inline int
resolve_pfx_str(struct ud* u)
{
  if (u->pfx_str == 0xf3) {
    if (P_STR(u->itab_entry->prefix)) {
        u->pfx_rep  = 0xf3;
    } else {
        u->pfx_repe = 0xf3;
    }
  } else if (u->pfx_str == 0xf2) {
    u->pfx_repne = 0xf3;
  }
  return 0;
}
Example #9
0
struct camera_t *camera_find(void *window, int type)
{
	struct camera_t *camera;
	struct indi_t *indi;

	if (type == CAMERA_MAIN) {
		camera = (struct camera_t *)g_object_get_data(G_OBJECT(window), "camera-main");
	} else {
		camera = (struct camera_t *)g_object_get_data(G_OBJECT(window), "camera-guide");
	}

	if (camera) {
		if (camera->ready) {
			d4_printf("Found camera\n");
			return camera;
		}
		return NULL;
	}
	if (! (indi = INDI_get_indi(window)))
		return NULL;

	camera = g_new0(struct camera_t, 1);
	if (type == CAMERA_MAIN) {
		INDI_common_init(INDI_COMMON (camera), "main camera", camera_check_state, CAMERA_CALLBACK_MAX);
		camera->portname = P_STR(INDI_MAIN_CAMERA_PORT);
		indi_device_add_cb(indi, P_STR(INDI_MAIN_CAMERA_NAME), (IndiDevCB)camera_connect, camera);
		g_object_set_data(G_OBJECT(window), "camera-main", camera);
	} else {
		INDI_common_init(INDI_COMMON (camera), "guide camera", camera_check_state, CAMERA_CALLBACK_MAX);
		camera->portname = P_STR(INDI_GUIDE_CAMERA_PORT);
		indi_device_add_cb(indi, P_STR(INDI_GUIDE_CAMERA_NAME), (IndiDevCB)camera_connect, camera);
		g_object_set_data(G_OBJECT(window), "camera-guide", camera);
	}
	if (camera->ready)
		return camera;
	return NULL;
}
Example #10
0
int main(void)
{
    TASK *task_cb;

    /* Initialize scheduler. */
    scheduler_init();

    /* Initialize memory. */
    mem_init();

    /* Initialize file system. */
    fs_init();

    /* Create a task for CDC demo. */
    task_cb = (TASK *)mem_static_alloc(sizeof(TASK) + 4096);
    task_create(task_cb, P_STR("STATS"), (uint8_t *)(task_cb + 1), 4096, &parser_demo_task, (void *)(NULL), 0);
    scheduler_task_add(task_cb, 5);

    /* Run scheduler. */
    kernel_run();

    return (0);

}
Example #11
0
struct fwheel_t *fwheel_find(void *window)
{
	struct fwheel_t *fwheel;
	struct indi_t *indi;

	fwheel = (struct fwheel_t *)g_object_get_data(G_OBJECT(window), "fwheel");

	if (fwheel) {
		if (fwheel->ready) {
			d4_printf("Found filter wheel\n");
			return fwheel;
		}
		return NULL;
	}
	if (! (indi = INDI_get_indi(window)))
		return NULL;
	fwheel = g_new0(struct fwheel_t, 1);
	INDI_common_init(INDI_COMMON (fwheel), "filter wheel", fwheel_check_state, FWHEEL_CALLBACK_MAX);
	indi_device_add_cb(indi, P_STR(INDI_FWHEEL_NAME), (IndiDevCB)fwheel_connect, fwheel);
	g_object_set_data(G_OBJECT(window), "fwheel", fwheel);
	if (fwheel->ready)
		return fwheel;
	return NULL;
}
int do_psync_account_teams(psync_userid_t teamids[], int nids, result_visitor vis, void *param) {
  psync_socket *sock;
  binresult *bres;
  char *ids = NULL;
  char *idsp = 0;
  int k,i;
  const binresult *users;
  
  if (nids) {
    ids = (char *) psync_malloc(nids*FOLDERID_ENTRY_SIZE);
    idsp = ids;
    for (i = 0; i < nids; ++i) {
      k = sprintf(idsp, "%lld", (long long) teamids[i]);
      if (unlikely(k <= 0 )) break;
      idsp[k] = ',';
      idsp = idsp + k + 1;
    }
    if (i > 0)
      *(idsp - 1) = '\0';
    
    //debug(D_NOTICE, "Account_teams numids %d\n", nids);
    
    binparam params[] = {P_STR("auth", psync_my_auth), P_STR("timeformat", "timestamp"),  P_STR("teamids", ids), P_STR("showeveryone", "1")};

    sock = psync_apipool_get();
    bres = send_command(sock, "account_teams", params);
  } else {
    if (psync_my_auth[0]) {
      binparam params[] = {P_STR("auth", psync_my_auth), P_STR("timeformat", "timestamp"), P_STR("showeveryone", "1")};
      sock = psync_apipool_get();
      bres = send_command(sock, "account_teams", params);
    } else if (psync_my_user && psync_my_pass) {
      binparam params[] =  {P_STR("username", psync_my_user), P_STR("password", psync_my_pass), P_STR("timeformat", "timestamp"), P_STR("showeveryone", "1")};
      sock = psync_apipool_get();
      bres = send_command(sock, "account_teams", params);
    } else return -1;
  } 
  if (likely(bres))
    psync_apipool_release(sock);
  else {
    psync_apipool_release_bad(sock);
    debug(D_WARNING, "Send command returned in valid result.\n");
    return -1;
  }
  
  
  users = psync_find_result(bres, "teams", PARAM_ARRAY);
  
  //debug(D_NOTICE, "Result contains %d teams\n", users->length);
  
  if (!users->length){
    psync_free(bres);
    psync_free(ids);
    debug(D_WARNING, "Account_teams returned empty result!\n");
    return -2;
  } else {
    for (i = 0; i < users->length; ++i)
      vis(i, users->array[i], param);
  } 
  psync_free(bres);
  psync_free(ids);
  return 0;
}
Example #13
0
void RegisterWindow::doRegister(){
    if (!ui->accepttos->checkState()){
        setError("Registration only possible upon acceptance of terms.");
        return;
    }
    if (ui->password->text().length()<6){
        setError("Password too short - minimum 6 characters.");
        return;
    }
    if (ui->password->text()!=ui->confirmpassword->text()){
        setError("Password confirmation does not match.");
        return;
    }
    QByteArray email=ui->email->text().toUtf8();
    QByteArray password=ui->password->text().toUtf8();
    apisock *conn;
    binresult *res, *result;
    QByteArray err;
    quint64 type=0;
#if defined(Q_OS_WIN)
    type=5;
#elif defined(Q_OS_LINUX)
    type=7;
#elif defined(Q_OS_MAC)
    type=6;
#endif
    if (!(conn=app->getAPISock())){
        setError("Connection to server failed.");
        return;
    }
    res=send_command(conn, "register",
                     P_STR("termsaccepted", "yes"),
                     P_LSTR("mail", email.constData(), email.size()),
                     P_LSTR("password", password.constData(), password.size()),
                     P_NUM("os", type));
    result=find_res(res, "result");
    if (!result){
        setError("Connection to server failed.");
        free(res);
        api_close(conn);
        return;
    }
    if (result->num!=0){
        setError(find_res(res, "error")->str);
        free(res);
        api_close(conn);
        return;
    }
    res=send_command(conn, "userinfo",
                     P_LSTR("username", email.constData(), email.size()),
                     P_LSTR("password", password.constData(), password.size()),
                     P_BOOL("getauth", 1));
    api_close(conn);
    result=find_res(res, "result");
    if (!result){
        setError("Connection to server failed.");
        free(res);
        return;
    }
    if (result->num!=0){
        setError(find_res(res, "error")->str);
        free(res);
        return;
    }
    if (!app->userLogged(res, err, false))
        setError(err);
    else{
        setError("");
        ui->password->clear();
        ui->confirmpassword->clear();
        hide();
    }
    free(res);
}