void update() { set_nb(gv(Form2->Edit1->Text)); // nb = gv(Form2->Edit1->Text); // k = gv(Form2->Edit2->Text); set_k(gv(Form2->Edit2->Text)); set_E(doub_gv(Form2->Edit4->Text)); set_G(doub_gv(Form2->Edit5->Text)); // E = doub_gv(Form2->Edit4->Text); // G = doub_gv(Form2->Edit5->Text); }
static int do_accept(JNIEnv* env, jobject object, int ag_fd, jfieldID out_fd, jfieldID out_address, jfieldID out_channel) { #if USE_ACCEPT_DIRECTLY==0 if (set_nb(ag_fd, true) < 0) return -1; #endif struct sockaddr_rc raddr; int alen = sizeof(raddr); int nsk = accept(ag_fd, (struct sockaddr *) &raddr, &alen); if (nsk < 0) { ALOGE("Error on accept from socket fd %d: %s (%d).", ag_fd, strerror(errno), errno); #if USE_ACCEPT_DIRECTLY==0 set_nb(ag_fd, false); #endif return -1; } env->SetIntField(object, out_fd, nsk); env->SetIntField(object, out_channel, raddr.rc_channel); char addr[BTADDR_SIZE]; get_bdaddr_as_string(&raddr.rc_bdaddr, addr); env->SetObjectField(object, out_address, env->NewStringUTF(addr)); ALOGI("Successful accept() on AG socket %d: new socket %d, address %s, RFCOMM channel %d", ag_fd, nsk, addr, raddr.rc_channel); #if USE_ACCEPT_DIRECTLY==0 set_nb(ag_fd, false); #endif return 0; }
int create_test_sockets(int *cfd, int *sfd) { struct sockaddr_in sin; const char *host = "127.0.0.1"; int cfd_connected = 0, ret = 0; socklen_t slen = sizeof(sin); int afd = -1; *cfd = -1; *sfd = -1; memset ((char *) &sin, 0, sizeof(sin)); sin.sin_family = AF_INET; sin.sin_addr.s_addr = inet_addr(host); afd = socket(AF_INET, SOCK_STREAM, 0); if (afd < 0) return 0; if (bind(afd, (struct sockaddr*)&sin, sizeof(sin)) < 0) goto out; if (getsockname(afd, (struct sockaddr*)&sin, &slen) < 0) goto out; if (listen(afd, 1) < 0) goto out; *cfd = socket(AF_INET, SOCK_STREAM, 0); if (*cfd < 0) goto out; if (set_nb(afd) == -1) goto out; while (*sfd == -1 || !cfd_connected ) { *sfd = accept(afd, NULL, 0); if (*sfd == -1 && errno != EAGAIN) goto out; if (!cfd_connected && connect(*cfd, (struct sockaddr*)&sin, sizeof(sin)) < 0) goto out; else cfd_connected = 1; } if (set_nb(*cfd) == -1 || set_nb(*sfd) == -1) goto out; ret = 1; goto success; out: if (*cfd != -1) close(*cfd); if (*sfd != -1) close(*sfd); success: if (afd != -1) close(afd); return ret; }