Ejemplo n.º 1
0
void MainWindow::initApp()
{
    x11 = 0;
    ui->tabWidget->setDisabled(true);
    ui->statusBar->addPermanentWidget(ui->progressBar);
    ui->progressBar->hide();
    ui->pushButton->setEnabled(false);
    ui->queue->setHeaderHidden(false);

    tray = new QSystemTrayIcon(this);

    timer.start(); // get a time reference

    connect(&pkgsrc,SIGNAL(packageOptionsResult(QStringList)),this,SLOT(packageOptions(QStringList)));
    connect(&pkgsrc,SIGNAL(downloadFinished(int)),this,SLOT(pkgsrcDownloadFinished(int)));
    connect(&pkgsrc,SIGNAL(downloadStatus(qint64,qint64)),this,SLOT(pkgsrcDownloadStatus(qint64,qint64)));
    connect(&pkgsrc,SIGNAL(extractFinished(int)),this,SLOT(bootstrapExtractFinished(int)));
    connect(&pkgsrc,SIGNAL(extractStatus(QString)),this,SLOT(bootstrapExtractRead()));
    connect(&pkgsrc,SIGNAL(bootstrapFinished(int)),this,SLOT(bootstrapMakeFinished(int)));
    connect(&pkgsrc,SIGNAL(bootstrapStatus(QString)),this,SLOT(bootstrapMakeRead(QString)));
    connect(&pkgsrc,SIGNAL(bmakeFinished(int)),this,SLOT(queueFinished(int)));
    connect(&pkgsrc,SIGNAL(bmakeStatus(QString)),this,SLOT(queueRead(QString)));
    connect(&pkgsrc,SIGNAL(packageDependsResult(QStringList)),this,SLOT(packageDepends(QStringList)));
    connect(&pkgsrc,SIGNAL(packagesInstalledResult(QStringList)),this,SLOT(pkgsrcInstalledFinished(QStringList)));
    connect(&pkgsrc,SIGNAL(packageVersionResult(QString)),this,SLOT(pkgsrcPkgVersionFinished(QString)));
    connect(&pkgsrc,SIGNAL(packageNameResult(QString)),this,SLOT(pkgsrcPkgNameFinished(QString)));
    connect(&pkgsrc,SIGNAL(packagesVulnsResult(QStringList)),this,SLOT(pkgsrcPkgVulnCheckFinished(QStringList)));
    connect(&pkgsrc,SIGNAL(packageRemoveStatus(QString)),this,SLOT(delPackageLog(QString)));
    connect(&pkgsrc,SIGNAL(packageRemoveResult(int)),this,SLOT(delPackageDone(int)));
    connect(&pkgsrc,SIGNAL(pkgsrcReady()),this,SLOT(bootstrapCheck()));
    connect(&work,SIGNAL(updateListResult(QStringList)),this,SLOT(catchUpdates(QStringList)));
    connect(wiz.ui->save,SIGNAL(clicked()),this,SLOT(startWiz()));

    QSettings settings;
    settings.beginGroup("global");
    if (settings.value("firstrun").toInt()==1)
        pkgsrc.initPkgsrc(0,"",0,"");
    else {
        this->hide();
        wiz.show();
    }
    settings.endGroup();

    ui->actionSync->setDisabled(true); // sync can only be used after pkgsrcready and bmake must be blocked

    connect(tray,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(trayActivated()));
    tray->setIcon(QIcon(":/files/tray.png"));
    tray->setToolTip("UserPKG");
    if (tray->isSystemTrayAvailable()) {
        tray->show();
    }
    if (tray->isVisible()) {
        for (int i = 0; i < QApplication::arguments().size(); ++i) {
            if (QApplication::arguments().at(i).contains("--tray"))
                this->hide();
        }
    }
}
Ejemplo n.º 2
0
static unsigned short int perform(unsigned char _dad,const char *name,
             unsigned short int lenIn,unsigned char *command,
             unsigned short int *lenOut,unsigned char *response)
{
    unsigned char sad=CTAPI_SAD;
    unsigned char dad=_dad;
    
    char logmsg[1024];
    char temp[20];
    static unsigned char *response_local = NULL;
    static unsigned short int lenOut_local, lenOut_return;
     
    if (response_local==NULL) {
      lenOut_local = MIN_LOCAL_RESPONSE_BUFFER_SIZE;
      response_local = (unsigned char *)malloc( lenOut_local * sizeof(unsigned char) );
      if (response_local==NULL) {
        CTAPI_log("Alloc of local response buffer failed. Out of memory. Aborting!");
        return 0;
      }
    }
    if (lenOut_local<(*lenOut)) {
      free( response_local );
      lenOut_local = *lenOut;
      response_local = (unsigned char *)malloc( lenOut_local * sizeof(unsigned char) );
      if (response_local==NULL) {
        CTAPI_log("Realloc of local response buffer failed. Out of memory. Aborting!");
        return 0;
      }
    }
    lenOut_return = lenOut_local;  
      
    sprintf(logmsg,"%s apdu:",name);
    for (int i=0;i<lenIn;i++) {
        sprintf(temp," %02X",command[i]);
        strcat(logmsg,temp);
    }
    CTAPI_log(logmsg);
    
    memcpy(CTAPI_error.request,command,lenIn);
    CTAPI_error.reqLen=lenIn;

    char err;
    int  retries=3;
    while (retries--) { 
        err=(*datafunc)(ctnum,&dad,&sad,lenIn,command,&lenOut_return,response_local);
        CTAPI_error.ret=err;
        
        if (!err)
            break;
        
        sprintf(logmsg,"%s: %i (%s)",name,err,CTAPI_getErrorString(err));
        CTAPI_log(logmsg);
    }

    if (lenOut_return < (*lenOut)) {
      *lenOut = lenOut_return;
    }
    memcpy(response,response_local, *lenOut);
    if (err!=0) {
        CTAPI_log("aborting");
        return 0;
    }
    
    sprintf(logmsg,"%s response:",name);
    for (int i=0;i<*lenOut;i++) {
        sprintf(temp," %02X",response[i]);
        strcat(logmsg,temp);
    }
    CTAPI_log(logmsg);
    
    memcpy(CTAPI_error.response,response,*lenOut);
    CTAPI_error.resLen=*lenOut;

    unsigned short int status=extractStatus(*lenOut,response);
    CTAPI_error.status=status;

    char *msg=CTAPI_getStatusString(status);
    sprintf(logmsg,"%s: %s",name,msg);
    CTAPI_log(logmsg);
    
    delete msg;
    return status;
}