Skip to content

Commit 749519a

Browse files
authored
Merge pull request #13 from i2p/remember-c
don't check for a correct reply on silent sessions
2 parents 4bcaa17 + a04bb55 commit 749519a

File tree

1 file changed

+26
-20
lines changed

1 file changed

+26
-20
lines changed

src/libsam3/libsam3.c

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -959,16 +959,18 @@ Sam3Connection *sam3StreamConnect(Sam3Session *ses, const char *destkey) {
959959
strcpyerr(ses, "IO_ERROR");
960960
goto error;
961961
}
962-
if (!sam3IsGoodReply(rep, "STREAM", "STATUS", "RESULT", "OK")) {
963-
const char *v = sam3FindField(rep, "RESULT");
964-
//
965-
strcpyerr(ses, (v != NULL && v[0] ? v : "I2P_ERROR"));
966-
sam3CloseConnectionInternal(conn);
967-
free(conn);
968-
conn = NULL;
969-
} else {
970-
// no error
971-
strcpyerr(ses, NULL);
962+
if (!ses->silent){
963+
if (!sam3IsGoodReply(rep, "STREAM", "STATUS", "RESULT", "OK")) {
964+
const char *v = sam3FindField(rep, "RESULT");
965+
//
966+
strcpyerr(ses, (v != NULL && v[0] ? v : "I2P_ERROR"));
967+
sam3CloseConnectionInternal(conn);
968+
free(conn);
969+
conn = NULL;
970+
} else {
971+
// no error
972+
strcpyerr(ses, NULL);
973+
}
972974
}
973975
sam3FreeFieldList(rep);
974976
if (conn != NULL) {
@@ -1016,11 +1018,13 @@ Sam3Connection *sam3StreamAccept(Sam3Session *ses) {
10161018
strcpyerr(ses, "IO_ERROR_RP");
10171019
goto error;
10181020
}
1019-
if (!sam3IsGoodReply(rep, "STREAM", "STATUS", "RESULT", "OK")) {
1020-
const char *v = sam3FindField(rep, "RESULT");
1021-
//
1022-
strcpyerr(ses, (v != NULL && v[0] ? v : "I2P_ERROR_RES"));
1023-
goto error;
1021+
if (!ses->silent){
1022+
if (!sam3IsGoodReply(rep, "STREAM", "STATUS", "RESULT", "OK")) {
1023+
const char *v = sam3FindField(rep, "RESULT");
1024+
//
1025+
strcpyerr(ses, (v != NULL && v[0] ? v : "I2P_ERROR_RES"));
1026+
goto error;
1027+
}
10241028
}
10251029
if (sam3tcpReceiveStr(conn->fd, repstr, sizeof(repstr)) < 0) {
10261030
strcpyerr(ses, "IO_ERROR_RP1");
@@ -1092,11 +1096,13 @@ int sam3StreamForward(Sam3Session *ses, const char *hostname, int port) {
10921096
strcpyerr(ses, "IO_ERROR_RP");
10931097
goto error;
10941098
}
1095-
if (!sam3IsGoodReply(rep, "STREAM", "STATUS", "RESULT", "OK")) {
1096-
const char *v = sam3FindField(rep, "RESULT");
1097-
//
1098-
strcpyerr(ses, (v != NULL && v[0] ? v : "I2P_ERROR_RES"));
1099-
goto error;
1099+
if (!ses->silent){
1100+
if (!sam3IsGoodReply(rep, "STREAM", "STATUS", "RESULT", "OK")) {
1101+
const char *v = sam3FindField(rep, "RESULT");
1102+
//
1103+
strcpyerr(ses, (v != NULL && v[0] ? v : "I2P_ERROR_RES"));
1104+
goto error;
1105+
}
11001106
}
11011107
sam3FreeFieldList(rep);
11021108
strcpyerr(ses, NULL);

0 commit comments

Comments
 (0)