Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

51 рядки
1.5KB

  1. #include "rtsp-server-internal.h"
  2. int rtsp_server_get_parameter(struct rtsp_server_t *rtsp, const char* uri)
  3. {
  4. int bytes;
  5. const void *content;
  6. content = http_get_content(rtsp->parser);
  7. bytes = (int)http_get_content_length(rtsp->parser);
  8. return rtsp->handler.ongetparameter(rtsp->param, rtsp, uri, rtsp->session.session[0] ? rtsp->session.session : NULL, content, bytes);
  9. }
  10. int rtsp_server_set_parameter(struct rtsp_server_t *rtsp, const char* uri)
  11. {
  12. int bytes;
  13. const void *content;
  14. content = http_get_content(rtsp->parser);
  15. bytes = (int)http_get_content_length(rtsp->parser);
  16. return rtsp->handler.onsetparameter(rtsp->param, rtsp, uri, rtsp->session.session[0] ? rtsp->session.session : NULL, content, bytes);
  17. }
  18. int rtsp_server_reply_get_parameter(struct rtsp_server_t *rtsp, int code, const void* content, int bytes)
  19. {
  20. static const char* headers[] = { "Content-Type", "Content-Encoding", "Content-Language" };
  21. int i, len;
  22. char buffer[1024];
  23. const char* value;
  24. // copy headers
  25. buffer[0] = 0;
  26. for (len = i = 0; i < sizeof(headers) / sizeof(headers[0]); i++)
  27. {
  28. value = http_get_header_by_name(rtsp->parser, headers[i]);
  29. if (value)
  30. len += snprintf(buffer + len, sizeof(buffer) - len, "%s: %s\r\n", headers[i], value);
  31. }
  32. if (len < 0 || len >= sizeof(buffer))
  33. {
  34. assert(0); // headers too long
  35. return -1;
  36. }
  37. return rtsp_server_reply2(rtsp, code, buffer, content, bytes);
  38. }
  39. int rtsp_server_reply_set_parameter(struct rtsp_server_t *rtsp, int code)
  40. {
  41. return rtsp_server_reply(rtsp, code);
  42. }