コード例 #1
0
CgHttpServer *cg_http_server_new()
{
	CgHttpServer *httpServer;

	cg_log_debug_l4("Entering...\n");

	httpServer = (CgHttpServer *)malloc(sizeof(CgHttpServer));

	if ( NULL != httpServer )
	{
		cg_list_node_init((CgList *)httpServer);

		httpServer->sock = NULL;
		httpServer->acceptThread = NULL;
		httpServer->listener = NULL;

		/**** Thanks for Makela Aapo (10/31/05) ****/
		httpServer->clientThreads = NULL;

		cg_http_server_setuserdata(httpServer, NULL);

		cg_http_server_settimeout(httpServer, CG_HTTP_SERVER_READ_TIMEOUT);

		/* Mutex */
		httpServer->mutex = cg_mutex_new();
	}

	cg_log_debug_l4("Leaving...\n");

	return httpServer;
}
コード例 #2
0
ファイル: cclient.c プロジェクト: cybergarage/utorrent
CgBittorrentClient *cg_bittorrent_client_new()
{
	CgBittorrentClient *cbc;
	CgBittorrentMetainfoList *cbmList;

	cbc = (CgBittorrentClient *)malloc(sizeof(CgBittorrentClient));
	if (!cbc)
		return NULL;

	/* Mutex */
	cbc->mutex = cg_mutex_new();
	if (!cbc->mutex) {
		free(cbc);
		return NULL;
	}

	/* Metainfo */
	cbmList = cg_bittorrent_metainfolist_new();
	if (!cbmList) {
		free(cbc);
		return NULL;
	}
	cg_bittorrent_client_setmetainfolist(cbc, cbmList);

	/* Socket Server */
	cbc->serverSock = cg_socket_stream_new();
	if (!cbc->serverSock) {
		free(cbc);
		return NULL;
	}
	cg_bittorrent_client_setserverport(cbc, CG_BITTORRENT_CLIENT_DEFAULT_SERVER_PORT);

	/* HTTP Server */
	cbc->httpServer = cg_http_server_new();
	if (!cbc->httpServer) {
		free(cbc);
		cg_socket_delete(cbc->serverSock );
		return NULL;
	}
	cg_http_server_setlistener(cbc->httpServer, cg_bittorrent_client_httplistener);
	cg_http_server_setuserdata(cbc->httpServer, cbc);
	cg_bittorrent_client_sethttpserverport(cbc, CG_BITTORRENT_CLIENT_DEFAULT_HTTP_PORT);

	/* Manager */
	cg_bittorrent_client_setfilemgr(cbc, NULL);
	cg_bittorrent_client_setstrategymgr(cbc, NULL);

	/* Other Settings */
	cg_bittorrent_client_setmaxuploadconnections(cbc, CG_BITTORRENT_CLIENT_DEFAULT_MAX_UPLOAD_CONNECTIONS);
	cg_bittorrent_client_setmaxdownloadconnections(cbc, CG_BITTORRENT_CLIENT_DEFAULT_MAX_DOWNLOAD_CONNECTIONS);

	/* Thread */
	cbc->acceptThread = NULL;
	cbc->clientThreads = NULL;

	return cbc;
}
コード例 #3
0
void cg_http_serverlist_setuserdata(CgHttpServerList *httpServerList, void *value)
{
	CgHttpServer *httpServer;
	
	cg_log_debug_l4("Entering...\n");

	for (httpServer = cg_http_serverlist_gets(httpServerList); httpServer != NULL; httpServer = cg_http_server_next(httpServer))
		cg_http_server_setuserdata(httpServer, value);

	cg_log_debug_l4("Leaving...\n");
}