Esempio n. 1
0
int main(int argc, char** argv) {
    
    http_server_t *server = http_server_create("0.0.0.0", 8000);
    http_server_add_handler(server, ".*", test_request_handler);
    http_server_run(server);

    return 0;
}
Esempio n. 2
0
WebSession::WebSession(socket_t sock, const char* ip, int port)
{
	m_ip = ip;
	m_sock = sock;
	m_port = port;

	m_http = http_server_create(sock);
	dlog_log("new client[%s.%d] connected.\n", ip, port);
}
Esempio n. 3
0
int main() {
    pensioners_t *pensioners = pensioners_create();//создаем пустой список пенсионеров
    http_server_t *http_server = http_server_create(pensioners);//создаем структуру сервер для пенсионеров

    http_server_start (http_server);
    http_server_delete (http_server);

    pensioners_delete (pensioners);

    return 0;
}
Esempio n. 4
0
void hls_server_test(const char* ip, int port)
{
	aio_socket_init(1);
	http_server_init();
	void* http = http_server_create(ip, port);
	http_server_set_handler(http, hls_server_onhttp, http);

	// http process
	while(aio_socket_process(1000) >= 0)
	{
	}

	http_server_destroy(http);
	http_server_cleanup();
	aio_socket_clean();
}
Esempio n. 5
0
int main( int /*argc*/, char** /*argv*/ )
{
	http_server_t server = http_server_create( 1337, 16, 0x0 );
	if( server == 0x0 )
		return 1;

	bool running = true;
	while( running )
	{
		http_server_request* req;
		while( ( req = http_server_poll( server, 0x0 ) ) != 0x0 )
		{
			switch( req->type )
			{
				case HTTP_SERVER_REQUEST_GET:
					if(false /*not file exists*/)
					{
						http_server_fail_request( req, 404 ); // method not allowed.
					}
					else
					{
						http_server_complete_request( req, "application/json", "{ \"test\" : true }", 6 );
					}
					break;

				case HTTP_SERVER_REQUEST_HEAD:
				case HTTP_SERVER_REQUEST_POST:
				case HTTP_SERVER_REQUEST_PUT:
				case HTTP_SERVER_REQUEST_DELETE:
					http_server_fail_request( req, 405 ); // method not allowed.
					break;
				default:
					http_server_fail_request( req, 500 ); // internal server error.
					break;
			}
		}
	}

	http_server_destroy( server );
}
Esempio n. 6
0
void dash_dynamic_test(const char* ip, int port, const char* file, int width, int height)
{
    std::shared_ptr<dash_playlist_t> live(new dash_playlist_t());
    live->mpd = dash_mpd_create(DASH_DYNAMIC, dash_mpd_onsegment, live.get());
    live->name = "live";
    live->width = width;
    live->height = height;
    live->adapation_audio = live->adapation_video = -1;

    aio_worker_init(4);
	http_server_t* http = http_server_create(ip, port);
	http_server_set_handler(http, http_server_route, live.get());
	http_server_addroute("/live/", dash_server_onlive);
	http_server_addroute("/vod/", dash_server_onvod);

    // live worker
    dash_live_worker(file, live.get());
    
	http_server_destroy(http);
    aio_worker_clean(4);

    dash_mpd_destroy(live->mpd);
}
Esempio n. 7
0
/* Create a http-channel listener, syntax [host:]port */
int http_init(const char *addr, struct conf_server *server,
              const char *record_fname)
{
    IOCHAN c;
    int l;
    struct protoent *p;
    struct sockaddr_in myaddr;
    int one = 1;
    const char *pp;
    short port;
    FILE *record_file = 0;

    yaz_log(YLOG_LOG, "HTTP listener %s", addr);


    if (record_fname)
    {
        record_file = fopen(record_fname, "wb");
        if (!record_file)
        {
            yaz_log(YLOG_FATAL|YLOG_ERRNO, "fopen %s", record_fname);
            return 1;
        }
    }

    memset(&myaddr, 0, sizeof myaddr);
    myaddr.sin_family = AF_INET;
    pp = strchr(addr, ':');
    if (pp)
    {
        WRBUF w = wrbuf_alloc();
        struct hostent *he;

        wrbuf_write(w, addr, pp - addr);
        wrbuf_puts(w, "");

        he = gethostbyname(wrbuf_cstr(w));
        wrbuf_destroy(w);
        if (!he)
        {
            yaz_log(YLOG_FATAL, "Unable to resolve '%s'", addr);
            return 1;
        }
        memcpy(&myaddr.sin_addr.s_addr, he->h_addr_list[0], he->h_length);
        port = atoi(pp + 1);
    }
    else
    {
        port = atoi(addr);
        myaddr.sin_addr.s_addr = INADDR_ANY;
    }

    myaddr.sin_port = htons(port);

    if (!(p = getprotobyname("tcp"))) {
        return 1;
    }
    if ((l = socket(PF_INET, SOCK_STREAM, p->p_proto)) < 0)
        yaz_log(YLOG_FATAL|YLOG_ERRNO, "socket");
    if (setsockopt(l, SOL_SOCKET, SO_REUSEADDR, (char*)
                    &one, sizeof(one)) < 0)
        return 1;

    if (bind(l, (struct sockaddr *) &myaddr, sizeof myaddr) < 0) 
    {
        yaz_log(YLOG_FATAL|YLOG_ERRNO, "bind");
        return 1;
    }
    if (listen(l, SOMAXCONN) < 0) 
    {
        yaz_log(YLOG_FATAL|YLOG_ERRNO, "listen");
        return 1;
    }

    server->http_server = http_server_create();

    server->http_server->record_file = record_file;
    server->http_server->listener_socket = l;

    c = iochan_create(l, http_accept, EVENT_INPUT | EVENT_EXCEPT, "http_server");
    iochan_setdata(c, server);

    iochan_add(server->iochan_man, c);
    return 0;
}