/sap.h

https://bitbucket.org/a84/gs_public/ · C Header · 74 lines · 55 code · 17 blank · 2 comment · 0 complexity · 0efc128082e3f42d13a5932a94e39a87 MD5 · raw file

  1. #ifndef SAP_H
  2. #define SAP_H 1
  3. #include "getstream.h"
  4. #include "output.h"
  5. struct sappkt_s {
  6. uint8_t version:3,
  7. addrtype:1,
  8. reserved:1,
  9. msgtype:1,
  10. encryption:1,
  11. compressed:1;
  12. uint8_t authlen;
  13. uint16_t msgidhash;
  14. uint32_t origin;
  15. };
  16. struct sap_s {
  17. /* Config items */
  18. int scope;
  19. char *group;
  20. int port;
  21. char *announcehost;
  22. int announceport;
  23. char *playgroup;
  24. int interval;
  25. char *uri;
  26. char *description;
  27. GList *emaillist;
  28. GList *phonelist;
  29. GList *attributelist;
  30. /* SAP socket port and address */
  31. int fd,
  32. ttl;
  33. struct event event;
  34. int sid; /* Session Identifier */
  35. char *name; /* Session Name */
  36. char *cdata; /* Connection Data RFC2327 */
  37. char *mdata; /* Media Announcement Data RFC2327 */
  38. char *odata; /* Origin Data RFC2327 */
  39. uint32_t originatingaddr; /* Originating Address for the SAP header */
  40. struct output_s *output;
  41. };
  42. #define SAP_ADDRTYPE_V4 0
  43. #define SAP_ADDRTYPE_V6 1
  44. #define SAP_MSGTYPE_ANNOUNCE 1
  45. #define SAP_MSGTYPE_DELETE 0
  46. #define SAP_TTL 15
  47. #define SAP_PORT 9875 /* As per RFC 2974 */
  48. #define SAP_MAX_SIZE 1024 /* As per RFC 2974 */
  49. int sap_init(struct sap_s *sap);
  50. enum {
  51. SAP_SCOPE_NONE = 0,
  52. SAP_SCOPE_GLOBAL,
  53. SAP_SCOPE_ORG,
  54. SAP_SCOPE_LOCAL,
  55. SAP_SCOPE_LINK
  56. };
  57. #endif