int rtsp_describe(void* rtsp) { const char* path; path = rtsp_get_request_uri(rtsp); return 0; }
static void rtsp_server_handle(struct rtsp_server_request_t *req, void* parser) { int major, minor; const char* uri; const char* method; req->parser = parser; rtsp_get_version(parser, &major, &minor); if(1 != major && 0 != minor) { //505 RTSP Version Not Supported rtsp_server_reply(req, 505); return; } if(0 != rtsp_get_header_by_name2(parser, "CSeq", (int*)&req->cseq)) { // 400 Bad Request rtsp_server_reply(req, 400); return; } uri = rtsp_get_request_uri(parser); method = rtsp_get_request_method(parser); switch(*method) { case 'o': case 'O': if(0 == stricmp("OPTIONS", method)) { rtsp_server_options(req, parser, uri); return; } break; case 'd': case 'D': if(0 == stricmp("DESCRIBE", method)) { rtsp_server_describe(req, parser, uri); return; } break; case 's': case 'S': if(0 == stricmp("SETUP", method)) { rtsp_server_setup(req, parser, uri); return; } break; case 'p': case 'P': if(0 == stricmp("PLAY", method)) { rtsp_server_play(req, parser, uri); return; } else if(0 == stricmp("PAUSE", method)) { rtsp_server_pause(req, parser, uri); return; } break; case 't': case 'T': if(0 == stricmp("TEARDOWN", method)) { rtsp_server_teardown(req, parser, uri); return; } break; } // 501 Not implemented rtsp_server_reply(req, 501); }