#include "rtsp-server-internal.h" int rtsp_server_get_parameter(struct rtsp_server_t *rtsp, const char* uri) { int bytes; const void *content; content = http_get_content(rtsp->parser); bytes = (int)http_get_content_length(rtsp->parser); return rtsp->handler.ongetparameter(rtsp->param, rtsp, uri, rtsp->session.session[0] ? rtsp->session.session : NULL, content, bytes); } int rtsp_server_set_parameter(struct rtsp_server_t *rtsp, const char* uri) { int bytes; const void *content; content = http_get_content(rtsp->parser); bytes = (int)http_get_content_length(rtsp->parser); return rtsp->handler.onsetparameter(rtsp->param, rtsp, uri, rtsp->session.session[0] ? rtsp->session.session : NULL, content, bytes); } int rtsp_server_reply_get_parameter(struct rtsp_server_t *rtsp, int code, const void* content, int bytes) { static const char* headers[] = { "Content-Type", "Content-Encoding", "Content-Language" }; int i, len; char buffer[1024]; const char* value; // copy headers buffer[0] = 0; for (len = i = 0; i < sizeof(headers) / sizeof(headers[0]); i++) { value = http_get_header_by_name(rtsp->parser, headers[i]); if (value) len += snprintf(buffer + len, sizeof(buffer) - len, "%s: %s\r\n", headers[i], value); } if (len < 0 || len >= sizeof(buffer)) { assert(0); // headers too long return -1; } return rtsp_server_reply2(rtsp, code, buffer, content, bytes); } int rtsp_server_reply_set_parameter(struct rtsp_server_t *rtsp, int code) { return rtsp_server_reply(rtsp, code); }