Lines Matching refs:netState
84 adbStateFree( JdwpNetState* netState )
86 if (netState == NULL)
89 if (netState->clientSock >= 0) {
90 shutdown(netState->clientSock, SHUT_RDWR);
91 close(netState->clientSock);
93 if (netState->controlSock >= 0) {
94 shutdown(netState->controlSock, SHUT_RDWR);
95 close(netState->controlSock);
97 if (netState->wakeFds[0] >= 0) {
98 close(netState->wakeFds[0]);
99 netState->wakeFds[0] = -1;
101 if (netState->wakeFds[1] >= 0) {
102 close(netState->wakeFds[1]);
103 netState->wakeFds[1] = -1;
106 delete netState;
116 JdwpNetState* netState;
120 state->netState = netState = new JdwpNetState;
121 if (netState == NULL)
132 * closes netState->controlSock.
134 static int receiveClientFd(JdwpNetState* netState)
163 ret = recvmsg(netState->controlSock, &msg, 0);
169 netState->controlSock, strerror(errno));
171 close(netState->controlSock);
172 netState->controlSock = -1;
188 JdwpNetState* netState = state->netState;
194 if (netState->shuttingDown)
197 if (netState->controlSock < 0) {
202 netState->controlSock = socket(PF_UNIX, SOCK_STREAM, 0);
203 if (netState->controlSock < 0) {
209 if (pipe(netState->wakeFds) < 0) {
231 int ret = connect(netState->controlSock,
232 &netState->controlAddr.controlAddrPlain,
233 netState->controlAddrLen);
235 if (!socket_peer_is_trusted(netState->controlSock)) {
236 if (shutdown(netState->controlSock, SHUT_RDWR)) {
244 ret = send( netState->controlSock, buff, 4, 0 );
265 if (netState->shuttingDown)
272 netState->clientSock = receiveClientFd(netState);
273 if (netState->shuttingDown)
276 if (netState->clientSock < 0) {
283 LOGV("received file descriptor %d from ADB", netState->clientSock);
284 netState->awaitingHandshake = 1;
285 netState->inputCount = 0;
304 JdwpNetState* netState;
306 assert(state != NULL && state->netState != NULL);
308 netState = state->netState;
309 if (netState->clientSock < 0)
314 close(netState->clientSock);
315 netState->clientSock = -1;
324 static void adbStateShutdown(struct JdwpNetState* netState)
329 if (netState == NULL)
332 netState->shuttingDown = true;
334 clientSock = netState->clientSock;
337 netState->clientSock = -1;
340 controlSock = netState->controlSock;
343 netState->controlSock = -1;
346 if (netState->wakeFds[1] >= 0) {
348 write(netState->wakeFds[1], "", 1);
354 adbStateShutdown(state->netState);
358 * Free up anything we put in state->netState. This is called after
363 JdwpNetState* netState = state->netState;
365 adbStateFree(netState);
373 return (state->netState != NULL &&
374 state->netState->clientSock >= 0);
382 return state->netState->awaitingHandshake;
388 static bool haveFullPacket(JdwpNetState* netState)
392 if (netState->awaitingHandshake)
393 return (netState->inputCount >= (int) kMagicHandshakeLen);
395 if (netState->inputCount < 4)
398 length = get4BE(netState->inputBuffer);
399 return (netState->inputCount >= length);
408 static void consumeBytes(JdwpNetState* netState, int count)
411 assert(count <= netState->inputCount);
413 if (count == netState->inputCount) {
414 netState->inputCount = 0;
418 memmove(netState->inputBuffer, netState->inputBuffer + count,
419 netState->inputCount - count);
420 netState->inputCount -= count;
428 JdwpNetState* netState = state->netState;
429 const unsigned char* buf = netState->inputBuffer;
451 assert((int) length <= netState->inputCount);
452 dataLen = length - (buf - netState->inputBuffer);
463 ssize_t cc = netState->writePacket(pReply);
481 consumeBytes(netState, length);
502 JdwpNetState* netState = state->netState;
505 assert(netState->clientSock >= 0);
507 if (!haveFullPacket(netState)) {
519 fd = netState->controlSock;
525 fd = netState->clientSock;
531 fd = netState->wakeFds[0];
565 netState->wakeFds[0] >= 0 &&
566 FD_ISSET(netState->wakeFds[0], &readfds))
571 if (netState->controlSock >= 0 &&
572 FD_ISSET(netState->controlSock, &readfds))
574 int sock = receiveClientFd(netState);
579 assert(netState->controlSock < 0);
582 * on netState->clientSock will fail and throw us out
587 if (netState->clientSock >= 0 &&
588 FD_ISSET(netState->clientSock, &readfds))
590 readCount = read(netState->clientSock,
591 netState->inputBuffer + netState->inputCount,
592 sizeof(netState->inputBuffer) - netState->inputCount);
608 netState->inputCount += readCount;
609 if (!haveFullPacket(netState))
621 if (netState->awaitingHandshake) {
624 if (memcmp(netState->inputBuffer,
627 LOGE("ERROR: bad handshake '%.14s'", netState->inputBuffer);
632 cc = write(netState->clientSock, netState->inputBuffer,
640 consumeBytes(netState, kMagicHandshakeLen);
641 netState->awaitingHandshake = false;
666 JdwpNetState* netState = state->netState;
668 if (netState->clientSock < 0) {
676 ssize_t cc = netState->writePacket(pReq);
698 JdwpNetState* netState = state->netState;
700 if (netState->clientSock < 0) {
711 ssize_t actual = netState->writeBufferedPacket(iov, iovcnt);