You can subscribe to this list here.
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(33) |
Jun
(14) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(19) |
Jun
(13) |
Jul
|
Aug
(1) |
Sep
(9) |
Oct
(8) |
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(14) |
Jul
|
Aug
|
Sep
(7) |
Oct
(7) |
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(15) |
2017 |
Jan
(11) |
Feb
|
Mar
(4) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <rb...@us...> - 2016-12-17 14:36:00
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>callflow:[205] scripts/pcap-parser.sh</title> </head> <body> <style type="text/css"><!-- #msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dl.meta dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; } #logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; } #logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; } #logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } #logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; } #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; } #logmsg pre { background: #eee; padding: 1em; } #logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;} #logmsg dl { margin: 0; } #logmsg dt { font-weight: bold; } #logmsg dd { margin: 0; padding: 0 0 0.5em 0; } #logmsg dd:before { content:'\00bb';} #logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; } #logmsg table th.Corner { text-align: left; } #logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; } #header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <div id="msg"> <dl class="meta"> <dt>Revision</dt> <dd><a href="http://sourceforge.net/p/callflow/code/205">205</a></dd> <dt>Author</dt> <dd>rbos</dd> <dt>Date</dt> <dd>2016-12-17 14:35:57 +0000 (Sat, 17 Dec 2016)</dd> </dl> <h3>Log Message</h3> <pre>- Changed tshark option column.format to gui.column.format as indicated by tshark - Corrected typo: strings -> string</pre> <h3>Modified Paths</h3> <ul> <li><a href="#scriptspcapparsersh">scripts/pcap-parser.sh</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="scriptspcapparsersh"></a> <div class="modfile"><h4>Modified: scripts/pcap-parser.sh (204 => 205)</h4> <pre class="diff"><span> <span class="info">--- scripts/pcap-parser.sh 2016-12-16 12:06:48 UTC (rev 204) +++ scripts/pcap-parser.sh 2016-12-17 14:35:57 UTC (rev 205) </span><span class="lines">@@ -102,7 +102,7 @@ </span><span class="cx"> # field separator in the output file, remove it. The actual string </span><span class="cx"> # being removed is " |=". </span><span class="cx"> tshark -r $PCAP_FILE $FARG "$FVAL" -t a \ </span><del>- -o 'column.format: "No.", "%m", "Time", %t, "Protocol", "%p", "srcport", %S, "dstport", %D, "Info", "%i"' | </del><ins>+ -o 'gui.column.format: "No.", "%m", "Time", %t, "Protocol", "%p", "srcport", %S, "dstport", %D, "Info", "%i"' | </ins><span class="cx"> sed -e 's/^[[:blank:]]*//' \ </span><span class="cx"> -e 's/[[:blank:]]*|=/=/' \ </span><span class="cx"> -e 's/ Status: / /' \ </span><span class="lines">@@ -113,7 +113,7 @@ </span><span class="cx"> </span><span class="cx"> # Time value ($2) looks like: 13:35:43.868013000 </span><span class="cx"> # The last zeros are unwanted. Desired time string: 13:35:43.868013 </span><del>- # This strings has a length of 16. </del><ins>+ # This string has a length of 16. </ins><span class="cx"> if (length($2) > 16 ) sub ("000$", "", $2) </span><span class="cx"> </span><span class="cx"> split($0, A, " ") </span></span></pre> </div> </div> <div id="footer">This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.</div> </body> </html> |
From: <rb...@us...> - 2016-12-16 12:06:51
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>callflow:[204] scripts</title> </head> <body> <style type="text/css"><!-- #msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dl.meta dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; } #logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; } #logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; } #logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } #logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; } #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; } #logmsg pre { background: #eee; padding: 1em; } #logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;} #logmsg dl { margin: 0; } #logmsg dt { font-weight: bold; } #logmsg dd { margin: 0; padding: 0 0 0.5em 0; } #logmsg dd:before { content:'\00bb';} #logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; } #logmsg table th.Corner { text-align: left; } #logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; } #header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <div id="msg"> <dl class="meta"> <dt>Revision</dt> <dd><a href="http://sourceforge.net/p/callflow/code/204">204</a></dd> <dt>Author</dt> <dd>rbos</dd> <dt>Date</dt> <dd>2016-12-16 12:06:48 +0000 (Fri, 16 Dec 2016)</dd> </dl> <h3>Log Message</h3> <pre>- Add IPv6 support - Remove SIP duplicates (if an SIP message arrives, for the second time, within 2 seconds from its previous message and it is the same message) Patch provided by Zoltan Miricz</pre> <h3>Modified Paths</h3> <ul> <li><a href="#callflow">callflow</a></li> <li><a href="#scriptspcapparsersh">scripts/pcap-parser.sh</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="callflow"></a> <div class="modfile"><h4>Modified: callflow (203 => 204)</h4> <pre class="diff"><span> <span class="info">--- callflow 2016-12-16 08:10:06 UTC (rev 203) +++ callflow 2016-12-16 12:06:48 UTC (rev 204) </span><span class="lines">@@ -79,17 +79,6 @@ </span><span class="cx"> make_long_and_short_caches_of_pcap_trace $inputfile </span><span class="cx"> esac </span><span class="cx"> </span><del>- # It sometimes happens that the frames in the trace are not time - # ordered (they are ordered at frame number), for this reason - # re-order the callflow.short cache on time. - # Example of a wrong order: - # 13.14.15.625340|1|..... - # 13.14.15.625360|2|..... - # 13.14.15.625350|3|..... <<< this one is at the wrong spot - # The timestamp is the first field in the callflow.short cache, hence - # re-ordering on time is rather easy using just sort. - sort -o $DESTDIR/callflow.short $DESTDIR/callflow.short - </del><span class="cx"> # Store the input characteristics. It will be used in subsequent runs </span><span class="cx"> # to determine that the cache can be used, or that the input must be </span><span class="cx"> # processed again. </span></span></pre></div> <a id="scriptspcapparsersh"></a> <div class="modfile"><h4>Modified: scripts/pcap-parser.sh (203 => 204)</h4> <pre class="diff"><span> <span class="info">--- scripts/pcap-parser.sh 2016-12-16 08:10:06 UTC (rev 203) +++ scripts/pcap-parser.sh 2016-12-16 12:06:48 UTC (rev 204) </span><span class="lines">@@ -1,6 +1,11 @@ </span><span class="cx"> function make_long_and_short_caches_of_pcap_trace() { </span><span class="cx"> </span><span class="cx"> PCAP_FILE=$1 </span><ins>+ unset PREV_CALL_ID + unset PREV_TIME + unset PREV_SRC_IP + unset PREV_DST_IP + unset PREV_CSEQ </ins><span class="cx"> </span><span class="cx"> tshark -r $PCAP_FILE $FARG "$FVAL" -V > $DESTDIR/callflow.long </span><span class="cx"> </span><span class="lines">@@ -12,7 +17,7 @@ </span><span class="cx"> # but just "i" in abbreviated SIP messages! Both formats can be used in 1 call. </span><span class="cx"> tshark -r $PCAP_FILE $FARG "$FVAL" -t a -T fields -E separator='|' \ </span><span class="cx"> -e frame.number -e ip.src -e ip.dst -e sip.CSeq -e sip.Call-ID \ </span><del>- -e sdp.connection_info -e sdp.media -e sdp.media_attr | awk ' </del><ins>+ -e sdp.connection_info -e sdp.media -e sdp.media_attr -e ipv6.src -e ipv6.dst | awk ' </ins><span class="cx"> BEGIN { </span><span class="cx"> FS = "|" </span><span class="cx"> OFS = "|" </span><span class="lines">@@ -52,17 +57,26 @@ </span><span class="cx"> # </span><span class="cx"> # No Description </span><span class="cx"> # 1 frame.number </span><del>- # 2 tracefile - # 3 ip.src - # 4 ip.dst - # 5 sip.CSeq - # 6 sip.Call-ID - # 7 sdp.connection_info (ip addr) - # 8 sdp.media (audio port) - # 9 sdp.media (audio format) - # 10 sdp.media_attr (audio direction (sendrecv, sendonly, recvonly)) - printf "%s||%s|%s|%s|{%s}|%s|%s|%s|%s\n", $1, $2, $3, $4, CALLID[$5], $6, PORT, FORMAT, DIRECTION </del><ins>+ # 2 ip.src + # 3 ip.dst + # 4 sip.CSeq + # 5 sip.Call-ID + # 6 sdp.connection_info (ip addr) + # 7 sdp.media (audio port audio format) + # 8 sdp.media_attr (audio direction (sendrecv, sendonly, recvonly)) + # 9 ipv6.src + # 10 ipv6.dst + # Its an IPv6 address we have to fill source and destination address with the correct IP version + if (length($10) > 1) { + CURR_SRC_IP=$9 + CURR_DST_IP=$10 + } else { + CURR_SRC_IP=$2 + CURR_DST_IP=$3 + } </ins><span class="cx"> </span><ins>+ printf "%s||%s|%s|%s|{%s}|%s|%s|%s|%s\n", $1, CURR_SRC_IP, CURR_DST_IP, $4, CALLID[$5], $6, PORT, FORMAT, DIRECTION + </ins><span class="cx"> }' > $TMPDIR/${PRGNAME}-tshark-1.$$ </span><span class="cx"> </span><span class="cx"> # The second step in getting SIP data required by callflow. This step delivers </span><span class="lines">@@ -88,7 +102,7 @@ </span><span class="cx"> # field separator in the output file, remove it. The actual string </span><span class="cx"> # being removed is " |=". </span><span class="cx"> tshark -r $PCAP_FILE $FARG "$FVAL" -t a \ </span><del>- -o 'gui.column.format: "No.", "%m", "Time", %t, "Protocol", "%p", "srcport", %S, "dstport", %D, "Info", "%i"' | </del><ins>+ -o 'column.format: "No.", "%m", "Time", %t, "Protocol", "%p", "srcport", %S, "dstport", %D, "Info", "%i"' | </ins><span class="cx"> sed -e 's/^[[:blank:]]*//' \ </span><span class="cx"> -e 's/[[:blank:]]*|=/=/' \ </span><span class="cx"> -e 's/ Status: / /' \ </span><span class="lines">@@ -178,15 +192,98 @@ </span><span class="cx"> } </span><span class="cx"> </span><span class="cx"> # Perform the actual mapping of the input to the output fields </span><del>- L = length(A) - for (i = 1; i < L; i++) { - printf "%s|", $A[i] </del><ins>+ L = length(A) + for (i = 1; i < L; i++) { + printf "%s|", $A[i] + } + + printf "%s\n", $A[L] + + + }' $TMPDIR/${PRGNAME}-tshark-3.$$ > $TMPDIR/${PRGNAME}-tshark-4.$$ + + # It sometimes happens that the frames in the trace are not time + # ordered (they are ordered at frame number), for this reason + # re-order the callflow.short cache on time. + # Example of a wrong order: + # 13.14.15.625340|1|..... + # 13.14.15.625360|2|..... + # 13.14.15.625350|3|..... <<< this one is at the wrong spot + # The timestamp is the first field in the callflow.short cache, hence + # re-ordering on time is rather easy using just sort. + sort -o $TMPDIR/${PRGNAME}-tshark-4.$$ $TMPDIR/${PRGNAME}-tshark-4.$$ + + awk 'BEGIN { + FS = "|" + OFS = "|" + } + { + # The order in which the fields will be arranged in the output file + # + # No Description + # 1 time + # 2 tracefile + # 3 frame.number + # 4 ip.src + # 5 ip.srcport + # 6 session information + # 7 ip.dst + # 8 ip.dstport + # 9 protocol + # 10 info field + # 11 SIP CSeq + # 12 Connection info (IP addr) + # 13 Media info (Port) + # 14 Media info (Protocol) + # 15 Media attribute direction + + # Convert timestamp onto milliseconds to calculate time difference between packets + TIME=substr($1,1,8) + $1 = substr($1,1,10) + m=split(TIME,t,":") + n=split(PREV_TIME,w,":") + FIRSTTIME= (t[1]*3600) + (t[2]*60) + t[3] + SECONDTIME= (w[1]*3600) + (w[2]*60) + w[3] + TIME_DIFF=(FIRSTTIME - SECONDTIME) + + # Store current IPs + CURR_SRC_IP=$4 + CURR_DST_IP=$7 + + # 1) if protocol is SIP lets start the duplication removal + # 2) if previous src&dst IPs are different > OK + # 3) if IPs are the same and Call-Id, CSEQ is same, but time diff is bigger than 2sec > OK (retransmission) + # 4) if diff is less than 2 sec > drop the packet + # 5) keep everything else + if ($9 ~ "SIP") { + if ((PREV_SRC_IP != CURR_SRC_IP) && + (PREV_DST_IP != CURR_DST_IP)) { + print $0 + } else if ((PREV_CALL_ID == $10) && + (PREV_CSEQ == $11) && + (TIME_DIFF >= 2)) { + print $0 + } else if ((PREV_CALL_ID == $10) && + (PREV_CSEQ == $11) && + (TIME_DIFF < 2)) { + # Do Nothing just drop the packet (silently) + } else { + print $0 + } + } else { + # Not an SIP Packet -> do not remove duplicates + print $0 </ins><span class="cx"> } </span><span class="cx"> </span><del>- printf "%s\n", $A[L] </del><ins>+ # Store necessary information to eliminate duplicated packets in the next round. + PREV_TIME = TIME + PREV_CALL_ID = $10 + PREV_CSEQ = $11 + PREV_SRC_IP = CURR_SRC_IP + PREV_DST_IP = CURR_DST_IP </ins><span class="cx"> </span><del>- }' $TMPDIR/${PRGNAME}-tshark-3.$$ > $DESTDIR/callflow.short </del><ins>+ }' $TMPDIR/${PRGNAME}-tshark-4.$$ > $DESTDIR/callflow.short </ins><span class="cx"> </span><del>- rm $TMPDIR/${PRGNAME}-tshark-[123].$$ </del><ins>+ rm $TMPDIR/${PRGNAME}-tshark-[1234].$$ </ins><span class="cx"> } </span><span class="cx"> </span></span></pre> </div> </div> <div id="footer">This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.</div> </body> </html> |
From: <rb...@us...> - 2016-12-16 08:10:08
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>callflow:[203] scripts</title> </head> <body> <style type="text/css"><!-- #msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dl.meta dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; } #logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; } #logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; } #logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } #logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; } #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; } #logmsg pre { background: #eee; padding: 1em; } #logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;} #logmsg dl { margin: 0; } #logmsg dt { font-weight: bold; } #logmsg dd { margin: 0; padding: 0 0 0.5em 0; } #logmsg dd:before { content:'\00bb';} #logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; } #logmsg table th.Corner { text-align: left; } #logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; } #header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <div id="msg"> <dl class="meta"> <dt>Revision</dt> <dd><a href="http://sourceforge.net/p/callflow/code/203">203</a></dd> <dt>Author</dt> <dd>rbos</dd> <dt>Date</dt> <dd>2016-12-16 08:10:06 +0000 (Fri, 16 Dec 2016)</dd> </dl> <h3>Log Message</h3> <pre>Repeat node labels, every 28th line. Patch provided by Zoltan Miricz.</pre> <h3>Modified Paths</h3> <ul> <li><a href="#AUTHORS">AUTHORS</a></li> <li><a href="#scriptscallflowawk">scripts/callflow.awk</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="AUTHORS"></a> <div class="modfile"><h4>Modified: AUTHORS (202 => 203)</h4> <pre class="diff"><span> <span class="info">--- AUTHORS 2016-12-10 15:35:02 UTC (rev 202) +++ AUTHORS 2016-12-16 08:10:06 UTC (rev 203) </span><span class="lines">@@ -1,9 +1,10 @@ </span><span class="cx"> This is a list of the Callflow authors (in alphabetical order). </span><span class="cx"> </span><span class="cx"> Callflow is available thanks to the work of: </span><del>-Richard Bos, -Kevin Chmilar, -Alan Hawrylyshen, -Cullen Jennings, -Arnaud Morin, </del><ins>+Richard Bos +Kevin Chmilar +Alan Hawrylyshen +Cullen Jennings +Zoltan Miricz +Arnaud Morin </ins><span class="cx"> Jon Ringle </span></span></pre></div> <a id="scriptscallflowawk"></a> <div class="modfile"><h4>Modified: scripts/callflow.awk (202 => 203)</h4> <pre class="diff"><span> <span class="info">--- scripts/callflow.awk 2016-12-10 15:35:02 UTC (rev 202) +++ scripts/callflow.awk 2016-12-16 08:10:06 UTC (rev 203) </span><span class="lines">@@ -7,7 +7,10 @@ </span><span class="cx"> lookup[hosts[i]] = i; </span><span class="cx"> printf "<!-- lookup['%s'] = %d -->\n", hosts[i], i; </span><span class="cx"> } </span><del>- </del><ins>+ # Define the vertical distance between the node labels + Z = 0; + # Where the first line should start after node label + Q = 0; </ins><span class="cx"> w = (numHosts-1) * xHostSpace + leftMargin + rightMargin; </span><span class="cx"> h = numLines * yLineSpace + topMargin + bottomMargin; </span><span class="cx"> </span><span class="lines">@@ -30,7 +33,8 @@ </span><span class="cx"> </span><span class="cx"> printf "<text x=\"%d\" y=\"%d\" class=\"label host-text\">%s</text>\n", </span><span class="cx"> leftMargin+(i*xHostSpace), </span><del>- ystart-(15*(i%2)+2), </del><ins>+ # Make the node labes inline + ystart, </ins><span class="cx"> label[i]; </span><span class="cx"> </span><span class="cx"> printf "<line x1=\"%d\" y1=\"%d\" x2=\"%d\" y2=\"%d\" class=\"element-line\" />\n", leftMargin+(i*xHostSpace), ystart, leftMargin+(i*xHostSpace), yend; </span><span class="lines">@@ -114,7 +118,21 @@ </span><span class="cx"> { </span><span class="cx"> y = NR; </span><span class="cx"> y = y * yLineSpace + ystart; </span><del>- </del><ins>+ y = y + (Q * 20); + Z = Z + 1; + # Insert Node labels after every 28th lines + if ((Z % 28 == 1) && (Z != 1)){ + for(i=0;i<numTraces;i++) { + if (label[i] == "") + label[i] = hosts[i]; + printf "<text x=\"%d\" y=\"%d\" class=\"label host-text\">%s</text>\n", + leftMargin+(i*xHostSpace), + y, + label[i]; + } + y = y + 20; + Q = Q + 1; + } </ins><span class="cx"> if ($0 ~ "^#") { </span><span class="cx"> </span><span class="cx"> # The "!" is the link identifier </span></span></pre> </div> </div> <div id="footer">This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.</div> </body> </html> |
From: <rb...@us...> - 2016-12-10 15:35:04
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>callflow:[202] callflow</title> </head> <body> <style type="text/css"><!-- #msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dl.meta dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; } #logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; } #logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; } #logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } #logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; } #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; } #logmsg pre { background: #eee; padding: 1em; } #logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;} #logmsg dl { margin: 0; } #logmsg dt { font-weight: bold; } #logmsg dd { margin: 0; padding: 0 0 0.5em 0; } #logmsg dd:before { content:'\00bb';} #logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; } #logmsg table th.Corner { text-align: left; } #logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; } #header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <div id="msg"> <dl class="meta"> <dt>Revision</dt> <dd><a href="http://sourceforge.net/p/callflow/code/202">202</a></dd> <dt>Author</dt> <dd>rbos</dd> <dt>Date</dt> <dd>2016-12-10 15:35:02 +0000 (Sat, 10 Dec 2016)</dd> </dl> <h3>Log Message</h3> <pre>Typo in variable name corrected + default value adjusted for current tshark settings</pre> <h3>Modified Paths</h3> <ul> <li><a href="#callflow">callflow</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="callflow"></a> <div class="modfile"><h4>Modified: callflow (201 => 202)</h4> <pre class="diff"><span> <span class="info">--- callflow 2016-12-10 13:28:04 UTC (rev 201) +++ callflow 2016-12-10 15:35:02 UTC (rev 202) </span><span class="lines">@@ -8,7 +8,7 @@ </span><span class="cx"> ################################## </span><span class="cx"> ARCHIVE=yes </span><span class="cx"> ARCHIVE_TYPE=bz2 </span><del>-CONFDIR="/etc/callflow"; </del><ins>+CONFDIR=/etc/callflow </ins><span class="cx"> removeDF=0 # do not remove duplicate frames </span><span class="cx"> ORDER=0 # do not build order file </span><span class="cx"> localLoop=1 # take into account flows from and to the same element (rounded flows) </span><span class="lines">@@ -283,7 +283,7 @@ </span><span class="cx"> FARG="" </span><span class="cx"> FVAL="" </span><span class="cx"> else </span><del>- FARS="-R" </del><ins>+ FARG="-2 -R" </ins><span class="cx"> FVAL="$OPT_FILTER" </span><span class="cx"> fi </span><span class="cx"> fi </span></span></pre> </div> </div> <div id="footer">This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.</div> </body> </html> |
From: <rb...@us...> - 2016-12-10 13:28:07
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>callflow:[201] scripts</title> </head> <body> <style type="text/css"><!-- #msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dl.meta dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; } #logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; } #logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; } #logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } #logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; } #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; } #logmsg pre { background: #eee; padding: 1em; } #logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;} #logmsg dl { margin: 0; } #logmsg dt { font-weight: bold; } #logmsg dd { margin: 0; padding: 0 0 0.5em 0; } #logmsg dd:before { content:'\00bb';} #logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; } #logmsg table th.Corner { text-align: left; } #logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; } #header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <div id="msg"> <dl class="meta"> <dt>Revision</dt> <dd><a href="http://sourceforge.net/p/callflow/code/201">201</a></dd> <dt>Author</dt> <dd>rbos</dd> <dt>Date</dt> <dd>2016-12-10 13:28:04 +0000 (Sat, 10 Dec 2016)</dd> </dl> <h3>Log Message</h3> <pre>white space cleanup</pre> <h3>Modified Paths</h3> <ul> <li><a href="#callflow">callflow</a></li> <li><a href="#scriptsremovedupssh">scripts/removedups.sh</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="callflow"></a> <div class="modfile"><h4>Modified: callflow (200 => 201)</h4> <pre class="diff"><span> <span class="info">--- callflow 2015-11-21 16:12:28 UTC (rev 200) +++ callflow 2016-12-10 13:28:04 UTC (rev 201) </span><span class="lines">@@ -270,7 +270,7 @@ </span><span class="cx"> done </span><span class="cx"> </span><span class="cx"> inputfile="$1" </span><del>-if [[ ! -f "$inputfile" ]]; then </del><ins>+if [[ ! -f "$inputfile" ]]; then </ins><span class="cx"> echo "$PRGNAME: error: Input file ($inputfile) does not exists!" </span><span class="cx"> exit 1; </span><span class="cx"> else </span><span class="lines">@@ -350,14 +350,14 @@ </span><span class="cx"> [[ $ARCHIVE_TYPE != "files" ]] && { </span><span class="cx"> </span><span class="cx"> ARCHIVE_NAME=$(basename $DESTDIR) </span><del>- case $ARCHIVE_TYPE in - bz2|bzip2) </del><ins>+ case $ARCHIVE_TYPE in + bz2|bzip2) </ins><span class="cx"> ARCHIVE_FILE=$ARCHIVE_NAME.tar.bz2 </span><span class="cx"> ;; </span><span class="cx"> *) </span><span class="cx"> ARCHIVE_FILE=$ARCHIVE_NAME.$ARCHIVE_TYPE </span><span class="cx"> ;; </span><del>- esac </del><ins>+ esac </ins><span class="cx"> } </span><span class="cx"> </span><span class="cx"> fi </span></span></pre></div> <a id="scriptsremovedupssh"></a> <div class="modfile"><h4>Modified: scripts/removedups.sh (200 => 201)</h4> <pre class="diff"><span> <span class="info">--- scripts/removedups.sh 2015-11-21 16:12:28 UTC (rev 200) +++ scripts/removedups.sh 2016-12-10 13:28:04 UTC (rev 201) </span><span class="lines">@@ -36,7 +36,7 @@ </span><span class="cx"> ) </span><span class="cx"> </span><span class="cx"> if [[ $MODE = "REMOVE_MIRROR_DUPS" ]]; then </span><del>- </del><ins>+ </ins><span class="cx"> ( echo "$MODE is deprecated, may be removed in the future without notice," </span><span class="cx"> echo " please use \"REMOVE_MIRROR_DUPS_2\" instead." </span><span class="cx"> ) >&2 </span><span class="lines">@@ -50,7 +50,7 @@ </span><span class="cx"> FRAMES[NR] = $0 </span><span class="cx"> </span><span class="cx"> } END { </span><del>- </del><ins>+ </ins><span class="cx"> # Print first frame number </span><span class="cx"> split(FRAMES[1], F, " ") </span><span class="cx"> print F[1] </span><span class="lines">@@ -60,7 +60,7 @@ </span><span class="cx"> for (i=2; i<=MAX; i++) { </span><span class="cx"> </span><span class="cx"> split(FRAMES[i], F, " ") </span><del>- CUR_MD5 = F[2] </del><ins>+ CUR_MD5 = F[2] </ins><span class="cx"> </span><span class="cx"> if (CUR_MD5 != PREV_MD5) { </span><span class="cx"> # Print the current frame number </span><span class="lines">@@ -117,7 +117,7 @@ </span><span class="cx"> SEEN = "no" </span><span class="cx"> CONT = 1 </span><span class="cx"> while (CONT) { </span><del>- </del><ins>+ </ins><span class="cx"> if (DEBUG) printf "DEBUG 1: i = %d, Frame = %d, Time = %s, MD5SUM = %s\n", i, FRAME[i], TIME[i], MD5SUM[i] </span><span class="cx"> if (DEBUG) printf "DEBUG 2: p = %d, Frame = %d, Time = %s, MD5SUM = %s\n", p, FRAME[p], TIME[p], MD5SUM[p] </span><span class="cx"> </span></span></pre> </div> </div> <div id="footer">This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.</div> </body> </html> |
From: <rb...@us...> - 2015-11-21 16:12:30
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>callflow:[200] scripts</title> </head> <body> <style type="text/css"><!-- #msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dl.meta dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; } #logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; } #logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; } #logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } #logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; } #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; } #logmsg pre { background: #eee; padding: 1em; } #logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;} #logmsg dl { margin: 0; } #logmsg dt { font-weight: bold; } #logmsg dd { margin: 0; padding: 0 0 0.5em 0; } #logmsg dd:before { content:'\00bb';} #logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; } #logmsg table th.Corner { text-align: left; } #logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; } #header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <div id="msg"> <dl class="meta"> <dt>Revision</dt> <dd><a href="http://sourceforge.net/p/callflow/code/200">200</a></dd> <dt>Author</dt> <dd>rbos</dd> <dt>Date</dt> <dd>2015-11-21 16:12:28 +0000 (Sat, 21 Nov 2015)</dd> </dl> <h3>Log Message</h3> <pre>Bug fixes</pre> <h3>Modified Paths</h3> <ul> <li><a href="#callflowversion">callflow.version</a></li> <li><a href="#scriptslong2htmlawk">scripts/long2html.awk</a></li> <li><a href="#scriptspcapparsersh">scripts/pcap-parser.sh</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="callflowversion"></a> <div class="modfile"><h4>Modified: callflow.version (199 => 200)</h4> <pre class="diff"><span> <span class="info">--- callflow.version 2014-10-23 17:33:31 UTC (rev 199) +++ callflow.version 2015-11-21 16:12:28 UTC (rev 200) </span><span class="lines">@@ -1 +1 @@ </span><del>-20141023 </del><ins>+20151121 </ins></span></pre></div> <a id="scriptslong2htmlawk"></a> <div class="modfile"><h4>Modified: scripts/long2html.awk (199 => 200)</h4> <pre class="diff"><span> <span class="info">--- scripts/long2html.awk 2014-10-23 17:33:31 UTC (rev 199) +++ scripts/long2html.awk 2015-11-21 16:12:28 UTC (rev 200) </span><span class="lines">@@ -16,7 +16,8 @@ </span><span class="cx"> first = 1 </span><span class="cx"> } </span><span class="cx"> </span><del>-/^Frame [0-9]+: (.*)/ { </del><ins>+# See bug #7 +/^Frame [0-9]+:? (.*)/ { </ins><span class="cx"> # New frame, closing <pre> and html> from previous frame before compute new filename </span><span class="cx"> if (first == 0) { </span><span class="cx"> </span></span></pre></div> <a id="scriptspcapparsersh"></a> <div class="modfile"><h4>Modified: scripts/pcap-parser.sh (199 => 200)</h4> <pre class="diff"><span> <span class="info">--- scripts/pcap-parser.sh 2014-10-23 17:33:31 UTC (rev 199) +++ scripts/pcap-parser.sh 2015-11-21 16:12:28 UTC (rev 200) </span><span class="lines">@@ -88,7 +88,7 @@ </span><span class="cx"> # field separator in the output file, remove it. The actual string </span><span class="cx"> # being removed is " |=". </span><span class="cx"> tshark -r $PCAP_FILE $FARG "$FVAL" -t a \ </span><del>- -o 'column.format: "No.", "%m", "Time", %t, "Protocol", "%p", "srcport", %S, "dstport", %D, "Info", "%i"' | </del><ins>+ -o 'gui.column.format: "No.", "%m", "Time", %t, "Protocol", "%p", "srcport", %S, "dstport", %D, "Info", "%i"' | </ins><span class="cx"> sed -e 's/^[[:blank:]]*//' \ </span><span class="cx"> -e 's/[[:blank:]]*|=/=/' \ </span><span class="cx"> -e 's/ Status: / /' \ </span></span></pre> </div> </div> <div id="footer">This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.</div> </body> </html> |
From: <rb...@us...> - 2014-10-23 17:26:55
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>callflow:[198] man</title> </head> <body> <style type="text/css"><!-- #msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dl.meta dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; } #logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; } #logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; } #logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } #logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; } #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; } #logmsg pre { background: #eee; padding: 1em; } #logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;} #logmsg dl { margin: 0; } #logmsg dt { font-weight: bold; } #logmsg dd { margin: 0; padding: 0 0 0.5em 0; } #logmsg dd:before { content:'\00bb';} #logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; } #logmsg table th.Corner { text-align: left; } #logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; } #header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <div id="msg"> <dl class="meta"> <dt>Revision</dt> <dd><a href="http://sourceforge.net/p/callflow/code/198">198</a></dd> <dt>Author</dt> <dd>rbos</dd> <dt>Date</dt> <dd>2014-10-23 17:26:52 +0000 (Thu, 23 Oct 2014)</dd> </dl> <h3>Log Message</h3> <pre>remove -f argument, as it results in an error msg</pre> <h3>Modified Paths</h3> <ul> <li><a href="#callflow">callflow</a></li> <li><a href="#mancallflow1">man/callflow.1</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="callflow"></a> <div class="modfile"><h4>Modified: callflow (197 => 198)</h4> <pre class="diff"><span> <span class="info">--- callflow 2014-10-23 16:59:51 UTC (rev 197) +++ callflow 2014-10-23 17:26:52 UTC (rev 198) </span><span class="lines">@@ -192,7 +192,7 @@ </span><span class="cx"> # Note that we use `"$@"' to let each command-line parameter expand to a </span><span class="cx"> # separate word. The quotes around `$@' are essential! </span><span class="cx"> # We need TEMP as the `eval set --' would nuke the return value of getopt. </span><del>-TEMP=$(getopt --options=dfhorv --long $LOPT -n $PRGNAME -- "$@") </del><ins>+TEMP=$(getopt --options=dhorv --long $LOPT -n $PRGNAME -- "$@") </ins><span class="cx"> </span><span class="cx"> if [[ $? -ne 0 ]]; then </span><span class="cx"> echo "Terminating..." >&2 </span><span class="lines">@@ -214,7 +214,7 @@ </span><span class="cx"> --browser) </span><span class="cx"> START_BROWSER="yes" </span><span class="cx"> ;; </span><del>- --capture-filter|-f) </del><ins>+ --capture-filter) </ins><span class="cx"> # Overwrite the default filter previously red from the configuration file </span><span class="cx"> OPT_FILTER=$2; shift </span><span class="cx"> #echo " * Will use the following filter: $OPT_FILTER" </span></span></pre></div> <a id="mancallflow1"></a> <div class="modfile"><h4>Modified: man/callflow.1 (197 => 198)</h4> <pre class="diff"><span> <span class="info">--- man/callflow.1 2014-10-23 16:59:51 UTC (rev 197) +++ man/callflow.1 2014-10-23 17:26:52 UTC (rev 198) </span><span class="lines">@@ -64,9 +64,6 @@ </span><span class="cx"> </span><span class="cx"> .TP </span><span class="cx"> .PD 0 </span><del>-.BI -f " filter" -.TP -.PD </del><span class="cx"> .BI --capture-filter " filter" </span><span class="cx"> A filter can be used to show only those frames that match the given filter criteria. This filter is for traces that have been captured with programs such as wireshark, snoop, tcpdump, thsark and the like. Callflow uses tshark's DISPLAY filter functionality to filter the trace. More information about tshark's DISPLAY filter can be obtained from the tshark man page. A useful filter for SIP traffic is "sip". </span><span class="cx"> </span></span></pre> </div> </div> <div id="footer">This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.</div> </body> </html> |
From: <rb...@us...> - 2014-10-23 16:59:54
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>callflow:[197] scripts</title> </head> <body> <style type="text/css"><!-- #msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dl.meta dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; } #logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; } #logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; } #logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } #logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; } #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; } #logmsg pre { background: #eee; padding: 1em; } #logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;} #logmsg dl { margin: 0; } #logmsg dt { font-weight: bold; } #logmsg dd { margin: 0; padding: 0 0 0.5em 0; } #logmsg dd:before { content:'\00bb';} #logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; } #logmsg table th.Corner { text-align: left; } #logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; } #header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <div id="msg"> <dl class="meta"> <dt>Revision</dt> <dd><a href="http://sourceforge.net/p/callflow/code/197">197</a></dd> <dt>Author</dt> <dd>rbos</dd> <dt>Date</dt> <dd>2014-10-23 16:59:51 +0000 (Thu, 23 Oct 2014)</dd> </dl> <h3>Log Message</h3> <pre>Corrected typo: unknow -> unknown</pre> <h3>Modified Paths</h3> <ul> <li><a href="#callflow">callflow</a></li> <li><a href="#callflowversion">callflow.version</a></li> <li><a href="#scriptsremovedupssh">scripts/removedups.sh</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="callflow"></a> <div class="modfile"><h4>Modified: callflow (196 => 197)</h4> <pre class="diff"><span> <span class="info">--- callflow 2012-10-14 12:34:52 UTC (rev 196) +++ callflow 2014-10-23 16:59:51 UTC (rev 197) </span><span class="lines">@@ -263,7 +263,7 @@ </span><span class="cx"> ;; </span><span class="cx"> --version|-v) echo "$PRGNAME version: $PRGVRSN"; exit;; </span><span class="cx"> --) shift; break;; </span><del>- *) echo "unknow argument \"$1\""; exit $ERR_ARGUMENT;; </del><ins>+ *) echo "unknown argument \"$1\""; exit $ERR_ARGUMENT;; </ins><span class="cx"> esac </span><span class="cx"> shift </span><span class="cx"> done </span></span></pre></div> <a id="callflowversion"></a> <div class="modfile"><h4>Modified: callflow.version (196 => 197)</h4> <pre class="diff"><span> <span class="info">--- callflow.version 2012-10-14 12:34:52 UTC (rev 196) +++ callflow.version 2014-10-23 16:59:51 UTC (rev 197) </span><span class="lines">@@ -1 +1 @@ </span><del>-20120919 </del><ins>+20141023 </ins></span></pre></div> <a id="scriptsremovedupssh"></a> <div class="modfile"><h4>Modified: scripts/removedups.sh (196 => 197)</h4> <pre class="diff"><span> <span class="info">--- scripts/removedups.sh 2012-10-14 12:34:52 UTC (rev 196) +++ scripts/removedups.sh 2014-10-23 16:59:51 UTC (rev 197) </span><span class="lines">@@ -181,7 +181,7 @@ </span><span class="cx"> done | awk '{print $1}' | sort -n > $TMPDIR/pckts.$$ </span><span class="cx"> </span><span class="cx"> else </span><del>- echo "error: unknow mode: \"$MODE\"" >&2 </del><ins>+ echo "error: unknown mode: \"$MODE\"" >&2 </ins><span class="cx"> exit 1 </span><span class="cx"> fi </span><span class="cx"> </span></span></pre> </div> </div> <div id="footer">This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.</div> </body> </html> |
From: <mo...@us...> - 2012-10-14 12:34:55
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>callflow:[196] INSTALL</title> </head> <body> <style type="text/css"><!-- #msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dl.meta dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; } #logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; } #logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; } #logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } #logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; } #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; } #logmsg pre { background: #eee; padding: 1em; } #logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;} #logmsg dl { margin: 0; } #logmsg dt { font-weight: bold; } #logmsg dd { margin: 0; padding: 0 0 0.5em 0; } #logmsg dd:before { content:'\00bb';} #logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; } #logmsg table th.Corner { text-align: left; } #logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; } #header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <div id="msg"> <dl class="meta"> <dt>Revision</dt> <dd><a href="http://sourceforge.net/p/callflow/code/196">196</a></dd> <dt>Author</dt> <dd>moufki</dd> <dt>Date</dt> <dd>2012-10-14 12:34:52 +0000 (Sun, 14 Oct 2012)</dd> </dl> <h3>Log Message</h3> <pre> * Add dependencies</pre> <h3>Modified Paths</h3> <ul> <li><a href="#INSTALL">INSTALL</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="INSTALL"></a> <div class="modfile"><h4>Modified: INSTALL (195 => 196)</h4> <pre class="diff"><span> <span class="info">--- INSTALL 2012-10-14 12:31:03 UTC (rev 195) +++ INSTALL 2012-10-14 12:34:52 UTC (rev 196) </span><span class="lines">@@ -1,3 +1,7 @@ </span><ins>+Before installing, you should have the following dependencies +- gawk (we use the GNU implementation of awk instead of classic awk) +- inkscape (to build png file from svg) + </ins><span class="cx"> The build instructions are: </span><span class="cx"> mkdir build </span><span class="cx"> cd build </span></span></pre> </div> </div> <div id="footer">This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.</div> </body> </html> |
From: <mo...@us...> - 2012-10-14 12:31:06
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>callflow:[195] </title> </head> <body> <style type="text/css"><!-- #msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dl.meta dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; } #logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; } #logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; } #logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } #logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; } #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; } #logmsg pre { background: #eee; padding: 1em; } #logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;} #logmsg dl { margin: 0; } #logmsg dt { font-weight: bold; } #logmsg dd { margin: 0; padding: 0 0 0.5em 0; } #logmsg dd:before { content:'\00bb';} #logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; } #logmsg table th.Corner { text-align: left; } #logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; } #header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <div id="msg"> <dl class="meta"> <dt>Revision</dt> <dd><a href="http://sourceforge.net/p/callflow/code/195">195</a></dd> <dt>Author</dt> <dd>moufki</dd> <dt>Date</dt> <dd>2012-10-14 12:31:03 +0000 (Sun, 14 Oct 2012)</dd> </dl> <h3>Log Message</h3> <pre> * Make the CMakefile better * Update SYSCONFIG_DIR to CONFDIR * Add sample pcap file to be tested with callflow</pre> <h3>Modified Paths</h3> <ul> <li><a href="#CMakeListstxt">CMakeLists.txt</a></li> <li><a href="#INSTALL">INSTALL</a></li> <li><a href="#confCMakeListstxt">conf/CMakeLists.txt</a></li> </ul> <h3>Added Paths</h3> <ul> <li>sample_pcap/</li> <li><a href="#sample_pcapregisterpcap">sample_pcap/register.pcap</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="CMakeListstxt"></a> <div class="modfile"><h4>Modified: CMakeLists.txt (194 => 195)</h4> <pre class="diff"><span> <span class="info">--- CMakeLists.txt 2012-10-07 18:52:53 UTC (rev 194) +++ CMakeLists.txt 2012-10-14 12:31:03 UTC (rev 195) </span><span class="lines">@@ -20,16 +20,16 @@ </span><span class="cx"> TODAY(DATE) </span><span class="cx"> </span><span class="cx"> </span><del>-set(VERSION_MAJOR ${DATE}) </del><ins>+set(VERSION_STRING ${DATE}) </ins><span class="cx"> </span><span class="cx"> # Overwrite version major if callflow.version found </span><span class="cx"> if(EXISTS "../callflow.version") </span><del>- file (STRINGS "callflow.version" VERSION_MAJOR) - set(VERSION_STRING "${VERSION_MINOR}") </del><ins>+ file (STRINGS "callflow.version" VERSION_STRING) </ins><span class="cx"> endif() </span><span class="cx"> </span><span class="cx"> message(STATUS "*** Will build version ${VERSION_STRING} ***") </span><span class="cx"> </span><ins>+# BINDIR </ins><span class="cx"> # Perhaps redundant, but nice to have the if structure around as an example </span><span class="cx"> if(UNIX) </span><span class="cx"> set(BINDIR "${CMAKE_INSTALL_PREFIX}/bin") </span><span class="lines">@@ -39,16 +39,34 @@ </span><span class="cx"> set(BINDIR "bin") </span><span class="cx"> endif() </span><span class="cx"> </span><del>-set(MANDIR "share/man/") -set(SHAREDIR "share/${PROJECT_NAME}/") -add_definitions("-DSHAREDIR=\\\"${CMAKE_INSTALL_PREFIX}/${SHAREDIR}\\\"") -if(DEFINED DOCDIR) - set(DOCFOLDER "${DOCDIR}") -else() - set(DOCFOLDER "${PREFIX}/share/doc/${PROJECT_NAME}") </del><ins>+message(STATUS " --> Will install BIN file to ${BINDIR}") + +# MANDIR +set(MANDIR "${CMAKE_INSTALL_PREFIX}/share/man/") +message(STATUS " --> Will install MAN file to ${MANDIR}") + +# DOCDIR +if(NOT DEFINED DOCDIR) + set(DOCDIR "${CMAKE_INSTALL_PREFIX}/share/doc/${PROJECT_NAME}") </ins><span class="cx"> endif() </span><del>-add_definitions("-DDOCDIR=\\\"${CMAKE_INSTALL_PREFIX}/${DOCDIR}\\\"") </del><ins>+add_definitions("-DDOCDIR=\\\"${DOCDIR}\\\"") +message(STATUS " --> Will install DOC files to ${DOCDIR}") </ins><span class="cx"> </span><ins>+# CONFDIR +if(NOT DEFINED CONFDIR) + set(CONFDIR "${CMAKE_INSTALL_PREFIX}/etc/${PROJECT_NAME}") +endif() +add_definitions("-DCONFDIR=\\\"${CONFDIR}\\\"") +message(STATUS " --> Will install CONF files to ${CONFDIR}") + +# SHAREDIR +set(SHAREDIR "${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME}/") +add_definitions("-DSHAREDIR=\\\"${SHAREDIR}\\\"") +message(STATUS " --> Will install callflow files to ${SHAREDIR}") + +# +# Which folders to install +# </ins><span class="cx"> add_subdirectory(js) </span><span class="cx"> add_subdirectory(css) </span><span class="cx"> add_subdirectory(man) </span><span class="lines">@@ -69,13 +87,13 @@ </span><span class="cx"> AUTHORS </span><span class="cx"> LICENSE </span><span class="cx"> README </span><del>- DESTINATION "${DOCFOLDER}" </del><ins>+ DESTINATION "${DOCDIR}" </ins><span class="cx"> ) </span><span class="cx"> </span><span class="cx"> # If the cmake version includes cpack, use it </span><span class="cx"> if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") </span><span class="cx"> set(CPACK_PACKAGE_EXECUTABLES callflow) </span><del>- set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Dummy Value") </del><ins>+ set(CPACK_DEBIAN_PACKAGE_MAINTAINER "callflow") </ins><span class="cx"> set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Callflow Sequence Diagram Generator") </span><span class="cx"> </span><span class="cx"> if(WIN32) </span></span></pre></div> <a id="INSTALL"></a> <div class="modfile"><h4>Modified: INSTALL (194 => 195)</h4> <pre class="diff"><span> <span class="info">--- INSTALL 2012-10-07 18:52:53 UTC (rev 194) +++ INSTALL 2012-10-14 12:31:03 UTC (rev 195) </span><span class="lines">@@ -9,7 +9,7 @@ </span><span class="cx"> The file locations can be influenced using arguments. </span><span class="cx"> The following once are available: </span><span class="cx"> - CMAKE_INSTALL_PREFIX </span><del>-- SYSCONF_INSTALL_DIR </del><ins>+- CONFDIR </ins><span class="cx"> - DOCDIR </span><span class="cx"> </span><span class="cx"> So the commands: </span><span class="lines">@@ -24,6 +24,6 @@ </span><span class="cx"> Package builders may want to use the commands: </span><span class="cx"> mkdir build </span><span class="cx"> cd build </span><del>- cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DDOCDIR=/usr/share/doc/package/callflow -DSYSCONF_INSTALL_DIR=/etc </del><ins>+ cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DDOCDIR=/usr/share/doc/package/callflow -DCONFDIR=/etc </ins><span class="cx"> make install DESTDIR=<package build directory> </span><span class="cx"> </span></span></pre></div> <a id="confCMakeListstxt"></a> <div class="modfile"><h4>Modified: conf/CMakeLists.txt (194 => 195)</h4> <pre class="diff"><span> <span class="info">--- conf/CMakeLists.txt 2012-10-07 18:52:53 UTC (rev 194) +++ conf/CMakeLists.txt 2012-10-14 12:31:03 UTC (rev 195) </span><span class="lines">@@ -1,4 +1,4 @@ </span><span class="cx"> install(FILES </span><span class="cx"> callflow.conf </span><del>- DESTINATION "${SYSCONF_INSTALL_DIR}/${PROJECT_NAME}" </del><ins>+ DESTINATION "${CONFDIR}/${PROJECT_NAME}" </ins><span class="cx"> ) </span></span></pre></div> <a id="sample_pcapregisterpcap"></a> <div class="binary"><h4>Added: sample_pcap/register.pcap</h4> <pre class="diff"><span> <span class="cx">(Binary files differ) </span></span></pre></div> <span class="cx">Property changes on: sample_pcap/register.pcap </span><span class="cx">___________________________________________________________________ </span><a id="svnmimetype"></a> <div class="addfile"><h4>Added: svn:mime-type</h4></div> </div> <div id="footer">This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.</div> </body> </html> |
From: <rb...@us...> - 2012-10-07 18:52:55
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>callflow:[194] </title> </head> <body> <style type="text/css"><!-- #msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dl.meta dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; } #logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; } #logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; } #logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } #logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; } #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; } #logmsg pre { background: #eee; padding: 1em; } #logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;} #logmsg dl { margin: 0; } #logmsg dt { font-weight: bold; } #logmsg dd { margin: 0; padding: 0 0 0.5em 0; } #logmsg dd:before { content:'\00bb';} #logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; } #logmsg table th.Corner { text-align: left; } #logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; } #header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <div id="msg"> <dl class="meta"> <dt>Revision</dt> <dd><a href="http://sourceforge.net/p/callflow/code/194">194</a></dd> <dt>Author</dt> <dd>rbos</dd> <dt>Date</dt> <dd>2012-10-07 18:52:53 +0000 (Sun, 07 Oct 2012)</dd> </dl> <h3>Log Message</h3> <pre>CMakeLists.txt: remove the line "Subversion_WC_INFO(.. MY)", as it stopped the build (cmake build error)! Made the major the version. mktar: Remove redundant stuff, made the "if" statement brief. README: changed writting into developing (there is a spelling error in writting should be writing, and developing seems better). INSTALL: I remove the "#" in the INSTALL, so one can just triple click his / her mouse and paste the command.</pre> <h3>Modified Paths</h3> <ul> <li><a href="#CMakeListstxt">CMakeLists.txt</a></li> <li><a href="#INSTALL">INSTALL</a></li> <li><a href="#README">README</a></li> <li><a href="#mktar">mktar</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="CMakeListstxt"></a> <div class="modfile"><h4>Modified: CMakeLists.txt (193 => 194)</h4> <pre class="diff"><span> <span class="info">--- CMakeLists.txt 2012-10-06 13:26:57 UTC (rev 193) +++ CMakeLists.txt 2012-10-07 18:52:53 UTC (rev 194) </span><span class="lines">@@ -3,9 +3,6 @@ </span><span class="cx"> </span><span class="cx"> project(callflow NONE) </span><span class="cx"> </span><del>-# Get project subversion version -Subversion_WC_INFO(.. MY) - </del><span class="cx"> # Get date </span><span class="cx"> MACRO (TODAY RESULT) </span><span class="cx"> IF (WIN32) </span><span class="lines">@@ -28,10 +25,9 @@ </span><span class="cx"> # Overwrite version major if callflow.version found </span><span class="cx"> if(EXISTS "../callflow.version") </span><span class="cx"> file (STRINGS "callflow.version" VERSION_MAJOR) </span><ins>+ set(VERSION_STRING "${VERSION_MINOR}") </ins><span class="cx"> endif() </span><span class="cx"> </span><del>-set(VERSION_MINOR ${MY_WC_REVISION}) -set(VERSION_STRING "${VERSION_MAJOR}-${VERSION_MINOR}") </del><span class="cx"> message(STATUS "*** Will build version ${VERSION_STRING} ***") </span><span class="cx"> </span><span class="cx"> # Perhaps redundant, but nice to have the if structure around as an example </span></span></pre></div> <a id="INSTALL"></a> <div class="modfile"><h4>Modified: INSTALL (193 => 194)</h4> <pre class="diff"><span> <span class="info">--- INSTALL 2012-10-06 13:26:57 UTC (rev 193) +++ INSTALL 2012-10-07 18:52:53 UTC (rev 194) </span><span class="lines">@@ -1,8 +1,8 @@ </span><span class="cx"> The build instructions are: </span><del>-# mkdir build -# cd build -# cmake .. -# make install </del><ins>+ mkdir build + cd build + cmake .. + make install </ins><span class="cx"> </span><span class="cx"> This will install the files in their default locations. </span><span class="cx"> </span><span class="lines">@@ -13,17 +13,17 @@ </span><span class="cx"> - DOCDIR </span><span class="cx"> </span><span class="cx"> So the commands: </span><del>-# mkdir build -# cd build -# cmake .. -DCMAKE_INSTALL_PREFIX=/usr -# make install </del><ins>+ mkdir build + cd build + cmake .. -DCMAKE_INSTALL_PREFIX=/usr + make install </ins><span class="cx"> </span><span class="cx"> Will install most files under /usr instead of /usr/local </span><span class="cx"> </span><span class="cx"> </span><span class="cx"> Package builders may want to use the commands: </span><del>-# mkdir build -# cd build -# cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DDOCDIR=/usr/share/doc/package/callflow -DSYSCONF_INSTALL_DIR=/etc -# make install DESTDIR=<package build directory> </del><ins>+ mkdir build + cd build + cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DDOCDIR=/usr/share/doc/package/callflow -DSYSCONF_INSTALL_DIR=/etc + make install DESTDIR=<package build directory> </ins><span class="cx"> </span></span></pre></div> <a id="README"></a> <div class="modfile"><h4>Modified: README (193 => 194)</h4> <pre class="diff"><span> <span class="info">--- README 2012-10-06 13:26:57 UTC (rev 193) +++ README 2012-10-07 18:52:53 UTC (rev 194) </span><span class="lines">@@ -6,6 +6,6 @@ </span><span class="cx"> See manpage of callflow to know how to use it. </span><span class="cx"> </span><span class="cx"> See INSTALL to know how to setup this software on your computer </span><del>-See AUTHORS to know who participate in writting this software </del><ins>+See AUTHORS to know who participate in developing this application </ins><span class="cx"> See LICENSE to have an overview of the license applied on this software </span><span class="cx"> </span></span></pre></div> <a id="mktar"></a> <div class="modfile"><h4>Modified: mktar (193 => 194)</h4> <pre class="diff"><span> <span class="info">--- mktar 2012-10-06 13:26:57 UTC (rev 193) +++ mktar 2012-10-07 18:52:53 UTC (rev 194) </span><span class="lines">@@ -4,15 +4,9 @@ </span><span class="cx"> </span><span class="cx"> PRGNAME=$(basename $0) </span><span class="cx"> DESTDIR=$(pwd) </span><del>-#DESTDIR="/var/tmp" </del><span class="cx"> </span><del>-CALLFLOW_VERSION=$(grep "readonly VersionSVN=" callflow | cut -d\" -f2 | - awk '{split($4, A, "-"); print A[1] A[2] A[3] "-" $3}') - </del><span class="cx"> # OVerwrite callflow Version if callflow.version file is found </span><del>-if [ -e callflow.version ] ; then - CALLFLOW_VERSION=$(cat callflow.version) -fi </del><ins>+[[ -e callflow.version ]] && CALLFLOW_VERSION=$(cat callflow.version) </ins><span class="cx"> </span><span class="cx"> # Only include files that are known, any other file is to be ignored </span><span class="cx"> FILES="AUTHORS </span></span></pre> </div> </div> <div id="footer">This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.</div> </body> </html> |
From: Richard <ri...@ra...> - 2012-10-06 13:36:01
|
Hi Arnaud, can you adjust the subject line of the emaillist emails? I think that you can just remove the "[Callflow-svn]" as the subject prefix is taken care of by svnnotify hook. It is now a bit too much of the same callflow ... callflow ... https://lists.sourceforge.net/lists/admin/callflow-svn Op zaterdag 6 oktober 2012 13:26:58 schreef rb...@us...: > Test new repository -- Richard |
From: <rb...@us...> - 2012-10-06 13:27:00
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>callflow:[193] AUTHORS</title> </head> <body> <style type="text/css"><!-- #msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dl.meta dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; } #logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; } #logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; } #logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } #logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; } #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; } #logmsg pre { background: #eee; padding: 1em; } #logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;} #logmsg dl { margin: 0; } #logmsg dt { font-weight: bold; } #logmsg dd { margin: 0; padding: 0 0 0.5em 0; } #logmsg dd:before { content:'\00bb';} #logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; } #logmsg table th.Corner { text-align: left; } #logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; } #header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <div id="msg"> <dl class="meta"> <dt>Revision</dt> <dd><a href="http://sourceforge.net/p/callflow/code/193">193</a></dd> <dt>Author</dt> <dd>rbos</dd> <dt>Date</dt> <dd>2012-10-06 13:26:57 +0000 (Sat, 06 Oct 2012)</dd> </dl> <h3>Log Message</h3> <pre>Test new repository</pre> <h3>Modified Paths</h3> <ul> <li><a href="#AUTHORS">AUTHORS</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="AUTHORS"></a> <div class="modfile"><h4>Modified: AUTHORS (192 => 193)</h4> <pre class="diff"><span> <span class="info">--- AUTHORS 2012-10-06 12:51:56 UTC (rev 192) +++ AUTHORS 2012-10-06 13:26:57 UTC (rev 193) </span><span class="lines">@@ -7,4 +7,3 @@ </span><span class="cx"> Cullen Jennings, </span><span class="cx"> Arnaud Morin, </span><span class="cx"> Jon Ringle </span><del>- </del></span></pre> </div> </div> <div id="footer">This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.</div> </body> </html> |
From: <rb...@us...> - 2012-10-05 08:23:19
|
Revision: 190 http://callflow.svn.sourceforge.net/callflow/?rev=190&view=rev Author: rbos Date: 2012-10-05 08:23:12 +0000 (Fri, 05 Oct 2012) Log Message: ----------- SVN email notification test Modified Paths: -------------- AUTHORS Modified: AUTHORS =================================================================== --- AUTHORS 2012-10-05 08:08:50 UTC (rev 189) +++ AUTHORS 2012-10-05 08:23:12 UTC (rev 190) @@ -7,3 +7,4 @@ Cullen Jennings, Arnaud Morin, Jon Ringle + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-10-05 08:09:00
|
Revision: 189 http://callflow.svn.sourceforge.net/callflow/?rev=189&view=rev Author: rbos Date: 2012-10-05 08:08:50 +0000 (Fri, 05 Oct 2012) Log Message: ----------- re-Introduce callflow.version again Modified Paths: -------------- mktar Added Paths: ----------- callflow.version Added: callflow.version =================================================================== --- callflow.version (rev 0) +++ callflow.version 2012-10-05 08:08:50 UTC (rev 189) @@ -0,0 +1 @@ +20120919 Modified: mktar =================================================================== --- mktar 2012-09-30 19:03:10 UTC (rev 188) +++ mktar 2012-10-05 08:08:50 UTC (rev 189) @@ -4,13 +4,9 @@ PRGNAME=$(basename $0) DESTDIR=$(pwd) -#DESTDIR="/var/tmp" -CALLFLOW_VERSION=$(grep "readonly VersionSVN=" callflow | cut -d\" -f2 | - awk '{split($4, A, "-"); print A[1] A[2] A[3] "-" $3}') +CALLFLOW_VERSION=$(cat callflow.version) -#CALLFLOW_VERSION=$(cat callflow.version) - # Only include files that are known, any other file is to be ignored FILES="AUTHORS CMakeLists.txt This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Richard <ri...@ra...> - 2012-09-30 20:32:38
|
Hi Arnaud, nice to see, that you're still working on callflow. There are some things though, that does not seem right at the moment though. Did you check the code today, or even this evening. If not you have used an abandoned repository, as SF migrated the repository today. When I use the url listed on this page http://sourceforge.net/p/callflow/code/187/tree/ that is http://sourceforge.net/projects/callflow/ -> code tab it list version 187, while your commit is 188. Please check. If you're indeed using the old repository, I would like you to not commit the changes below. Especially not the changes related to the callflow.version. With that one file it is now very easy to set the version in several files and also packages! This (callflow.version) is at the center of my package build process! I use the following code for that: #!/bin/bash (cd ~/svn/callflow; ./mktar) CALLFLOW_VERSION=$(cat ~/svn/callflow/callflow.version) mv /var/tmp/callflow-$CALLFLOW_VERSION.tar.bz2 . echo "Moved tarbal to current directory" sed "s/@@@version@@@/$CALLFLOW_VERSION/" callflow.spec.in > callflow.spec exit The trick to determine the CALLFLOW_VERSION with the grep and awk instructions is not accurate enough. Sometimes files are changed and hence the date should change, but it does not because the main callflow file (callflow itself) is not changed.... Hence it is better to separate file (callflow.version) for this. You better remove the line: CALLFLOW_VERSION=$(grep "readonly................ awk ............. from mktar! Your DESTDIR addition is nice though :) -- Richard Op zondag 30 september 2012 19:03:10 schreef mo...@us...: > Deleted: callflow.version > =================================================================== > --- callflow.version 2012-09-19 17:41:17 UTC (rev 187) > +++ callflow.version 2012-09-30 19:03:10 UTC (rev 188) > @@ -1 +0,0 @@ > -20120919 > > Modified: mktar > =================================================================== > --- mktar 2012-09-19 17:41:17 UTC (rev 187) > +++ mktar 2012-09-30 19:03:10 UTC (rev 188) > @@ -3,11 +3,13 @@ > # Script to make a release tarbal > > PRGNAME=$(basename $0) > +DESTDIR=$(pwd) > +#DESTDIR="/var/tmp" > > CALLFLOW_VERSION=$(grep "readonly VersionSVN=" callflow | cut -d\" -f2 | > awk '{split($4, A, "-"); print A[1] A[2] A[3] "-" $3}') > > -CALLFLOW_VERSION=$(cat callflow.version) > +#CALLFLOW_VERSION=$(cat callflow.version) > > # Only include files that are known, any other file is to be ignored > FILES="AUTHORS > @@ -57,7 +59,7 @@ > > sed -i "s/\(PRGVRSN\)=.*/\1=$CALLFLOW_VERSION/" > $TMPDIR/callflow-$CALLFLOW_VERSION/callflow > -TARBAL=/var/tmp/callflow-$CALLFLOW_VERSION.tar.bz2 > +TARBAL=$DESTDIR/callflow-$CALLFLOW_VERSION.tar.bz2 > ( cd $TMPDIR; tar cjf $TARBAL callflow-$CALLFLOW_VERSION) > rm -rf "${TMPDIR:xxxxx}" > |
From: <mo...@us...> - 2012-09-30 19:03:16
|
Revision: 188 http://callflow.svn.sourceforge.net/callflow/?rev=188&view=rev Author: moufki Date: 2012-09-30 19:03:10 +0000 (Sun, 30 Sep 2012) Log Message: ----------- some cleanup in sources, old makefile remove, now working with cmake from Richard Modified Paths: -------------- README mktar Removed Paths: ------------- Makefile callflow.version Deleted: Makefile =================================================================== --- Makefile 2012-09-19 17:41:17 UTC (rev 187) +++ Makefile 2012-09-30 19:03:10 UTC (rev 188) @@ -1,80 +0,0 @@ -### Makefile - -#Binaries -ECHO ?= echo -INSTALL ?= install -UNINSTALL ?= rm -rf -MKDIR ?= mkdir -p -SED ?= sed -i -e -GZIP ?= gzip - -# GNU respectfull variables -prefix ?= /usr/local -exec_prefix ?= $(prefix) -bindir ?= $(exec_prefix)/bin -mandir ?= $(prefix)/share/man -man1dir ?= $(mandir)/man1 - -# DESTDIR (used for Debian packaging) -DESTDIR ?= - -# Callflow personnal variables -PROGDIR ?= $(prefix)/share/callflow -CONFDIR ?= /etc/callflow - -.PHONY: install uninstall - -clean: - #Nothing to do - -install: install_man install_conf - #Copy files - @$(MKDIR) $(DESTDIR)$(PROGDIR) - @$(MKDIR) $(DESTDIR)$(PROGDIR)/scripts - @$(MKDIR) $(DESTDIR)$(PROGDIR)/js - @$(MKDIR) $(DESTDIR)$(bindir) - @$(INSTALL) -m 644 scripts/* $(DESTDIR)$(PROGDIR)/scripts - @$(INSTALL) -m 755 scripts/removedups.sh $(DESTDIR)$(PROGDIR)/scripts - @$(INSTALL) js/* -m 644 $(DESTDIR)$(PROGDIR)/js - @$(INSTALL) -m 644 AUTHORS $(DESTDIR)$(PROGDIR)/AUTHORS - @$(INSTALL) -m 644 README $(DESTDIR)$(PROGDIR)/ - @$(INSTALL) -m 644 LICENSE $(DESTDIR)$(PROGDIR)/ - - #Install callflow bin into $(DESTDIR)$(bindir)/ directory - @$(INSTALL) -m 755 callflow $(DESTDIR)$(bindir)/ - - #Change CONFDIR variable with $(CONFDIR) into $(bindir)/callflow - @$(SED) "s#/etc/callflow#$(CONFDIR)#" $(DESTDIR)$(bindir)/callflow - - # --> DONE ! - -install_man: - #Install man page - @$(MKDIR) $(DESTDIR)$(man1dir) - @$(INSTALL) -m 644 man/callflow.1 $(DESTDIR)$(man1dir)/callflow.1 - @$(GZIP) $(DESTDIR)$(man1dir)/callflow.1 - -install_conf: - #Install conf files - @$(MKDIR) $(DESTDIR)$(CONFDIR) - @$(INSTALL) -m 644 conf/* $(DESTDIR)$(CONFDIR) - - #Change SETUPDIR variable with $(PROGDIR) into $(CONFDIR)/callflow.conf - @$(SED) "s#/usr/local/callflow#$(PROGDIR)#" $(DESTDIR)$(CONFDIR)/callflow.conf - -uninstall: - #Remove directory $(DESTDIR)$(PROGDIR) - @$(UNINSTALL) $(DESTDIR)$(PROGDIR) - - #Remove callflow from $(bindir) - @$(UNINSTALL) $(DESTDIR)$(bindir)/callflow - - #Remove man page - @$(UNINSTALL) $(DESTDIR)$(man1dir)/callflow.1.gz - - #Remove conf files - @$(UNINSTALL) $(DESTDIR)$(CONFDIR) - - # --> DONE ! - - Modified: README =================================================================== --- README 2012-09-19 17:41:17 UTC (rev 187) +++ README 2012-09-30 19:03:10 UTC (rev 188) @@ -1,251 +1,6 @@ -CallFlow Sequence Diagram Generator (updated on 2010/04/21) -=================================== +The callflow sequence diagram generator is a collection of awk and shell scripts that will take a packet capture file that can be read by wireshark and produce a time sequence diagram. This is useful to view & debug SIP callflows or other network traffic -This is a collection of awk and shell scripts that will take a capture file that can be read by tshark and produce a callflow sequence diagram. The scripts have been primarily tested with SIP call flows, but should work for other network traffic as well. +See INSTALL to know how to setup this software on your computer +See AUTHORS to know who participate in writting this software +See LICENSE to have an overview of the license applied on this software - -Building the callflow plateform independant package -=================================================== - -Prerequisites: - gawk - tshark - inkscape - - -Using callflow -============== - -With callflow in your path, just type: - - callflow capture-file.cap -(see below for more options) - -This will produce a directory named like your capture file in your working directory (eg: if file is capture-file.cap, the directory will be capture-file). -In this, you will find at least: - - callflow.svg file, - - callflow.png file, - - several index.html files, - - graph.html file, - - frames directory with FrameX.html files inside. - -You may also find (depending on options chosen): - - callflow.long, - - callflow.short. - -You can view callflow.svg with the Adobe SVG plugin or Firefox, or you can view index*.html with any web browser. Both the SVG file and the html file contain links into the frames directory so that you can look at the contents of the full packet frame. All the frames have been processed to remove the IP headers, which usually aren't that interesting. - -Options availables -================== -Usage: callflow [OPTION] FILE -See man page for available options. - - -Filtering the diagram -===================== - -A filter can be used to show only those frames that match the given filter criteria. This filter is for traces that have been captured with programs such as wireshark, snoop, tcpdump, thsark and the like. Callflow uses tshark's DISPLAY filter functionality to filter the trace. More information about tshark's DISPLAY filter can be obtained from the tshark man page. A useful filter for SIP traffic is "sip". - - -Ordering the diagram -==================== - -If you know what nodes in your network are logically connected, you can have the diagram ordered in a meaningful way. Just create a file called order in your current directory or in the setup directory with the order of your network nodes, one per line. You must use the exact name or IP address that appears in your capture file in the form: <host/ip>:<port>, or use a regular expression that resolves to that name. Using a regular expression can be useful to collapse several nodes in to one logical node. - -You can generate an order file with: - callflow --list-nodes capture-file.cap > order - -The format of the order file is as follows: -<node-regex-pattern> [optional-label] - -Network nodes that are in your filtered capture file but not in your order file will appear on the right of the diagram, and nodes that are in your order file but not in the filtered capture will not be present in the diagram. - - -Labeling the diagram -==================== - -First, you need to create on order file, as above. Anything that appears after the node name or IP will be used as the label in the diagram. Otherwise, the node name or IP will be used as the label. - - -Forcing a node into the diagram -=============================== - -If you would like a node that has no traffic to appear in the diagram, put the string "!f!" as part of its label in the order file. -The string "!f!" will be edited out of the label. This can be useful to show the position of a firewall in a trace, or to illustrate a proxy that does not receive traffic. -Make sure that the forced node does not resolve to a regex pattern that another node will match! (ie. don't use ".") - -Example order file ------------------- - -10.250.250.101:(1917|5060) Pingtel -10.250.250.201:5060 VOCAL-UAMS -10.250.250.201:5070 VOCAL-RS -10.250.250.201:5065 VOCAL-GWMS -firewall !f!Firewall -10.250.250.104:5060 PSTN-GW - - -Titling the diagram -=================== - -You can title the diagram by using the --title option. If no --title option is provided, a default title based on the filename will be used. - - -Removing Duplicate Frames -========================= - -You can remove duplicate frames from the short text-file with: -callflow --remove-duplicate-frames foo - -Duplicates are determined by examining each line in foo, and comparing frames/Frame<#>.html with all previously seen frames. Because we are comparing with html files, the duplicate option assumes that those html files exist. - - -Adding "Session ID" to Sequence Lines -===================================== -By default, callflow colors every frame based on a specific pattern: 'Call-Id:'. This pattern is a header followed by an identifier that indicates which "SIP dialog" this packet belongs to. Callflow can use the same color for all flows that have the same identifier. - - -Tweaking ~/.wireshark/preferences for frames/Frame*.html -======================================================= - -You can change the level of detail provided in the "Internet Protocol", "User Datagram Protocol", and "Transmission Control Protocol" sections of the detailed frames/Frame*.html pages by tweaking the following entries in your ~/.wireshark/preferences: - -ip.ip_summary_in_tree -tcp.tcp_summary_in_tree -udp.udp_summary_in_tree - -If any of these items are set to TRUE, then only the summary line will appear in frames/Frame*.html. Otherwise, the glory details will be displayed. - - -Creating diagrams manually -========================== - -You can manually create a diagram by creating two text files, foo.short and foo.long. - -When you run callflow, you can take the output files callflow.short and callflow.long as a starting point. - -The first file (.short) contains the trace information, one transaction per line, in the following format: - - <time>|<trace-filename>|<frame #>|<src node>|<src port>|<sessionID>|<dest node>|<dest port>|<protocol>|<summary>|<remark> - -For example: - -16:07:56.616502||31|172.20.154.66|sip|{1}|172.20.154.92|dsmeter_iatc|SIP/SDP|Request: INVITE sip:68...@op..., with session description -16:07:56.617453||32|172.20.154.92|dsmeter_iatc|{1}|172.20.154.66|sip|SIP|Status: 100 trying -- your call is important to us -etc. - - / \ -/ ! \ It is important that there is *no blank lines* in the short text-file. ------ - -If this file is called foo.short, you can create another file called foo.long with longer descriptions of each transaction, in the following format: - -Frame # -Descriptive information -goes here - -Frame # -Description of another frame - - -For example: - -Frame 1 -Via: SIP/2.0/UDP 192.168.1.112:5060 -From: "C7960 (x1201)" <sip:1201@192.168.1.42>;tag=aab70900293102348a-7008 -To: <sip:1020@192.168.1.42> - -Frame 2 -To: <sip:1020@192.168.1.42:5060>;tag=53d20696 -From: "C7960 (x1201)"<sip:1201@192.168.1.42:5060>;tag=aab70900293102348a-7008 -Call-ID: aab70900-2fe3102-3ae-2b27@192.168.1.112 - -etc. - - -To process your text files, type the following: - - callflow -t capture-file.cap - - -Adding Comments -=============== -You can add a comment to your diagram by adding a line that start with "# " to short text-file. If in the middle of the line there is a " ! " token, then the comment becomes a hyper-link with what precedes the " ! " is the text that is displayed, and what comes after is the link to be followed when a user clicks on the text. - -For example: - -# Click here for original wireshark capture file ! mycapture.cap -# This is a comment -1 Alice 1000 -> Bob 2000 Alice sends Bob an Invite -2 Bob 2000 -> Alice 1000 Bob sends Alice a 200 -etc. - - / \ -/ ! \ It is important that there is *no blank lines* in the short text-file. ------ - - -Example -======= - -Create an order file: -$ callflow --list-nodes mycapture.cap > order -(edit order file as needed) - -Generate initial diagram: -$ callflow mycapture.cap - -We will now use "mycapture/callflow.short" and "mycapture/callflow.long" text files for further processing: -Remove retransmitted SIP packets: -$ callflow --remove-duplicate-frames mycapture.cap - -Add any desired comments to callflow, then regenerate diagram (repeat as needed): -$ callflow mycapture.cap - - -How it works -============ - -Well, this is kind of ugly: - - a. look for the order file - b. run tshark twice to get short and long output files - c. use long2html.awk to convert long output file into frame*.html files - d. get all the unique nodes from the short output file - e. order them and make sure all nodes are present - f. create the first few lines of the main awk script using makevars.awk - g. run the main awk script (callflow.awk) on the short output file: - I. create SVG file header and html <map> header - II. create labels in SVG file - III. for each line, create an arrow in the SVG file and a - <area> element for the image map - IV. write out the SVG and map file footers - - h. generate callflow.png using inkscape - i. generate html index files - i. clean up all the /tmp files - -Files -===== - -The system-wide configuration file /etc/callflow.conf, and the personal ones $HOME/.callflow.conf -and callflow.conf are used by callflow. If the system-wide configuration file exists, it is read first, -overriding the default settings. If the personal configuration files exists, they are read next, overriding -any previous values. - -TO DO -===== - -It would be much nicer to take the tshark filtered output and build an intermediate XML representation of it. Then use XSLT to transform it into the SVG file. This way you could write up illustrative sequence diagrams more easily and make use of more tools that can manipulate XML. - -Write port numbers at the ends of each arrow in an unobtrusive fashion. - -Automatically find a "best order" for the nodes, possibly based on total arrow length minimization. - -Specify output filenames and locations on the command line. - - -Authors -======= -see AUTHORS file provided with this package. - Deleted: callflow.version =================================================================== --- callflow.version 2012-09-19 17:41:17 UTC (rev 187) +++ callflow.version 2012-09-30 19:03:10 UTC (rev 188) @@ -1 +0,0 @@ -20120919 Modified: mktar =================================================================== --- mktar 2012-09-19 17:41:17 UTC (rev 187) +++ mktar 2012-09-30 19:03:10 UTC (rev 188) @@ -3,11 +3,13 @@ # Script to make a release tarbal PRGNAME=$(basename $0) +DESTDIR=$(pwd) +#DESTDIR="/var/tmp" CALLFLOW_VERSION=$(grep "readonly VersionSVN=" callflow | cut -d\" -f2 | awk '{split($4, A, "-"); print A[1] A[2] A[3] "-" $3}') -CALLFLOW_VERSION=$(cat callflow.version) +#CALLFLOW_VERSION=$(cat callflow.version) # Only include files that are known, any other file is to be ignored FILES="AUTHORS @@ -57,7 +59,7 @@ sed -i "s/\(PRGVRSN\)=.*/\1=$CALLFLOW_VERSION/" $TMPDIR/callflow-$CALLFLOW_VERSION/callflow -TARBAL=/var/tmp/callflow-$CALLFLOW_VERSION.tar.bz2 +TARBAL=$DESTDIR/callflow-$CALLFLOW_VERSION.tar.bz2 ( cd $TMPDIR; tar cjf $TARBAL callflow-$CALLFLOW_VERSION) rm -rf "${TMPDIR:xxxxx}" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-09-19 17:41:23
|
Revision: 187 http://callflow.svn.sourceforge.net/callflow/?rev=187&view=rev Author: rbos Date: 2012-09-19 17:41:17 +0000 (Wed, 19 Sep 2012) Log Message: ----------- Store and retrieve the version from a central location Modified Paths: -------------- mktar Added Paths: ----------- callflow.version Added: callflow.version =================================================================== --- callflow.version (rev 0) +++ callflow.version 2012-09-19 17:41:17 UTC (rev 187) @@ -0,0 +1 @@ +20120919 Modified: mktar =================================================================== --- mktar 2012-09-19 17:15:47 UTC (rev 186) +++ mktar 2012-09-19 17:41:17 UTC (rev 187) @@ -7,7 +7,7 @@ CALLFLOW_VERSION=$(grep "readonly VersionSVN=" callflow | cut -d\" -f2 | awk '{split($4, A, "-"); print A[1] A[2] A[3] "-" $3}') -CALLFLOW_VERSION=20120919-180 +CALLFLOW_VERSION=$(cat callflow.version) # Only include files that are known, any other file is to be ignored FILES="AUTHORS @@ -55,6 +55,8 @@ mkdir -p $TMPDIR/callflow-$CALLFLOW_VERSION tar cf - $FILES | (cd $TMPDIR/callflow-$CALLFLOW_VERSION; tar xf - ) +sed -i "s/\(PRGVRSN\)=.*/\1=$CALLFLOW_VERSION/" $TMPDIR/callflow-$CALLFLOW_VERSION/callflow + TARBAL=/var/tmp/callflow-$CALLFLOW_VERSION.tar.bz2 ( cd $TMPDIR; tar cjf $TARBAL callflow-$CALLFLOW_VERSION) rm -rf "${TMPDIR:xxxxx}" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-09-19 17:15:53
|
Revision: 186 http://callflow.svn.sourceforge.net/callflow/?rev=186&view=rev Author: rbos Date: 2012-09-19 17:15:47 +0000 (Wed, 19 Sep 2012) Log Message: ----------- add scripts/broadworks-parser.sh scripts/pcap-parser.sh Modified Paths: -------------- mktar Modified: mktar =================================================================== --- mktar 2012-09-19 15:42:24 UTC (rev 185) +++ mktar 2012-09-19 17:15:47 UTC (rev 186) @@ -7,7 +7,7 @@ CALLFLOW_VERSION=$(grep "readonly VersionSVN=" callflow | cut -d\" -f2 | awk '{split($4, A, "-"); print A[1] A[2] A[3] "-" $3}') -CALLFLOW_VERSION=20120615-174 +CALLFLOW_VERSION=20120919-180 # Only include files that are known, any other file is to be ignored FILES="AUTHORS @@ -32,11 +32,13 @@ man/callflow.1 README scripts/CMakeLists.txt +scripts/broadworks-parser.sh scripts/callflow.awk scripts/list-nodes.awk scripts/long2html.awk scripts/makevars.awk scripts/marksession.awk +scripts/pcap-parser.sh scripts/prunenodes.awk scripts/removedups.sh" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-09-19 15:42:35
|
Revision: 185 http://callflow.svn.sourceforge.net/callflow/?rev=185&view=rev Author: rbos Date: 2012-09-19 15:42:24 +0000 (Wed, 19 Sep 2012) Log Message: ----------- Roll back the change made in the previous update The sort is already after exiting the function Modified Paths: -------------- scripts/pcap-parser.sh Modified: scripts/pcap-parser.sh =================================================================== --- scripts/pcap-parser.sh 2012-09-19 14:38:23 UTC (rev 184) +++ scripts/pcap-parser.sh 2012-09-19 15:42:24 UTC (rev 185) @@ -185,7 +185,7 @@ printf "%s\n", $A[L] - }' $TMPDIR/${PRGNAME}-tshark-3.$$ | sort > $DESTDIR/callflow.short + }' $TMPDIR/${PRGNAME}-tshark-3.$$ > $DESTDIR/callflow.short rm $TMPDIR/${PRGNAME}-tshark-[123].$$ } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-09-19 14:38:34
|
Revision: 184 http://callflow.svn.sourceforge.net/callflow/?rev=184&view=rev Author: rbos Date: 2012-09-19 14:38:23 +0000 (Wed, 19 Sep 2012) Log Message: ----------- - Add SDP directive inactive - Strip last 3 zeros of the long timestring - Sort the callflow.short on time Modified Paths: -------------- scripts/pcap-parser.sh Modified: scripts/pcap-parser.sh =================================================================== --- scripts/pcap-parser.sh 2012-09-10 15:46:49 UTC (rev 183) +++ scripts/pcap-parser.sh 2012-09-19 14:38:23 UTC (rev 184) @@ -40,6 +40,8 @@ DIRECTION = "recvonly" } else if ($8 ~ "sendonly") { DIRECTION = "sendonly" + } else if ($8 ~ "inactive") { + DIRECTION = "inactive" } else { DIRECTION = "" } @@ -95,6 +97,11 @@ -e 's/SCCP (Int. ITU)/SCCP/' \ -e 's/with session description/SDP/g' | awk '{ + # Time value ($2) looks like: 13:35:43.868013000 + # The last zeros are unwanted. Desired time string: 13:35:43.868013 + # This strings has a length of 16. + if (length($2) > 16 ) sub ("000$", "", $2) + split($0, A, " ") # The line below results in the following fields and order. @@ -178,7 +185,7 @@ printf "%s\n", $A[L] - }' $TMPDIR/${PRGNAME}-tshark-3.$$ > $DESTDIR/callflow.short + }' $TMPDIR/${PRGNAME}-tshark-3.$$ | sort > $DESTDIR/callflow.short rm $TMPDIR/${PRGNAME}-tshark-[123].$$ } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-09-10 15:46:58
|
Revision: 183 http://callflow.svn.sourceforge.net/callflow/?rev=183&view=rev Author: rbos Date: 2012-09-10 15:46:49 +0000 (Mon, 10 Sep 2012) Log Message: ----------- Do not bail out on the SCCP (Int. ITU) protocol name. The () are the problem Modified Paths: -------------- scripts/pcap-parser.sh Modified: scripts/pcap-parser.sh =================================================================== --- scripts/pcap-parser.sh 2012-06-25 17:12:02 UTC (rev 182) +++ scripts/pcap-parser.sh 2012-09-10 15:46:49 UTC (rev 183) @@ -92,6 +92,7 @@ -e 's/ Status: / /' \ -e 's/ Request: / /' \ -e 's/(ITU)//' \ + -e 's/SCCP (Int. ITU)/SCCP/' \ -e 's/with session description/SDP/g' | awk '{ split($0, A, " ") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-06-25 17:12:08
|
Revision: 182 http://callflow.svn.sourceforge.net/callflow/?rev=182&view=rev Author: rbos Date: 2012-06-25 17:12:02 +0000 (Mon, 25 Jun 2012) Log Message: ----------- Add Diversion as valid SIP header Modified Paths: -------------- scripts/long2html.awk Modified: scripts/long2html.awk =================================================================== --- scripts/long2html.awk 2012-06-24 07:10:30 UTC (rev 181) +++ scripts/long2html.awk 2012-06-25 17:12:02 UTC (rev 182) @@ -168,6 +168,7 @@ if ($1 ~ "Content-Type:" ) MARK = "sip" if ($1 ~ "CSeq:" ) MARK = "sip" if ($1 ~ "Date:" ) MARK = "sip" + if ($1 ~ "Diversion:" ) MARK = "sip" if ($1 ~ "Expires:" ) MARK = "sip" if ($1 ~ "From:" ) MARK = "sip" if ($1 ~ "Max-Forwards:" ) MARK = "sip" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-06-24 07:10:36
|
Revision: 181 http://callflow.svn.sourceforge.net/callflow/?rev=181&view=rev Author: rbos Date: 2012-06-24 07:10:30 +0000 (Sun, 24 Jun 2012) Log Message: ----------- only split once Modified Paths: -------------- scripts/broadworks-parser.sh Modified: scripts/broadworks-parser.sh =================================================================== --- scripts/broadworks-parser.sh 2012-06-24 07:03:27 UTC (rev 180) +++ scripts/broadworks-parser.sh 2012-06-24 07:10:30 UTC (rev 181) @@ -135,14 +135,16 @@ # Process the line: # udp 1339 Bytes OUT to 10.48.43.13:5060 + # Separate the IP address and the port + split($6, I, ":") + if ($4 == "OUT") { IP_SRC_ADDR = bwIpAddr IP_SRC_PRT = "5060" - split($6, I, ":") IP_DEST_ADDR = I[1] IP_DEST_SRC = I[2] + } else if ($4 == "IN") { - split($6, I, ":") IP_SRC_ADDR = I[1] IP_SRC_SRC = I[2] IP_DEST_ADDR = bwIpAddr This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rb...@us...> - 2012-06-24 07:03:35
|
Revision: 180 http://callflow.svn.sourceforge.net/callflow/?rev=180&view=rev Author: rbos Date: 2012-06-24 07:03:27 +0000 (Sun, 24 Jun 2012) Log Message: ----------- Store the rather big functions make_long_and_short_caches_of_pcap_trace and make_long_and_short_caches_of_broadworks_log in their own files. Modified Paths: -------------- callflow scripts/CMakeLists.txt Added Paths: ----------- scripts/broadworks-parser.sh scripts/pcap-parser.sh Modified: callflow =================================================================== --- callflow 2012-06-22 09:24:59 UTC (rev 179) +++ callflow 2012-06-24 07:03:27 UTC (rev 180) @@ -60,347 +60,6 @@ COLORS="black" } -function make_long_and_short_caches_of_pcap_trace() { - - PCAP_FILE=$1 - - tshark -r $PCAP_FILE $FARG "$FVAL" -V > $DESTDIR/callflow.long - - # Create a datafile with the data needed to create the callflow. - # This is done in 2 steps, because of the following reasons: the tshark command - # with the '-T fields' argument, provides the IP addresses and SIP CSeq and Call-ID - # data. Some additional information about the Call-ID; this field can show up - # in (at least) 2 ways in SIP messages. The field can indeed be called "Call-ID", - # but just "i" in abbreviated SIP messages! Both formats can be used in 1 call. - tshark -r $PCAP_FILE $FARG "$FVAL" -t a -T fields -E separator='|' \ - -e frame.number -e ip.src -e ip.dst -e sip.CSeq -e sip.Call-ID \ - -e sdp.connection_info -e sdp.media -e sdp.media_attr | awk ' - BEGIN { - FS = "|" - OFS = "|" - NOC = 1 # Number Of Call-IDs - } - { - # Map the often very long Call-IDs to a short index, with only 1 or 2 digits - if (( $5 != "" ) && ( CALLID[$5] == "" )) { - CALLID[$5] = NOC - NOC++ - } - - # Process connection info and obtain the ip addr - sub("IN IP4 ", "", $6) - - # Process SDP media info and obtain the port and RTP format - split($7, S, " ") - PORT = S[2] - FORMAT = S[4] - - # Process SDP media attributes and get the direction information - if ($8 ~ "sendrecv") { - DIRECTION = "sendrecv" - } else if ($8 ~ "recvonly") { - DIRECTION = "recvonly" - } else if ($8 ~ "sendonly") { - DIRECTION = "sendonly" - } else { - DIRECTION = "" - } - - # The printf line below results in the following fields and order. For now we assume - # that the delivered media contains audio, but that may change one day when - # for example audio and video are involved. - # - # No Description - # 1 frame.number - # 2 tracefile - # 3 ip.src - # 4 ip.dst - # 5 sip.CSeq - # 6 sip.Call-ID - # 7 sdp.connection_info (ip addr) - # 8 sdp.media (audio port) - # 9 sdp.media (audio format) - # 10 sdp.media_attr (audio direction (sendrecv, sendonly, recvonly)) - printf "%s||%s|%s|%s|{%s}|%s|%s|%s|%s\n", $1, $2, $3, $4, CALLID[$5], $6, PORT, FORMAT, DIRECTION - - }' > $TMPDIR/${PRGNAME}-tshark-1.$$ - - # The second step in getting SIP data required by callflow. This step delivers - # the source and destination ports independent whether the datagram is UDP or - # TCP based. As SIP can be delivered over UDP or TCP using this tshark command - # seems to be good choice. Further more this command delivers the frame information - # (summary), that can not be obtained with tshart '-T fields' command above. - # - # For messages containing ISUP payload this step could deliver the IP addresses - # when using % variables %ns and %nd (network source and destination). If the - # % variables %s and %d are used the highest source and destination addresses are - # used, in case of ISUP message that are the OPC and DPC data, for details see - # wireshark bug 5969. - # - # The available % variables can be found at: - # http://anonsvn.wireshark.org/viewvc/trunk/epan/column.c?view=markup - # - # Information about the stream editor (sed) manipulations: - # - The string (ITU) shows up in the protocol description "ISUP(ITU)". - # awk doesn't like the "(" and ")", hence remove them. - # - Short the string "with session description" to just SDP. - # - Megaco has a "|" in its info string, this character is however the - # field separator in the output file, remove it. The actual string - # being removed is " |=". - tshark -r $PCAP_FILE $FARG "$FVAL" -t a \ - -o 'column.format: "No.", "%m", "Time", %t, "Protocol", "%p", "srcport", %S, "dstport", %D, "Info", "%i"' | - sed -e 's/^[[:blank:]]*//' \ - -e 's/[[:blank:]]*|=/=/' \ - -e 's/ Status: / /' \ - -e 's/ Request: / /' \ - -e 's/(ITU)//' \ - -e 's/with session description/SDP/g' | awk '{ - - split($0, A, " ") - - # The line below results in the following fields and order. - # - # No Description - # 1 frame number - # 2 time - # 3 protocol - # 4 srcport - # 5 dstport - # 6 info - - for (i = 1; i <= 5; i++) { - printf "%s|", $i - } - - L = length(A) - for (i = 6; i < L; i++) { - printf "%s ", $i - } - - printf "%s\n", $L - - }' > $TMPDIR/${PRGNAME}-tshark-2.$$ - - # Join the 2 datafiles that have been obtained above together - # When merged the first field (frame number) in the file ${PRGNAME}-tshark-2.$$ - # is combined with the first field (frame.number) in the file ${PRGNAME}-tshark-1.$$ - # So after the merge the total number of fields is 1 less, than the total number - # of fields. - join -t "|" --nocheck-order $TMPDIR/${PRGNAME}-tshark-1.$$ $TMPDIR/${PRGNAME}-tshark-2.$$ > $TMPDIR/${PRGNAME}-tshark-3.$$ - - # Order the fields - awk 'BEGIN { - FS = "|" - - # The order in which the fields will be arranged in the output file - # - # No Description - # 1 time - # 2 tracefile - # 3 frame.number - # 4 ip.src - # 5 ip.srcport - # 6 session information - # 7 ip.dst - # 8 ip.dstport - # 9 protocol - # 10 info field - # 11 SIP CSeq - # 12 Connection info (IP addr) - # 13 Media info (Port) - # 14 Media info (Protocol) - # 15 Media attribute direction - - # The array (A) that the 'split' command creates, maps the input fields - # to the output file order. As example: input field 11 is mapped to - # output field 1 and input field 5 is mapped to output field 11. - split("11 2 1 3 13 6 4 14 12 15 5 7 8 9 10", A, " ") - } - { - # Look for "200 OK" or "200 Ok" and add the SIP method, from the - # call sequence field to the 200 OK message. - # - # Attention: use the input fields values and not the ones mentioned in - # the BEGIN part. - # - $5 contains the sip.CSeq data. - # - $8 contains the protocol - # - $11 contains the info field data. - if (($8 ~ "SIP") && ($11 ~ "200 O")) { - # split the call sequence message (#ID SIP_method) - split($5, S, " ") - $11 = sprintf("%s (%s)", $11, S[2]) - } - - # Perform the actual mapping of the input to the output fields - L = length(A) - for (i = 1; i < L; i++) { - printf "%s|", $A[i] - } - - printf "%s\n", $A[L] - - }' $TMPDIR/${PRGNAME}-tshark-3.$$ > $DESTDIR/callflow.short - - rm $TMPDIR/${PRGNAME}-tshark-[123].$$ -} - -function make_long_and_short_caches_of_broadworks_log() { - - # TODO: make BW_IP_ADDR configurable from the command line - [[ -z $BW_IP_ADDR ]] && BW_IP_ADDR=127.0.0.1 - - awk -v destDir=$DESTDIR -v bwIpAddr=$BW_IP_ADDR 'BEGIN { - FRAME_NR = 1 - LOG_MSG_LINE_NR = 0 - NOC = 1 # Number Of Call-IDs - } - { - if ($1 ~ "^20[0-9][0-9].[0-1][0-9].[0-3][0-9]$") { - - if (LOG_MSG_TYPE == "sip") { - - FILENAME = destDir "/callflow.long" - - printf "Frame %d: \n", FRAME_NR > FILENAME - printf "%s\n", LOG_MSG[0] > FILENAME - printf "User Datagram Protocol\n" > FILENAME - - for (i = 1; i <= LOG_MSG_LINE_NR; i++) { - - printf " %s\n", LOG_MSG[i] > FILENAME - - if (LOG_MSG[i] ~ "udp" && LOG_MSG[i] ~ "Bytes") { - printf "Session Initiation Protocol\n" > FILENAME - printf " Request-Line: %s\n", LOG_MSG[++i] > FILENAME - - } else if ( LOG_MSG[i] ~ "m=audio" ) { - PROT = "SIP/SDP" - split(LOG_MSG[i], S, " ") - PORT = S[2] - FORMAT = S[4] - delete S # remove the array, so it can be safely re-used - } else if ( LOG_MSG[i] ~ "c=IN IP4" ) { - SDP_IP_ADDR = LOG_MSG[i] - sub("c=IN IP4 ", "", SDP_IP_ADDR) - } - } - - if (REQ_URI == "200 OK") { - split(CSEQ, S, " ") - REQ_URI = sprintf("200 OK (%s)", S[2]) - delete S # remove the array, so it can be safely re-used - } - - if (PROT == "SIP/SDP") { - # Remove trailing spaces - sub(" *$", "", REQ_URI) - REQ_URI = sprintf("%s, SDP", REQ_URI) - } - - FILENAME = destDir "/callflow.short" - printf "%s||%s|%s|%s|{%s}|%s|%s|%s|%s|%s|%s|%s|%s|\n", TIME, FRAME_NR, IP_SRC_ADDR, - IP_SRC_PRT, SESSIONID, IP_DEST_ADDR, IP_DEST_PRT, PROT, REQ_URI, CSEQ, - SDP_IP_ADDR, PORT, FORMAT > FILENAME - - FRAME_NR++ - - # Reset SIP message variables - CSEQ = "" - FORMAT = "" - IP_DEST_ADDR = "" - IP_DEST_SRC = "" - IP_SRC_ADDR = "" - IP_SRC_SRC = "" - LOG_MSG_TYPE = "" - PORT = "" - PROT = "SIP" - REQ_URI = "" - SDP_IP_ADDR = "" - SESSIONID = "" - } - - TIME = $2 - - # Reset log variables - delete LOG_MSG - LOG_MSG_LINE_NR = 0 - } - - LOG_MSG[LOG_MSG_LINE_NR] = $0 - - # A[1] contains the SIP method. This step is needed as lines - # may sometimes look like: - # Allow:ACK,BYE,CANCEL,INFO,INVITE - split($1, A, ":") - if (A[1] == "ACK" || - A[1] == "BYE" || - A[1] == "INFO" || - A[1] == "INVITE" || - A[1] == "PRACK" || - A[1] == "SIP/2.0") { - - LOG_MSG_TYPE = "sip" - - REQ_URI = $0 - sub ("SIP/2.0", "", REQ_URI) - - # Remove unwanted white space at the beginning of the string - sub ("^ ", "", REQ_URI) - } - - if (LOG_MSG_TYPE == "sip") { - - if (A[1] == "Call-ID") { - if (A[2] == "") { - CALLID = $2 - } else { - CALLID = A[2] - sub("^ ", "", CALLID) - } - - # Map the often very long Call-IDs to a short index, - # with only 1 or 2 digits - if (CALLIDS[CALLID] == "") { - CALLIDS[CALLID] = NOC - NOC++ - } - - # Use the shortened callid - SESSIONID = CALLIDS[CALLID] - - } else if (A[1] == "CSeq") { - CSEQ = $0 - sub ("CSeq:", "", CSEQ) - - # Remove unwanted white space at the beginning of the string - sub ("^ ", "", CSEQ) - } - - } else if ($1 == "udp" && $3 == "Bytes") { - - # Process the line: - # udp 1339 Bytes OUT to 10.48.43.13:5060 - - if ($4 == "OUT") { - IP_SRC_ADDR = bwIpAddr - IP_SRC_PRT = "5060" - split($6, I, ":") - IP_DEST_ADDR = I[1] - IP_DEST_SRC = I[2] - } else if ($4 == "IN") { - split($6, I, ":") - IP_SRC_ADDR = I[1] - IP_SRC_SRC = I[2] - IP_DEST_ADDR = bwIpAddr - IP_DEST_PRT = "5060" - } - } - - LOG_MSG_LINE_NR++ - - }' $1 -} - function make_long_and_short_caches() { # The make_long_and_short_caches_of_..... functions result @@ -410,10 +69,12 @@ INPUT_FILE_FORMAT=$(file $inputfile | cut -d: -f2) case $INPUT_FILE_FORMAT in *ASCII*) + . $SETUPDIR/scripts/broadworks-parser.sh make_long_and_short_caches_of_broadworks_log $inputfile ;; *) # Any other file type is considered a network trace + . $SETUPDIR/scripts/pcap-parser.sh make_long_and_short_caches_of_pcap_trace $inputfile esac Modified: scripts/CMakeLists.txt =================================================================== --- scripts/CMakeLists.txt 2012-06-22 09:24:59 UTC (rev 179) +++ scripts/CMakeLists.txt 2012-06-24 07:03:27 UTC (rev 180) @@ -1,9 +1,11 @@ install(FILES + broadworks-parser.sh callflow.awk list-nodes.awk long2html.awk makevars.awk marksession.awk + pcap-parser.sh prunenodes.awk removedups.sh DESTINATION "${SHAREDIR}/scripts" Added: scripts/broadworks-parser.sh =================================================================== --- scripts/broadworks-parser.sh (rev 0) +++ scripts/broadworks-parser.sh 2012-06-24 07:03:27 UTC (rev 180) @@ -0,0 +1,157 @@ +function make_long_and_short_caches_of_broadworks_log() { + + # TODO: make BW_IP_ADDR configurable from the command line + [[ -z $BW_IP_ADDR ]] && BW_IP_ADDR=127.0.0.1 + + awk -v destDir=$DESTDIR -v bwIpAddr=$BW_IP_ADDR 'BEGIN { + FRAME_NR = 1 + LOG_MSG_LINE_NR = 0 + NOC = 1 # Number Of Call-IDs + } + { + if ($1 ~ "^20[0-9][0-9].[0-1][0-9].[0-3][0-9]$") { + + if (LOG_MSG_TYPE == "sip") { + + FILENAME = destDir "/callflow.long" + + printf "Frame %d: \n", FRAME_NR > FILENAME + printf "%s\n", LOG_MSG[0] > FILENAME + printf "User Datagram Protocol\n" > FILENAME + + for (i = 1; i <= LOG_MSG_LINE_NR; i++) { + + printf " %s\n", LOG_MSG[i] > FILENAME + + if (LOG_MSG[i] ~ "udp" && LOG_MSG[i] ~ "Bytes") { + printf "Session Initiation Protocol\n" > FILENAME + printf " Request-Line: %s\n", LOG_MSG[++i] > FILENAME + + } else if ( LOG_MSG[i] ~ "m=audio" ) { + PROT = "SIP/SDP" + split(LOG_MSG[i], S, " ") + PORT = S[2] + FORMAT = S[4] + delete S # remove the array, so it can be safely re-used + } else if ( LOG_MSG[i] ~ "c=IN IP4" ) { + SDP_IP_ADDR = LOG_MSG[i] + sub("c=IN IP4 ", "", SDP_IP_ADDR) + } + } + + if (REQ_URI == "200 OK") { + split(CSEQ, S, " ") + REQ_URI = sprintf("200 OK (%s)", S[2]) + delete S # remove the array, so it can be safely re-used + } + + if (PROT == "SIP/SDP") { + # Remove trailing spaces + sub(" *$", "", REQ_URI) + REQ_URI = sprintf("%s, SDP", REQ_URI) + } + + FILENAME = destDir "/callflow.short" + printf "%s||%s|%s|%s|{%s}|%s|%s|%s|%s|%s|%s|%s|%s|\n", TIME, FRAME_NR, IP_SRC_ADDR, + IP_SRC_PRT, SESSIONID, IP_DEST_ADDR, IP_DEST_PRT, PROT, REQ_URI, CSEQ, + SDP_IP_ADDR, PORT, FORMAT > FILENAME + + FRAME_NR++ + + # Reset SIP message variables + CSEQ = "" + FORMAT = "" + IP_DEST_ADDR = "" + IP_DEST_SRC = "" + IP_SRC_ADDR = "" + IP_SRC_SRC = "" + LOG_MSG_TYPE = "" + PORT = "" + PROT = "SIP" + REQ_URI = "" + SDP_IP_ADDR = "" + SESSIONID = "" + } + + TIME = $2 + + # Reset log variables + delete LOG_MSG + LOG_MSG_LINE_NR = 0 + } + + LOG_MSG[LOG_MSG_LINE_NR] = $0 + + # A[1] contains the SIP method. This step is needed as lines + # may sometimes look like: + # Allow:ACK,BYE,CANCEL,INFO,INVITE + split($1, A, ":") + if (A[1] == "ACK" || + A[1] == "BYE" || + A[1] == "INFO" || + A[1] == "INVITE" || + A[1] == "PRACK" || + A[1] == "SIP/2.0") { + + LOG_MSG_TYPE = "sip" + + REQ_URI = $0 + sub ("SIP/2.0", "", REQ_URI) + + # Remove unwanted white space at the beginning of the string + sub ("^ ", "", REQ_URI) + } + + if (LOG_MSG_TYPE == "sip") { + + if (A[1] == "Call-ID") { + if (A[2] == "") { + CALLID = $2 + } else { + CALLID = A[2] + sub("^ ", "", CALLID) + } + + # Map the often very long Call-IDs to a short index, + # with only 1 or 2 digits + if (CALLIDS[CALLID] == "") { + CALLIDS[CALLID] = NOC + NOC++ + } + + # Use the shortened callid + SESSIONID = CALLIDS[CALLID] + + } else if (A[1] == "CSeq") { + CSEQ = $0 + sub ("CSeq:", "", CSEQ) + + # Remove unwanted white space at the beginning of the string + sub ("^ ", "", CSEQ) + } + + } else if ($1 == "udp" && $3 == "Bytes") { + + # Process the line: + # udp 1339 Bytes OUT to 10.48.43.13:5060 + + if ($4 == "OUT") { + IP_SRC_ADDR = bwIpAddr + IP_SRC_PRT = "5060" + split($6, I, ":") + IP_DEST_ADDR = I[1] + IP_DEST_SRC = I[2] + } else if ($4 == "IN") { + split($6, I, ":") + IP_SRC_ADDR = I[1] + IP_SRC_SRC = I[2] + IP_DEST_ADDR = bwIpAddr + IP_DEST_PRT = "5060" + } + } + + LOG_MSG_LINE_NR++ + + }' $1 +} + Added: scripts/pcap-parser.sh =================================================================== --- scripts/pcap-parser.sh (rev 0) +++ scripts/pcap-parser.sh 2012-06-24 07:03:27 UTC (rev 180) @@ -0,0 +1,184 @@ +function make_long_and_short_caches_of_pcap_trace() { + + PCAP_FILE=$1 + + tshark -r $PCAP_FILE $FARG "$FVAL" -V > $DESTDIR/callflow.long + + # Create a datafile with the data needed to create the callflow. + # This is done in 2 steps, because of the following reasons: the tshark command + # with the '-T fields' argument, provides the IP addresses and SIP CSeq and Call-ID + # data. Some additional information about the Call-ID; this field can show up + # in (at least) 2 ways in SIP messages. The field can indeed be called "Call-ID", + # but just "i" in abbreviated SIP messages! Both formats can be used in 1 call. + tshark -r $PCAP_FILE $FARG "$FVAL" -t a -T fields -E separator='|' \ + -e frame.number -e ip.src -e ip.dst -e sip.CSeq -e sip.Call-ID \ + -e sdp.connection_info -e sdp.media -e sdp.media_attr | awk ' + BEGIN { + FS = "|" + OFS = "|" + NOC = 1 # Number Of Call-IDs + } + { + # Map the often very long Call-IDs to a short index, with only 1 or 2 digits + if (( $5 != "" ) && ( CALLID[$5] == "" )) { + CALLID[$5] = NOC + NOC++ + } + + # Process connection info and obtain the ip addr + sub("IN IP4 ", "", $6) + + # Process SDP media info and obtain the port and RTP format + split($7, S, " ") + PORT = S[2] + FORMAT = S[4] + + # Process SDP media attributes and get the direction information + if ($8 ~ "sendrecv") { + DIRECTION = "sendrecv" + } else if ($8 ~ "recvonly") { + DIRECTION = "recvonly" + } else if ($8 ~ "sendonly") { + DIRECTION = "sendonly" + } else { + DIRECTION = "" + } + + # The printf line below results in the following fields and order. For now we assume + # that the delivered media contains audio, but that may change one day when + # for example audio and video are involved. + # + # No Description + # 1 frame.number + # 2 tracefile + # 3 ip.src + # 4 ip.dst + # 5 sip.CSeq + # 6 sip.Call-ID + # 7 sdp.connection_info (ip addr) + # 8 sdp.media (audio port) + # 9 sdp.media (audio format) + # 10 sdp.media_attr (audio direction (sendrecv, sendonly, recvonly)) + printf "%s||%s|%s|%s|{%s}|%s|%s|%s|%s\n", $1, $2, $3, $4, CALLID[$5], $6, PORT, FORMAT, DIRECTION + + }' > $TMPDIR/${PRGNAME}-tshark-1.$$ + + # The second step in getting SIP data required by callflow. This step delivers + # the source and destination ports independent whether the datagram is UDP or + # TCP based. As SIP can be delivered over UDP or TCP using this tshark command + # seems to be good choice. Further more this command delivers the frame information + # (summary), that can not be obtained with tshart '-T fields' command above. + # + # For messages containing ISUP payload this step could deliver the IP addresses + # when using % variables %ns and %nd (network source and destination). If the + # % variables %s and %d are used the highest source and destination addresses are + # used, in case of ISUP message that are the OPC and DPC data, for details see + # wireshark bug 5969. + # + # The available % variables can be found at: + # http://anonsvn.wireshark.org/viewvc/trunk/epan/column.c?view=markup + # + # Information about the stream editor (sed) manipulations: + # - The string (ITU) shows up in the protocol description "ISUP(ITU)". + # awk doesn't like the "(" and ")", hence remove them. + # - Short the string "with session description" to just SDP. + # - Megaco has a "|" in its info string, this character is however the + # field separator in the output file, remove it. The actual string + # being removed is " |=". + tshark -r $PCAP_FILE $FARG "$FVAL" -t a \ + -o 'column.format: "No.", "%m", "Time", %t, "Protocol", "%p", "srcport", %S, "dstport", %D, "Info", "%i"' | + sed -e 's/^[[:blank:]]*//' \ + -e 's/[[:blank:]]*|=/=/' \ + -e 's/ Status: / /' \ + -e 's/ Request: / /' \ + -e 's/(ITU)//' \ + -e 's/with session description/SDP/g' | awk '{ + + split($0, A, " ") + + # The line below results in the following fields and order. + # + # No Description + # 1 frame number + # 2 time + # 3 protocol + # 4 srcport + # 5 dstport + # 6 info + + for (i = 1; i <= 5; i++) { + printf "%s|", $i + } + + L = length(A) + for (i = 6; i < L; i++) { + printf "%s ", $i + } + + printf "%s\n", $L + + }' > $TMPDIR/${PRGNAME}-tshark-2.$$ + + # Join the 2 datafiles that have been obtained above together + # When merged the first field (frame number) in the file ${PRGNAME}-tshark-2.$$ + # is combined with the first field (frame.number) in the file ${PRGNAME}-tshark-1.$$ + # So after the merge the total number of fields is 1 less, than the total number + # of fields. + join -t "|" --nocheck-order $TMPDIR/${PRGNAME}-tshark-1.$$ $TMPDIR/${PRGNAME}-tshark-2.$$ > $TMPDIR/${PRGNAME}-tshark-3.$$ + + # Order the fields + awk 'BEGIN { + FS = "|" + + # The order in which the fields will be arranged in the output file + # + # No Description + # 1 time + # 2 tracefile + # 3 frame.number + # 4 ip.src + # 5 ip.srcport + # 6 session information + # 7 ip.dst + # 8 ip.dstport + # 9 protocol + # 10 info field + # 11 SIP CSeq + # 12 Connection info (IP addr) + # 13 Media info (Port) + # 14 Media info (Protocol) + # 15 Media attribute direction + + # The array (A) that the 'split' command creates, maps the input fields + # to the output file order. As example: input field 11 is mapped to + # output field 1 and input field 5 is mapped to output field 11. + split("11 2 1 3 13 6 4 14 12 15 5 7 8 9 10", A, " ") + } + { + # Look for "200 OK" or "200 Ok" and add the SIP method, from the + # call sequence field to the 200 OK message. + # + # Attention: use the input fields values and not the ones mentioned in + # the BEGIN part. + # - $5 contains the sip.CSeq data. + # - $8 contains the protocol + # - $11 contains the info field data. + if (($8 ~ "SIP") && ($11 ~ "200 O")) { + # split the call sequence message (#ID SIP_method) + split($5, S, " ") + $11 = sprintf("%s (%s)", $11, S[2]) + } + + # Perform the actual mapping of the input to the output fields + L = length(A) + for (i = 1; i < L; i++) { + printf "%s|", $A[i] + } + + printf "%s\n", $A[L] + + }' $TMPDIR/${PRGNAME}-tshark-3.$$ > $DESTDIR/callflow.short + + rm $TMPDIR/${PRGNAME}-tshark-[123].$$ +} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |