| 1497 | xfrms[if2] = xfrm21 |
| 1498 | |
| 1499 | def prn_send(pkt): |
| 1500 | # type: (Packet) -> None |
| 1501 | try: |
| 1502 | sendsock = peers[pkt.sniffed_on or ""] |
| 1503 | except KeyError: |
| 1504 | return |
| 1505 | if pkt.sniffed_on in xfrms: |
| 1506 | try: |
| 1507 | _newpkt = xfrms[pkt.sniffed_on](pkt) |
| 1508 | except Exception: |
| 1509 | log_runtime.warning( |
| 1510 | 'Exception in transformation function for packet [%s] ' |
| 1511 | 'received on %s -- dropping', |
| 1512 | pkt.summary(), pkt.sniffed_on, exc_info=True |
| 1513 | ) |
| 1514 | return |
| 1515 | else: |
| 1516 | if isinstance(_newpkt, bool): |
| 1517 | if not _newpkt: |
| 1518 | return |
| 1519 | newpkt = pkt |
| 1520 | else: |
| 1521 | newpkt = _newpkt |
| 1522 | else: |
| 1523 | newpkt = pkt |
| 1524 | try: |
| 1525 | sendsock.send(newpkt) |
| 1526 | except Exception: |
| 1527 | log_runtime.warning('Cannot forward packet [%s] received on %s', |
| 1528 | pkt.summary(), pkt.sniffed_on, exc_info=True) |
| 1529 | if prn is None: |
| 1530 | prn = prn_send |
| 1531 | else: |