static void processpkt(acarsmsg_t * msg, char *ipaddr) { char *pr, *pf; int lm; pr = strtok(msg->reg, " "); pf = strtok(msg->fid, " "); strtok(msg->no, " "); lm = 0; if (msg->mode < 0x5d && pr && pf) lm = 1; if ((lm || station) && (allmess || (strcmp(msg->label, "Q0") != 0 && strcmp(msg->label, "_d") != 0)) ) lm = lm + 2; if (dupmess) lm = lm + 4; updatedb(msg, lm, ipaddr); }
void MangaDownloadWidget::downloadFinished(int status, QProcess::ExitStatus exitStatus) { switch (exitStatus) { case QProcess::CrashExit: { _messageModel->editMessageWarning("Warning: Downlaod failed. Status code: "+QString::number(status)); break; } case QProcess::NormalExit: { ++_downloadedCount; _chaptersOnWebModel->removeRow(_chaptersQueue.takeFirst().row()); updatedb(); updateChaptersOnPCView(); _messageModel->editMessageSuccess("Downlaod succeeded. Status code: "+QString::number(status)); break; } } startNextDownload(); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); this->setWindowTitle(APP_FRIENDLY_NAME); loadScreenPosition(); showTrayIcon(); configureContextMenu(); connect(&findutils, SIGNAL(updatedb_finished()), this, SLOT(updatedb_finished())); connect(&findutils, SIGNAL(locate_finished(const QStringList &)), this, SLOT(locate_finished(const QStringList &))); connect(&findutils, SIGNAL(statistics_finished(QString)), this, SLOT(statistics_finished(QString))); updatedb(); }
int downloadmanager(const struct optstruct *opts, const char *hostname, const char *dbdir, int logerr) { time_t currtime; int ret, updated = 0, outdated = 0, signo = 0; unsigned int ttl; char ipaddr[46], *dnsreply = NULL, *pt, *localip = NULL, *newver = NULL; const struct optstruct *opt; struct mirdat mdat; #ifdef HAVE_RESOLV_H const char *dnsdbinfo; #endif time(&currtime); logg("ClamAV update process started at %s", ctime(&currtime)); #ifdef HAVE_GETADDRINFO logg("*Using IPv6 aware code\n"); #endif #ifdef HAVE_RESOLV_H dnsdbinfo = optget(opts, "DNSDatabaseInfo")->strarg; if(optget(opts, "no-dns")->enabled) { dnsreply = NULL; } else { if((dnsreply = txtquery(dnsdbinfo, &ttl))) { logg("*TTL: %d\n", ttl); if((pt = cli_strtok(dnsreply, 3, ":"))) { int rt; time_t ct; rt = atoi(pt); free(pt); time(&ct); if((int) ct - rt > 10800) { logg("^DNS record is older than 3 hours.\n"); free(dnsreply); dnsreply = NULL; } } else { free(dnsreply); dnsreply = NULL; } if(dnsreply) { int vwarning = 1; if((pt = cli_strtok(dnsreply, 4, ":"))) { if(*pt == '0') vwarning = 0; free(pt); } if((newver = cli_strtok(dnsreply, 0, ":"))) { char vstr[32]; logg("*Software version from DNS: %s\n", newver); strncpy(vstr, get_version(), 32); vstr[31] = 0; if((pt = strstr(vstr, "-exp")) || (pt = strstr(vstr,"-broken"))) *pt = 0; if(vwarning && !strstr(vstr, "devel") && !strstr(vstr, "rc")) { if(strcmp(vstr, newver)) { logg("Your ClamAV installation is out of date.\n"); logg("^Local version: %s Recommended version: %s\n", get_version(), newver); logg("A firmware upgrade might resolve this issue..\n"); logg("Also read http://sgkb.securecomputing.com/article.asp?article=11282&p=2\n"); outdated = 1; } } } } } if(!dnsreply) { logg("^Invalid DNS reply. Falling back to HTTP mode.\n"); } } #endif /* HAVE_RESOLV_H */ if((opt = optget(opts, "LocalIPAddress"))->enabled) localip = opt->strarg; if(optget(opts, "HTTPProxyServer")->enabled) mirman_read("mirrors.dat", &mdat, 0); else mirman_read("mirrors.dat", &mdat, 1); memset(ipaddr, 0, sizeof(ipaddr)); if((ret = updatedb("main", hostname, ipaddr, &signo, opts, dnsreply, localip, outdated, &mdat, logerr)) > 50) { if(dnsreply) free(dnsreply); if(newver) free(newver); mirman_write("mirrors.dat", &mdat); return ret; } else if(ret == 0) updated = 1; /* if ipaddr[0] != 0 it will use it to connect to the web host */ if((ret = updatedb("daily", hostname, ipaddr, &signo, opts, dnsreply, localip, outdated, &mdat, logerr)) > 50) { if(dnsreply) free(dnsreply); if(newver) free(newver); mirman_write("mirrors.dat", &mdat); return ret; } else if(ret == 0) updated = 1; /* if ipaddr[0] != 0 it will use it to connect to the web host */ if(!optget(opts, "SafeBrowsing")->enabled) { const char *safedb = NULL; if(!access("safebrowsing.cvd", R_OK)) safedb = "safebrowsing.cvd"; else if(!access("safebrowsing.cld", R_OK)) safedb = "safebrowsing.cld"; if(safedb) { if(unlink(safedb)) logg("^SafeBrowsing is disabled but can't remove old %s\n", safedb); else logg("*%s removed\n", safedb); } } else if((ret = updatedb("safebrowsing", hostname, ipaddr, &signo, opts, dnsreply, localip, outdated, &mdat, logerr)) > 50) { if(dnsreply) free(dnsreply); if(newver) free(newver); mirman_write("mirrors.dat", &mdat); return ret; } else if(ret == 0) updated = 1; if(dnsreply) free(dnsreply); mirman_write("mirrors.dat", &mdat); if(updated) { if(optget(opts, "HTTPProxyServer")->enabled) { logg("Database updated (%d signatures) from %s\n", signo, hostname); } else { logg("Database updated (%d signatures) from %s (IP: %s)\n", signo, hostname, ipaddr); } #ifdef BUILD_CLAMD if((opt = optget(opts, "NotifyClamd"))->active) notify(opt->strarg); #endif if((opt = optget(opts, "OnUpdateExecute"))->enabled) execute("OnUpdateExecute", opt->strarg, opts); } if(outdated) { if((opt = optget(opts, "OnOutdatedExecute"))->enabled) { char *cmd = strdup(opt->strarg); if((pt = newver)) { while(*pt) { if(!strchr("0123456789.", *pt)) { logg("!downloadmanager: OnOutdatedExecute: Incorrect version number string\n"); free(newver); newver = NULL; break; } pt++; } } if(newver && (pt = strstr(cmd, "%v"))) { char *buffer = (char *) malloc(strlen(cmd) + strlen(newver) + 10); if(!buffer) { logg("!downloadmanager: Can't allocate memory for buffer\n"); free(cmd); if(newver) free(newver); return 75; } *pt = 0; pt += 2; strcpy(buffer, cmd); strcat(buffer, newver); strcat(buffer, pt); free(cmd); cmd = strdup(buffer); free(buffer); } if(newver) execute("OnOutdatedExecute", cmd, opts); free(cmd); } } if(newver) free(newver); return updated ? 0 : 1; }