FreeCalypso > hg > themwi-system-sw
diff libsip/get_header.c @ 46:5427b26525cd
libsip: beginning to flesh out
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 06 Sep 2022 20:29:44 -0800 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libsip/get_header.c Tue Sep 06 20:29:44 2022 -0800 @@ -0,0 +1,39 @@ +/* + * In this module we implement functions for retrieving individual + * header fields from struct sip_pkt_rx. + */ + +#include <string.h> +#include <strings.h> +#include "parse.h" + +char * +get_single_header(msg, name, altname, dupp) + struct sip_pkt_rx *msg; + char *name, *altname; + int *dupp; +{ + unsigned n; + char *ret; + + for (n = 0; n < msg->num_hdr_fields; n++) { + if (!strcasecmp(msg->hdr_fields[n].field_name, name)) + break; + if (altname && + !strcasecmp(msg->hdr_fields[n].field_name, altname)) + break; + } + if (n >= msg->num_hdr_fields) + return 0; + ret = msg->hdr_fields[n].field_value; + if (!dupp) + return ret; + for (n++; n < msg->num_hdr_fields; n++) { + if (!strcasecmp(msg->hdr_fields[n].field_name, name)) + *dupp = 1; + if (altname && + !strcasecmp(msg->hdr_fields[n].field_name, altname)) + *dupp = 1; + } + return ret; +}