(self, nextlayer: layer.NextLayer)
| 99 | ] |
| 100 | |
| 101 | def next_layer(self, nextlayer: layer.NextLayer): |
| 102 | if nextlayer.layer: |
| 103 | return # do not override something another addon has set. |
| 104 | try: |
| 105 | nextlayer.layer = self._next_layer( |
| 106 | nextlayer.context, |
| 107 | nextlayer.data_client(), |
| 108 | nextlayer.data_server(), |
| 109 | ) |
| 110 | except NeedsMoreData: |
| 111 | logger.debug( |
| 112 | f"Deferring layer decision, not enough data: {nextlayer.data_client().hex()!r}" |
| 113 | ) |
| 114 | |
| 115 | def _next_layer( |
| 116 | self, context: Context, data_client: bytes, data_server: bytes |