this.sink.send(diss.getSender(), diss.getPayload()); else this.sink.send(diss.extractSender(), diss.extractPayload());
protected void messageReceived(byte[] msg, int proto, int fromPort, int toPort) { byte[] payload; Destination sender; try { synchronized (dgramDissector) { dgramDissector.loadI2PDatagram(msg); sender = dgramDissector.getSender(); payload = dgramDissector.extractPayload(); } } catch (DataFormatException e) { if (_log.shouldLog(Log.DEBUG)) { _log.debug("Dropping ill-formatted I2P repliable datagram", e); } return; } catch (I2PInvalidDatagramException e) { if (_log.shouldLog(Log.DEBUG)) { _log.debug("Dropping ill-signed I2P repliable datagram", e); } return; } try { recv.receiveDatagramBytes(sender, payload, proto, fromPort, toPort); } catch (IOException e) { _log.error("Error forwarding message to receiver", e); close(); } }
dgDiss.loadI2PDatagram(payload); payload = dgDiss.getPayload(); Destination from = dgDiss.getSender();
dd.getSender(); }catch(I2PInvalidDatagramException i2pide){ error = true;
public void testDatagram() throws Exception{ ByteArrayOutputStream out = new ByteArrayOutputStream(); I2PClient client = I2PClientFactory.createClient(); Destination d = client.createDestination(out); I2PSession session = client.createSession(new ByteArrayInputStream(out.toByteArray()), null); I2PDatagramMaker dm = new I2PDatagramMaker(session); byte[] dg = dm.makeI2PDatagram(DataHelper.getASCII("What's the deal with 42?")); I2PDatagramDissector dd = new I2PDatagramDissector(); dd.loadI2PDatagram(dg); byte[] x = dd.getPayload(); assertTrue(DataHelper.eq(x, DataHelper.getASCII("What's the deal with 42?"))); x = dd.extractPayload(); assertTrue(DataHelper.eq(x, DataHelper.getASCII("What's the deal with 42?"))); assertEquals(d, dd.getSender()); assertEquals(d, dd.extractSender()); }
Destination sender = datagramDissector.getSender();