aboutsummaryrefslogtreecommitdiffstats
path: root/gtk/sctp_graph_dlg.c
diff options
context:
space:
mode:
authorMichael Tüxen <tuexen@fh-muenster.de>2005-07-12 21:04:05 +0000
committerMichael Tüxen <tuexen@fh-muenster.de>2005-07-12 21:04:05 +0000
commit19628443177234f9ef5770c0c389429ca7370158 (patch)
tree8104431fe00eec5d6045cc9429bedd351cc7e1be /gtk/sctp_graph_dlg.c
parent70522b125b49d96b1262347b08a28f92bd903819 (diff)
From Irene Ruengeler: Handle multiple gap reports correctly and use correct name of a button.
svn path=/trunk/; revision=14908
Diffstat (limited to 'gtk/sctp_graph_dlg.c')
-rw-r--r--gtk/sctp_graph_dlg.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/gtk/sctp_graph_dlg.c b/gtk/sctp_graph_dlg.c
index 986bd00668..6a5f9dad6d 100644
--- a/gtk/sctp_graph_dlg.c
+++ b/gtk/sctp_graph_dlg.c
@@ -198,23 +198,17 @@ static void draw_sack_graph(struct sctp_udata *u_data)
sack_header =(struct sack_chunk_header *)tlist->data;
nr=ntohs(sack_header->nr_of_gaps);
tsnumber = ntohl(sack_header->cum_tsn_ack);
- if (nr>0)
- {
- /* FIXME: Only the first gap report is considered */
- gap = (struct gaps *)&(sack_header->tsns);
- gap_start=ntohs(gap->start);
- gap_end = ntohs(gap->end);
- max_num=gap_end+tsnumber;
- }
- else
- max_num=tsnumber;
if (sack->secs>=u_data->io->x1_tmp_sec)
{
if (nr>0)
{
+ gap = (struct gaps *)(&(sack_header->tsns));
for(i=0;i<nr; i++)
{
+ gap_start=ntohs(gap->start);
+ gap_end = ntohs(gap->end);
+ max_num=gap_end+tsnumber;
for (j=gap_start; j<=gap_end; j++)
{
diff=sack->secs*1000000+sack->usecs-u_data->io->min_x;
@@ -223,8 +217,12 @@ static void draw_sack_graph(struct sctp_udata *u_data)
(guint32)(u_data->io->pixmap_height-BOTTOM_BORDER-u_data->io->offset-((SUB_32(j+tsnumber,min_tsn))*u_data->io->y_interval)),
3, 3,0, (64*360) );
}
+ if (i < nr-1)
+ gap++;
}
}
+ else
+ max_num=tsnumber;
if (tsnumber>=min_tsn)
{
diff=sack->secs*1000000+sack->usecs-u_data->io->min_x;