Collaboration diagram for From Header:
![]() |
It is defined in [S10.25] as follows:
From = ( "From" / "f" ) HCOLON from-spec from-spec = ( name-addr / addr-spec ) *( SEMI from-param ) from-param = tag-param / generic-param tag-param = "tag" EQUAL token
Data Structures | |
struct | sip_addr_s |
Structure for From and To headers. More... | |
Defines | |
#define | sip_from(sip) |
Access a sip_from_t from sip_t. | |
#define | SIP_FROM_INIT() |
Initializer for structure sip_from_t. | |
#define | SIPTAG_FROM(x) |
Tag list item for pointer to a From header structure. | |
#define | SIPTAG_FROM_REF(x) |
Tag list item for reference to a a From header pointer. | |
#define | SIPTAG_FROM_STR(s) |
Tag list item for string with From header value. | |
#define | SIPTAG_FROM_STR_REF(x) |
Tag list item for reference to a a From header string. | |
Typedefs | |
typedef sip_addr_s | sip_from_t |
The structure sip_from_t contains representation of From header. | |
Enumerator | |
sip_from_hash | |
@ | |
Functions | |
sip_from_t * | sip_from_create (su_home_t *home, url_string_t const *s) |
Create a From header object. | |
int | sip_from_add_param (su_home_t *home, sip_from_t *from, char const *param) |
Add a parameter to an sip_from_t object. | |
int | sip_from_tag (su_home_t *home, sip_from_t *from, char const *tag) |
The function sip_from_tag() adds a tag to a From header. | |
SOFIAPUBFUN int | sip_from_d (su_home_t *, msg_header_t *, char *s, int slen) |
Parse a From header. | |
SOFIAPUBFUN int | sip_from_e (char b[], int bsiz, msg_header_t const *h, int flags) |
Print a From header. | |
sip_from_t * | sip_from_init (sip_from_t x[1]) |
Initialize a structure sip_from_t. | |
int | sip_is_from (sip_header_t const *header) |
Test if header object is instance of sip_from_t. | |
sip_from_t * | sip_from_dup (su_home_t *home, sip_from_t const *hdr)) |
Duplicate (deep copy) sip_from_t . | |
sip_from_t * | sip_from_copy (su_home_t *home, sip_from_t const *hdr)) |
Copy a sip_from_t header structure. | |
sip_from_t * | sip_from_make (su_home_t *home, char const *s)) |
Make a header structure sip_from_t. | |
sip_from_t * | sip_from_format (su_home_t *home, char const *fmt,...))) |
Make a From header from formatting result. | |
Variables | |
tag_typedef_t | siptag_from |
Tag for From header object. | |
tag_typedef_t | siptag_from_str |
Tag for string with From header value. | |
msg_hclass_t | sip_from_class [] |
Header class for SIP From header. |
#define SIP_FROM_INIT | ( | ) |
Initializer for structure sip_from_t.
A static sip_from_t structure must be initialized. The SIP_FROM_INIT() macro provides initialization value. For instance,
#define SIPTAG_FROM | ( | x | ) |
Tag list item for pointer to a From header structure.
The SIPTAG_FROM() macro is used to include a tag item with a pointer to a sip_from_t object in a tag list.
x | pointer to a sip_from_t header structure, or NULL. |
#define SIPTAG_FROM_STR | ( | s | ) |
Tag list item for string with From header value.
The SIPTAG_FROM_STR() macro is used to include a tag item with a string containing value of a sip_from_t header in a tag list.
s | pointer to a string containing sip_from_t value, or NULL. |
The corresponding tag taking reference parameter is SIPTAG_FROM_STR_REF().
typedef struct sip_addr_s sip_from_t |
The structure sip_from_t contains representation of From header.
The sip_from_t is defined as follows:
typedef struct sip_addr_s { sip_common_t a_common[1]; // Common fragment info sip_unknown_t *a_next; // Link to next char const *a_display; // Display name url_t a_url[1]; // URL msg_param_t const *a_params; // List of from-param char const *a_comment; // Comment char const *a_tag; // Tag parameter } sip_from_t;
sip_from_hash |
@
Hash of From header.
int sip_from_add_param | ( | su_home_t * | home, | |
sip_from_t * | from, | |||
char const * | param | |||
) |
Add a parameter to an sip_from_t object.
The function sip_from_add_param() adds a parameter to an sip_from_t object.
home | memory home | |
from | a pointer to sip_from_t object | |
param | parameter string |
sip_from_t * sip_from_copy | ( | su_home_t * | home, | |
sip_from_t const * | hdr | |||
) | [inline] |
Copy a sip_from_t header structure.
The function sip_from_copy() copies a header structure hdr. If the header structure hdr contains a reference (hdr->h_next
) to a list of headers, all the headers in that list are copied, too. The function uses given memory home to allocate all the memory areas used to copy the header structure hdr.
home | memory home used to allocate new structure | |
hdr | pointer to the header structure to be copied |
from = sip_from_copy(home, sip->sip_from);
sip_from_t* sip_from_create | ( | su_home_t * | home, | |
url_string_t const * | s | |||
) |
Create a From header object.
The function sip_from_create() creates a From header object with the given URL.
home | memory home | |
s | pointer to the URL or a string |
sip_from_t * sip_from_dup | ( | su_home_t * | home, | |
sip_from_t const * | hdr | |||
) | [inline] |
Duplicate (deep copy) sip_from_t
.
The function sip_from_dup() duplicates a header structure hdr. If the header structure hdr contains a reference (hdr->x_next
) to a list of headers, all the headers in the list are duplicated, too.
home | memory home used to allocate new structure | |
hdr | header structure to be duplicated |
from = sip_from_dup(home, sip->sip_from);
sip_from_t * sip_from_format | ( | su_home_t * | home, | |
char const * | fmt, | |||
... | ||||
) | [inline] |
Make a From header from formatting result.
The function sip_from_format() makes a new From header object using formatting result as its value. The function first prints the arguments according to the format fmt specified. Then it allocates a new header structure, and uses the formatting result as the header value.
home | memory home used to allocate new header structure. | |
fmt | string used as a printf()-style format | |
... | argument list for format |
sip_from_t* sip_from_init | ( | sip_from_t | x[1] | ) | [inline] |
Initialize a structure sip_from_t.
An sip_from_t structure can be initialized with the sip_from_init() function/macro. For instance,
sip_from_t * sip_from_make | ( | su_home_t * | home, | |
char const * | s | |||
) | [inline] |
Make a header structure sip_from_t.
The function sip_from_make() makes a new sip_from_t header structure. It allocates a new header structure, and decodes the string s as the value of the structure.
home | memory home used to allocate new header structure. | |
s | string to be decoded as value of the new header structure |
int sip_from_tag | ( | su_home_t * | home, | |
sip_from_t * | from, | |||
char const * | tag | |||
) |
The function sip_from_tag() adds a tag to a From header.
If tag is identical with the existing one, nothing will be done. An error is returned, if the header already contains a different tag. The tag can be provided either as a single token ("deadbeer") or as in parameter form ("tag=deadbeer"). In both cases the tag is duplicated using the memory home home.
home | memory home used to allocate new tag | |
from | From header to modify | |
tag | tag token or parameter to be added |
0 | when successful | |
-1 | upon an error. |
int sip_is_from | ( | sip_header_t const * | header | ) | [inline] |
Test if header object is instance of sip_from_t.
The function sip_is_from() returns true (nonzero) if the header class is an instance of From header object and false (zero) otherwise.
header | pointer to the header structure to be tested |
Header class for SIP From header.
The header class sip_from_class defines how a SIP From header is parsed and printed. It also contains methods used by SIP parser and other functions to manipulate the sip_from_t header structure.