Ejemplo n.º 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;
}
Ejemplo n.º 2
0
Archivo: afile.c Proyecto: os-ak/tuatOS
void HariMain(void)
{
	FileDescriptor *fd;
	char* path = "/TESFILE";
	char src[16];
	char *result;
	if(0 != api_crate(path)) {
		api_putstr0("create error");
		api_end();
	}
	if((fd =(FileDescriptor*)api_open(path,FD_MODE_READ_WRITE))== NULL){
		api_putstr0("open error");
		api_end();
	}
	strcpy(src,"writing");
	if(0 != api_write(fd,16,src)){
		api_putstr0("write error");
		api_end();
	}
	if(0 != api_read(fd,16,result)){
		 api_putstr0("read error");
		 api_end();
 	}
	api_putstr0(result);
	if(0 != api_close(fd))
		api_putstr0("create error");
	api_end();
}
Ejemplo n.º 3
0
void PCloudApp::mount()
{
    if (this->authentication != ""){
        QByteArray auth=this->authentication.toUtf8();
        apisock *conn=getAPISock();
        binresult *res, *result;
        QByteArray err;
        if (!conn)
            return;
        res=send_command(conn, "userinfo",
                         P_LSTR("auth", auth.constData(), auth.size()),
                         P_BOOL("getauth", 1));
        api_close(conn);
        result=find_res(res, "result");
        if (!result){
            free(res);
            return;
        }
        if (result->num!=0){
            free(res);
            return;
        }
        userLogged(res, err, true);
        free(res);
    }
}
Ejemplo n.º 4
0
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);
}
Ejemplo n.º 5
0
void DirectoryPickerDialog::newFolder()
{
    if (!ui->dirtree->currentItem())
        return;
    quint64 folderid=ui->dirtree->currentItem()->data(1, Qt::UserRole).toULongLong();
    QString newdir=QInputDialog::getText(this, "Create Folder", "New folder name");
    if (!newdir.length())
        return;
    QByteArray auth=app->settings->get("auth").toUtf8();
    QByteArray bnewdir=newdir.toUtf8();
    apisock *conn;
    binresult *res, *result;
    QTreeWidgetItem *item;
    if (!(conn=app->getAPISock())){
        showError("Could not connect to server. Check your Internet connection.");
        return;
    }
    res=send_command(conn, "createfolder",
                     P_LSTR("auth", auth.constData(), auth.size()),
                     P_LSTR("name", bnewdir.constData(), bnewdir.size()),
                     P_NUM("folderid", folderid));
    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;
    }
    item=new QTreeWidgetItem((QTreeWidget*)0, QStringList(newdir));
    item->setData(1, Qt::UserRole, (qulonglong)find_res(find_res(res, "metadata"), "folderid")->num);
    ui->dirtree->currentItem()->addChild(item);
    ui->dirtree->sortByColumn(0, Qt::AscendingOrder);
    ui->dirtree->setCurrentItem(item);
    free(res);
}
Ejemplo n.º 6
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);
}