|
|
1.1 root 1: /*
2: Previous - dlgEthernet.c
3:
4: This file is distributed under the GNU Public License, version 2 or at
5: your option any later version. Read the file gpl.txt for details.
6: */
7: const char DlgEthernet_fileid[] = "Previous dlgEthernet.c : " __DATE__ " " __TIME__;
8:
9: #include "main.h"
10: #include "configuration.h"
11: #include "dialog.h"
12: #include "sdlgui.h"
13: #include "file.h"
14: #include "paths.h"
15:
16: #if HAVE_PCAP
17: #define DLGENET_ENABLE 4
18: #define DLGENET_THIN 5
19: #define DLGENET_TWISTED 6
20:
21: #define DLGENET_SLIRP 9
22: #define DLGENET_PCAP 10
23:
24: #define DLGENET_EXIT 12
25:
26: #define PCAP_INTERFACE_LEN 19
27:
28: char pcap_interface[PCAP_INTERFACE_LEN] = "PCAP";
29:
30: /* The Boot options dialog: */
31: static SGOBJ enetdlg[] =
32: {
33: { SGBOX, 0, 0, 0,0, 51,19, NULL },
34: { SGTEXT, 0, 0, 17,1, 16,1, "Ethernet options" },
35:
36: { SGBOX, 0, 0, 1,3, 24,9, NULL },
37: { SGTEXT, 0, 0, 3,4, 15,1, "Guest interface" },
38: { SGCHECKBOX, 0, 0, 3,6, 20,1, "Ethernet connected" },
39: { SGRADIOBUT, 0, 0, 5,8, 11,1, "Thin wire" },
40: { SGRADIOBUT, 0, 0, 5,10, 14,1, "Twisted pair" },
41:
42: { SGBOX, 0, 0, 26,3, 24,9, NULL },
43: { SGTEXT, 0, 0, 28,4, 14,1, "Host interface" },
44: { SGRADIOBUT, 0, 0, 29,6, 7,1, "SLiRP" },
45: { SGRADIOBUT, 0, 0, 29,8, PCAP_INTERFACE_LEN,1, pcap_interface },
46:
47: { SGTEXT, 0, 0, 4,13, 15,1, "Note: PCAP requires super user privileges." },
48:
49: { SGBUTTON, SG_DEFAULT, 0, 15,16, 21,1, "Back to main menu" },
50: { -1, 0, 0, 0,0, 0,0, NULL }
51: };
52: #else // !HAVE_PCAP
53: #define DLGENET_ENABLE 3
54: #define DLGENET_THIN 4
55: #define DLGENET_TWISTED 5
56:
57: #define DLGENET_EXIT 6
58:
59:
60:
61: /* The Boot options dialog: */
62: static SGOBJ enetdlg[] =
63: {
64: { SGBOX, 0, 0, 0,0, 40,17, NULL },
65: { SGTEXT, 0, 0, 12,1, 16,1, "Ethernet options" },
66:
67: { SGBOX, 0, 0, 1,3, 38,9, NULL },
68: { SGCHECKBOX, 0, 0, 4,5, 20,1, "Ethernet connected" },
69: { SGRADIOBUT, 0, 0, 6,7, 11,1, "Thin wire" },
70: { SGRADIOBUT, 0, 0, 6,9, 14,1, "Twisted pair" },
71:
72: { SGBUTTON, SG_DEFAULT, 0, 10,14, 21,1, "Back to main menu" },
73: { -1, 0, 0, 0,0, 0,0, NULL }
74: };
75: #endif
76:
77:
78: /*-----------------------------------------------------------------------*/
79: /**
80: * Show and process the Boot options dialog.
81: */
82: void DlgEthernet_Main(void)
83: {
84: int but;
85:
86: SDLGui_CenterDlg(enetdlg);
87:
88: /* Set up the dialog from actual values */
89:
90: enetdlg[DLGENET_ENABLE].state &= ~SG_SELECTED;
91: enetdlg[DLGENET_THIN].state &= ~SG_SELECTED;
92: enetdlg[DLGENET_TWISTED].state &= ~SG_SELECTED;
93:
94: if (ConfigureParams.Ethernet.bEthernetConnected) {
95: enetdlg[DLGENET_ENABLE].state |= SG_SELECTED;
96: if (ConfigureParams.Ethernet.bTwistedPair) {
97: enetdlg[DLGENET_TWISTED].state |= SG_SELECTED;
98: } else {
99: enetdlg[DLGENET_THIN].state |= SG_SELECTED;
100: }
101: }
102: #if HAVE_PCAP
103: enetdlg[DLGENET_SLIRP].state &= ~SG_SELECTED;
104: enetdlg[DLGENET_PCAP].state &= ~SG_SELECTED;
105:
106: if (ConfigureParams.Ethernet.nHostInterface == ENET_PCAP) {
107: enetdlg[DLGENET_PCAP].state |= SG_SELECTED;
108: snprintf(pcap_interface, PCAP_INTERFACE_LEN, "PCAP: %s", ConfigureParams.Ethernet.szInterfaceName);
109: } else {
110: enetdlg[DLGENET_SLIRP].state |= SG_SELECTED;
111: sprintf(pcap_interface, "PCAP");
112: }
113: #endif
114:
115: /* Draw and process the dialog */
116:
117: do
118: {
119: but = SDLGui_DoDialog(enetdlg, NULL);
120:
121: switch (but) {
122: case DLGENET_ENABLE:
123: if (enetdlg[DLGENET_ENABLE].state & SG_SELECTED) {
124: if (ConfigureParams.Ethernet.bTwistedPair) {
125: enetdlg[DLGENET_TWISTED].state |= SG_SELECTED;
126: } else {
127: enetdlg[DLGENET_THIN].state |= SG_SELECTED;
128: }
129: } else {
130: enetdlg[DLGENET_THIN].state &= ~SG_SELECTED;
131: enetdlg[DLGENET_TWISTED].state &= ~SG_SELECTED;
132: }
133: break;
134: case DLGENET_THIN:
135: case DLGENET_TWISTED:
136: if (!(enetdlg[DLGENET_ENABLE].state & SG_SELECTED)) {
137: enetdlg[DLGENET_ENABLE].state |= SG_SELECTED;
138: }
139: break;
140: #if HAVE_PCAP
141: case DLGENET_PCAP:
142: if (DlgEthernetAdvanced()) {
143: snprintf(pcap_interface, PCAP_INTERFACE_LEN, "PCAP: %s", ConfigureParams.Ethernet.szInterfaceName);
144: } else {
145: sprintf(pcap_interface, "PCAP");
146: enetdlg[DLGENET_PCAP].state &= ~SG_SELECTED;
147: enetdlg[DLGENET_SLIRP].state |= SG_SELECTED;
148: }
149: break;
150: case DLGENET_SLIRP:
151: sprintf(pcap_interface, "PCAP");
152: break;
153: #endif
154: default:
155: break;
156: }
157: }
158: while (but != DLGENET_EXIT && but != SDLGUI_QUIT
159: && but != SDLGUI_ERROR && !bQuitProgram);
160:
161:
162: /* Read values from dialog */
163: ConfigureParams.Ethernet.bEthernetConnected = enetdlg[DLGENET_ENABLE].state & SG_SELECTED;
164: ConfigureParams.Ethernet.bTwistedPair = enetdlg[DLGENET_TWISTED].state & SG_SELECTED;
165: #if HAVE_PCAP
166: if (enetdlg[DLGENET_PCAP].state & SG_SELECTED) {
167: ConfigureParams.Ethernet.nHostInterface = ENET_PCAP;
168: } else {
169: ConfigureParams.Ethernet.nHostInterface = ENET_SLIRP;
170: }
171: #endif
172: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.