Exemple #1
0
extern "C" jstring JNICALL Java_com_iped_ipcam_gui_UdtTools_monitorSocket(JNIEnv *env, jobject thiz, jstring camId)
{
	if (first)
	{
		LOGI("### UdtTools monitor_init!");
		first = 0;
		monitor_init(0);
	}
	freeSocket();
	LOGI("### start monitorSocke");
	char* idTmp = jstringToChar(env,camId);
	id = idTmp;
	socket1 = monitor_socket_fusion(idTmp);
	while (1)
    {
		if(socket1 == NULL) {
			return env->NewStringUTF("fusion error");
		}
		LOGI("### wait to connection.");
        stun_sleep_ms(100);
        if (socket_fusion_is_usable(socket1) || socket_fusion_is_done(socket1))
        {
            break;
        }
    }
	if (socket_fusion_is_usable(socket1))
    {
		LOGI("### connection success. %p", socket1);
		return getOK(env);
	}
	LOGI("### connection faliled.");
	return getError(env,socket1);
}
Exemple #2
0
//video thread interrupt free socket1
extern "C" void JNICALL Java_com_iped_ipcam_gui_UdtTools_exit(JNIEnv *env, jobject thiz)
{
	freeSocket();
	if(id) {
		free(id);
		id = NULL;
	}
}
Exemple #3
0
static void clientSocketDisconnected(void *subject, const char *event, void *data, va_list args)
{
    LineServerClient *client = data;
    LineServer *server = client->server;
    Socket *client_socket = subject;

    disableSocketPolling(client_socket);
    detachEventListener(client_socket, "read", server, &clientSocketRead);
    detachEventListener(client_socket, "disconnect", server, &clientSocketDisconnected);
    freeSocket(client_socket);

    destroyLineServerClient(client);

    server->open_connections--;
    if (server->state == RPC_SERVER_STATE_STOPPED) {
        tryFreeServer(server);
    }
}
Exemple #4
0
/**
 * A GFunc to free an IRC proxy client. Note that this doesn't remove the IRC proxy client from its parent proxy's client list
 *
 * @param client_p		a pointer to the IRC proxy client to free
 * @param quitmsg_p		a quit message to send to the disconnecting client
 */
static void freeIrcProxyClient(void *client_p, void *quitmsg_p)
{
	IrcProxyClient *client = client_p;
	char *quitmsg = quitmsg_p;

	if(client->socket->connected && quitmsg != NULL) { // Send quit message
		proxyClientIrcSend(client, "QUIT :%s", quitmsg);
	}

	triggerEvent(client->proxy, "client_disconnected", client);
	detachEventListener(client, "line", NULL, &listener_clientLine);
	detachEventListener(client->socket, "read", NULL, &listener_clientRead);
	detachEventListener(client->socket, "disconnect", NULL, &listener_clientDisconnect);

	g_hash_table_remove(clients, client->socket); // remove ourselves from the irc proxy client sockets table

	freeSocket(client->socket); // free the socket
	g_string_free(client->ibuffer, true); // free the input buffer

	free(client); // actually free the client
}
Exemple #5
0
static void destroyLineServer(LineServer *server)
{
    freeSocket(server->socket);
    free(server);
}