#include "senddialog.h" #include "ui_senddialog.h" SendDialog::SendDialog(QWidget *parent) : QDialog(parent), ui(new Ui::SendDialog) { ui->setupUi(this); ui->buttonBox->addButton(tr("Send"), QDialogButtonBox::AcceptRole); } SendDialog::~SendDialog() { delete ui; } void SendDialog::changeEvent(QEvent *e) { QDialog::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; } } void SendDialog::setArp(Arp *arp) { this->arp = arp; } void SendDialog::on_buttonBox_accepted() { arp_t arpData; /* prepares ethernet frame header and arp packet data */ arpData.arp_operation = ui->comboBoxARPOperation->currentIndex() + 1; arpData.arp_mac_src = ui->lineEditARPSourceMAC->text(); arpData.arp_mac_dst = ui->lineEditARPDestinationMAC->text(); arpData.arp_ip_src = ui->lineEditARPSourceIP->text(); arpData.arp_ip_dst = ui->lineEditARPDestinationIP->text(); arpData.ether_mac_src = ui->lineEditEthernetSource->text(); arpData.ether_mac_dst = ui->lineEditEthernetDestination->text(); /* sends it */ if (!arp->sendArp(arpData)) { QMessageBox::critical(this, "", tr("An ARP Packet could not be sent. Please check the fill-in information."), QMessageBox::Ok, QMessageBox::Ok); } } void SendDialog::on_buttonBox_rejected() { close(); } void SendDialog::on_pushButtonMyMAC_1_clicked() { ui->lineEditEthernetSource->setText(arp->mac()); } void SendDialog::on_pushButtonMyMAC_2_clicked() { ui->lineEditEthernetDestination->setText(arp->mac()); } void SendDialog::on_pushButtonBcastMAC_clicked() { ui->lineEditEthernetDestination->setText("ff:ff:ff:ff:ff:ff"); } void SendDialog::on_pushButtonMyMAC_3_clicked() { ui->lineEditARPSourceMAC->setText(arp->mac()); } void SendDialog::on_pushButtonZeroMAC_clicked() { ui->lineEditARPDestinationMAC->setText("00:00:00:00:00:00"); } void SendDialog::on_pushButtonMyIP_1_clicked() { ui->lineEditARPSourceIP->setText(arp->ip()); } void SendDialog::on_pushButtonMyIP_2_clicked() { ui->lineEditARPDestinationIP->setText(arp->ip()); }