void _init(void) { int loaded; int debug_mode = getcopyconfigitemintpositive("nterfacer", "debug", 0); nrl = nterface_open_log("nterfacer", "logs/nterfacer.log", debug_mode); loaded = load_permits(); nterface_log(nrl, NL_INFO, "Loaded %d permit%s successfully.", loaded, loaded==1?"":"s"); if(!loaded) return; nterfacer_events.on_accept = nterfacer_accept_event; nterfacer_events.on_line = nterfacer_line_event; nterfacer_events.on_disconnect = NULL; nterfacer_token = esocket_token(); ping = register_service("nterfacer"); if(!ping) { MemError(); } else { register_handler(ping, "ping", 0, ping_handler); } accept_fd = setup_listening_socket(); if(accept_fd == -1) { nterface_log(nrl, NL_ERROR, "Unable to setup listening socket!"); } else { nterfacer_sock = esocket_add(accept_fd, ESOCKET_UNIX_DOMAIN, &nterfacer_events, nterfacer_token); } /* the main unix domain socket must NOT have a disconnect event. */ nterfacer_events.on_disconnect = nterfacer_disconnect_event; }
static jboolean setUpListeningSocketsNative(JNIEnv* env, jobject object) { ALOGV("%s", __FUNCTION__); #ifdef HAVE_BLUETOOTH native_data_t *nat = get_native_data(env, object); nat->hf_ag_rfcomm_sock = setup_listening_socket(nat->hcidev, nat->hf_ag_rfcomm_channel); if (nat->hf_ag_rfcomm_sock < 0) return JNI_FALSE; nat->hs_ag_rfcomm_sock = setup_listening_socket(nat->hcidev, nat->hs_ag_rfcomm_channel); if (nat->hs_ag_rfcomm_sock < 0) { close(nat->hf_ag_rfcomm_sock); nat->hf_ag_rfcomm_sock = -1; return JNI_FALSE; } return JNI_TRUE; #else return JNI_FALSE; #endif /* HAVE_BLUETOOTH */ }