Lines Matching defs:drp
265 struct dr *drp;
274 for (drp = drs; drp < &drs[MAX_ADS]; drp++) {
275 drp->dr_recv_pref = 0;
276 drp->dr_life = 0;
309 struct dr *drp;
331 for (drp = drs; drp < &drs[MAX_ADS]; drp++) {
332 if (drp->dr_ts == 0)
340 if (drp->dr_gate == bad_gate) {
341 sec = (now.tv_sec - drp->dr_life
343 if (drp->dr_ts > sec) {
345 naddr_ntoa(drp->dr_gate),
346 drp->dr_ifp->int_name);
347 drp->dr_ts = sec;
374 struct dr *drp;
376 for (drp = drs; drp < &drs[MAX_ADS]; drp++) {
377 if (drp->dr_ifp != ifp)
379 drp->dr_recv_pref = 0;
380 drp->dr_ts = 0;
381 drp->dr_life = 0;
408 del_rdisc(struct dr *drp)
415 del_redirects(gate = drp->dr_gate, 0);
416 drp->dr_ts = 0;
417 drp->dr_life = 0;
423 ifp = drp->dr_ifp;
424 for (drp = drs; drp < &drs[MAX_ADS]; drp++) {
425 if (drp->dr_ts != 0
426 && drp->dr_ifp == ifp)
459 struct dr *drp, *new_drp;
470 for (drp = drs; drp < &drs[MAX_ADS]; drp++) {
471 if (drp->dr_ts == 0)
473 ifp = drp->dr_ifp;
477 if (drp->dr_ts + drp->dr_life <= now.tv_sec) {
478 del_rdisc(drp);
482 LIM_SEC(rdisc_timer, drp->dr_ts+drp->dr_life+1);
487 drp->dr_pref = PREF(drp->dr_recv_pref, ifp);
495 || (!((new_st ^ drp->dr_ifp->int_state) & IS_SICK)
496 && (new_pref < drp->dr_pref
497 || (new_pref == drp->dr_pref
498 && (drp == cur_drp
500 && new_drp->dr_life > drp->dr_life)))))
502 && !(drp->dr_ifp->int_state & IS_SICK))) {
503 new_drp = drp;
504 new_st = drp->dr_ifp->int_state;
505 new_pref = drp->dr_pref;
582 struct dr *drp, *new_drp;
615 for (new_drp = 0, drp = drs; drp < &drs[MAX_ADS]; drp++) {
618 if (drp->dr_gate == gate) {
619 new_drp = drp;
626 if (drp->dr_ts == 0) {
627 new_drp = drp; /* use unused entry */
634 && (drp->dr_ifp->int_state & IS_SICK))
635 || (pref > drp->dr_pref
636 && !((ifp->int_state ^ drp->dr_ifp->int_state)
638 new_drp = drp;
644 && (drp->dr_ifp->int_state & IS_SICK))
645 || (new_drp->dr_pref > drp->dr_pref
647 ^ drp->dr_ifp->int_state)
649 new_drp = drp;