ensure that message sender matches endpoint destination and that message is addressed to me

auto-update
Zlatin Balevsky 2021-09-14 21:28:19 +01:00
parent 9c5478b01c
commit d4d8d09e15
No known key found for this signature in database
GPG Key ID: A72832072D525E41
3 changed files with 8 additions and 4 deletions

View File

@ -454,7 +454,7 @@ public class Core {
log.info("initializing acceptor")
I2PAcceptor i2pAcceptor = new I2PAcceptor(i2pSocketManager)
connectionAcceptor = new ConnectionAcceptor(eventBus, connectionManager, props,
connectionAcceptor = new ConnectionAcceptor(eventBus, me, connectionManager, props,
i2pAcceptor, hostCache, trustService, searchManager, uploadManager, fileManager, connectionEstablisher,
certificateManager, chatServer, collectionManager)

View File

@ -49,6 +49,7 @@ class ConnectionAcceptor {
private static final int RESULT_BATCH_SIZE = 128
final EventBus eventBus
final Persona me
final UltrapeerConnectionManager manager
final MuWireSettings settings
final I2PAcceptor acceptor
@ -69,12 +70,13 @@ class ConnectionAcceptor {
volatile int browsed
ConnectionAcceptor(EventBus eventBus, UltrapeerConnectionManager manager,
ConnectionAcceptor(EventBus eventBus, Persona me, UltrapeerConnectionManager manager,
MuWireSettings settings, I2PAcceptor acceptor, HostCache hostCache,
TrustService trustService, SearchManager searchManager, UploadManager uploadManager,
FileManager fileManager, ConnectionEstablisher establisher, CertificateManager certificateManager,
ChatServer chatServer, CollectionManager collectionManager) {
this.eventBus = eventBus
this.me = me
this.manager = manager
this.settings = settings
this.acceptor = acceptor
@ -725,7 +727,8 @@ class ConnectionAcceptor {
dis = new DataInputStream(new GZIPInputStream(dis))
count.times {
MWMessage m = new MWMessage(dis)
eventBus.publish(new MessageReceivedEvent(message : m))
if (m.sender.destination == e.destination && m.recipients.contains(me))
eventBus.publish(new MessageReceivedEvent(message : m))
}
} catch (Exception bad) {
log.log(Level.WARNING, "failed to process LETTER", bad)

View File

@ -1,5 +1,6 @@
package com.muwire.core.connection
import com.muwire.core.Personas
import com.muwire.core.hostcache.SimpleHostCache
import static org.junit.Assert.fail
@ -96,7 +97,7 @@ class ConnectionAcceptorTest {
uploadManager = uploadManagerMock.proxyInstance()
connectionEstablisher = connectionEstablisherMock.proxyInstance()
acceptor = new ConnectionAcceptor(eventBus, connectionManager, settings, i2pAcceptor,
acceptor = new ConnectionAcceptor(eventBus, null, connectionManager, settings, i2pAcceptor,
hostCache, trustService, searchManager, uploadManager, null, connectionEstablisher, null, null, null)
acceptor.start()
Thread.sleep(100)