/*
* This file is part of Gspoof-3 (a console/gtk+ tcp/ip packet forger)
*
* $Name: callbacks.c $
* $Version: 3.2 $
* $Date: 2003/12/22 16:30:03 $
* $Author: Embyte <embyte@madlab.it> $
* $Copyright: Copyright (C) 2002-2003 by embyte $
* $License: This software is under GPL version 2 of license $
*
*/
#include "ginclude.h"
#include "callbacks.h"
#include "interface.h"
#include "support.h"
#include "gfuncts.h"
#include "common.h"
void on_new1_activate()
{
RestoreDefault();
info ("Restored to default values\n");
}
void on_about1_activate()
{
GtkWidget* AboutWin = create_AboutWin ();
gtk_widget_show (AboutWin);
}
void on_quit1_activate()
{
gtk_exit(0);
}
void on_full_mode2_activate()
{
ck.linkl=~ck.linkl;
if (ck.linkl) /* work on datalink */
gtk_widget_set_sensitive (DatalinkFrame, TRUE);
else
gtk_widget_set_sensitive (DatalinkFrame, FALSE);
}
void on_add_data2_activate()
{
GtkWidget *DataWin = create_DataWin ();
gtk_widget_show_all (DataWin);
}
void on_send_multi_packets1_activate()
{
GtkWidget *MPackets = create_MultiPackets ();
gtk_widget_show_all (MPackets);
}
void on_ecn_support1_activate()
{
GtkWidget *EcnWIN = create_ECNWin ();
gtk_widget_show_all (EcnWIN);
}
void on_syn_checkbutton_toggled()
{
f.syn=~f.syn;
}
void on_fin_checkbutton_toggled()
{
f.fin=~f.fin;
}
void on_push_checkbutton_toggled()
{
f.psh=~f.psh;
}
void on_ack_checkbutton_toggled()
{
f.ack=~f.ack;
}
void on_rst_checkbutton_toggled()
{
f.rst=~f.rst;
}
void on_urg_checkbutton_toggled()
{
f.urg=~f.urg;
}
void on_ece_checkbutton_toggled()
{
f.ece=~f.ece;
}
void on_cwr_checkbutton_toggled()
{
f.cwr=~f.cwr;
}
void on_SendButton_clicked()
{
if (SendPacket()==-1)
info ("Fatal error: cannot send packet!\n");
}
void on_DataButton_toggled()
{
ck.data=~ck.data;
if (ck.data)
gtk_widget_set_sensitive (DataEntry, TRUE);
else
gtk_widget_set_sensitive (DataEntry, FALSE);
}
void on_MultiButton_toggled()
{
ck.multi=~ck.multi;
if (ck.multi)
gtk_widget_set_sensitive (table2, TRUE);
else
gtk_widget_set_sensitive (table2, FALSE);
}
void on_NumberEntryMulti_changed()
{
if (strtoll(gtk_entry_get_text(GTK_ENTRY(NumberEntryMulti)), NULL, 10)<0 ||
strtoll(gtk_entry_get_text(GTK_ENTRY(NumberEntryMulti)), NULL, 10)>4294967295U)
{
gtk_entry_set_text(GTK_ENTRY(NumberEntryMulti), "10");
info ("Multi mode: invalid number value\n");
}
else
m.number=strtoul(gtk_entry_get_text(GTK_ENTRY(NumberEntryMulti)), NULL, 10);
}
void on_DelayEntryMulty_changed()
{
if (strtoll(gtk_entry_get_text(GTK_ENTRY(DelayEntryMulty)), NULL, 10)<0 ||
strtoll(gtk_entry_get_text(GTK_ENTRY(DelayEntryMulty)), NULL, 10)>4294967295U)
{
gtk_entry_set_text(GTK_ENTRY(DelayEntryMulty), "100");
info ("Multi mode: invalid delay value\n");
}
else
m.delay=strtoul(gtk_entry_get_text(GTK_ENTRY(DelayEntryMulty)), NULL, 10); /* ms */
}
void on_DataEntry_changed()
{
sprintf (data, (char *) gtk_entry_get_text (GTK_ENTRY((DataEntry))));
}
void on_dscpEntry_changed()
{
if (atoi(gtk_entry_get_text(GTK_ENTRY(dscpEntry)))>63
|| atoi(gtk_entry_get_text(GTK_ENTRY(dscpEntry)))<0)
{
gtk_entry_set_text(GTK_ENTRY(dscpEntry), "2");
info ("Differentiated service: invalid value (should be 0=<dscp<64)\n");
}
else
{
ipv4_tos.dscp=(u_short)atoi(gtk_entry_get_text(GTK_ENTRY(dscpEntry)));
UpdateTos();
}
}
void on_debug_check_activate()
{
ck.debug=~ck.debug;
}
void on_MainWin_delete_event()
{
gtk_exit(0);
}
void on_ecn_ct0_toggled()
{
ipv4_tos.ecn_ct=0;
UpdateTos();
}
void on_ecn_ct1_toggled()
{
ipv4_tos.ecn_ct=1;
UpdateTos();
}
void on_ecn_ce0_toggled()
{
ipv4_tos.ecn_ce=0;
UpdateTos();
}
void on_ecn_ce1_toggled()
{
ipv4_tos.ecn_ce=1;
UpdateTos();
}
syntax highlighted by Code2HTML, v. 0.9.1