//------------------------------------------------------------------------------ void My4Socket::read(void) { QDataStream in(this); quint32 num, reply; while (bytesAvailable()) { in >> num; if (num == 42) { safeShutDown = true; qDebug("SUCCESS"); QCoreApplication::instance()->quit(); return; } reply = num + 1; if (reply == 42) ++reply; } // Reply with a bigger number sendTest(reply); }
void RxUartHandler() { uart_rxbuffer[rx_counter] = RCREG; ++rx_counter; if(RCREG == '\n') { if(!strncmp(uart_rxbuffer, dumpString, 5)) { dumpEEPROM(); } if(!strncmp(uart_rxbuffer, leftString, 5)) { LEFT_SW = 1; RIGHT_SW = 0; } if(!strncmp(uart_rxbuffer, rightString, 6)) { RIGHT_SW = 1; LEFT_SW = 0; } if(!strncmp(uart_rxbuffer, offString, 3)) { LEFT_SW = 0; RIGHT_SW = 0; } if(!strncmp(uart_rxbuffer, accelString, 6)) { sendAccel(); } else { sendTest(); } rx_counter = 0; } PIR1bits.RCIF = 0; //Clear flag and return }
Zlint_code Zlint_test_search_01::recv_gdu(Zlint *z, Z_GDU *gdu) { if (gdu->which == Z_GDU_Z3950 && gdu->u.z3950 && gdu->u.z3950->which == Z_APDU_initResponse) { Z_InitResponse *init = gdu->u.z3950->u.initResponse; int result = init->result ? *init->result : 0; if (!result) { z->msg_check_notapp(); z->msg_check_info ("init rejected (result false)"); return TEST_FINISHED; } return sendTest(z); } else if (gdu->which == Z_GDU_Z3950 && gdu->u.z3950 && gdu->u.z3950->which == Z_APDU_searchResponse) { Z_SearchResponse *sr = gdu->u.z3950->u.searchResponse; if (sr->records && (sr->records->which == Z_Records_NSD || sr->records->which == Z_Records_multipleNSD)) m_query_no++; else if (!sr->resultCount || *sr->resultCount == 0) m_query_no++; else { z->msg_check_ok(); z->msg_check_info("got %d result count with %s", *sr->resultCount, try_query[m_query_no]); m_got_result_set = 1; } return sendTest(z); } else if (gdu->which == Z_GDU_Z3950 && gdu->u.z3950 && gdu->u.z3950->which == Z_APDU_presentResponse) { Z_PresentResponse *sr = gdu->u.z3950->u.presentResponse; if (sr->records && (sr->records->which == Z_Records_NSD || sr->records->which == Z_Records_multipleNSD)) { z->msg_check_ok(); z->msg_check_info("present returned NSD for %s", try_syntax[m_record_syntax_no]); } else if (sr->records && sr->records->which == Z_Records_DBOSD && sr->records->u.databaseOrSurDiagnostics->num_records>0 && sr->records->u.databaseOrSurDiagnostics->records[0]) { if (sr->records->u.databaseOrSurDiagnostics->records[0]->which == Z_NamePlusRecord_databaseRecord) { Z_External *ext = sr->records->u.databaseOrSurDiagnostics->records[0]->u.databaseRecord; Odr_oid *expectRecordSyntax = yaz_string_to_oid_odr( yaz_oid_std(), CLASS_RECSYN, try_syntax[m_record_syntax_no], z->odr_decode()); if (oid_oidcmp(expectRecordSyntax, ext->direct_reference)) { z->msg_check_fail("Got Record in different syntax " "from that requested %s", try_syntax[m_record_syntax_no]); } else z->msg_check_ok(); } else if (sr->records->u.databaseOrSurDiagnostics->records[0]->which == Z_NamePlusRecord_surrogateDiagnostic) { z->msg_check_ok(); z->msg_check_info("present returned SD %s", try_syntax[m_record_syntax_no]); } else { z->msg_check_ok(); z->msg_check_info("present returned fragment %s", try_syntax[m_record_syntax_no]); } } else { z->msg_check_fail("present returned no records or diagnostics"); } m_record_syntax_no++; return sendTest(z); } else if (gdu->which == Z_GDU_Z3950 && gdu->u.z3950 && gdu->u.z3950->which == Z_APDU_sortResponse) { Z_SortResponse *sr = gdu->u.z3950->u.sortResponse; z->msg_check_ok(); if (sr->diagnostics) z->msg_check_info( "sort NSD for %s", try_sort[m_sort_no]); m_sort_no++; return sendTest(z); } else z->msg_check_fail("did not receive init/search/present response " "as expected"); return TEST_FINISHED; }
main(int ac, char **av) { int i; int on = 1; char *hostname = 0; struct hostent *hostent; int host; /* net order. */ short port = -1; /* host order. */ int setFD = 0; int sockFD; struct sockaddr_in saddr; int reqOOB = 0; int putOOB = 0; int delay = 5; int doEnd = 0; int doWrite = 0; int writeSize = 0; program = av[0]; signal(SIGIO, sigIO); for (i = 1; i < ac; i++) { if (!strcmp("-fd", av[i])) { if (++i >= ac) { printf("Missing number for -fd option.\n"); Usage(); } setFD = atoi(av[i]); if (setFD <= 2) { printf("%s: %d: file descriptor must be at least 3.\n", program, setFD); Usage(); } } else if (!strcmp("-end", av[i])) { doEnd = 1; } else if (!strcmp("-delay", av[i])) { if (++i >= ac) { printf("%s: Missing time for -delay option.\n", program); Usage(); } delay = atoi(av[i]); if (delay < 0) { printf("%s: %s: delay must be at least 0 seconds.\n", program, av[i]); Usage(); } } else if (!strcmp("-write", av[i])) { doWrite = 1; if (++i >= ac) { printf("%s: Missing size for -write option.\n", program); Usage(); } writeSize = atoi(av[i]); if (writeSize < 1) { printf("%s: %s: Write size must be at least 1 byte.\n", program, av[i]); Usage(); } } else if (!strcmp("-oob", av[i])) { reqOOB = 1; } else if (!strcmp("-soob", av[i])) { putOOB = 1; } else { if (!hostname) { hostname = av[i]; } else if (port == -1) { port = atoi(av[i]); if (port <= 0) { printf("%s: %s: port must be at least 1\n", program, av[i]); Usage(); } } else { printf("%s: %s: Unknown argument.\n", program, av[i]); } } } if (!hostname) { printf("%s: Missing hostname and port.\n", program); Usage(); } if (port == -1) { printf("%s: Missing port.\n", program); Usage(); } if (writeSize == 0 && doEnd == 0 && putOOB == 0) { printf("%s: Missing action.\n", program); Usage(); } if (!setFD) { setFD = 31; printf("%s: Using default socket of %d.\n", program, setFD); } if (!(hostent = gethostbyname(hostname))) { printf("%s: Failed to find host entry for %s.\n", program, hostname); exit(1); } memcpy((void *)&host, (const void *)hostent->h_addr, sizeof(host)); OpenFDs(setFD); /* Connect to server. */ sockFD = socket(AF_INET, SOCK_STREAM, 0); if (sockFD < 0) { Die(0, "socket"); } printf("%s: Using socket at file descriptor %d.\n", program, sockFD); memset((void *)&saddr, 0, sizeof(saddr)); saddr.sin_family = AF_INET; saddr.sin_addr.s_addr = host; /* already in network byte order. */ saddr.sin_port = htons(port); if (connect(sockFD, (struct sockaddr *)&saddr, sizeof(saddr)) < 0) { assert(0); } if (doEnd) { sendEnd(sockFD); } else if (putOOB) { Log("Will send OOB in 2 seconds.\n"); sleep(2); sendOOB(sockFD); Log("Sent OOB, sleeping for 5 seconds.\n"); sleep(5); Log("Sent OOB, exiting.\n"); } else { IOMGR_Initialize(); sendTest(sockFD, delay, reqOOB, writeSize); } close(sockFD); }