Lines Matching defs:rp

293 repo_state(const struct repo *rp)
295 if (rp->ta)
296 return rp->ta->state;
297 if (rp->rsync)
298 return rp->rsync->state;
299 if (rp->rrdp)
300 return rp->rrdp->state;
312 struct repo *rp;
315 SLIST_FOREACH(rp, &repos, entry) {
316 if (vp != rp->ta && vp != rp->rsync && vp != rp->rrdp)
320 if (vp == rp->rrdp && !ok && !nofetch) {
321 rp->rrdp = NULL;
322 rp->rsync = rsync_get(rp->repouri, rp->basedir);
324 if (repo_state(rp) == REPO_LOADING)
328 entityq_flush(&rp->queue, rp);
330 timespecsub(&flush_time, &rp->start_time,
331 &rp->repostats.sync_time);
598 struct repo *rp;
600 SLIST_FOREACH(rp, &repos, entry) {
601 if (rp->rrdp == NULL)
603 if (strcmp(dir, rp->rrdp->basedir) == 0)
604 return rp;
617 struct repo *rp;
619 SLIST_FOREACH(rp, &repos, entry) {
620 if (rp->rrdp != rr)
622 if (strncmp(uri, rp->repouri, strlen(rp->repouri)) == 0)
634 struct repo *rp;
636 if ((rp = calloc(1, sizeof(*rp))) == NULL)
639 rp->id = ++repoid;
640 rp->talid = talid;
641 rp->alarm = getmonotime() + repo_timeout;
642 TAILQ_INIT(&rp->queue);
643 SLIST_INSERT_HEAD(&repos, rp, entry);
644 clock_gettime(CLOCK_MONOTONIC, &rp->start_time);
647 return rp;
1151 struct repo *rp;
1157 SLIST_FOREACH(rp, &repos, entry) {
1158 if (strcmp(rp->repouri, tal->uri[0]) == 0)
1159 return rp;
1162 rp = repo_alloc(id);
1163 rp->basedir = repo_dir(tal->descr, "ta", 0);
1164 if ((rp->repouri = strdup(tal->uri[0])) == NULL)
1169 logx("%s: using cache", rp->basedir);
1170 entityq_flush(&rp->queue, rp);
1171 return rp;
1175 if (mkpath(rp->basedir) == -1)
1176 warn("mkpath %s", rp->basedir);
1178 rp->ta = ta_get(tal);
1181 if (repo_state(rp) != REPO_LOADING)
1182 entityq_flush(&rp->queue, rp);
1184 return rp;
1193 struct repo *rp;
1200 SLIST_FOREACH(rp, &repos, entry) {
1201 if (strcmp(rp->repouri, repouri) != 0)
1203 if (rp->notifyuri != NULL) {
1206 if (strcmp(rp->notifyuri, notify) != 0)
1212 return rp;
1215 rp = repo_alloc(talid);
1216 rp->basedir = repo_dir(repouri, NULL, 0);
1217 rp->repouri = repouri;
1219 if ((rp->notifyuri = strdup(notify)) == NULL)
1230 logx("%s: using cache", rp->basedir);
1231 entityq_flush(&rp->queue, rp);
1232 return rp;
1236 if (mkpath(rp->basedir) == -1)
1237 warn("mkpath %s", rp->basedir);
1241 rp->rrdp = rrdp_get(notify);
1242 if (rp->rrdp == NULL)
1243 rp->rsync = rsync_get(uri, rp->basedir);
1246 if (repo_state(rp) != REPO_LOADING)
1247 entityq_flush(&rp->queue, rp);
1249 return rp;
1258 struct repo *rp;
1260 SLIST_FOREACH(rp, &repos, entry) {
1261 if (rp->id == id)
1262 return rp;
1270 struct repo *rp;
1272 SLIST_FOREACH(rp, &repos, entry) {
1273 if (rp->rsync == NULL)
1275 if (strcmp(rp->basedir, path) == 0)
1276 return rp;
1287 struct repo *rp;
1289 SLIST_FOREACH(rp, &repos, entry) {
1290 if (strcmp(rp->basedir, path) == 0)
1291 return rp;
1301 repo_basedir(const struct repo *rp, int wantvalid)
1306 if (rp->ta) {
1307 if ((path = strdup(rp->ta->basedir)) == NULL)
1309 } else if (rp->rsync) {
1310 if ((path = strdup(rp->rsync->basedir)) == NULL)
1312 } else if (rp->rrdp) {
1313 path = rrdp_filename(rp->rrdp, rp->repouri, 0);
1316 } else if (rp->basedir != NULL) {
1317 if ((path = strdup(rp->basedir)) == NULL)
1328 repo_id(const struct repo *rp)
1330 return rp->id;
1337 repo_uri(const struct repo *rp)
1339 return rp->repouri;
1346 repo_fetch_uris(const struct repo *rp, const char **carepo,
1349 *carepo = rp->repouri;
1350 *notifyuri = rp->notifyuri;
1357 repo_synced(const struct repo *rp)
1359 if (repo_state(rp) == REPO_DONE &&
1360 !(rp->rrdp == NULL && rp->rsync == NULL && rp->ta == NULL))
1370 repo_proto(const struct repo *rp)
1373 if (rp->ta != NULL) {
1374 const struct tarepo *tr = rp->ta;
1382 if (rp->rrdp != NULL)
1391 repo_talid(const struct repo *rp)
1393 return rp->talid;
1397 repo_queued(struct repo *rp, struct entity *p)
1399 if (repo_state(rp) == REPO_LOADING) {
1400 TAILQ_INSERT_TAIL(&rp->queue, p, entries);
1407 repo_fail(struct repo *rp)
1410 rp->alarm = getmonotime() + repo_timeout;
1412 if (rp->ta)
1413 http_finish(rp->ta->id, HTTP_FAILED, NULL);
1414 else if (rp->rsync)
1415 rsync_finish(rp->rsync->id, 0);
1416 else if (rp->rrdp)
1417 rrdp_finish(rp->rrdp->id, 0);
1419 errx(1, "%s: bad repo", rp->repouri);
1423 repo_abort(struct repo *rp)
1426 rp->alarm = getmonotime() + repo_timeout;
1428 if (rp->rsync) {
1429 warnx("%s: synchronisation timeout", rp->repouri);
1430 rsync_abort(rp->rsync->id);
1431 } else if (rp->rrdp) {
1432 warnx("%s: synchronisation timeout", rp->notifyuri);
1433 rrdp_abort(rp->rrdp->id);
1436 repo_fail(rp);
1442 struct repo *rp;
1465 SLIST_FOREACH(rp, &repos, entry) {
1466 if (repo_state(rp) == REPO_LOADING) {
1467 if (rp->alarm <= now)
1468 repo_abort(rp);
1470 diff = rp->alarm - now;
1485 repostats_new_files_inc(struct repo *rp, const char *file)
1489 rp->repostats.new_files++;
1496 repo_stat_inc(struct repo *rp, int talid, enum rtype type, enum stype subtype)
1498 if (rp == NULL)
1500 rp->stats_used[talid] = 1;
1504 rp->stats[talid].certs++;
1506 rp->stats[talid].certs_fail++;
1508 rp->stats[talid].certs--;
1509 rp->stats[talid].brks++;
1514 rp->stats[talid].mfts++;
1516 rp->stats[talid].mfts_fail++;
1518 rp->stats[talid].mfts_gap++;
1523 rp->stats[talid].roas++;
1526 rp->stats[talid].roas_fail++;
1529 rp->stats[talid].roas_invalid++;
1532 rp->stats[talid].vrps++;
1535 rp->stats[talid].vrps_uniqs++;
1538 rp->stats[talid].vrps_uniqs--;
1547 rp->stats[talid].aspas++;
1550 rp->stats[talid].aspas_fail++;
1553 rp->stats[talid].aspas_invalid++;
1556 rp->stats[talid].vaps++;
1559 rp->stats[talid].vaps_uniqs++;
1562 rp->stats[talid].vaps_uniqs--;
1565 rp->stats[talid].vaps_pas++;
1568 rp->stats[talid].vaps_overflowed++;
1577 rp->stats[talid].spls++;
1580 rp->stats[talid].spls_fail++;
1583 rp->stats[talid].spls_invalid++;
1586 rp->stats[talid].vsps++;
1589 rp->stats[talid].vsps_uniqs++;
1592 rp->stats[talid].vsps_uniqs--;
1599 rp->stats[talid].crls++;
1602 rp->stats[talid].gbrs++;
1605 rp->stats[talid].taks++;
1616 struct repo *rp;
1618 SLIST_FOREACH(rp, &repos, entry) {
1619 if (rp->stats_used[talid])
1620 cb(rp, &rp->stats[talid], arg);
1628 struct repo *rp;
1630 SLIST_FOREACH(rp, &repos, entry)
1631 cb(rp, &rp->repostats, arg);
1642 struct repo *rp;
1647 SLIST_FOREACH(rp, &repos, entry) {
1648 if (rp->rrdp == NULL)
1650 rr = (struct rrdprepo *)rp->rrdp;
1667 rp->repostats.del_files++;
1680 rp->repostats.del_files++;
1779 struct repo *rp;
1783 repo_is_rrdp(struct repo *rp)
1786 if (rp != NULL && rp->rrdp != NULL)
1787 return rp->rrdp->state == REPO_DONE ? rp->rrdp : NULL;
1812 if (fts_state.type == RRDP_DIR && fts_state.rp != NULL) {
1819 fts_state.rp->repostats.extra_files++;
1824 rr = repo_is_rrdp(fts_state.rp);
1849 fts_state.rp->repostats.extra_files++;
1861 if (fts_state.rp != NULL)
1862 fts_state.rp->repostats.del_extra_files++;
1868 if (fts_state.rp != NULL)
1869 fts_state.rp->repostats.del_files++;
1878 fts_state.rp = NULL;
1890 fts_state.rp = NULL;
1895 fts_state.rp = repo_bypath(path);
1897 fts_state.rp = repo_bypath(path + 1);
1905 fts_state.rp = repo_rrdp_bypath(path);
1909 fts_state.rp = repo_rsync_bypath(path +
1918 fts_state.rp = NULL;
1930 if (fts_state.rp != NULL)
1931 fts_state.rp->repostats.del_dirs++;
1983 struct repo *rp;
1985 while ((rp = SLIST_FIRST(&repos)) != NULL) {
1987 free(rp->repouri);
1988 free(rp->notifyuri);
1989 free(rp->basedir);
1990 free(rp);