aboutsummaryrefslogtreecommitdiffstats
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
parent70522b125b49d96b1262347b08a28f92bd903819 (diff)
From Irene Ruengeler: Handle multiple gap reports correctly and use correct name of a button.
svn path=/trunk/; revision=14908
-rw-r--r--gtk/sctp_assoc_analyse.c2
-rw-r--r--gtk/sctp_graph_dlg.c18
2 files changed, 9 insertions, 11 deletions
diff --git a/gtk/sctp_assoc_analyse.c b/gtk/sctp_assoc_analyse.c
index e8473d4028..49286947b7 100644
--- a/gtk/sctp_assoc_analyse.c
+++ b/gtk/sctp_assoc_analyse.c
@@ -638,7 +638,7 @@ void create_analyse_window(struct sctp_analyse* u_data)
gtk_widget_show(chunk_bt1);
SIGNAL_CONNECT(chunk_bt1, "clicked", on_chunk2_dlg, u_data);
- graph_bt1 = gtk_button_new_with_label("Graph");
+ graph_bt1 = gtk_button_new_with_label("Graph TSN");
gtk_box_pack_start(GTK_BOX(h_button_box), graph_bt1, FALSE, FALSE, 0);
gtk_widget_show(graph_bt1);
SIGNAL_CONNECT(graph_bt1, "clicked", on_graph2_dlg, u_data);
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;