Added metadata string to call struct.

This will follow the call around until we destroy the call, at which point the
metadata string will be freed.
pull/245/head
Dylan Mikus 10 years ago committed by Eric Green
parent a714fbc462
commit 7cc801931a

@ -2219,6 +2219,9 @@ void call_destroy(struct call *c) {
c->recording_pcaps = g_slist_delete_link(c->recording_pcaps, c->recording_pcaps);
}
// TODO - here is where we write out metadata for IPC communication
free(c->metadata);
rwlock_unlock_w(&c->master_lock);
}
@ -2857,7 +2860,7 @@ out:
void setup_recording_files(struct call *call, struct call_monologue *monologue) {
if (call->record_call
&& monologue->recording_pd == NULL && monologue->recording_pdumper == NULL) {
char rec_path_prefix[16];
char rec_path_prefix[16];
char recording_path[21];
/*
*

@ -147,7 +147,7 @@ enum call_type {
#define PS_FLAG_CONFIRMED 0x00200000
#define PS_FLAG_KERNELIZED 0x00400000
#define PS_FLAG_NO_KERNEL_SUPPORT 0x00800000
#define PS_FLAG_FORCE_DAEMON_MODE 0x01000000
#define PS_FLAG_FORCE_DAEMON_MODE 0x01000000
#define PS_FLAG_FINGERPRINT_VERIFIED 0x02000000
#define PS_FLAG_STRICT_SOURCE SHARED_FLAG_STRICT_SOURCE
#define PS_FLAG_MEDIA_HANDOVER SHARED_FLAG_MEDIA_HANDOVER
@ -399,8 +399,8 @@ struct call_monologue {
GHashTable *other_tags;
struct call_monologue *active_dialogue;
GQueue medias;
pcap_t *recording_pd;
pcap_dumper_t *recording_pdumper;
pcap_t *recording_pd;
pcap_dumper_t *recording_pdumper;
};
struct call {
@ -436,6 +436,7 @@ struct call {
unsigned int redis_hosted_db;
unsigned int foreign_call; // created_via_redis_notify call
str *metadata;
};
struct callmaster_config {

@ -647,7 +647,7 @@ static const char *call_offer_answer_ng(bencode_item_t *input, struct callmaster
bencode_item_t *output, enum call_opmode opmode, const char* addr,
const endpoint_t *sin)
{
str sdp, fromtag, totag = STR_NULL, callid, viabranch, recordcall = STR_NULL;
str sdp, fromtag, totag = STR_NULL, callid, viabranch, recordcall = STR_NULL, metadata = STR_NULL;
char *errstr;
GQueue parsed = G_QUEUE_INIT;
GQueue streams = G_QUEUE_INIT;
@ -683,6 +683,10 @@ static const char *call_offer_answer_ng(bencode_item_t *input, struct callmaster
goto out;
call = call_get_opmode(&callid, m, opmode);
bencode_dictionary_get_str(input, "metadata", &metadata);
call->metadata = str_dup(&metadata);
errstr = "Unknown call-id";
if (!call)
goto out;

@ -1407,7 +1407,7 @@ static void stream_pcap_dump(pcap_dumper_t *pdumper, str *s) {
// This must be the same value we use in `pcap_open_dead`
header.len = s->len + 28;
// Copy all the headers and payload into a new string
// Copy all the headers and payload into a new string
unsigned char pkt_s[*ip_total_length];
memcpy(pkt_s, ip_header, 20);
memcpy(pkt_s + 20, udp_header, 8);

Loading…
Cancel
Save