summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/configbase.ui322
-rw-r--r--noncore/net/wellenreiter/gui/mainwindow.cpp13
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp1
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.h2
4 files changed, 179 insertions, 159 deletions
diff --git a/noncore/net/wellenreiter/gui/configbase.ui b/noncore/net/wellenreiter/gui/configbase.ui
index 4fc8ea1..2c335df 100644
--- a/noncore/net/wellenreiter/gui/configbase.ui
+++ b/noncore/net/wellenreiter/gui/configbase.ui
@@ -1,190 +1,190 @@
1<!DOCTYPE UI><UI> 1<!DOCTYPE UI><UI>
2<class>WellenreiterConfigBase</class> 2<class>WellenreiterConfigBase</class>
3<widget> 3<widget>
4 <class>QDialog</class> 4 <class>QDialog</class>
5 <property stdset="1"> 5 <property stdset="1">
6 <name>name</name> 6 <name>name</name>
7 <cstring>WellenreiterConfigBase</cstring> 7 <cstring>WellenreiterConfigBase</cstring>
8 </property> 8 </property>
9 <property stdset="1"> 9 <property stdset="1">
10 <name>geometry</name> 10 <name>geometry</name>
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>286</width> 14 <width>303</width>
15 <height>345</height> 15 <height>343</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
18 <property stdset="1"> 18 <property stdset="1">
19 <name>caption</name> 19 <name>caption</name>
20 <string>Wellenreiter II COnfiguration Dialog</string> 20 <string>Wellenreiter II COnfiguration Dialog</string>
21 </property> 21 </property>
22 <property> 22 <property>
23 <name>layoutMargin</name> 23 <name>layoutMargin</name>
24 </property> 24 </property>
25 <property> 25 <property>
26 <name>layoutSpacing</name> 26 <name>layoutSpacing</name>
27 </property> 27 </property>
28 <grid> 28 <grid>
29 <property stdset="1"> 29 <property stdset="1">
30 <name>margin</name> 30 <name>margin</name>
31 <number>2</number> 31 <number>2</number>
32 </property> 32 </property>
33 <property stdset="1"> 33 <property stdset="1">
34 <name>spacing</name> 34 <name>spacing</name>
35 <number>3</number> 35 <number>3</number>
36 </property> 36 </property>
37 <widget row="0" column="0" > 37 <widget row="0" column="0" >
38 <class>QTabWidget</class> 38 <class>QTabWidget</class>
39 <property stdset="1"> 39 <property stdset="1">
40 <name>name</name> 40 <name>name</name>
41 <cstring>tab</cstring> 41 <cstring>tab</cstring>
42 </property> 42 </property>
43 <property> 43 <property>
44 <name>layoutMargin</name> 44 <name>layoutMargin</name>
45 </property> 45 </property>
46 <property> 46 <property>
47 <name>layoutSpacing</name> 47 <name>layoutSpacing</name>
48 </property> 48 </property>
49 <widget> 49 <widget>
50 <class>QWidget</class> 50 <class>QWidget</class>
51 <property stdset="1"> 51 <property stdset="1">
52 <name>name</name> 52 <name>name</name>
53 <cstring>tab</cstring> 53 <cstring>tab</cstring>
54 </property> 54 </property>
55 <attribute> 55 <attribute>
56 <name>title</name> 56 <name>title</name>
57 <string>Interface</string> 57 <string>Interface</string>
58 </attribute> 58 </attribute>
59 <vbox> 59 <vbox>
60 <property stdset="1"> 60 <property stdset="1">
61 <name>margin</name> 61 <name>margin</name>
62 <number>11</number> 62 <number>6</number>
63 </property> 63 </property>
64 <property stdset="1"> 64 <property stdset="1">
65 <name>spacing</name> 65 <name>spacing</name>
66 <number>6</number> 66 <number>6</number>
67 </property> 67 </property>
68 <widget> 68 <widget>
69 <class>QLayoutWidget</class> 69 <class>QLayoutWidget</class>
70 <property stdset="1"> 70 <property stdset="1">
71 <name>name</name> 71 <name>name</name>
72 <cstring>Layout7</cstring> 72 <cstring>Layout7</cstring>
73 </property> 73 </property>
74 <grid> 74 <grid>
75 <property stdset="1"> 75 <property stdset="1">
76 <name>margin</name> 76 <name>margin</name>
77 <number>0</number> 77 <number>0</number>
78 </property> 78 </property>
79 <property stdset="1"> 79 <property stdset="1">
80 <name>spacing</name> 80 <name>spacing</name>
81 <number>6</number> 81 <number>6</number>
82 </property> 82 </property>
83 <widget row="1" column="1" > 83 <widget row="1" column="1" >
84 <class>QComboBox</class> 84 <class>QComboBox</class>
85 <item> 85 <item>
86 <property> 86 <property>
87 <name>text</name> 87 <name>text</name>
88 <string>&lt;select&gt;</string> 88 <string>&lt;select&gt;</string>
89 </property> 89 </property>
90 </item> 90 </item>
91 <item> 91 <item>
92 <property> 92 <property>
93 <name>text</name> 93 <name>text</name>
94 <string>cisco</string> 94 <string>cisco</string>
95 </property> 95 </property>
96 </item> 96 </item>
97 <item> 97 <item>
98 <property> 98 <property>
99 <name>text</name> 99 <name>text</name>
100 <string>wlan-ng</string> 100 <string>wlan-ng</string>
101 </property> 101 </property>
102 </item> 102 </item>
103 <item> 103 <item>
104 <property> 104 <property>
105 <name>text</name> 105 <name>text</name>
106 <string>hostap</string> 106 <string>hostap</string>
107 </property> 107 </property>
108 </item> 108 </item>
109 <item> 109 <item>
110 <property> 110 <property>
111 <name>text</name> 111 <name>text</name>
112 <string>orinoco</string> 112 <string>orinoco</string>
113 </property> 113 </property>
114 </item> 114 </item>
115 <item> 115 <item>
116 <property> 116 <property>
117 <name>text</name> 117 <name>text</name>
118 <string>&lt;manual&gt;</string> 118 <string>&lt;manual&gt;</string>
119 </property> 119 </property>
120 </item> 120 </item>
121 <item> 121 <item>
122 <property> 122 <property>
123 <name>text</name> 123 <name>text</name>
124 <string>&lt;file&gt;</string> 124 <string>&lt;file&gt;</string>
125 </property> 125 </property>
126 </item> 126 </item>
127 <property stdset="1"> 127 <property stdset="1">
128 <name>name</name> 128 <name>name</name>
129 <cstring>deviceType</cstring> 129 <cstring>deviceType</cstring>
130 </property> 130 </property>
131 <property stdset="1"> 131 <property stdset="1">
132 <name>enabled</name> 132 <name>enabled</name>
133 <bool>true</bool> 133 <bool>true</bool>
134 </property> 134 </property>
135 <property stdset="1"> 135 <property stdset="1">
136 <name>sizePolicy</name> 136 <name>sizePolicy</name>
137 <sizepolicy> 137 <sizepolicy>
138 <hsizetype>7</hsizetype> 138 <hsizetype>7</hsizetype>
139 <vsizetype>0</vsizetype> 139 <vsizetype>0</vsizetype>
140 </sizepolicy> 140 </sizepolicy>
141 </property> 141 </property>
142 <property> 142 <property>
143 <name>whatsThis</name> 143 <name>whatsThis</name>
144 <string>Choose the type of driver used for sniffing.</string> 144 <string>Choose the type of driver used for sniffing.</string>
145 </property> 145 </property>
146 </widget> 146 </widget>
147 <widget row="1" column="0" > 147 <widget row="1" column="0" >
148 <class>QLabel</class> 148 <class>QLabel</class>
149 <property stdset="1"> 149 <property stdset="1">
150 <name>name</name> 150 <name>name</name>
151 <cstring>TextLabel2_3</cstring> 151 <cstring>TextLabel2_3</cstring>
152 </property> 152 </property>
153 <property stdset="1"> 153 <property stdset="1">
154 <name>enabled</name> 154 <name>enabled</name>
155 <bool>true</bool> 155 <bool>true</bool>
156 </property> 156 </property>
157 <property stdset="1"> 157 <property stdset="1">
158 <name>text</name> 158 <name>text</name>
159 <string>Driver:</string> 159 <string>Driver:</string>
160 </property> 160 </property>
161 </widget> 161 </widget>
162 <widget row="0" column="1" > 162 <widget row="0" column="1" >
163 <class>QComboBox</class> 163 <class>QComboBox</class>
164 <property stdset="1"> 164 <property stdset="1">
165 <name>name</name> 165 <name>name</name>
166 <cstring>interfaceName</cstring> 166 <cstring>interfaceName</cstring>
167 </property> 167 </property>
168 <property stdset="1"> 168 <property stdset="1">
169 <name>enabled</name> 169 <name>enabled</name>
170 <bool>true</bool> 170 <bool>true</bool>
171 </property> 171 </property>
172 <property stdset="1"> 172 <property stdset="1">
173 <name>sizePolicy</name> 173 <name>sizePolicy</name>
174 <sizepolicy> 174 <sizepolicy>
175 <hsizetype>7</hsizetype> 175 <hsizetype>7</hsizetype>
176 <vsizetype>0</vsizetype> 176 <vsizetype>0</vsizetype>
177 </sizepolicy> 177 </sizepolicy>
178 </property> 178 </property>
179 <property stdset="1"> 179 <property stdset="1">
180 <name>editable</name> 180 <name>editable</name>
181 <bool>false</bool> 181 <bool>false</bool>
182 </property> 182 </property>
183 <property> 183 <property>
184 <name>whatsThis</name> 184 <name>whatsThis</name>
185 <string>Choose the interface used for sniffing.</string> 185 <string>Choose the interface used for sniffing.</string>
186 </property> 186 </property>
187 </widget> 187 </widget>
188 <widget row="0" column="0" > 188 <widget row="0" column="0" >
189 <class>QLabel</class> 189 <class>QLabel</class>
190 <property stdset="1"> 190 <property stdset="1">
@@ -581,737 +581,753 @@
581 <property stdset="1"> 581 <property stdset="1">
582 <name>enabled</name> 582 <name>enabled</name>
583 <bool>false</bool> 583 <bool>false</bool>
584 </property> 584 </property>
585 <property stdset="1"> 585 <property stdset="1">
586 <name>sizePolicy</name> 586 <name>sizePolicy</name>
587 <sizepolicy> 587 <sizepolicy>
588 <hsizetype>7</hsizetype> 588 <hsizetype>7</hsizetype>
589 <vsizetype>7</vsizetype> 589 <vsizetype>7</vsizetype>
590 </sizepolicy> 590 </sizepolicy>
591 </property> 591 </property>
592 </widget> 592 </widget>
593 <widget row="1" column="0" rowspan="1" colspan="3" > 593 <widget row="1" column="0" rowspan="1" colspan="3" >
594 <class>QLineEdit</class> 594 <class>QLineEdit</class>
595 <property stdset="1"> 595 <property stdset="1">
596 <name>name</name> 596 <name>name</name>
597 <cstring>captureFileName</cstring> 597 <cstring>captureFileName</cstring>
598 </property> 598 </property>
599 <property stdset="1"> 599 <property stdset="1">
600 <name>enabled</name> 600 <name>enabled</name>
601 <bool>false</bool> 601 <bool>false</bool>
602 </property> 602 </property>
603 <property stdset="1"> 603 <property stdset="1">
604 <name>text</name> 604 <name>text</name>
605 <string>/tmp/capture</string> 605 <string>/tmp/capture</string>
606 </property> 606 </property>
607 </widget> 607 </widget>
608 <widget row="0" column="2" > 608 <widget row="0" column="2" >
609 <class>QToolButton</class> 609 <class>QToolButton</class>
610 <property stdset="1"> 610 <property stdset="1">
611 <name>name</name> 611 <name>name</name>
612 <cstring>getCaptureFileName</cstring> 612 <cstring>getCaptureFileName</cstring>
613 </property> 613 </property>
614 <property stdset="1"> 614 <property stdset="1">
615 <name>enabled</name> 615 <name>enabled</name>
616 <bool>false</bool> 616 <bool>false</bool>
617 </property> 617 </property>
618 <property stdset="1"> 618 <property stdset="1">
619 <name>text</name> 619 <name>text</name>
620 <string>Browse</string> 620 <string>Browse</string>
621 </property> 621 </property>
622 </widget> 622 </widget>
623 <spacer row="0" column="1" > 623 <spacer row="0" column="1" >
624 <property> 624 <property>
625 <name>name</name> 625 <name>name</name>
626 <cstring>Spacer2</cstring> 626 <cstring>Spacer2</cstring>
627 </property> 627 </property>
628 <property stdset="1"> 628 <property stdset="1">
629 <name>orientation</name> 629 <name>orientation</name>
630 <enum>Horizontal</enum> 630 <enum>Horizontal</enum>
631 </property> 631 </property>
632 <property stdset="1"> 632 <property stdset="1">
633 <name>sizeType</name> 633 <name>sizeType</name>
634 <enum>Expanding</enum> 634 <enum>Expanding</enum>
635 </property> 635 </property>
636 <property> 636 <property>
637 <name>sizeHint</name> 637 <name>sizeHint</name>
638 <size> 638 <size>
639 <width>20</width> 639 <width>20</width>
640 <height>20</height> 640 <height>20</height>
641 </size> 641 </size>
642 </property> 642 </property>
643 </spacer> 643 </spacer>
644 <widget row="0" column="0" > 644 <widget row="0" column="0" >
645 <class>QCheckBox</class> 645 <class>QCheckBox</class>
646 <property stdset="1"> 646 <property stdset="1">
647 <name>name</name> 647 <name>name</name>
648 <cstring>writeCaptureFile</cstring> 648 <cstring>writeCaptureFile</cstring>
649 </property> 649 </property>
650 <property stdset="1"> 650 <property stdset="1">
651 <name>enabled</name> 651 <name>enabled</name>
652 <bool>true</bool> 652 <bool>true</bool>
653 </property> 653 </property>
654 <property stdset="1"> 654 <property stdset="1">
655 <name>text</name> 655 <name>text</name>
656 <string>Write Capture Files To</string> 656 <string>Write Capture Files To</string>
657 </property> 657 </property>
658 </widget> 658 </widget>
659 </grid> 659 </grid>
660 </widget> 660 </widget>
661 <widget> 661 <widget>
662 <class>QWidget</class> 662 <class>QWidget</class>
663 <property stdset="1"> 663 <property stdset="1">
664 <name>name</name> 664 <name>name</name>
665 <cstring>tab</cstring> 665 <cstring>tab</cstring>
666 </property> 666 </property>
667 <attribute> 667 <attribute>
668 <name>title</name> 668 <name>title</name>
669 <string>Parse</string> 669 <string>Parse</string>
670 </attribute> 670 </attribute>
671 <grid> 671 <grid>
672 <property stdset="1"> 672 <property stdset="1">
673 <name>margin</name> 673 <name>margin</name>
674 <number>5</number> 674 <number>5</number>
675 </property> 675 </property>
676 <property stdset="1"> 676 <property stdset="1">
677 <name>spacing</name> 677 <name>spacing</name>
678 <number>3</number> 678 <number>3</number>
679 </property> 679 </property>
680 <widget row="0" column="0" > 680 <widget row="0" column="0" >
681 <class>ProtocolListView</class> 681 <class>ProtocolListView</class>
682 <property stdset="1"> 682 <property stdset="1">
683 <name>name</name> 683 <name>name</name>
684 <cstring>parsePackets</cstring> 684 <cstring>parsePackets</cstring>
685 </property> 685 </property>
686 <property stdset="1"> 686 <property stdset="1">
687 <name>sizePolicy</name> 687 <name>sizePolicy</name>
688 <sizepolicy> 688 <sizepolicy>
689 <hsizetype>7</hsizetype> 689 <hsizetype>7</hsizetype>
690 <vsizetype>7</vsizetype> 690 <vsizetype>7</vsizetype>
691 </sizepolicy> 691 </sizepolicy>
692 </property> 692 </property>
693 </widget> 693 </widget>
694 </grid> 694 </grid>
695 </widget> 695 </widget>
696 <widget> 696 <widget>
697 <class>QWidget</class> 697 <class>QWidget</class>
698 <property stdset="1"> 698 <property stdset="1">
699 <name>name</name> 699 <name>name</name>
700 <cstring>tab</cstring> 700 <cstring>tab</cstring>
701 </property> 701 </property>
702 <attribute> 702 <attribute>
703 <name>title</name> 703 <name>title</name>
704 <string>UI</string> 704 <string>UI</string>
705 </attribute> 705 </attribute>
706 <vbox> 706 <vbox>
707 <property stdset="1"> 707 <property stdset="1">
708 <name>margin</name> 708 <name>margin</name>
709 <number>11</number> 709 <number>6</number>
710 </property> 710 </property>
711 <property stdset="1"> 711 <property stdset="1">
712 <name>spacing</name> 712 <name>spacing</name>
713 <number>6</number> 713 <number>6</number>
714 </property> 714 </property>
715 <widget> 715 <widget>
716 <class>QCheckBox</class> 716 <class>QCheckBox</class>
717 <property stdset="1"> 717 <property stdset="1">
718 <name>name</name> 718 <name>name</name>
719 <cstring>lookupVendor</cstring> 719 <cstring>lookupVendor</cstring>
720 </property> 720 </property>
721 <property stdset="1"> 721 <property stdset="1">
722 <name>text</name> 722 <name>text</name>
723 <string>Lookup MAC vendor names</string> 723 <string>Lookup MAC vendor names</string>
724 </property> 724 </property>
725 </widget> 725 </widget>
726 <widget> 726 <widget>
727 <class>QCheckBox</class> 727 <class>QCheckBox</class>
728 <property stdset="1"> 728 <property stdset="1">
729 <name>name</name> 729 <name>name</name>
730 <cstring>openTree</cstring> 730 <cstring>openTree</cstring>
731 </property> 731 </property>
732 <property stdset="1"> 732 <property stdset="1">
733 <name>text</name> 733 <name>text</name>
734 <string>Open Tree On New Station</string> 734 <string>Open Tree On New Station</string>
735 </property> 735 </property>
736 </widget> 736 </widget>
737 <widget> 737 <widget>
738 <class>QCheckBox</class> 738 <class>QCheckBox</class>
739 <property stdset="1"> 739 <property stdset="1">
740 <name>name</name> 740 <name>name</name>
741 <cstring>disablePM</cstring> 741 <cstring>disablePM</cstring>
742 </property> 742 </property>
743 <property stdset="1"> 743 <property stdset="1">
744 <name>text</name> 744 <name>text</name>
745 <string>Disable Power Management</string> 745 <string>Disable Power Management</string>
746 </property> 746 </property>
747 </widget> 747 </widget>
748 <spacer> 748 <spacer>
749 <property> 749 <property>
750 <name>name</name> 750 <name>name</name>
751 <cstring>Spacer3</cstring> 751 <cstring>Spacer3</cstring>
752 </property> 752 </property>
753 <property stdset="1"> 753 <property stdset="1">
754 <name>orientation</name> 754 <name>orientation</name>
755 <enum>Vertical</enum> 755 <enum>Vertical</enum>
756 </property> 756 </property>
757 <property stdset="1"> 757 <property stdset="1">
758 <name>sizeType</name> 758 <name>sizeType</name>
759 <enum>Expanding</enum> 759 <enum>Expanding</enum>
760 </property> 760 </property>
761 <property> 761 <property>
762 <name>sizeHint</name> 762 <name>sizeHint</name>
763 <size> 763 <size>
764 <width>20</width> 764 <width>20</width>
765 <height>20</height> 765 <height>20</height>
766 </size> 766 </size>
767 </property> 767 </property>
768 </spacer> 768 </spacer>
769 <widget> 769 <widget>
770 <class>QGroupBox</class> 770 <class>QGroupBox</class>
771 <property stdset="1"> 771 <property stdset="1">
772 <name>name</name> 772 <name>name</name>
773 <cstring>GroupBox4_2</cstring> 773 <cstring>GroupBox4_2</cstring>
774 </property> 774 </property>
775 <property stdset="1"> 775 <property stdset="1">
776 <name>enabled</name>
777 <bool>false</bool>
778 </property>
779 <property stdset="1">
776 <name>title</name> 780 <name>title</name>
777 <string>Action On Detecting</string> 781 <string>Action On Detecting</string>
778 </property> 782 </property>
779 <grid> 783 <grid>
780 <property stdset="1"> 784 <property stdset="1">
781 <name>margin</name> 785 <name>margin</name>
782 <number>11</number> 786 <number>11</number>
783 </property> 787 </property>
784 <property stdset="1"> 788 <property stdset="1">
785 <name>spacing</name> 789 <name>spacing</name>
786 <number>6</number> 790 <number>6</number>
787 </property> 791 </property>
788 <widget row="1" column="0" > 792 <widget row="1" column="0" >
789 <class>QLabel</class> 793 <class>QLabel</class>
790 <property stdset="1"> 794 <property stdset="1">
791 <name>name</name> 795 <name>name</name>
792 <cstring>TextLabel2</cstring> 796 <cstring>TextLabel2</cstring>
793 </property> 797 </property>
794 <property stdset="1"> 798 <property stdset="1">
795 <name>text</name> 799 <name>text</name>
796 <string>New Wireless Station</string> 800 <string>New Wireless Station</string>
797 </property> 801 </property>
798 </widget> 802 </widget>
799 <widget row="0" column="0" > 803 <widget row="0" column="0" >
800 <class>QLabel</class> 804 <class>QLabel</class>
801 <property stdset="1"> 805 <property stdset="1">
802 <name>name</name> 806 <name>name</name>
803 <cstring>TextLabel1_3</cstring> 807 <cstring>TextLabel1_3</cstring>
804 </property> 808 </property>
805 <property stdset="1"> 809 <property stdset="1">
806 <name>text</name> 810 <name>text</name>
807 <string>New Network</string> 811 <string>New Network</string>
808 </property> 812 </property>
809 </widget> 813 </widget>
810 <widget row="0" column="1" > 814 <widget row="0" column="1" >
811 <class>QComboBox</class> 815 <class>QComboBox</class>
812 <property stdset="1"> 816 <property stdset="1">
813 <name>name</name> 817 <name>name</name>
814 <cstring>newNetwork</cstring> 818 <cstring>newNetwork</cstring>
815 </property> 819 </property>
816 </widget> 820 </widget>
817 <widget row="1" column="1" > 821 <widget row="1" column="1" >
818 <class>QComboBox</class> 822 <class>QComboBox</class>
819 <property stdset="1"> 823 <property stdset="1">
820 <name>name</name> 824 <name>name</name>
821 <cstring>newWirelessStation</cstring> 825 <cstring>newWirelessStation</cstring>
822 </property> 826 </property>
823 </widget> 827 </widget>
824 <widget row="2" column="1" > 828 <widget row="2" column="1" >
825 <class>QComboBox</class> 829 <class>QComboBox</class>
826 <property stdset="1"> 830 <property stdset="1">
827 <name>name</name> 831 <name>name</name>
828 <cstring>newStation</cstring> 832 <cstring>newStation</cstring>
829 </property> 833 </property>
830 </widget> 834 </widget>
831 <widget row="2" column="0" > 835 <widget row="2" column="0" >
832 <class>QLabel</class> 836 <class>QLabel</class>
833 <property stdset="1"> 837 <property stdset="1">
834 <name>name</name> 838 <name>name</name>
835 <cstring>TextLabel3</cstring> 839 <cstring>TextLabel3</cstring>
836 </property> 840 </property>
837 <property stdset="1"> 841 <property stdset="1">
838 <name>text</name> 842 <name>text</name>
839 <string>New Station</string> 843 <string>New Station</string>
840 </property> 844 </property>
841 </widget> 845 </widget>
842 </grid> 846 </grid>
843 </widget> 847 </widget>
844 </vbox> 848 </vbox>
845 </widget> 849 </widget>
846 <widget> 850 <widget>
847 <class>QWidget</class> 851 <class>QWidget</class>
848 <property stdset="1"> 852 <property stdset="1">
849 <name>name</name> 853 <name>name</name>
850 <cstring>tab</cstring> 854 <cstring>tab</cstring>
851 </property> 855 </property>
852 <attribute> 856 <attribute>
853 <name>title</name> 857 <name>title</name>
854 <string>Intrusion</string> 858 <string>Intrusion</string>
855 </attribute> 859 </attribute>
856 <grid> 860 <grid>
857 <property stdset="1"> 861 <property stdset="1">
858 <name>margin</name> 862 <name>margin</name>
859 <number>11</number> 863 <number>6</number>
860 </property> 864 </property>
861 <property stdset="1"> 865 <property stdset="1">
862 <name>spacing</name> 866 <name>spacing</name>
863 <number>6</number> 867 <number>6</number>
864 </property> 868 </property>
865 <widget row="1" column="0" > 869 <widget row="1" column="0" >
866 <class>QGroupBox</class> 870 <class>QGroupBox</class>
867 <property stdset="1"> 871 <property stdset="1">
868 <name>name</name> 872 <name>name</name>
869 <cstring>GroupBox3</cstring> 873 <cstring>GroupBox3</cstring>
870 </property> 874 </property>
871 <property stdset="1"> 875 <property stdset="1">
872 <name>enabled</name> 876 <name>enabled</name>
873 <bool>false</bool> 877 <bool>false</bool>
874 </property> 878 </property>
875 <property stdset="1"> 879 <property stdset="1">
876 <name>title</name> 880 <name>title</name>
877 <string>Link Level</string> 881 <string>Link Level</string>
878 </property> 882 </property>
879 <grid> 883 <grid>
880 <property stdset="1"> 884 <property stdset="1">
881 <name>margin</name> 885 <name>margin</name>
882 <number>11</number> 886 <number>11</number>
883 </property> 887 </property>
884 <property stdset="1"> 888 <property stdset="1">
885 <name>spacing</name> 889 <name>spacing</name>
886 <number>6</number> 890 <number>6</number>
887 </property> 891 </property>
888 <widget row="0" column="0" > 892 <widget row="0" column="0" >
889 <class>QLabel</class> 893 <class>QLabel</class>
890 <property stdset="1"> 894 <property stdset="1">
891 <name>name</name> 895 <name>name</name>
892 <cstring>TextLabel1_5</cstring> 896 <cstring>TextLabel1_5</cstring>
893 </property> 897 </property>
894 <property stdset="1"> 898 <property stdset="1">
895 <name>text</name> 899 <name>text</name>
896 <string>Fake Mac:</string> 900 <string>Fake Mac:</string>
897 </property> 901 </property>
898 </widget> 902 </widget>
899 <widget row="1" column="0" rowspan="1" colspan="2" > 903 <widget row="1" column="0" rowspan="1" colspan="2" >
900 <class>QCheckBox</class> 904 <class>QCheckBox</class>
901 <property stdset="1"> 905 <property stdset="1">
902 <name>name</name> 906 <name>name</name>
903 <cstring>sendProbeRequests</cstring> 907 <cstring>sendProbeRequests</cstring>
904 </property> 908 </property>
905 <property stdset="1"> 909 <property stdset="1">
906 <name>text</name> 910 <name>text</name>
907 <string>Send proble requests</string> 911 <string>Send proble requests</string>
908 </property> 912 </property>
909 </widget> 913 </widget>
910 <widget row="0" column="1" > 914 <widget row="0" column="1" >
911 <class>QComboBox</class> 915 <class>QComboBox</class>
912 <item> 916 <item>
913 <property> 917 <property>
914 <name>text</name> 918 <name>text</name>
915 <string>&lt;automatic&gt;</string> 919 <string>&lt;automatic&gt;</string>
916 </property> 920 </property>
917 </item> 921 </item>
918 <item> 922 <item>
919 <property> 923 <property>
920 <name>text</name> 924 <name>text</name>
921 <string>44:44:44:44:44:44</string> 925 <string>44:44:44:44:44:44</string>
922 </property> 926 </property>
923 </item> 927 </item>
924 <property stdset="1"> 928 <property stdset="1">
925 <name>name</name> 929 <name>name</name>
926 <cstring>fakeMac</cstring> 930 <cstring>fakeMac</cstring>
927 </property> 931 </property>
928 <property stdset="1"> 932 <property stdset="1">
929 <name>sizePolicy</name> 933 <name>sizePolicy</name>
930 <sizepolicy> 934 <sizepolicy>
931 <hsizetype>7</hsizetype> 935 <hsizetype>7</hsizetype>
932 <vsizetype>0</vsizetype> 936 <vsizetype>0</vsizetype>
933 </sizepolicy> 937 </sizepolicy>
934 </property> 938 </property>
935 <property stdset="1"> 939 <property stdset="1">
936 <name>editable</name> 940 <name>editable</name>
937 <bool>true</bool> 941 <bool>true</bool>
938 </property> 942 </property>
939 <property stdset="1"> 943 <property stdset="1">
940 <name>currentItem</name> 944 <name>currentItem</name>
941 <number>1</number> 945 <number>1</number>
942 </property> 946 </property>
943 <property stdset="1"> 947 <property stdset="1">
944 <name>autoCompletion</name> 948 <name>autoCompletion</name>
945 <bool>true</bool> 949 <bool>true</bool>
946 </property> 950 </property>
947 </widget> 951 </widget>
948 <widget row="2" column="0" rowspan="1" colspan="2" > 952 <widget row="2" column="0" rowspan="1" colspan="2" >
949 <class>QCheckBox</class> 953 <class>QCheckBox</class>
950 <property stdset="1"> 954 <property stdset="1">
951 <name>name</name> 955 <name>name</name>
952 <cstring>tryToAuthenticate</cstring> 956 <cstring>tryToAuthenticate</cstring>
953 </property> 957 </property>
954 <property stdset="1"> 958 <property stdset="1">
955 <name>text</name> 959 <name>text</name>
956 <string>Try to authenticate</string> 960 <string>Try to authenticate</string>
957 </property> 961 </property>
958 </widget> 962 </widget>
959 </grid> 963 </grid>
960 </widget> 964 </widget>
961 <widget row="0" column="0" > 965 <widget row="0" column="0" >
962 <class>QCheckBox</class> 966 <class>QCheckBox</class>
963 <property stdset="1"> 967 <property stdset="1">
964 <name>name</name> 968 <name>name</name>
965 <cstring>enableActiveScanning</cstring> 969 <cstring>enableActiveScanning</cstring>
966 </property> 970 </property>
967 <property stdset="1"> 971 <property stdset="1">
968 <name>enabled</name> 972 <name>enabled</name>
969 <bool>false</bool> 973 <bool>false</bool>
970 </property> 974 </property>
971 <property stdset="1"> 975 <property stdset="1">
972 <name>text</name> 976 <name>text</name>
973 <string>Enable active scanning</string> 977 <string>Enable active scanning</string>
974 </property> 978 </property>
975 </widget> 979 </widget>
976 <widget row="2" column="0" > 980 <widget row="2" column="0" >
977 <class>QGroupBox</class> 981 <class>QGroupBox</class>
978 <property stdset="1"> 982 <property stdset="1">
979 <name>name</name> 983 <name>name</name>
980 <cstring>GroupBox4</cstring> 984 <cstring>GroupBox4</cstring>
981 </property> 985 </property>
982 <property stdset="1"> 986 <property stdset="1">
983 <name>enabled</name> 987 <name>enabled</name>
984 <bool>false</bool> 988 <bool>false</bool>
985 </property> 989 </property>
986 <property stdset="1"> 990 <property stdset="1">
987 <name>title</name> 991 <name>title</name>
988 <string>IP Level</string> 992 <string>IP Level</string>
989 </property> 993 </property>
990 <grid> 994 <grid>
991 <property stdset="1"> 995 <property stdset="1">
992 <name>margin</name> 996 <name>margin</name>
993 <number>11</number> 997 <number>11</number>
994 </property> 998 </property>
995 <property stdset="1"> 999 <property stdset="1">
996 <name>spacing</name> 1000 <name>spacing</name>
997 <number>6</number> 1001 <number>6</number>
998 </property> 1002 </property>
999 <widget row="1" column="0" rowspan="1" colspan="2" > 1003 <widget row="1" column="0" rowspan="1" colspan="2" >
1000 <class>QCheckBox</class> 1004 <class>QCheckBox</class>
1001 <property stdset="1"> 1005 <property stdset="1">
1002 <name>name</name> 1006 <name>name</name>
1003 <cstring>CheckBox24</cstring> 1007 <cstring>CheckBox24</cstring>
1004 </property> 1008 </property>
1005 <property stdset="1"> 1009 <property stdset="1">
1006 <name>text</name> 1010 <name>text</name>
1007 <string>Request DHCP Address</string> 1011 <string>Request DHCP Address</string>
1008 </property> 1012 </property>
1009 </widget> 1013 </widget>
1010 <widget row="0" column="0" > 1014 <widget row="0" column="0" >
1011 <class>QLabel</class> 1015 <class>QLabel</class>
1012 <property stdset="1"> 1016 <property stdset="1">
1013 <name>name</name> 1017 <name>name</name>
1014 <cstring>TextLabel1_5_2</cstring> 1018 <cstring>TextLabel1_5_2</cstring>
1015 </property> 1019 </property>
1016 <property stdset="1"> 1020 <property stdset="1">
1017 <name>text</name> 1021 <name>text</name>
1018 <string>Fake IP:</string> 1022 <string>Fake IP:</string>
1019 </property> 1023 </property>
1020 </widget> 1024 </widget>
1021 <widget row="0" column="1" > 1025 <widget row="0" column="1" >
1022 <class>QComboBox</class> 1026 <class>QComboBox</class>
1023 <item> 1027 <item>
1024 <property> 1028 <property>
1025 <name>text</name> 1029 <name>text</name>
1026 <string>192.168.125.1</string> 1030 <string>192.168.125.1</string>
1027 </property> 1031 </property>
1028 </item> 1032 </item>
1029 <item> 1033 <item>
1030 <property> 1034 <property>
1031 <name>text</name> 1035 <name>text</name>
1032 <string>&lt;automatic&gt;</string> 1036 <string>&lt;automatic&gt;</string>
1033 </property> 1037 </property>
1034 </item> 1038 </item>
1035 <property stdset="1"> 1039 <property stdset="1">
1036 <name>name</name> 1040 <name>name</name>
1037 <cstring>fakeIP</cstring> 1041 <cstring>fakeIP</cstring>
1038 </property> 1042 </property>
1039 <property stdset="1"> 1043 <property stdset="1">
1040 <name>sizePolicy</name> 1044 <name>sizePolicy</name>
1041 <sizepolicy> 1045 <sizepolicy>
1042 <hsizetype>7</hsizetype> 1046 <hsizetype>7</hsizetype>
1043 <vsizetype>0</vsizetype> 1047 <vsizetype>0</vsizetype>
1044 </sizepolicy> 1048 </sizepolicy>
1045 </property> 1049 </property>
1046 <property stdset="1"> 1050 <property stdset="1">
1047 <name>editable</name> 1051 <name>editable</name>
1048 <bool>true</bool> 1052 <bool>true</bool>
1049 </property> 1053 </property>
1050 <property stdset="1"> 1054 <property stdset="1">
1051 <name>currentItem</name> 1055 <name>currentItem</name>
1052 <number>0</number> 1056 <number>0</number>
1053 </property> 1057 </property>
1054 </widget> 1058 </widget>
1055 </grid> 1059 </grid>
1056 </widget> 1060 </widget>
1057 </grid> 1061 </grid>
1058 </widget> 1062 </widget>
1059 <widget> 1063 <widget>
1060 <class>QWidget</class> 1064 <class>QWidget</class>
1061 <property stdset="1"> 1065 <property stdset="1">
1062 <name>name</name> 1066 <name>name</name>
1063 <cstring>tab</cstring> 1067 <cstring>tab</cstring>
1064 </property> 1068 </property>
1065 <attribute> 1069 <attribute>
1066 <name>title</name> 1070 <name>title</name>
1067 <string>GPS</string> 1071 <string>GPS</string>
1068 </attribute> 1072 </attribute>
1069 <widget> 1073 <grid>
1070 <class>QLayoutWidget</class>
1071 <property stdset="1"> 1074 <property stdset="1">
1072 <name>name</name> 1075 <name>margin</name>
1073 <cstring>Layout1</cstring> 1076 <number>5</number>
1074 </property> 1077 </property>
1075 <property stdset="1"> 1078 <property stdset="1">
1076 <name>geometry</name> 1079 <name>spacing</name>
1077 <rect> 1080 <number>4</number>
1078 <x>10</x>
1079 <y>40</y>
1080 <width>216</width>
1081 <height>27</height>
1082 </rect>
1083 </property> 1081 </property>
1084 <hbox> 1082 <widget row="0" column="0" >
1085 <property stdset="1"> 1083 <class>QLayoutWidget</class>
1086 <name>margin</name>
1087 <number>0</number>
1088 </property>
1089 <property stdset="1"> 1084 <property stdset="1">
1090 <name>spacing</name> 1085 <name>name</name>
1091 <number>6</number> 1086 <cstring>Layout6</cstring>
1092 </property> 1087 </property>
1093 <widget> 1088 <vbox>
1094 <class>QLabel</class>
1095 <property stdset="1"> 1089 <property stdset="1">
1096 <name>name</name> 1090 <name>margin</name>
1097 <cstring>TextLabel1_4</cstring> 1091 <number>0</number>
1098 </property> 1092 </property>
1099 <property stdset="1"> 1093 <property stdset="1">
1100 <name>text</name> 1094 <name>spacing</name>
1101 <string>Host</string> 1095 <number>6</number>
1102 </property> 1096 </property>
1103 </widget> 1097 <widget>
1104 <widget> 1098 <class>QCheckBox</class>
1105 <class>QComboBox</class> 1099 <property stdset="1">
1106 <item> 1100 <name>name</name>
1107 <property> 1101 <cstring>enableGPS</cstring>
1102 </property>
1103 <property stdset="1">
1108 <name>text</name> 1104 <name>text</name>
1109 <string>localhost</string> 1105 <string>Enable GPS logging w/ gpsd</string>
1110 </property> 1106 </property>
1111 </item> 1107 </widget>
1112 <property stdset="1"> 1108 <widget>
1113 <name>name</name> 1109 <class>QLayoutWidget</class>
1114 <cstring>gpsdHost</cstring> 1110 <property stdset="1">
1115 </property> 1111 <name>name</name>
1116 <property stdset="1"> 1112 <cstring>Layout1</cstring>
1117 <name>enabled</name> 1113 </property>
1118 <bool>false</bool> 1114 <hbox>
1119 </property> 1115 <property stdset="1">
1120 <property stdset="1"> 1116 <name>margin</name>
1121 <name>editable</name> 1117 <number>0</number>
1122 <bool>true</bool> 1118 </property>
1123 </property> 1119 <property stdset="1">
1124 <property stdset="1"> 1120 <name>spacing</name>
1125 <name>currentItem</name> 1121 <number>6</number>
1126 <number>0</number> 1122 </property>
1127 </property> 1123 <widget>
1128 </widget> 1124 <class>QLabel</class>
1129 <widget> 1125 <property stdset="1">
1130 <class>QLabel</class> 1126 <name>name</name>
1131 <property stdset="1"> 1127 <cstring>TextLabel1_4</cstring>
1132 <name>name</name> 1128 </property>
1133 <cstring>TextLabel2_2</cstring> 1129 <property stdset="1">
1134 </property> 1130 <name>text</name>
1135 <property stdset="1"> 1131 <string>Host</string>
1136 <name>text</name> 1132 </property>
1137 <string>:</string> 1133 </widget>
1138 </property> 1134 <widget>
1139 </widget> 1135 <class>QComboBox</class>
1140 <widget> 1136 <item>
1141 <class>QSpinBox</class> 1137 <property>
1142 <property stdset="1"> 1138 <name>text</name>
1143 <name>name</name> 1139 <string>localhost</string>
1144 <cstring>gpsdPort</cstring> 1140 </property>
1145 </property> 1141 </item>
1146 <property stdset="1"> 1142 <property stdset="1">
1147 <name>enabled</name> 1143 <name>name</name>
1148 <bool>false</bool> 1144 <cstring>gpsdHost</cstring>
1149 </property> 1145 </property>
1150 <property stdset="1"> 1146 <property stdset="1">
1151 <name>maxValue</name> 1147 <name>enabled</name>
1152 <number>65535</number> 1148 <bool>false</bool>
1153 </property> 1149 </property>
1154 <property stdset="1"> 1150 <property stdset="1">
1155 <name>minValue</name> 1151 <name>editable</name>
1156 <number>1024</number> 1152 <bool>true</bool>
1157 </property> 1153 </property>
1158 <property stdset="1"> 1154 <property stdset="1">
1159 <name>value</name> 1155 <name>currentItem</name>
1160 <number>2947</number> 1156 <number>0</number>
1161 </property> 1157 </property>
1162 </widget> 1158 </widget>
1163 </hbox> 1159 <widget>
1164 </widget> 1160 <class>QLabel</class>
1165 <widget> 1161 <property stdset="1">
1166 <class>QLineEdit</class> 1162 <name>name</name>
1167 <property stdset="1"> 1163 <cstring>TextLabel2_2</cstring>
1168 <name>name</name> 1164 </property>
1169 <cstring>commandGPS</cstring> 1165 <property stdset="1">
1170 </property> 1166 <name>text</name>
1171 <property stdset="1"> 1167 <string>:</string>
1172 <name>enabled</name> 1168 </property>
1173 <bool>false</bool> 1169 </widget>
1174 </property> 1170 <widget>
1175 <property stdset="1"> 1171 <class>QSpinBox</class>
1176 <name>geometry</name> 1172 <property stdset="1">
1177 <rect> 1173 <name>name</name>
1178 <x>10</x> 1174 <cstring>gpsdPort</cstring>
1179 <y>110</y> 1175 </property>
1180 <width>210</width> 1176 <property stdset="1">
1181 <height>22</height> 1177 <name>enabled</name>
1182 </rect> 1178 <bool>false</bool>
1183 </property> 1179 </property>
1184 <property stdset="1"> 1180 <property stdset="1">
1185 <name>text</name> 1181 <name>maxValue</name>
1186 <string>gpsd -p /dev/ttyS3 -s 57600</string> 1182 <number>65535</number>
1187 </property> 1183 </property>
1188 </widget> 1184 <property stdset="1">
1189 <widget> 1185 <name>minValue</name>
1190 <class>QCheckBox</class> 1186 <number>1024</number>
1191 <property stdset="1"> 1187 </property>
1192 <name>name</name> 1188 <property stdset="1">
1193 <cstring>enableGPS</cstring> 1189 <name>value</name>
1194 </property> 1190 <number>2947</number>
1195 <property stdset="1"> 1191 </property>
1196 <name>geometry</name> 1192 </widget>
1197 <rect> 1193 </hbox>
1198 <x>10</x> 1194 </widget>
1199 <y>10</y> 1195 <widget>
1200 <width>199</width> 1196 <class>QCheckBox</class>
1201 <height>21</height> 1197 <property stdset="1">
1202 </rect> 1198 <name>name</name>
1203 </property> 1199 <cstring>startGPS</cstring>
1204 <property stdset="1"> 1200 </property>
1205 <name>text</name> 1201 <property stdset="1">
1206 <string>Enable GPS logging w/ gpsd</string> 1202 <name>text</name>
1207 </property> 1203 <string>Start gpsd on localhost</string>
1208 </widget> 1204 </property>
1209 <widget> 1205 </widget>
1210 <class>QCheckBox</class> 1206 <widget>
1211 <property stdset="1"> 1207 <class>QLineEdit</class>
1212 <name>name</name> 1208 <property stdset="1">
1213 <cstring>startGPS</cstring> 1209 <name>name</name>
1214 </property> 1210 <cstring>commandGPS</cstring>
1215 <property stdset="1"> 1211 </property>
1216 <name>geometry</name> 1212 <property stdset="1">
1217 <rect> 1213 <name>enabled</name>
1218 <x>10</x> 1214 <bool>false</bool>
1219 <y>80</y> 1215 </property>
1220 <width>171</width> 1216 <property stdset="1">
1221 <height>21</height> 1217 <name>text</name>
1222 </rect> 1218 <string>gpsd -p /dev/ttyS3 -s 57600</string>
1223 </property> 1219 </property>
1224 <property stdset="1"> 1220 </widget>
1225 <name>text</name> 1221 <spacer>
1226 <string>Start gpsd on localhost</string> 1222 <property>
1227 </property> 1223 <name>name</name>
1228 </widget> 1224 <cstring>Spacer4_2</cstring>
1225 </property>
1226 <property stdset="1">
1227 <name>orientation</name>
1228 <enum>Vertical</enum>
1229 </property>
1230 <property stdset="1">
1231 <name>sizeType</name>
1232 <enum>Expanding</enum>
1233 </property>
1234 <property>
1235 <name>sizeHint</name>
1236 <size>
1237 <width>20</width>
1238 <height>20</height>
1239 </size>
1240 </property>
1241 </spacer>
1242 </vbox>
1243 </widget>
1244 </grid>
1229 </widget> 1245 </widget>
1230 </widget> 1246 </widget>
1231 </grid> 1247 </grid>
1232</widget> 1248</widget>
1233<customwidgets> 1249<customwidgets>
1234 <customwidget> 1250 <customwidget>
1235 <class>ProtocolListView</class> 1251 <class>ProtocolListView</class>
1236 <header location="local">protolistview.h</header> 1252 <header location="local">protolistview.h</header>
1237 <sizehint> 1253 <sizehint>
1238 <width>100</width> 1254 <width>100</width>
1239 <height>100</height> 1255 <height>100</height>
1240 </sizehint> 1256 </sizehint>
1241 <container>0</container> 1257 <container>0</container>
1242 <sizepolicy> 1258 <sizepolicy>
1243 <hordata>3</hordata> 1259 <hordata>3</hordata>
1244 <verdata>3</verdata> 1260 <verdata>3</verdata>
1245 </sizepolicy> 1261 </sizepolicy>
1246 <pixmap>image0</pixmap> 1262 <pixmap>image0</pixmap>
1247 </customwidget> 1263 </customwidget>
1248</customwidgets> 1264</customwidgets>
1249<images> 1265<images>
1250 <image> 1266 <image>
1251 <name>image0</name> 1267 <name>image0</name>
1252 <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data> 1268 <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
1253 </image> 1269 </image>
1254</images> 1270</images>
1255<connections> 1271<connections>
1256 <connection> 1272 <connection>
1257 <sender>hopChannels</sender> 1273 <sender>hopChannels</sender>
1258 <signal>toggled(bool)</signal> 1274 <signal>toggled(bool)</signal>
1259 <receiver>hopInterval</receiver> 1275 <receiver>hopInterval</receiver>
1260 <slot>setEnabled(bool)</slot> 1276 <slot>setEnabled(bool)</slot>
1261 </connection> 1277 </connection>
1262 <connection> 1278 <connection>
1263 <sender>hopChannels</sender> 1279 <sender>hopChannels</sender>
1264 <signal>toggled(bool)</signal> 1280 <signal>toggled(bool)</signal>
1265 <receiver>TextLabel1</receiver> 1281 <receiver>TextLabel1</receiver>
1266 <slot>setEnabled(bool)</slot> 1282 <slot>setEnabled(bool)</slot>
1267 </connection> 1283 </connection>
1268 <connection> 1284 <connection>
1269 <sender>enableActiveScanning</sender> 1285 <sender>enableActiveScanning</sender>
1270 <signal>toggled(bool)</signal> 1286 <signal>toggled(bool)</signal>
1271 <receiver>GroupBox3</receiver> 1287 <receiver>GroupBox3</receiver>
1272 <slot>setEnabled(bool)</slot> 1288 <slot>setEnabled(bool)</slot>
1273 </connection> 1289 </connection>
1274 <connection> 1290 <connection>
1275 <sender>enableActiveScanning</sender> 1291 <sender>enableActiveScanning</sender>
1276 <signal>toggled(bool)</signal> 1292 <signal>toggled(bool)</signal>
1277 <receiver>GroupBox4</receiver> 1293 <receiver>GroupBox4</receiver>
1278 <slot>setEnabled(bool)</slot> 1294 <slot>setEnabled(bool)</slot>
1279 </connection> 1295 </connection>
1280 <connection> 1296 <connection>
1281 <sender>writeCaptureFile</sender> 1297 <sender>writeCaptureFile</sender>
1282 <signal>toggled(bool)</signal> 1298 <signal>toggled(bool)</signal>
1283 <receiver>getCaptureFileName</receiver> 1299 <receiver>getCaptureFileName</receiver>
1284 <slot>setEnabled(bool)</slot> 1300 <slot>setEnabled(bool)</slot>
1285 </connection> 1301 </connection>
1286 <connection> 1302 <connection>
1287 <sender>writeCaptureFile</sender> 1303 <sender>writeCaptureFile</sender>
1288 <signal>toggled(bool)</signal> 1304 <signal>toggled(bool)</signal>
1289 <receiver>captureFileName</receiver> 1305 <receiver>captureFileName</receiver>
1290 <slot>setEnabled(bool)</slot> 1306 <slot>setEnabled(bool)</slot>
1291 </connection> 1307 </connection>
1292 <connection> 1308 <connection>
1293 <sender>writeCaptureFile</sender> 1309 <sender>writeCaptureFile</sender>
1294 <signal>toggled(bool)</signal> 1310 <signal>toggled(bool)</signal>
1295 <receiver>capturePackets</receiver> 1311 <receiver>capturePackets</receiver>
1296 <slot>setEnabled(bool)</slot> 1312 <slot>setEnabled(bool)</slot>
1297 </connection> 1313 </connection>
1298 <connection> 1314 <connection>
1299 <sender>enableGPS</sender> 1315 <sender>enableGPS</sender>
1300 <signal>toggled(bool)</signal> 1316 <signal>toggled(bool)</signal>
1301 <receiver>gpsdHost</receiver> 1317 <receiver>gpsdHost</receiver>
1302 <slot>setEnabled(bool)</slot> 1318 <slot>setEnabled(bool)</slot>
1303 </connection> 1319 </connection>
1304 <connection> 1320 <connection>
1305 <sender>enableGPS</sender> 1321 <sender>enableGPS</sender>
1306 <signal>toggled(bool)</signal> 1322 <signal>toggled(bool)</signal>
1307 <receiver>gpsdPort</receiver> 1323 <receiver>gpsdPort</receiver>
1308 <slot>setEnabled(bool)</slot> 1324 <slot>setEnabled(bool)</slot>
1309 </connection> 1325 </connection>
1310 <connection> 1326 <connection>
1311 <sender>startGPS</sender> 1327 <sender>startGPS</sender>
1312 <signal>toggled(bool)</signal> 1328 <signal>toggled(bool)</signal>
1313 <receiver>commandGPS</receiver> 1329 <receiver>commandGPS</receiver>
1314 <slot>setEnabled(bool)</slot> 1330 <slot>setEnabled(bool)</slot>
1315 </connection> 1331 </connection>
1316</connections> 1332</connections>
1317</UI> 1333</UI>
diff --git a/noncore/net/wellenreiter/gui/mainwindow.cpp b/noncore/net/wellenreiter/gui/mainwindow.cpp
index bb46dd7..ca9851c 100644
--- a/noncore/net/wellenreiter/gui/mainwindow.cpp
+++ b/noncore/net/wellenreiter/gui/mainwindow.cpp
@@ -297,242 +297,245 @@ void WellenreiterMainWindow::fileSaveSession()
297 if ( f.open(IO_WriteOnly) ) 297 if ( f.open(IO_WriteOnly) )
298 { 298 {
299 QDataStream t( &f ); 299 QDataStream t( &f );
300 t << *mw->netView(); 300 t << *mw->netView();
301 f.close(); 301 f.close();
302 qDebug( "Saved session to file '%s'", (const char*) fname ); 302 qDebug( "Saved session to file '%s'", (const char*) fname );
303 } 303 }
304 else 304 else
305 { 305 {
306 qDebug( "Problem saving session to file '%s'", (const char*) fname ); 306 qDebug( "Problem saving session to file '%s'", (const char*) fname );
307 } 307 }
308 } 308 }
309} 309}
310 310
311void WellenreiterMainWindow::fileSaveHex() 311void WellenreiterMainWindow::fileSaveHex()
312{ 312{
313 QString fname = getFileName( true ); 313 QString fname = getFileName( true );
314 if ( !fname.isEmpty() ) 314 if ( !fname.isEmpty() )
315 { 315 {
316 QFile f( fname ); 316 QFile f( fname );
317 if ( f.open(IO_WriteOnly) ) 317 if ( f.open(IO_WriteOnly) )
318 { 318 {
319 QTextStream t( &f ); 319 QTextStream t( &f );
320 t << mw->hexWindow()->getLog(); 320 t << mw->hexWindow()->getLog();
321 f.close(); 321 f.close();
322 qDebug( "Saved hex log to file '%s'", (const char*) fname ); 322 qDebug( "Saved hex log to file '%s'", (const char*) fname );
323 } 323 }
324 else 324 else
325 { 325 {
326 qDebug( "Problem saving hex log to file '%s'", (const char*) fname ); 326 qDebug( "Problem saving hex log to file '%s'", (const char*) fname );
327 } 327 }
328 } 328 }
329} 329}
330 330
331void WellenreiterMainWindow::fileLoadSession() 331void WellenreiterMainWindow::fileLoadSession()
332{ 332{
333 QString fname = getFileName( false ); 333 QString fname = getFileName( false );
334 if ( !fname.isEmpty() ) 334 if ( !fname.isEmpty() )
335 { 335 {
336 QFile f( fname ); 336 QFile f( fname );
337 if ( f.open(IO_ReadOnly) ) 337 if ( f.open(IO_ReadOnly) )
338 { 338 {
339 QDataStream t( &f ); 339 QDataStream t( &f );
340 t >> *mw->netView(); 340 t >> *mw->netView();
341 f.close(); 341 f.close();
342 qDebug( "Loaded session from file '%s'", (const char*) fname ); 342 qDebug( "Loaded session from file '%s'", (const char*) fname );
343 } 343 }
344 else 344 else
345 { 345 {
346 qDebug( "Problem loading session from file '%s'", (const char*) fname ); 346 qDebug( "Problem loading session from file '%s'", (const char*) fname );
347 } 347 }
348 } 348 }
349} 349}
350 350
351 351
352void WellenreiterMainWindow::fileNew() 352void WellenreiterMainWindow::fileNew()
353{ 353{
354 mw->netView()->clear(); 354 mw->netView()->clear();
355 mw->logWindow()->clear(); 355 mw->logWindow()->clear();
356 mw->hexWindow()->clear(); 356 mw->hexWindow()->clear();
357} 357}
358 358
359 359
360void WellenreiterMainWindow::closeEvent( QCloseEvent* e ) 360void WellenreiterMainWindow::closeEvent( QCloseEvent* e )
361{ 361{
362 if ( mw->isDaemonRunning() ) 362 if ( mw->isDaemonRunning() )
363 { 363 {
364 QMessageBox::warning( this, "Wellenreiter/Opie", 364 QMessageBox::warning( this, "Wellenreiter/Opie",
365 tr( "Sniffing in progress!\nPlease stop sniffing before closing." ) ); 365 tr( "Sniffing in progress!\nPlease stop sniffing before closing." ) );
366 e->ignore(); 366 e->ignore();
367 } 367 }
368 else 368 else
369 { 369 {
370 QMainWindow::closeEvent( e ); 370 QMainWindow::closeEvent( e );
371 } 371 }
372} 372}
373 373
374static const char* CAP_hostname = "www.vanille.de"; 374static const char* CAP_hostname = "www.vanille.de";
375 375
376#include <netdb.h> 376#include <netdb.h>
377#include <unistd.h> 377#include <unistd.h>
378#include <sys/types.h> 378#include <sys/types.h>
379#include <sys/socket.h> 379#include <sys/socket.h>
380 380
381void WellenreiterMainWindow::uploadSession() 381void WellenreiterMainWindow::uploadSession()
382{ 382{
383 QLineEdit* from; 383 QLineEdit* from;
384 QLineEdit* location; 384 QLineEdit* location;
385 QLineEdit* comments; 385 QLineEdit* comments;
386 QPushButton* accept; 386 QPushButton* accept;
387 QPushButton* reject; 387 QPushButton* reject;
388 388
389 QDialog* d = new QDialog( 0, "session upload", true ); 389 QDialog* d = new QDialog( 0, "session upload", true );
390 d->setCaption( tr( "Upload Session" ) ); 390 d->setCaption( tr( "Upload Session" ) );
391 QGridLayout* g = new QGridLayout( d, 4, 2, 3 ); 391 QGridLayout* g = new QGridLayout( d, 4, 2, 3 );
392 g->addWidget( new QLabel( tr( "From: " ), d ), 0, 0 ); 392 g->addWidget( new QLabel( tr( "From: " ), d ), 0, 0 );
393 g->addWidget( from = new QLineEdit( d ), 0, 1 ); 393 g->addWidget( from = new QLineEdit( d ), 0, 1 );
394 g->addWidget( new QLabel( tr( "Location: " ), d ), 1, 0 ); 394 g->addWidget( new QLabel( tr( "Location: " ), d ), 1, 0 );
395 g->addWidget( location = new QLineEdit( d ), 1, 1 ); 395 g->addWidget( location = new QLineEdit( d ), 1, 1 );
396 g->addWidget( new QLabel( tr( "Comments: " ), d ), 2, 0 ); 396 g->addWidget( new QLabel( tr( "Comments: " ), d ), 2, 0 );
397 g->addWidget( comments = new QLineEdit( d ), 2, 1 ); 397 g->addWidget( comments = new QLineEdit( d ), 2, 1 );
398 g->addWidget( accept = new QPushButton( tr( "&Ok" ), d ), 3, 0 ); 398 g->addWidget( accept = new QPushButton( tr( "&Ok" ), d ), 3, 0 );
399 g->addWidget( reject = new QPushButton( tr( "&Cancel" ), d ), 3, 1 ); 399 g->addWidget( reject = new QPushButton( tr( "&Cancel" ), d ), 3, 1 );
400 accept->setDefault( true ); 400 accept->setDefault( true );
401 accept->setAutoDefault( true ); 401 accept->setAutoDefault( true );
402 from->setText( "WL II User" ); 402 from->setText( "WL II User" );
403 location->setText( "WL II Location" ); 403 location->setText( "WL II Location" );
404 comments->setText( "No Comments." ); 404 comments->setText( "No Comments." );
405 connect( accept, SIGNAL( clicked() ), d, SLOT( accept() ) ); 405 connect( accept, SIGNAL( clicked() ), d, SLOT( accept() ) );
406 connect( reject, SIGNAL( clicked() ), d, SLOT( reject() ) ); 406 connect( reject, SIGNAL( clicked() ), d, SLOT( reject() ) );
407 int result = d->exec(); 407 int result = d->exec();
408 408
409 if ( !result ) 409 if ( !result )
410 { 410 {
411 qDebug( "Session upload cancelled :(" ); 411 qDebug( "Session upload cancelled :(" );
412 return; 412 return;
413 } 413 }
414 414
415 qDebug( "Starting upload..." ); 415 qDebug( "Starting upload..." );
416 416
417 struct sockaddr_in raddr; 417 struct sockaddr_in raddr;
418 struct hostent *rhost_info; 418 struct hostent *rhost_info;
419 int sock = -1; 419 int sock = -1;
420 bool ok = false; 420 bool ok = false;
421 421
422 rhost_info = (struct hostent *) ::gethostbyname( CAP_hostname ); 422 rhost_info = (struct hostent *) ::gethostbyname( CAP_hostname );
423 if ( rhost_info ) 423 if ( rhost_info )
424 { 424 {
425 if ( !QFile::exists( "/var/log/dump.wellenreiter" ) ) 425
426
427 if ( !QFile::exists( mw->captureFileName() ) )
426 { 428 {
427 QMessageBox::warning( 0, tr( "Error" ), tr( "<p>Logfile doesn't exist</p>") ); 429 QMessageBox::warning( 0, tr( "Error" ), tr( "<p>Logfile '%1' doesn't exist</p>").arg( mw->captureFileName() ) );
428 return; 430 return;
429 } 431 }
430 432
431 QFile f( "/var/log/dump.wellenreiter" ); 433 QFile f( mw->captureFileName() );
432 if ( !f.open( IO_ReadOnly ) ) 434 if ( !f.open( IO_ReadOnly ) )
433 { 435 {
434 QMessageBox::warning( 0, tr( "Error" ), tr( "<p>Can't open Logfile</p>") ); 436 QMessageBox::warning( 0, tr( "Error" ), tr( "<p>Can't open Logfile '%1'</p>").arg( mw->captureFileName() ) );
435 return; 437 return;
436 } 438 }
437 439
438 int content_length = f.size(); 440 int content_length = f.size();
439 441
440 ::memset( &raddr, 0, sizeof (struct sockaddr_in) ); 442 ::memset( &raddr, 0, sizeof (struct sockaddr_in) );
441 ::memcpy( &raddr. sin_addr, rhost_info-> h_addr, rhost_info-> h_length ); 443 ::memcpy( &raddr. sin_addr, rhost_info-> h_addr, rhost_info-> h_length );
442 raddr.sin_family = rhost_info-> h_addrtype; 444 raddr.sin_family = rhost_info-> h_addrtype;
443 raddr.sin_port = htons ( 80 ); 445 raddr.sin_port = htons ( 80 );
444 446
445 sock = ::socket( AF_INET, SOCK_STREAM, 0 ); 447 sock = ::socket( AF_INET, SOCK_STREAM, 0 );
446 448
447 if ( sock >= 0 ) 449 if ( sock >= 0 )
448 { 450 {
449 if ( ::connect ( sock, (struct sockaddr *) & raddr, sizeof (struct sockaddr)) >= 0 ) 451 if ( ::connect ( sock, (struct sockaddr *) & raddr, sizeof (struct sockaddr)) >= 0 )
450 { 452 {
451 QString header; 453 QString header;
452 QString content; 454 QString content;
453 QString preambel; 455 QString preambel;
454 456
455 header = "" 457 header = ""
456 "POST /projects/capturedump.spy HTTP/1.1\r\n" 458 "POST /projects/capturedump.spy HTTP/1.1\r\n"
457 "Host: www.vanille.de\r\n" 459 "Host: www.vanille.de\r\n"
458 "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031010 Galeon/1.3.10\r\n" 460 "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031010 Galeon/1.3.10\r\n"
459 "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1\r\n" 461 "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1\r\n"
460 "Accept-Language: en\r\n" 462 "Accept-Language: en\r\n"
461 "Accept-Encoding: gzip, deflate, compress;q=0.9\r\n" 463 "Accept-Encoding: gzip, deflate, compress;q=0.9\r\n"
462 "Accept-Charset: us-ascii,utf-8;q=0.7,*;q=0.7\r\n" 464 "Accept-Charset: us-ascii,utf-8;q=0.7,*;q=0.7\r\n"
463 "Keep-Alive: 300\r\n" 465 "Keep-Alive: 300\r\n"
464 "Connection: keep-alive\r\n" 466 "Connection: keep-alive\r\n"
465 "Referer: http://www.vanille.de/projects/capturedump.spy\r\n" 467 "Referer: http://www.vanille.de/projects/capturedump.spy\r\n"
466 "Content-Type: multipart/form-data; boundary=---------------------------97267758015830030481215568065\r\n" 468 "Content-Type: multipart/form-data; boundary=---------------------------97267758015830030481215568065\r\n"
467 "Content-Length: %1\r\n" 469 "Content-Length: %1\r\n"
468 "\r\n"; 470 "\r\n";
469 471
470 content = "" 472 content = ""
471 "-----------------------------97267758015830030481215568065\r\n" 473 "-----------------------------97267758015830030481215568065\r\n"
472 "Content-Disposition: form-data; name=\"Name\"\r\n" 474 "Content-Disposition: form-data; name=\"Name\"\r\n"
473 "\r\n" 475 "\r\n"
474 "%1\r\n" 476 "%1\r\n"
475 "-----------------------------97267758015830030481215568065\r\n" 477 "-----------------------------97267758015830030481215568065\r\n"
476 "Content-Disposition: form-data; name=\"Location\"\r\n" 478 "Content-Disposition: form-data; name=\"Location\"\r\n"
477 "\r\n" 479 "\r\n"
478 "%2\r\n" 480 "%2\r\n"
479 "-----------------------------97267758015830030481215568065\r\n" 481 "-----------------------------97267758015830030481215568065\r\n"
480 "Content-Disposition: form-data; name=\"Comments\"\r\n" 482 "Content-Disposition: form-data; name=\"Comments\"\r\n"
481 "\r\n" 483 "\r\n"
482 "%3\r\n" 484 "%3\r\n"
483 "-----------------------------97267758015830030481215568065\r\n" 485 "-----------------------------97267758015830030481215568065\r\n"
484 "Content-Disposition: form-data; name=\"upfile\"; filename=\"/var/log/dump.wellenreiter\"\r\n" 486 "Content-Disposition: form-data; name=\"upfile\"; filename=\"%4\"\r\n"
485 "Content-Type: application/octet-stream\r\n" 487 "Content-Type: application/octet-stream\r\n"
486 "\r\n"; 488 "\r\n";
487 489
488 preambel = "" 490 preambel = ""
489 "\r\n-----------------------------97267758015830030481215568065--\r\n"; 491 "\r\n-----------------------------97267758015830030481215568065--\r\n";
490 492
491 content = content.arg( from->text().isEmpty() ? QString( "Anonymous Wellenreiter II User" ) : from->text() ); 493 content = content.arg( from->text().isEmpty() ? QString( "Anonymous Wellenreiter II User" ) : from->text() );
492 content = content.arg( location->text().isEmpty() ? QString( "Anonymous Wellenreiter II Location" ) : location->text() ); 494 content = content.arg( location->text().isEmpty() ? QString( "Anonymous Wellenreiter II Location" ) : location->text() );
493 content = content.arg( comments->text().isEmpty() ? QString( "Anonymous Wellenreiter II Comments" ) : comments->text() ); 495 content = content.arg( comments->text().isEmpty() ? QString( "Anonymous Wellenreiter II Comments" ) : comments->text() );
496 content = content.arg( mw->captureFileName() );
494 497
495 header = header.arg( QString::number( content.length() + f.size() + preambel.length() ) ); 498 header = header.arg( QString::number( content.length() + f.size() + preambel.length() ) );
496 499
497 // write header 500 // write header
498 501
499 const char* ascii = header.latin1(); 502 const char* ascii = header.latin1();
500 uint ascii_len = ::strlen( ascii ); 503 uint ascii_len = ::strlen( ascii );
501 ::write ( sock, ascii, ascii_len ); 504 ::write ( sock, ascii, ascii_len );
502 505
503 // write fixed content 506 // write fixed content
504 507
505 ascii = content.latin1(); 508 ascii = content.latin1();
506 ascii_len = ::strlen( ascii ); 509 ascii_len = ::strlen( ascii );
507 ::write ( sock, ascii, ascii_len ); 510 ::write ( sock, ascii, ascii_len );
508 511
509 // write variable content 512 // write variable content
510 513
511 char ch; 514 char ch;
512 while ( !f.atEnd() ) 515 while ( !f.atEnd() )
513 { 516 {
514 f.readBlock( &ch, 1 ); 517 f.readBlock( &ch, 1 );
515 ::write ( sock, &ch, 1 ); 518 ::write ( sock, &ch, 1 );
516 } 519 }
517 520
518 // write preambel 521 // write preambel
519 522
520 ascii = preambel.latin1(); 523 ascii = preambel.latin1();
521 ascii_len = ::strlen( ascii ); 524 ascii_len = ::strlen( ascii );
522 ::write ( sock, ascii, ascii_len ); 525 ::write ( sock, ascii, ascii_len );
523 526
524 // done! 527 // done!
525 528
526 ok = true; 529 ok = true;
527 } 530 }
528 } 531 }
529 ::close ( sock ); 532 ::close ( sock );
530 } 533 }
531 if ( ok ) 534 if ( ok )
532 QMessageBox::information( 0, tr( "Success" ), 535 QMessageBox::information( 0, tr( "Success" ),
533 QString ( "<p>%1</p>" ).arg( tr( "Capture Dump was uploaded to %1" ) ).arg( CAP_hostname ) ); 536 QString ( "<p>%1</p>" ).arg( tr( "Capture Dump was uploaded to %1" ) ).arg( CAP_hostname ) );
534 else 537 else
535 QMessageBox::warning( 0, tr( "Error" ), 538 QMessageBox::warning( 0, tr( "Error" ),
536 QString ( "<p>%1</p>" ).arg ( tr( "Connection to %1 failed" ) ).arg( CAP_hostname ) ); 539 QString ( "<p>%1</p>" ).arg ( tr( "Connection to %1 failed" ) ).arg( CAP_hostname ) );
537} 540}
538 541
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index ec89f1e..9255a6d 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -382,257 +382,256 @@ void Wellenreiter::receivePacket( OPacket* p )
382 handleIPData( p, ip, source, dest ); 382 handleIPData( p, ip, source, dest );
383 } 383 }
384 384
385 //handleNotification( p ); 385 //handleNotification( p );
386 386
387} 387}
388 388
389 389
390void Wellenreiter::stopClicked() 390void Wellenreiter::stopClicked()
391{ 391{
392 if ( iface ) 392 if ( iface )
393 { 393 {
394 disconnect( SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) ); 394 disconnect( SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) );
395 disconnect( SIGNAL( hopped(int) ), this, SLOT( channelHopped(int) ) ); 395 disconnect( SIGNAL( hopped(int) ), this, SLOT( channelHopped(int) ) );
396 iface->setChannelHopping(); // stop hopping channels 396 iface->setChannelHopping(); // stop hopping channels
397 } 397 }
398 else 398 else
399 killTimers(); 399 killTimers();
400 400
401 pcap->close(); 401 pcap->close();
402 sniffing = false; 402 sniffing = false;
403 403
404 if ( iface ) 404 if ( iface )
405 { 405 {
406 // switch off monitor mode 406 // switch off monitor mode
407 iface->setMode( "managed" ); 407 iface->setMode( "managed" );
408 // switch off promisc flag 408 // switch off promisc flag
409 iface->setPromiscuousMode( false ); 409 iface->setPromiscuousMode( false );
410 410
411 system( "cardctl reset; sleep 1" ); //FIXME: Use OProcess 411 system( "cardctl reset; sleep 1" ); //FIXME: Use OProcess
412 } 412 }
413 413
414 logwindow->log( "(i) Stopped Scanning." ); 414 logwindow->log( "(i) Stopped Scanning." );
415 assert( parent() ); 415 assert( parent() );
416 ( (QMainWindow*) parent() )->setCaption( "Wellenreiter II" ); 416 ( (QMainWindow*) parent() )->setCaption( "Wellenreiter II" );
417 417
418 // message the user 418 // message the user
419 QMessageBox::information( this, "Wellenreiter II", 419 QMessageBox::information( this, "Wellenreiter II",
420 tr( "Your wireless card\nshould now be usable again." ) ); 420 tr( "Your wireless card\nshould now be usable again." ) );
421 421
422 sniffing = false; 422 sniffing = false;
423 emit( stoppedSniffing() ); 423 emit( stoppedSniffing() );
424 424
425 #ifdef QWS 425 #ifdef QWS
426 if ( WellenreiterConfigWindow::instance()->disablePM->isChecked() ) 426 if ( WellenreiterConfigWindow::instance()->disablePM->isChecked() )
427 { 427 {
428 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; 428 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable;
429 } 429 }
430 #else 430 #else
431 #warning FIXME: setScreenSaverMode is not operational on the X11 build 431 #warning FIXME: setScreenSaverMode is not operational on the X11 build
432 #endif 432 #endif
433 433
434 // print out statistics 434 // print out statistics
435 for( QMap<QString,int>::ConstIterator it = pcap->statistics().begin(); it != pcap->statistics().end(); ++it ) 435 for( QMap<QString,int>::ConstIterator it = pcap->statistics().begin(); it != pcap->statistics().end(); ++it )
436 statwindow->updateCounter( it.key(), it.data() ); 436 statwindow->updateCounter( it.key(), it.data() );
437} 437}
438 438
439 439
440void Wellenreiter::startClicked() 440void Wellenreiter::startClicked()
441{ 441{
442 // get configuration from config window 442 // get configuration from config window
443 443
444 const QString& interface = configwindow->interfaceName->currentText(); 444 const QString& interface = configwindow->interfaceName->currentText();
445 const int cardtype = configwindow->driverType(); 445 const int cardtype = configwindow->driverType();
446 const int interval = configwindow->hoppingInterval(); 446 const int interval = configwindow->hoppingInterval();
447 447
448 if ( ( interface == "" ) || ( cardtype == 0 ) ) 448 if ( ( interface == "" ) || ( cardtype == 0 ) )
449 { 449 {
450 QMessageBox::information( this, "Wellenreiter II", 450 QMessageBox::information( this, "Wellenreiter II",
451 tr( "Your device is not\nproperly configured. Please reconfigure!" ) ); 451 tr( "Your device is not\nproperly configured. Please reconfigure!" ) );
452 return; 452 return;
453 } 453 }
454 454
455 // configure device 455 // configure device
456 ONetwork* net = ONetwork::instance(); 456 ONetwork* net = ONetwork::instance();
457 457
458 // TODO: check if interface is wireless and support sniffing for non-wireless interfaces 458 // TODO: check if interface is wireless and support sniffing for non-wireless interfaces
459 459
460 iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface )); // fails if network is not wireless! 460 iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface )); // fails if network is not wireless!
461 461
462 // bring device UP 462 // bring device UP
463 if ( cardtype != DEVTYPE_FILE ) 463 if ( cardtype != DEVTYPE_FILE )
464 { 464 {
465 iface->setUp( true ); 465 iface->setUp( true );
466 if ( !iface->isUp() ) 466 if ( !iface->isUp() )
467 { 467 {
468 QMessageBox::warning( this, "Wellenreiter II", 468 QMessageBox::warning( this, "Wellenreiter II",
469 tr( "Can't bring interface '%1' up:\n" ).arg( iface->name() ) + strerror( errno ) ); 469 tr( "Can't bring interface '%1' up:\n" ).arg( iface->name() ) + strerror( errno ) );
470 return; 470 return;
471 } 471 }
472 } 472 }
473 // set monitor mode 473 // set monitor mode
474 bool usePrism = configwindow->usePrismHeader(); 474 bool usePrism = configwindow->usePrismHeader();
475 475
476 switch ( cardtype ) 476 switch ( cardtype )
477 { 477 {
478 case DEVTYPE_CISCO: iface->setMonitoring( new OCiscoMonitoringInterface( iface, usePrism ) ); break; 478 case DEVTYPE_CISCO: iface->setMonitoring( new OCiscoMonitoringInterface( iface, usePrism ) ); break;
479 case DEVTYPE_WLAN_NG: iface->setMonitoring( new OWlanNGMonitoringInterface( iface, usePrism ) ); break; 479 case DEVTYPE_WLAN_NG: iface->setMonitoring( new OWlanNGMonitoringInterface( iface, usePrism ) ); break;
480 case DEVTYPE_HOSTAP: iface->setMonitoring( new OHostAPMonitoringInterface( iface, usePrism ) ); break; 480 case DEVTYPE_HOSTAP: iface->setMonitoring( new OHostAPMonitoringInterface( iface, usePrism ) ); break;
481 case DEVTYPE_ORINOCO: iface->setMonitoring( new OOrinocoMonitoringInterface( iface, usePrism ) ); break; 481 case DEVTYPE_ORINOCO: iface->setMonitoring( new OOrinocoMonitoringInterface( iface, usePrism ) ); break;
482 case DEVTYPE_MANUAL: QMessageBox::information( this, "Wellenreiter II", tr( "Bring your device into\nmonitor mode now." ) ); break; 482 case DEVTYPE_MANUAL: QMessageBox::information( this, "Wellenreiter II", tr( "Bring your device into\nmonitor mode now." ) ); break;
483 case DEVTYPE_FILE: qDebug( "Wellenreiter: Capturing from file '%s'", (const char*) interface ); break; 483 case DEVTYPE_FILE: qDebug( "Wellenreiter: Capturing from file '%s'", (const char*) interface ); break;
484 default: assert( 0 ); // shouldn't reach this 484 default: assert( 0 ); // shouldn't reach this
485 } 485 }
486 486
487 // switch device into monitor mode 487 // switch device into monitor mode
488 if ( cardtype < DEVTYPE_FILE ) 488 if ( cardtype < DEVTYPE_FILE )
489 { 489 {
490 if ( cardtype != DEVTYPE_MANUAL ) 490 if ( cardtype != DEVTYPE_MANUAL )
491 iface->setMode( "monitor" ); 491 iface->setMode( "monitor" );
492 if ( iface->mode() != "monitor" ) 492 if ( iface->mode() != "monitor" )
493 { 493 {
494 if ( QMessageBox::warning( this, "Wellenreiter II", 494 if ( QMessageBox::warning( this, "Wellenreiter II",
495 tr( "Can't set interface '%1'\ninto monitor mode:\n" ).arg( iface->name() ) + strerror( errno ) + 495 tr( "Can't set interface '%1'\ninto monitor mode:\n" ).arg( iface->name() ) + strerror( errno ) +
496 tr( "\nContinue with limited functionality?" ), QMessageBox::Yes, QMessageBox::No ) == QMessageBox::No ) 496 tr( "\nContinue with limited functionality?" ), QMessageBox::Yes, QMessageBox::No ) == QMessageBox::No )
497 return; 497 return;
498 } 498 }
499 } 499 }
500 500
501 // open GPS device 501 // open GPS device
502 if ( configwindow->enableGPS->isChecked() ) 502 if ( configwindow->enableGPS->isChecked() )
503 { 503 {
504 qDebug( "Wellenreiter:GPS enabled @ %s:%d", (const char*) configwindow->gpsdHost->currentText(), configwindow->gpsdPort->value() ); 504 qDebug( "Wellenreiter:GPS enabled @ %s:%d", (const char*) configwindow->gpsdHost->currentText(), configwindow->gpsdPort->value() );
505 gps->open( configwindow->gpsdHost->currentText(), configwindow->gpsdPort->value() ); 505 gps->open( configwindow->gpsdHost->currentText(), configwindow->gpsdPort->value() );
506 } 506 }
507 507
508 // open pcap and start sniffing 508 // open pcap and start sniffing
509 509
510 QString dumpname;
511 if ( configwindow->writeCaptureFile->isChecked() ) // write to a user specified capture file? 510 if ( configwindow->writeCaptureFile->isChecked() ) // write to a user specified capture file?
512 { 511 {
513 dumpname = configwindow->captureFileName->text(); 512 dumpname = configwindow->captureFileName->text();
514 if ( dumpname.isEmpty() ) dumpname = "captureFile"; 513 if ( dumpname.isEmpty() ) dumpname = "captureFile";
515 dumpname.append( '-' ); 514 dumpname.append( '-' );
516 dumpname.append( QTime::currentTime().toString().replace( QRegExp( ":" ), "-" ) ); 515 dumpname.append( QTime::currentTime().toString().replace( QRegExp( ":" ), "-" ) );
517 dumpname.append( ".wellenreiter" ); 516 dumpname.append( ".wellenreiter" );
518 } 517 }
519 else // write it anyway ;) 518 else // write it anyway ;)
520 { 519 {
521 dumpname = "/var/log/dump.wellenreiter"; 520 dumpname = "/var/log/dump.wellenreiter";
522 } 521 }
523 522
524 if ( cardtype != DEVTYPE_FILE ) 523 if ( cardtype != DEVTYPE_FILE )
525 pcap->open( interface ); 524 pcap->open( interface );
526 else 525 else
527 pcap->open( QFile( interface ) ); 526 pcap->open( QFile( interface ) );
528 527
529 qDebug( "Wellenreiter:: dumping to %s", (const char*) dumpname ); 528 qDebug( "Wellenreiter:: dumping to %s", (const char*) dumpname );
530 pcap->openDumpFile( dumpname ); 529 pcap->openDumpFile( dumpname );
531 530
532 if ( !pcap->isOpen() ) 531 if ( !pcap->isOpen() )
533 { 532 {
534 QMessageBox::warning( this, "Wellenreiter II", tr( "Can't open packet capturer for\n'%1':\n" ).arg( 533 QMessageBox::warning( this, "Wellenreiter II", tr( "Can't open packet capturer for\n'%1':\n" ).arg(
535 cardtype == DEVTYPE_FILE ? (const char*) interface : iface->name() ) + QString(strerror( errno ) )); 534 cardtype == DEVTYPE_FILE ? (const char*) interface : iface->name() ) + QString(strerror( errno ) ));
536 return; 535 return;
537 } 536 }
538 537
539 // set capturer to non-blocking mode 538 // set capturer to non-blocking mode
540 pcap->setBlocking( false ); 539 pcap->setBlocking( false );
541 540
542 // start channel hopper 541 // start channel hopper
543 if ( cardtype != DEVTYPE_FILE ) 542 if ( cardtype != DEVTYPE_FILE )
544 { 543 {
545 logwindow->log( QString().sprintf( "(i) Starting channel hopper (d=%d ms)", configwindow->hopInterval->value() ) ); 544 logwindow->log( QString().sprintf( "(i) Starting channel hopper (d=%d ms)", configwindow->hopInterval->value() ) );
546 iface->setChannelHopping( configwindow->hopInterval->value() ); //use interval from config window 545 iface->setChannelHopping( configwindow->hopInterval->value() ); //use interval from config window
547 } 546 }
548 547
549 if ( cardtype != DEVTYPE_FILE ) 548 if ( cardtype != DEVTYPE_FILE )
550 { 549 {
551 // connect socket notifier and start channel hopper 550 // connect socket notifier and start channel hopper
552 connect( pcap, SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) ); 551 connect( pcap, SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) );
553 connect( iface->channelHopper(), SIGNAL( hopped(int) ), this, SLOT( channelHopped(int) ) ); 552 connect( iface->channelHopper(), SIGNAL( hopped(int) ), this, SLOT( channelHopped(int) ) );
554 } 553 }
555 else 554 else
556 { 555 {
557 // start timer for reading packets 556 // start timer for reading packets
558 startTimer( 100 ); 557 startTimer( 100 );
559 } 558 }
560 559
561 logwindow->log( "(i) Started Scanning." ); 560 logwindow->log( "(i) Started Scanning." );
562 sniffing = true; 561 sniffing = true;
563 562
564 #ifdef QWS 563 #ifdef QWS
565 if ( WellenreiterConfigWindow::instance()->disablePM->isChecked() ) 564 if ( WellenreiterConfigWindow::instance()->disablePM->isChecked() )
566 { 565 {
567 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Disable; 566 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Disable;
568 } 567 }
569 #else 568 #else
570 #warning FIXME: setScreenSaverMode is not operational on the X11 build 569 #warning FIXME: setScreenSaverMode is not operational on the X11 build
571 #endif 570 #endif
572 571
573 emit( startedSniffing() ); 572 emit( startedSniffing() );
574 if ( cardtype != DEVTYPE_FILE ) channelHopped( 6 ); // set title 573 if ( cardtype != DEVTYPE_FILE ) channelHopped( 6 ); // set title
575 else 574 else
576 { 575 {
577 assert( parent() ); 576 assert( parent() );
578 ( (QMainWindow*) parent() )->setCaption( tr( "Wellenreiter II - replaying capture file..." ) ); 577 ( (QMainWindow*) parent() )->setCaption( tr( "Wellenreiter II - replaying capture file..." ) );
579 } 578 }
580} 579}
581 580
582 581
583void Wellenreiter::timerEvent( QTimerEvent* ) 582void Wellenreiter::timerEvent( QTimerEvent* )
584{ 583{
585 qDebug( "Wellenreiter::timerEvent()" ); 584 qDebug( "Wellenreiter::timerEvent()" );
586 OPacket* p = pcap->next(); 585 OPacket* p = pcap->next();
587 if ( !p ) // no more packets available 586 if ( !p ) // no more packets available
588 { 587 {
589 stopClicked(); 588 stopClicked();
590 } 589 }
591 else 590 else
592 { 591 {
593 receivePacket( p ); 592 receivePacket( p );
594 delete p; 593 delete p;
595 } 594 }
596} 595}
597 596
598 597
599void Wellenreiter::doAction( const QString& action, const QString& protocol, OPacket* p ) 598void Wellenreiter::doAction( const QString& action, const QString& protocol, OPacket* p )
600{ 599{
601 #ifdef QWS 600 #ifdef QWS
602 if ( action == "TouchSound" ) 601 if ( action == "TouchSound" )
603 ODevice::inst()->touchSound(); 602 ODevice::inst()->touchSound();
604 else if ( action == "AlarmSound" ) 603 else if ( action == "AlarmSound" )
605 ODevice::inst()->alarmSound(); 604 ODevice::inst()->alarmSound();
606 else if ( action == "KeySound" ) 605 else if ( action == "KeySound" )
607 ODevice::inst()->keySound(); 606 ODevice::inst()->keySound();
608 else if ( action == "LedOn" ) 607 else if ( action == "LedOn" )
609 ODevice::inst()->setLedState( Led_Mail, Led_On ); 608 ODevice::inst()->setLedState( Led_Mail, Led_On );
610 else if ( action == "LedOff" ) 609 else if ( action == "LedOff" )
611 ODevice::inst()->setLedState( Led_Mail, Led_Off ); 610 ODevice::inst()->setLedState( Led_Mail, Led_Off );
612 else if ( action == "LogMessage" ) 611 else if ( action == "LogMessage" )
613 logwindow->log( QString().sprintf( "Got packet with protocol '%s'", (const char*) protocol ) ); 612 logwindow->log( QString().sprintf( "Got packet with protocol '%s'", (const char*) protocol ) );
614 else if ( action == "MessageBox" ) 613 else if ( action == "MessageBox" )
615 QMessageBox::information( this, "Notification!", 614 QMessageBox::information( this, "Notification!",
616 QString().sprintf( "Got packet with protocol '%s'", (const char*) protocol ) ); 615 QString().sprintf( "Got packet with protocol '%s'", (const char*) protocol ) );
617 #else 616 #else
618 #warning Actions do not work with Qt/X11 yet 617 #warning Actions do not work with Qt/X11 yet
619 #endif 618 #endif
620} 619}
621 620
622void Wellenreiter::joinNetwork(const QString& type, const QString& essid, int channel, const QString& macaddr) 621void Wellenreiter::joinNetwork(const QString& type, const QString& essid, int channel, const QString& macaddr)
623{ 622{
624 #ifdef QWS 623 #ifdef QWS
625 if ( !iface ) 624 if ( !iface )
626 { 625 {
627 QMessageBox::warning( this, tr( "Can't do that!" ), tr( "No wireless\ninterface available." ) ); 626 QMessageBox::warning( this, tr( "Can't do that!" ), tr( "No wireless\ninterface available." ) );
628 return; 627 return;
629 } 628 }
630 629
631 if ( sniffing ) 630 if ( sniffing )
632 { 631 {
633 QMessageBox::warning( this, tr( "Can't do that!" ), tr( "Stop sniffing before\njoining a net." ) ); 632 QMessageBox::warning( this, tr( "Can't do that!" ), tr( "Stop sniffing before\njoining a net." ) );
634 return; 633 return;
635 } 634 }
636 635
637 qDebug( "joinNetwork() with Interface %s: %s, %s, %d, %s", 636 qDebug( "joinNetwork() with Interface %s: %s, %s, %d, %s",
638 (const char*) iface->name(), 637 (const char*) iface->name(),
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.h b/noncore/net/wellenreiter/gui/wellenreiter.h
index d882500..58dd1fd 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.h
+++ b/noncore/net/wellenreiter/gui/wellenreiter.h
@@ -1,102 +1,104 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. 2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3** 3**
4** This file is part of Opie Environment. 4** This file is part of Opie Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14**********************************************************************/ 14**********************************************************************/
15 15
16#ifndef WELLENREITER_H 16#ifndef WELLENREITER_H
17#define WELLENREITER_H 17#define WELLENREITER_H
18 18
19#include "wellenreiterbase.h" 19#include "wellenreiterbase.h"
20 20
21#ifdef QWS 21#ifdef QWS
22#include <opie/odevice.h> 22#include <opie/odevice.h>
23using namespace Opie; 23using namespace Opie;
24#endif 24#endif
25 25
26class QTimerEvent; 26class QTimerEvent;
27class QPixmap; 27class QPixmap;
28class OPacket; 28class OPacket;
29class OWaveLanManagementPacket; 29class OWaveLanManagementPacket;
30class OWaveLanDataPacket; 30class OWaveLanDataPacket;
31class OEthernetPacket; 31class OEthernetPacket;
32class OARPPacket; 32class OARPPacket;
33class OMacAddress; 33class OMacAddress;
34class OIPPacket; 34class OIPPacket;
35class OPacketCapturer; 35class OPacketCapturer;
36class OWirelessNetworkInterface; 36class OWirelessNetworkInterface;
37class WellenreiterConfigWindow; 37class WellenreiterConfigWindow;
38class MLogWindow; 38class MLogWindow;
39class MHexWindow; 39class MHexWindow;
40class GPS; 40class GPS;
41 41
42class Wellenreiter : public WellenreiterBase { 42class Wellenreiter : public WellenreiterBase {
43 Q_OBJECT 43 Q_OBJECT
44 44
45 public: 45 public:
46 Wellenreiter( QWidget* parent = 0 ); 46 Wellenreiter( QWidget* parent = 0 );
47 ~Wellenreiter(); 47 ~Wellenreiter();
48 48
49 void setConfigWindow( WellenreiterConfigWindow* cw ); 49 void setConfigWindow( WellenreiterConfigWindow* cw );
50 MScanListView* netView() const { return netview; }; 50 MScanListView* netView() const { return netview; };
51 MLogWindow* logWindow() const { return logwindow; }; 51 MLogWindow* logWindow() const { return logwindow; };
52 MHexWindow* hexWindow() const { return hexwindow; }; 52 MHexWindow* hexWindow() const { return hexwindow; };
53 bool isDaemonRunning() const { return sniffing; }; 53 bool isDaemonRunning() const { return sniffing; };
54 QString captureFileName() const { return dumpname; };
54 55
55 public: 56 public:
56 bool sniffing; 57 bool sniffing;
57 58
58 protected: 59 protected:
59 virtual void timerEvent( QTimerEvent* ); 60 virtual void timerEvent( QTimerEvent* );
60 61
61 public slots: 62 public slots:
62 void initialTimer(); 63 void initialTimer();
63 64
64 void channelHopped(int); 65 void channelHopped(int);
65 void receivePacket(OPacket*); 66 void receivePacket(OPacket*);
66 void startClicked(); 67 void startClicked();
67 void stopClicked(); 68 void stopClicked();
68 69
69 void joinNetwork(const QString&,const QString&,int,const QString&); 70 void joinNetwork(const QString&,const QString&,int,const QString&);
70 71
71 signals: 72 signals:
72 void startedSniffing(); 73 void startedSniffing();
73 void stoppedSniffing(); 74 void stoppedSniffing();
74 75
75 private: 76 private:
76 void handleBeacon( OPacket* p, OWaveLanManagementPacket* beacon ); 77 void handleBeacon( OPacket* p, OWaveLanManagementPacket* beacon );
77 void handleWlanData( OPacket* p, OWaveLanDataPacket* data, OMacAddress& from, OMacAddress& to ); 78 void handleWlanData( OPacket* p, OWaveLanDataPacket* data, OMacAddress& from, OMacAddress& to );
78 void handleEthernetData( OPacket* p, OEthernetPacket* data, OMacAddress& from, OMacAddress& to ); 79 void handleEthernetData( OPacket* p, OEthernetPacket* data, OMacAddress& from, OMacAddress& to );
79 void handleARPData( OPacket* p, OARPPacket* arp, OMacAddress& from, OMacAddress& to ); 80 void handleARPData( OPacket* p, OARPPacket* arp, OMacAddress& from, OMacAddress& to );
80 void handleIPData( OPacket* p, OIPPacket* ip, OMacAddress& from, OMacAddress& to ); 81 void handleIPData( OPacket* p, OIPPacket* ip, OMacAddress& from, OMacAddress& to );
81 void handleNotification( OPacket* p ); 82 void handleNotification( OPacket* p );
82 void doAction( const QString& action, const QString& protocol, OPacket* p ); 83 void doAction( const QString& action, const QString& protocol, OPacket* p );
83 QObject* childIfToParse( OPacket* p, const QString& protocol ); 84 QObject* childIfToParse( OPacket* p, const QString& protocol );
84 bool checkDumpPacket( OPacket* p ); 85 bool checkDumpPacket( OPacket* p );
85 86
86 private: 87 private:
87 #ifdef QWS 88 #ifdef QWS
88 OSystem _system; // Opie Operating System identifier 89 OSystem _system; // Opie Operating System identifier
89 #endif 90 #endif
90 91
92 QString dumpname;
91 OWirelessNetworkInterface* iface; 93 OWirelessNetworkInterface* iface;
92 OPacketCapturer* pcap; 94 OPacketCapturer* pcap;
93 WellenreiterConfigWindow* configwindow; 95 WellenreiterConfigWindow* configwindow;
94 GPS* gps; 96 GPS* gps;
95 97
96 //void readConfig(); 98 //void readConfig();
97 //void writeConfig(); 99 //void writeConfig();
98}; 100};
99 101
100 102
101 103
102#endif 104#endif