equal
deleted
inserted
replaced
71 } else { |
71 } else { |
72 return IPC_NOT_CONNECTED; |
72 return IPC_NOT_CONNECTED; |
73 } |
73 } |
74 } |
74 } |
75 |
75 |
76 static bool isMessageReady(flib_ipcbase *ipc) { |
|
77 return ipc->readBufferSize >= ipc->readBuffer[0]+1; |
|
78 } |
|
79 |
|
80 static void receiveToBuffer(flib_ipcbase *ipc) { |
76 static void receiveToBuffer(flib_ipcbase *ipc) { |
81 if(ipc->sock) { |
77 if(ipc->sock) { |
82 int size = flib_socket_nbrecv(ipc->sock, ipc->readBuffer+ipc->readBufferSize, sizeof(ipc->readBuffer)-ipc->readBufferSize); |
78 int size = flib_socket_nbrecv(ipc->sock, ipc->readBuffer+ipc->readBufferSize, sizeof(ipc->readBuffer)-ipc->readBufferSize); |
83 if(size>=0) { |
79 if(size>=0) { |
84 ipc->readBufferSize += size; |
80 ipc->readBufferSize += size; |
85 } else { |
81 } else { |
86 flib_socket_close(ipc->sock); |
82 flib_socket_close(ipc->sock); |
87 ipc->sock = NULL; |
83 ipc->sock = NULL; |
88 } |
84 } |
89 } |
85 } |
|
86 } |
|
87 |
|
88 static bool isMessageReady(flib_ipcbase *ipc) { |
|
89 return ipc->readBufferSize >= ipc->readBuffer[0]+1; |
90 } |
90 } |
91 |
91 |
92 int flib_ipcbase_recv_message(flib_ipcbase *ipc, void *data) { |
92 int flib_ipcbase_recv_message(flib_ipcbase *ipc, void *data) { |
93 if(!ipc || !data) { |
93 if(!ipc || !data) { |
94 flib_log_e("null parameter in flib_ipcbase_recv_message"); |
94 flib_log_e("null parameter in flib_ipcbase_recv_message"); |
181 sendbuf[0] = len; |
181 sendbuf[0] = len; |
182 memcpy(sendbuf+1, data, len); |
182 memcpy(sendbuf+1, data, len); |
183 return flib_ipcbase_send_raw(ipc, sendbuf, len+1); |
183 return flib_ipcbase_send_raw(ipc, sendbuf, len+1); |
184 } |
184 } |
185 |
185 |
186 int flib_ipcbase_send_messagestr(flib_ipcbase *ipc, char *data) { |
|
187 return flib_ipcbase_send_message(ipc, data, strlen(data)); |
|
188 } |
|
189 |
|
190 void flib_ipcbase_accept(flib_ipcbase *ipc) { |
186 void flib_ipcbase_accept(flib_ipcbase *ipc) { |
191 if(!ipc) { |
187 if(!ipc) { |
192 flib_log_e("null parameter in flib_ipcbase_accept"); |
188 flib_log_e("null parameter in flib_ipcbase_accept"); |
193 } else if(!ipc->sock && ipc->acceptor) { |
189 } else if(!ipc->sock && ipc->acceptor) { |
194 ipc->sock = flib_socket_accept(ipc->acceptor, true); |
190 ipc->sock = flib_socket_accept(ipc->acceptor, true); |