X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Fsymbian%2Fsilcsymbiansocketstream.cpp;h=b2362784d370746515bb6a6ce3d28abbdee303d1;hb=e7b6c157b80152bf9fb9266e6bdd93f9fb0db776;hp=ee7d23ddb71ede7097cbaf8b19f157dad598c0af;hpb=7e984ba1f27096183709e22259aab9075f07b9dd;p=silc.git diff --git a/lib/silcutil/symbian/silcsymbiansocketstream.cpp b/lib/silcutil/symbian/silcsymbiansocketstream.cpp index ee7d23dd..b2362784 100644 --- a/lib/silcutil/symbian/silcsymbiansocketstream.cpp +++ b/lib/silcutil/symbian/silcsymbiansocketstream.cpp @@ -51,7 +51,8 @@ public: { SILC_LOG_DEBUG(("Send()")); s->sock->Send(buf, 0, iStatus, ret_len); - SetActive(); + if (!IsActive()) + SetActive(); } /* Send data */ @@ -67,7 +68,8 @@ public: tmp = (TText *)remote_ip; if (remote.Input(tmp) == KErrNone) { s->sock->SendTo(buf, remote, 0, iStatus, ret_len); - SetActive(); + if (!IsActive()) + SetActive(); } } @@ -123,12 +125,13 @@ public: { SILC_LOG_DEBUG(("Read()")); - if (!s->stream || s->stream->connected) + if (s->stream && s->stream->connected) s->sock->RecvOneOrMore(inbuf, 0, iStatus, read_len); else s->sock->RecvFrom(inbuf, remote, 0, iStatus); - SetActive(); + if (!IsActive()) + SetActive(); } /* Reading callback */ @@ -202,6 +205,7 @@ SilcSymbianSocket *silc_create_symbian_socket(RSocket *sock, silc_free(stream); return NULL; } + stream->send->s = stream; stream->receive = new SilcSymbianSocketReceive; if (!stream->receive) { @@ -209,6 +213,7 @@ SilcSymbianSocket *silc_create_symbian_socket(RSocket *sock, silc_free(stream); return NULL; } + stream->receive->s = stream; stream->receive->inbuf_ptr = NULL; stream->receive->inbuf_len = 0;