static zap_status_t writeQ931PacketToPcap(L3UCHAR* q931buf, L3USHORT q931size, L3ULONG span_id, L3USHORT direction)
{
- L3UCHAR *frame = NULL;
+ L3UCHAR *frame = NULL;
+ struct timeval ts;
u_char spanid = (u_char)span_id;
- unsigned long *tcp_next_seq_no = NULL;
+ unsigned long *tcp_next_seq_no = NULL;
spanid=span_id;
if(q931size > MAX_Q931_SIZE)
{
/*WARNING*/
- zap_log(ZAP_LOG_WARNING, "Q931 packet size is too big (%u)! Limitting it to %u! Q931 packet will be corrupt.\n", q931size, MAX_Q931_SIZE);
- q931size=MAX_Q931_SIZE;
+ zap_log(ZAP_LOG_WARNING, "Q931 packet size is too big (%u)! Ignoring it!\n", q931size);
+ return ZAP_FAIL;
}
/*Copy q931 buffer into frame*/
pcaphdr.caplen = SIZE_ETHERNET+SIZE_ETHERNET_CRC+q931size;
pcaphdr.len = pcaphdr.caplen;
- pcap_dump((u_char*)pcapfile, &pcaphdr, frame);
- pcap_dump_flush(pcapfile);
- /*Increase microsecond timestamp by 1*/
- pcaphdr.ts.tv_usec++;
- if(pcaphdr.ts.tv_usec==1000000)
- {
- pcaphdr.ts.tv_sec++;
- pcaphdr.ts.tv_usec=0;
- }
+ /* Set Timestamp */
+ /* Get Time in ms. usecs would be better ... */
+ gettimeofday(&ts, NULL);
+ /*Write it into packet header*/
+ pcaphdr.ts.tv_sec = ts.tv_sec;
+ pcaphdr.ts.tv_usec = ts.tv_usec;
+
+ pcap_dump((u_char*)pcapfile, &pcaphdr, frame);
+ pcap_dump_flush(pcapfile);
/*Maintain pcap file size*/
pcapfilesize+=pcaphdr.caplen;
{
int ret, offset = (ind == Q921_DL_DATA) ? 4 : 3;
char bb[4096] = "";
-#ifdef HAVE_LIBPCAP
- zap_span_t *span = (zap_span_t *) pvt; /*To get access to spanid for Q931ToPcap*/
-#endif
switch(ind) {
case Q921_DL_DATA:
#ifdef HAVE_LIBPCAP
/*Q931ToPcap*/
if(do_q931ToPcap==1){
+ zap_span_t *span = (zap_span_t *) pvt;
if(writeQ931PacketToPcap(msg + offset, mlen - offset, span->span_id, 1) != ZAP_SUCCESS){
zap_log(ZAP_LOG_WARNING, "Couldn't write Q931 buffer to pcap file!\n");
}
/*Q931ToPcap done*/
#endif
zap_log(ZAP_LOG_DEBUG, "READ %d\n%s\n%s\n\n\n", (int)mlen - offset, LINE, bb);
+
default:
ret = Q931Rx23(pvt, ind, tei, msg, mlen);
if (ret != 0)
{
int offset = 4;
char bb[4096] = "";
-#ifdef HAVE_LIBPCAP
- zap_span_t *span = (zap_span_t *) pvt; /*To get access to span_id for Q931ToPcap*/
-#endif
switch(ind) {
case Q921_DL_UNIT_DATA:
#ifdef HAVE_LIBPCAP
/*Q931ToPcap*/
if(do_q931ToPcap==1){
+ zap_span_t *span = (zap_span_t *) pvt;
if(writeQ931PacketToPcap(msg + offset, mlen - offset, span->span_id, 0) != ZAP_SUCCESS){
zap_log(ZAP_LOG_WARNING, "Couldn't write Q931 buffer to pcap file!\n");
}