summaryrefslogtreecommitdiff
path: root/x11/ipc
authorzecke <zecke>2003-02-05 08:54:58 (UTC)
committer zecke <zecke>2003-02-05 08:54:58 (UTC)
commitbbb3690f12191763a407e6a0edd521113b3c25ac (patch) (unidiff)
tree39f90d71c7f085f5722382db4a5577bbda2e1618 /x11/ipc
parent97b96e141fca844317e59ca5b99c1bf5fa52b1f0 (diff)
downloadopie-bbb3690f12191763a407e6a0edd521113b3c25ac.zip
opie-bbb3690f12191763a407e6a0edd521113b3c25ac.tar.gz
opie-bbb3690f12191763a407e6a0edd521113b3c25ac.tar.bz2
Fix the IPC server and client
registering channel is done locally with refcounts if the channel is already registered globally Fix some sizes to allow proper communication..
Diffstat (limited to 'x11/ipc') (more/less context) (ignore whitespace changes)
-rw-r--r--x11/ipc/client/ocopclient.cpp8
-rw-r--r--x11/ipc/server/ocopserver.cpp9
2 files changed, 14 insertions, 3 deletions
diff --git a/x11/ipc/client/ocopclient.cpp b/x11/ipc/client/ocopclient.cpp
index 6085481..91827e7 100644
--- a/x11/ipc/client/ocopclient.cpp
+++ b/x11/ipc/client/ocopclient.cpp
@@ -100,7 +100,12 @@ OCOPPacket OCOPClient::packet() const{
100 read(m_socket, &head, sizeof(head) ); 100 read(m_socket, &head, sizeof(head) );
101 if ( head.magic == 47 ) { 101 if ( head.magic == 47 ) {
102 qWarning("Client:Magic Match");
103 chan = QCString( head.chlen+1);
104 func = QCString( head.funclen+1 );
105 ar = QByteArray( head.datalen);
102 read(m_socket, chan.data(), head.chlen ); 106 read(m_socket, chan.data(), head.chlen );
103 read(m_socket, func.data(), head.funclen ); 107 read(m_socket, func.data(), head.funclen );
104 read(m_socket, ar.data(), head.datalen ); 108 read(m_socket, ar.data(), head.datalen );
109 qWarning("Client:%d %s",head.chlen,chan.data() );
105 } 110 }
106 OCOPPacket pack(head.type, chan, func, ar ); 111 OCOPPacket pack(head.type, chan, func, ar );
@@ -113,4 +118,5 @@ OCOPPacket OCOPClient::packet() const{
113 */ 118 */
114bool OCOPClient::isRegistered( const QCString& chan ) const{ 119bool OCOPClient::isRegistered( const QCString& chan ) const{
120 qWarning("OCopClient::isRegistered %s", chan.data() );
115 /* should I disconnect the socket notfier? */ 121 /* should I disconnect the socket notfier? */
116 OCOPPacket packe(OCOPPacket::IsRegistered, chan ); 122 OCOPPacket packe(OCOPPacket::IsRegistered, chan );
@@ -120,4 +126,5 @@ bool OCOPClient::isRegistered( const QCString& chan ) const{
120 /* block */ 126 /* block */
121 OCOPPacket pack = packet(); 127 OCOPPacket pack = packet();
128 qWarning("unblock %s %s", pack.channel().data(), chan.data() );
122 129
123 /* connect here again */ 130 /* connect here again */
@@ -131,4 +138,5 @@ bool OCOPClient::isRegistered( const QCString& chan ) const{
131}; 138};
132void OCOPClient::send( const QCString& chan, const QCString& fu, const QByteArray& arr ) { 139void OCOPClient::send( const QCString& chan, const QCString& fu, const QByteArray& arr ) {
140 qWarning("ClientSending %s %s", chan.data(), fu.data() );
133 OCOPPacket pack(OCOPPacket::Call, chan, fu, arr ); 141 OCOPPacket pack(OCOPPacket::Call, chan, fu, arr );
134 call( pack ); 142 call( pack );
diff --git a/x11/ipc/server/ocopserver.cpp b/x11/ipc/server/ocopserver.cpp
index 0f818b7..ee5ea18 100644
--- a/x11/ipc/server/ocopserver.cpp
+++ b/x11/ipc/server/ocopserver.cpp
@@ -168,5 +168,5 @@ void OCopServer::newOnClient( int fd ) {
168 QCString channel( head.chlen+1 ); 168 QCString channel( head.chlen+1 );
169 QCString func( head.funclen+1 ); 169 QCString func( head.funclen+1 );
170 QByteArray data ( head.datalen ); 170 QByteArray data ( head.datalen+1 );
171 171
172 /* 172 /*
@@ -301,5 +301,5 @@ void OCopServer::dispatch( const OCOPPacket& packet, int sourceFD ) {
301 break; 301 break;
302 case OCOPPacket::IsRegistered: 302 case OCOPPacket::IsRegistered:
303 qWarning("IsRegistered"); 303 qWarning("Server:IsRegistered %s", packet.channel().data() );
304 isRegistered( packet.channel(), sourceFD ); 304 isRegistered( packet.channel(), sourceFD );
305 break; 305 break;
@@ -366,5 +366,5 @@ void OCopServer::delChannel( const QCString& channel,
366} 366}
367void OCopServer::isRegistered( const QCString& channel, int fd) { 367void OCopServer::isRegistered( const QCString& channel, int fd) {
368// qWarning("isRegistered"); 368 qWarning("Server:isRegistered %s", channel.data() );
369 OCOPHead head; 369 OCOPHead head;
370 QCString func(2); 370 QCString func(2);
@@ -380,6 +380,8 @@ void OCopServer::isRegistered( const QCString& channel, int fd) {
380 //is registered 380 //is registered
381 func[0] = 1; 381 func[0] = 1;
382 qWarning("Server:Channel is Registered %d", head.chlen);
382 }else{ 383 }else{
383 func[0] = 0; 384 func[0] = 0;
385 qWarning("Server:Channel is NotRegistered");
384 } 386 }
385 387
@@ -402,4 +404,5 @@ void OCopServer::call( const OCOPPacket& p, int ) {
402 OCOPHead head = p.head(); 404 OCOPHead head = p.head();
403 for (it = cli.begin(); it != cli.end(); ++it ) { 405 for (it = cli.begin(); it != cli.end(); ++it ) {
406 qWarning("Server:calling %d %s %s", (*it), p.channel().data(), p.header().data() );
404 write( (*it), &head, sizeof(head ) ); 407 write( (*it), &head, sizeof(head ) );
405 /* expl. shared! */ 408 /* expl. shared! */