SmolRTSP 0.2.0
A small, portable, extensible RTSP 1.0 implementation in C99
Loading...
Searching...
No Matches
header.h
Go to the documentation of this file.
1
6#pragma once
7
8#include <smolrtsp/priv/compiler_attrs.h>
10#include <smolrtsp/writer.h>
11
12#include <stdbool.h>
13#include <stdio.h>
14
15#include <unistd.h>
16
17#include <slice99.h>
18
22typedef struct {
26 CharSlice99 key;
27
31 CharSlice99 value;
33
46 const SmolRTSP_Header *restrict self,
47 SmolRTSP_Writer w) SMOLRTSP_PRIV_MUST_USE;
48
54SmolRTSP_ParseResult SmolRTSP_Header_parse(
55 SmolRTSP_Header *restrict self, CharSlice99 input) SMOLRTSP_PRIV_MUST_USE;
56
64 const SmolRTSP_Header *restrict lhs,
65 const SmolRTSP_Header *restrict rhs) SMOLRTSP_PRIV_MUST_USE;
66
77#ifndef SMOLRTSP_MAX_HEADER_VALUE
78#define SMOLRTSP_MAX_HEADER_VALUE 1024
79#endif
80
84#define SMOLRTSP_HEADER_ACCEPT (CharSlice99_from_str("Accept"))
85
89#define SMOLRTSP_HEADER_ACCEPT_ENCODING \
90 (CharSlice99_from_str("Accept-Encoding"))
91
95#define SMOLRTSP_HEADER_ACCEPT_LANGUAGE \
96 (CharSlice99_from_str("Accept-Language"))
97
101#define SMOLRTSP_HEADER_ALLOW (CharSlice99_from_str("Allow"))
102
106#define SMOLRTSP_HEADER_AUTHORIZATION (CharSlice99_from_str("Authorization"))
107
111#define SMOLRTSP_HEADER_BANDWIDTH (CharSlice99_from_str("Bandwidth"))
112
116#define SMOLRTSP_HEADER_BLOCKSIZE (CharSlice99_from_str("Blocksize"))
117
121#define SMOLRTSP_HEADER_CACHE_CONTROL (CharSlice99_from_str("Cache-Control"))
122
126#define SMOLRTSP_HEADER_CONFERENCE (CharSlice99_from_str("Conference"))
127
131#define SMOLRTSP_HEADER_CONNECTION (CharSlice99_from_str("Connection"))
132
136#define SMOLRTSP_HEADER_CONTENT_BASE (CharSlice99_from_str("Content-Base"))
137
141#define SMOLRTSP_HEADER_CONTENT_ENCODING \
142 (CharSlice99_from_str("Content-Encoding"))
143
147#define SMOLRTSP_HEADER_CONTENT_LANGUAGE \
148 (CharSlice99_from_str("Content-Language"))
149
153#define SMOLRTSP_HEADER_CONTENT_LENGTH (CharSlice99_from_str("Content-Length"))
154
158#define SMOLRTSP_HEADER_CONTENT_LOCATION \
159 (CharSlice99_from_str("Content-Location"))
160
164#define SMOLRTSP_HEADER_CONTENT_TYPE (CharSlice99_from_str("Content-Type"))
165
169#define SMOLRTSP_HEADER_C_SEQ (CharSlice99_from_str("CSeq"))
170
174#define SMOLRTSP_HEADER_DATE (CharSlice99_from_str("Date"))
175
179#define SMOLRTSP_HEADER_EXPIRES (CharSlice99_from_str("Expires"))
180
184#define SMOLRTSP_HEADER_FROM (CharSlice99_from_str("From"))
185
189#define SMOLRTSP_HEADER_IF_MODIFIED_SINCE \
190 (CharSlice99_from_str("If-Modified-Since"))
191
195#define SMOLRTSP_HEADER_LAST_MODIFIED (CharSlice99_from_str("Last-Modified"))
196
200#define SMOLRTSP_HEADER_PROXY_AUTHENTICATE \
201 (CharSlice99_from_str("Proxy-Authenticate"))
202
206#define SMOLRTSP_HEADER_PROXY_REQUIRE (CharSlice99_from_str("Proxy-Require"))
207
211#define SMOLRTSP_HEADER_PUBLIC (CharSlice99_from_str("Public"))
212
216#define SMOLRTSP_HEADER_RANGE (CharSlice99_from_str("Range"))
217
221#define SMOLRTSP_HEADER_REFERER (CharSlice99_from_str("Referrer"))
222
226#define SMOLRTSP_HEADER_REQUIRE (CharSlice99_from_str("Require"))
227
231#define SMOLRTSP_HEADER_RETRY_AFTER (CharSlice99_from_str("Retry-After"))
232
236#define SMOLRTSP_HEADER_RTP_INFO (CharSlice99_from_str("RTP-Info"))
237
241#define SMOLRTSP_HEADER_SCALE (CharSlice99_from_str("Scale"))
242
246#define SMOLRTSP_HEADER_SESSION (CharSlice99_from_str("Session"))
247
251#define SMOLRTSP_HEADER_SERVER (CharSlice99_from_str("Server"))
252
256#define SMOLRTSP_HEADER_SPEED (CharSlice99_from_str("Speed"))
257
261#define SMOLRTSP_HEADER_TRANSPORT (CharSlice99_from_str("Transport"))
262
266#define SMOLRTSP_HEADER_UNSUPPORTED (CharSlice99_from_str("Unsupported"))
267
271#define SMOLRTSP_HEADER_USER_AGENT (CharSlice99_from_str("User-Agent"))
272
276#define SMOLRTSP_HEADER_VIA (CharSlice99_from_str("Via"))
277
281#define SMOLRTSP_HEADER_WWW_AUTHENTICATE \
282 (CharSlice99_from_str("WWW-Authenticate"))
Possible parsing errors.
SmolRTSP_ParseResult SmolRTSP_Header_parse(SmolRTSP_Header *restrict self, CharSlice99 input) SMOLRTSP_PRIV_MUST_USE
Parses data to self.
bool SmolRTSP_Header_eq(const SmolRTSP_Header *restrict lhs, const SmolRTSP_Header *restrict rhs) SMOLRTSP_PRIV_MUST_USE
Tests lhs and rhs for equality.
ssize_t SmolRTSP_Header_serialize(const SmolRTSP_Header *restrict self, SmolRTSP_Writer w) SMOLRTSP_PRIV_MUST_USE
Serialises self into w.
An RTSP header.
Definition header.h:22
CharSlice99 key
The key of this header.
Definition header.h:26
CharSlice99 value
The value of this header.
Definition header.h:31
The writer interface.