git://git.nikiroo.be
/
nikiroo-utils.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
388f4a2
)
move sep char to final const
author
Niki Roo
<niki@nikiroo.be>
Thu, 2 May 2019 18:06:31 +0000
(20:06 +0200)
committer
Niki Roo
<niki@nikiroo.be>
Thu, 2 May 2019 18:06:31 +0000
(20:06 +0200)
src/be/nikiroo/utils/serial/server/ConnectAction.java
patch
|
blob
|
blame
|
history
diff --git
a/src/be/nikiroo/utils/serial/server/ConnectAction.java
b/src/be/nikiroo/utils/serial/server/ConnectAction.java
index d359e08b217f623ddde1749090aeefc2391deffd..0f2f1b4319fa799950119815c31dd9bf81043ee8 100644
(file)
--- a/
src/be/nikiroo/utils/serial/server/ConnectAction.java
+++ b/
src/be/nikiroo/utils/serial/server/ConnectAction.java
@@
-28,6
+28,12
@@
import be.nikiroo.utils.streams.ReplaceOutputStream;
* @author niki
*/
abstract class ConnectAction {
* @author niki
*/
abstract class ConnectAction {
+ // We separate each "packet" we send with this character and make sure it
+ // does not occurs in the message itself.
+ static private char STREAM_SEP = '\b';
+ static private String[] STREAM_RAW = new String[] { "\\", "\b" };
+ static private String[] STREAM_CODED = new String[] { "\\\\", "\\b" };
+
private Socket s;
private boolean server;
private Socket s;
private boolean server;
@@
-99,13
+105,10
@@
abstract class ConnectAction {
*/
public void connect() {
try {
*/
public void connect() {
try {
- // TODO: assure that \b is never used, make sure \n usage is OK
in = new NextableInputStream(s.getInputStream(),
in = new NextableInputStream(s.getInputStream(),
- new NextableInputStreamStep('\b'));
-
+ new NextableInputStreamStep(STREAM_SEP));
try {
out = new BufferedOutputStream(s.getOutputStream());
try {
out = new BufferedOutputStream(s.getOutputStream());
-
try {
action();
} finally {
try {
action();
} finally {
@@
-294,12
+297,7
@@
abstract class ConnectAction {
sub = out.open();
}
sub = out.open();
}
- // TODO: could be possible to check for non-crypt and only
- // do it for crypt
- sub = new ReplaceOutputStream(sub, //
- new String[] { "\\", "\b" }, //
- new String[] { "\\\\", "\\b" });
-
+ sub = new ReplaceOutputStream(sub, STREAM_RAW, STREAM_CODED);
try {
if (asString) {
sub.write(StringUtils.getBytes(data.toString()));
try {
if (asString) {
sub.write(StringUtils.getBytes(data.toString()));
@@
-310,7
+308,7
@@
abstract class ConnectAction {
sub.close();
}
sub.close();
}
- out.write(
'\b'
);
+ out.write(
STREAM_SEP
);
if (server) {
out.flush();
if (server) {
out.flush();
@@
-377,12
+375,8
@@
abstract class ConnectAction {
}
if (in.next() && !in.eof()) {
}
if (in.next() && !in.eof()) {
- // TODO: could be possible to check for non-crypt and only
- // do it for crypt
- InputStream read = new ReplaceInputStream(in.open(), //
- new String[] { "\\\\", "\\b" }, //
- new String[] { "\\", "\b" });
-
+ InputStream read = new ReplaceInputStream(in.open(),
+ STREAM_CODED, STREAM_RAW);
try {
if (crypt != null) {
read = crypt.decrypt64(read);
try {
if (crypt != null) {
read = crypt.decrypt64(read);