JNIEXPORT void JNICALL Java_org_iotivity_ca_service_RMInterface_RMInitialize(JNIEnv *env, jobject obj, jobject context) { LOGI("RMInitialize"); if (!env || !obj || !context) { LOGI("Invalid input parameter"); return; } //Currently set context for Android Platform CANativeJNISetContext(env, context); CAResult_t res = CAInitialize(); if (CA_STATUS_OK != res) { LOGE("Could not Initialize"); } #ifdef __WITH_DTLS__ if (CA_STATUS_OK != SetCredentials()) { LOGE("SetCredentials failed"); return; } res = CARegisterDTLSCredentialsHandler(CAGetDtlsPskCredentials); if(CA_STATUS_OK != res) { LOGE("Set credential handler fail"); return; } #endif }
bool CWebServer::Start(uint16_t port, const std::string &username, const std::string &password) { SetCredentials(username, password); if (!m_running) { int v6testSock; if ((v6testSock = socket(AF_INET6, SOCK_STREAM, 0)) >= 0) { closesocket(v6testSock); m_daemon_ip6 = StartMHD(MHD_USE_IPv6, port); } m_daemon_ip4 = StartMHD(0, port); m_running = (m_daemon_ip6 != nullptr) || (m_daemon_ip4 != nullptr); if (m_running) { m_port = port; CLog::Log(LOGNOTICE, "CWebServer[%hu]: Started", m_port); } else CLog::Log(LOGERROR, "CWebServer[%hu]: Failed to start", port); } return m_running; }
int main() { int ret = system("clear"); // shell invoke error: 127, others: -1 if (SYSTEM_INVOKE_ERROR == ret || SYSTEM_ERROR == ret) { printf("Terminal Clear Error: %d\n", ret); return -1; } printf("=============================================\n"); printf("\t\tsample main\n"); printf("=============================================\n"); CAResult_t res = CAInitialize(); if (CA_STATUS_OK != res) { printf("CAInitialize fail\n"); return -1; } /* * Read DTLS PSK credentials from persistent storage and * set in the OC stack. */ #ifdef __WITH_DTLS__ res = SetCredentials(); if (CA_STATUS_OK != res) { printf("SetCredentials failed\n"); return -1; } res = CARegisterDTLSCredentialsHandler(CAGetDtlsPskCredentials); if (CA_STATUS_OK != res) { printf("Set credential handler fail\n"); return -1; } #endif // set handler. CARegisterHandler(request_handler, response_handler, error_handler); process(); CADestroyToken(g_last_request_token); g_last_request_token = NULL; CATerminate(); #ifdef __WITH_DTLS__ clearDtlsCredentialInfo(); #endif return 0; }
bool CWebServer::Start(int port, const std::string &username, const std::string &password) { SetCredentials(username, password); if (!m_running) { int v6testSock; if ((v6testSock = socket(AF_INET6, SOCK_STREAM, 0)) >= 0) { closesocket(v6testSock); m_daemon_ip6 = StartMHD(MHD_USE_IPv6, port); } m_daemon_ip4 = StartMHD(0, port); m_running = (m_daemon_ip6 != NULL) || (m_daemon_ip4 != NULL); if (m_running) CLog::Log(LOGNOTICE, "WebServer: Started the webserver"); else CLog::Log(LOGERROR, "WebServer: Failed to start the webserver"); } return m_running; }
int main(int argc, char* argv[]) { uint8_t addr[20] = {0}; uint8_t* paddr = NULL; uint16_t port = USE_RANDOM_PORT; uint8_t ifname[] = "eth0"; int opt; struct timespec timeout; while ((opt = getopt(argc, argv, "u:t:")) != -1) { switch(opt) { case 'u': UNICAST_DISCOVERY = atoi(optarg); break; case 't': TEST_CASE = atoi(optarg); break; default: PrintUsage(); return -1; } } if ((UNICAST_DISCOVERY != 0 && UNICAST_DISCOVERY != 1) || (TEST_CASE < TEST_DISCOVER_REQ || TEST_CASE >= MAX_TESTS) ) { PrintUsage(); return -1; } /*Get Ip address on defined interface and initialize coap on it with random port number * this port number will be used as a source port in all coap communications*/ if ( OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, sizeof(addr)) == ERR_SUCCESS) { OC_LOG_V(INFO, TAG, "Starting occlient on address %s",addr); paddr = addr; } /* Initialize OCStack*/ if (OCInit((char *) paddr, port, OC_CLIENT) != OC_STACK_OK) { OC_LOG(ERROR, TAG, "OCStack init error"); return 0; } /* * Read DTLS PSK credentials from persistent storage and * set in the OC stack. */ if (SetCredentials(CRED_FILE) != OC_STACK_OK) { OC_LOG(ERROR, TAG, "SetCredentials failed"); return 0; } InitDiscovery(); timeout.tv_sec = 0; timeout.tv_nsec = 100000000L; // Break from loop with Ctrl+C OC_LOG(INFO, TAG, "Entering occlient main loop..."); signal(SIGINT, handleSigInt); while (!gQuitFlag) { if (OCProcess() != OC_STACK_OK) { OC_LOG(ERROR, TAG, "OCStack process error"); return 0; } nanosleep(&timeout, NULL); } OC_LOG(INFO, TAG, "Exiting occlient main loop..."); if (OCStop() != OC_STACK_OK) { OC_LOG(ERROR, TAG, "OCStack stop error"); } return 0; }