Skip to content

Commit e0039d5

Browse files
committed
Removed identical code
1 parent f1411b4 commit e0039d5

File tree

1 file changed

+15
-58
lines changed

1 file changed

+15
-58
lines changed

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/workflow/action/DeepCopyBuffersAction.java

Lines changed: 15 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,13 @@
88
*/
99
package de.rub.nds.tlsattacker.core.workflow.action;
1010

11-
import de.rub.nds.tlsattacker.core.exceptions.WorkflowExecutionException;
12-
import de.rub.nds.tlsattacker.core.protocol.message.ProtocolMessage;
13-
import de.rub.nds.tlsattacker.core.record.AbstractRecord;
11+
import de.rub.nds.tlsattacker.core.state.State;
1412
import de.rub.nds.tlsattacker.core.state.TlsContext;
15-
import java.io.ByteArrayInputStream;
16-
import java.io.ByteArrayOutputStream;
17-
import java.io.IOException;
18-
import java.io.ObjectInputStream;
19-
import java.io.ObjectOutputStream;
20-
import java.util.LinkedList;
2113

2214
public class DeepCopyBuffersAction extends CopyContextFieldAction {
2315

16+
private State state;
17+
2418
public DeepCopyBuffersAction() {
2519

2620
}
@@ -30,9 +24,9 @@ public DeepCopyBuffersAction(String srcConnectionAlias, String dstConnectionAlia
3024
}
3125

3226
@Override
33-
protected void copyField(TlsContext src, TlsContext dst) {
34-
deepCopyRecords(src, dst);
35-
deepCopyMessages(src, dst);
27+
public void execute(State state) {
28+
this.state = state;
29+
super.execute(state);
3630
}
3731

3832
@Override
@@ -45,52 +39,15 @@ public void reset() {
4539
setExecuted(false);
4640
}
4741

48-
private void deepCopyRecords(TlsContext src, TlsContext dst) {
49-
LinkedList<AbstractRecord> recordBuffer = new LinkedList<>();
50-
ObjectOutputStream outStream;
51-
ObjectInputStream inStream;
52-
try {
53-
for (AbstractRecord record : src.getRecordBuffer()) {
54-
55-
ByteArrayOutputStream stream = new ByteArrayOutputStream();
56-
outStream = new ObjectOutputStream(stream);
57-
outStream.writeObject(record);
58-
outStream.close();
59-
inStream = new ObjectInputStream(new ByteArrayInputStream(stream.toByteArray()));
60-
AbstractRecord recordCopy = (AbstractRecord) inStream.readObject();
61-
62-
recordBuffer.add(recordCopy);
63-
}
64-
} catch (IOException | ClassNotFoundException ex) {
65-
LOGGER.error("Error while creating deep copy of recordBuffer");
66-
throw new WorkflowExecutionException(ex.toString());
67-
}
68-
69-
dst.setRecordBuffer(recordBuffer);
70-
}
71-
72-
private void deepCopyMessages(TlsContext src, TlsContext dst) {
73-
LinkedList<ProtocolMessage> messageBuffer = new LinkedList<>();
74-
ObjectOutputStream outStream;
75-
ObjectInputStream inStream;
76-
try {
77-
for (ProtocolMessage message : src.getMessageBuffer()) {
78-
79-
ByteArrayOutputStream stream = new ByteArrayOutputStream();
80-
outStream = new ObjectOutputStream(stream);
81-
outStream.writeObject(message);
82-
outStream.close();
83-
inStream = new ObjectInputStream(new ByteArrayInputStream(stream.toByteArray()));
84-
ProtocolMessage messageCopy = (ProtocolMessage) inStream.readObject();
85-
86-
messageBuffer.add(messageCopy);
87-
}
88-
} catch (IOException | ClassNotFoundException ex) {
89-
LOGGER.error("Error while creating deep copy of messageBuffer");
90-
throw new WorkflowExecutionException(ex.toString());
91-
}
92-
93-
dst.setMessageBuffer(messageBuffer);
42+
@Override
43+
protected void copyField(TlsContext srcContext, TlsContext dstContext) {
44+
DeepCopyBufferedRecordsAction copyRecords = new DeepCopyBufferedRecordsAction(super.getSrcContextAlias(),
45+
super.getDstContextAlias());
46+
DeepCopyBufferedMessagesAction copyMessages = new DeepCopyBufferedMessagesAction(super.getSrcContextAlias(),
47+
super.getDstContextAlias());
48+
49+
copyRecords.execute(state);
50+
copyMessages.execute(state);
9451
}
9552

9653
}

0 commit comments

Comments
 (0)