Пример #1
0
struct http_session* http_session_open(const char* url)
{
	int peer_handle = 0;
	struct sockaddr_in server;
	char *request, host_addr[32];
	struct http_session* session;

    session = (struct http_session*) rt_malloc(sizeof(struct http_session));
	if(session == RT_NULL) return RT_NULL;

	session->size = 0;
	session->position = 0;

	/* Check valid IP address and URL */
	if(http_resolve_address(&server, url, &host_addr[0], &request) != 0)
	{
		rt_free(session);
		return RT_NULL;
	}

	// Now we connect and initiate the transfer by sending a
	// request header to the server, and receiving the response header
	if((peer_handle = http_connect(session, &server, host_addr, request)) < 0)
	{
        rt_kprintf("HTTP: failed to connect to '%s'!\n", host_addr);
		rt_free(session);
		return RT_NULL;
	}

	// http connect returns valid socket.  Save in handle list.
	session->socket = peer_handle;

	/* open successfully */
	return session;
}
Пример #2
0
static int servicer_session_open(const char* url)
{
    int peer_handle = -1;
    struct sockaddr_in server;
    char *request, host_addr[32];

    {
        uint32_t dns_try = RETRY_MAX;
        while(dns_try--)
        {
            if(http_resolve_address(&server, url, &host_addr[0], &request) == 0)
            {
                break;
            }
            rt_kprintf("[INFO] dns try...!\r\n");
        }
        if(dns_try == 0)
        {
            rt_kprintf("[ERR] dns retry timeout!\r\n");
            return -1;
        }
    }

    rt_kprintf("connect to: %s...\n", host_addr);

    if((peer_handle = servicer_connect(&server, host_addr, request)) < 0)
    {
        rt_kprintf("radio list update: failed to connect to '%s'!\n", host_addr);
    }
    return peer_handle;

}
Пример #3
0
struct shoutcast_session* shoutcast_session_open(const char* url)
{
	int peer_handle = 0;
	struct sockaddr_in server;
	char *request, host_addr[32];
	struct shoutcast_session* session;

	total = 0;

    session = (struct shoutcast_session*) rt_malloc(sizeof(struct shoutcast_session));
	if(session == RT_NULL) return RT_NULL;

	session->metaint = 0;
	session->current_meta_chunk = 0;
	session->bitrate = 0;
	session->station_name = RT_NULL;

	/* Check valid IP address and URL */
	if(http_resolve_address(&server, url, &host_addr[0], &request) != 0)
	{
		rt_free(session);
		return RT_NULL;
	}

	rt_kprintf("connect to: %s...\n", host_addr);

	// Now we connect and initiate the transfer by sending a
	// request header to the server, and receiving the response header
	if((peer_handle = shoutcast_connect(session, &server, host_addr, request)) < 0)
	{
        rt_kprintf("SHOUTCAST: failed to connect to '%s'!\n", host_addr);
		if (session->station_name != RT_NULL)
			rt_free(session->station_name);
		rt_free(session);
		return RT_NULL;
	}

	// http connect returns valid socket.  Save in handle list.
	session->socket = peer_handle;

	/* open successfully */
	return session;
}
Пример #4
0
int radio_list_update_servicer_session_open(char* url)
{
    int peer_handle = -1;
    struct sockaddr_in server;
    char *request, host_addr[32];

    if(http_resolve_address(&server, url, &host_addr[0], &request) != 0)
    {
        return -1;
    }
    rt_kprintf("connect to: %s...\n", host_addr);

    if((peer_handle = radio_list_update_servicer_connect(&server, host_addr, request)) < 0)
    {
        rt_kprintf("radio list update: failed to connect to '%s'!\n", host_addr);
    }
    return peer_handle;

}