|
|
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.