diff options
author | jkh <jkh@FreeBSD.org> | 1997-03-09 22:25:49 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 1997-03-09 22:25:49 +0000 |
commit | 636598f5615bc6304ca5a939852a221e5a7ce077 (patch) | |
tree | 509b2cf3a856a0a80a6eeee4f35cd1e198b0c41b /release/sysinstall | |
parent | 1be4650826e4a5f20a6ecee1f3835d0f86388e58 (diff) | |
download | FreeBSD-src-636598f5615bc6304ca5a939852a221e5a7ce077.zip FreeBSD-src-636598f5615bc6304ca5a939852a221e5a7ce077.tar.gz |
Add a registration screen so we can finally start counting our little user
puppies.
Diffstat (limited to 'release/sysinstall')
-rw-r--r-- | release/sysinstall/Makefile | 8 | ||||
-rw-r--r-- | release/sysinstall/anonFTP.c | 3 | ||||
-rw-r--r-- | release/sysinstall/apache.c | 3 | ||||
-rw-r--r-- | release/sysinstall/config.c | 8 | ||||
-rw-r--r-- | release/sysinstall/dispatch.c | 3 | ||||
-rw-r--r-- | release/sysinstall/install.c | 11 | ||||
-rw-r--r-- | release/sysinstall/menus.c | 10 | ||||
-rw-r--r-- | release/sysinstall/misc.c | 4 | ||||
-rw-r--r-- | release/sysinstall/register.c | 346 | ||||
-rw-r--r-- | release/sysinstall/sysinstall.h | 3 | ||||
-rw-r--r-- | release/sysinstall/tcpip.c | 4 | ||||
-rw-r--r-- | release/sysinstall/user.c | 4 |
12 files changed, 390 insertions, 17 deletions
diff --git a/release/sysinstall/Makefile b/release/sysinstall/Makefile index 1b2762e..0eb723b 100644 --- a/release/sysinstall/Makefile +++ b/release/sysinstall/Makefile @@ -7,10 +7,10 @@ CLEANFILES+= keymap.tmp keymap.h .PATH: ${.CURDIR}/../disklabel ${.CURDIR}/../../usr.bin/cksum SRCS= anonFTP.c apache.c attr.c cdrom.c command.c config.c devices.c \ - disks.c dispatch.c dist.c dmenu.c doc.c dos.c dosio.c floppy.c ftp.c \ - globals.c index.c install.c installUpgrade.c \ - keymap.c label.c lndir.c main.c makedevs.c media.c menus.c misc.c \ - msg.c network.c nfs.c options.c package.c samba.c system.c \ + disks.c dispatch.c dist.c dmenu.c doc.c dos.c dosio.c floppy.c \ + ftp.c globals.c index.c install.c installUpgrade.c keymap.c \ + label.c lndir.c main.c makedevs.c media.c menus.c misc.c \ + msg.c network.c nfs.c options.c package.c register.c samba.c system.c \ tape.c tcpip.c termcap.c ufs.c user.c variable.c wizard.c \ uc_eisa.c uc_isa.c uc_kmem.c uc_list.c uc_main.c uc_pci.c \ uc_scsi.c keymap.h diff --git a/release/sysinstall/anonFTP.c b/release/sysinstall/anonFTP.c index 699e1f6..9171232 100644 --- a/release/sysinstall/anonFTP.c +++ b/release/sysinstall/anonFTP.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id$ + * $Id: anonFTP.c,v 1.21 1997/02/07 04:25:16 jkh Exp $ * * Copyright (c) 1995 * Coranth Gryphon. All rights reserved. @@ -224,6 +224,7 @@ anonftpOpenDialog(void) while (layoutDialogLoop(ds_win, layout, &obj, &n, max, &cancelbutton, &cancel)); /* Clear this crap off the screen */ + delwin(ds_win); dialog_clear_norefresh(); use_helpfile(NULL); diff --git a/release/sysinstall/apache.c b/release/sysinstall/apache.c index 10a03b9..6f734ec 100644 --- a/release/sysinstall/apache.c +++ b/release/sysinstall/apache.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id$ + * $Id: apache.c,v 1.33 1997/02/07 04:25:20 jkh Exp $ * * Copyright (c) 1995 * Coranth Gryphon. All rights reserved. @@ -213,6 +213,7 @@ apacheOpenDialog(void) } /* Clear this crap off the screen */ + delwin(ds_win); dialog_clear_norefresh(); use_helpfile(NULL); diff --git a/release/sysinstall/config.c b/release/sysinstall/config.c index f2300fd..ccf21a5 100644 --- a/release/sysinstall/config.c +++ b/release/sysinstall/config.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: config.c,v 1.83 1997/02/22 14:11:16 peter Exp $ + * $Id: config.c,v 1.84 1997/03/08 12:57:40 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -449,6 +449,12 @@ configSaverTimeout(dialogMenuItem *self) } int +configRegister(dialogMenuItem *self) +{ + return DITEM_STATUS(registerOpenDialog()) | DITEM_RESTORE; +} + +int configNTP(dialogMenuItem *self) { int status; diff --git a/release/sysinstall/dispatch.c b/release/sysinstall/dispatch.c index 034a7f5..5e7ba53 100644 --- a/release/sysinstall/dispatch.c +++ b/release/sysinstall/dispatch.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id$ + * $Id: dispatch.c,v 1.10 1997/02/22 14:11:26 peter Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -48,6 +48,7 @@ static struct _word { { "configRouter", configRouter }, { "configNFSServer", configNFSServer }, { "configSamba", configSamba }, + { "configRegister", configRegister }, { "configPackages", configPackages }, { "diskPartitionEditor", diskPartitionEditor }, { "diskPartitionWrite", diskPartitionWrite }, diff --git a/release/sysinstall/install.c b/release/sysinstall/install.c index 1eeafe9..c642e4f 100644 --- a/release/sysinstall/install.c +++ b/release/sysinstall/install.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: install.c,v 1.174 1997/03/08 12:57:43 jkh Exp $ + * $Id: install.c,v 1.175 1997/03/08 16:17:46 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -593,6 +593,15 @@ installNovice(dialogMenuItem *self) restorescr(w); } + dialog_clear_norefresh(); + if (!msgYesNo("Would you like to register your FreeBSD system at this time?\n\n" + "PLEASE take just 5 minutes to do this - if we're ever to get any\n" + "significant base of commercial software for FreeBSD, we need to\n" + "be able to provide more information about the size of our user base.\n" + "This is where your registration can really help us, and you can also\n" + "sign up for the new FreeBSD newsletter (its free!) at the same time.")) + configRegister(NULL); + /* XXX Put whatever other nice configuration questions you'd like to ask the user here XXX */ /* Give user the option of one last configuration spree */ diff --git a/release/sysinstall/menus.c b/release/sysinstall/menus.c index 169b906..4d0f08c 100644 --- a/release/sysinstall/menus.c +++ b/release/sysinstall/menus.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: menus.c,v 1.119 1997/02/22 14:12:05 peter Exp $ + * $Id: menus.c,v 1.120 1997/03/08 12:57:45 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -257,6 +257,8 @@ DMenu MenuIndex = { { "Packages", "The packages collection", NULL, configPackages }, { "Partition", "The disk Partition Editor", NULL, diskPartitionEditor }, { "PCNFSD", "Run authentication server for PC-NFS.", dmenuVarCheck, configPCNFSD, NULL, "pcnfsd" }, + { "Register", "Register yourself or company as a FreeBSD user.", dmenuVarCheck, configRegister, NULL, "registered" }, + { "Root Password", "Set the system manager's password.", NULL, dmenuSystemCommand, NULL, "passwd root" }, { "Root Password", "Set the system manager's password.", NULL, dmenuSystemCommand, NULL, "passwd root" }, { "Router", "Select routing daemon (default: routed)", NULL, configRouter, NULL, "router" }, { "Samba", "Configure Samba for LanManager access.", dmenuVarCheck, configSamba, NULL, "samba" }, @@ -1059,7 +1061,7 @@ DMenu MenuConfigure = { NULL, dmenuSystemCommand, NULL, "passwd root" }, { "A HTML Docs", "Go to the HTML documentation menu (post-install)", NULL, docBrowser }, - { "B XFree86", "Configure XFree86", + { "X XFree86", "Configure XFree86", NULL, configXFree86 }, { "D Distributions", "Install additional distribution sets", NULL, distExtractAll }, @@ -1067,7 +1069,9 @@ DMenu MenuConfigure = { NULL, diskLabelEditor }, { "Partition", "The disk Partition Editor", NULL, diskPartitionEditor }, - { "Exit", "Exit this menu (returning to previous)", + { "S Set Root Password", "Set the system manager's password.", NULL, dmenuSystemCommand, NULL, "passwd root" }, + { "R Register", "Register yourself or company as a FreeBSD user.", NULL, configRegister }, + { "E Exit", "Exit this menu (returning to previous)", NULL, dmenuExit }, { NULL } }, }; diff --git a/release/sysinstall/misc.c b/release/sysinstall/misc.c index 028018e..6670d52 100644 --- a/release/sysinstall/misc.c +++ b/release/sysinstall/misc.c @@ -1,7 +1,7 @@ /* * Miscellaneous support routines.. * - * $Id$ + * $Id: misc.c,v 1.32 1997/02/22 14:12:08 peter Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -361,7 +361,7 @@ openLayoutDialog(char *helpfile, char *title, int x, int y, int width, int heigh /* Setup a nice screen for us to splat stuff onto */ draw_box(win, y, x, height, width, dialog_attr, border_attr); wattrset(win, dialog_attr); - mvwaddstr(win, y, x + 20, title); + mvwaddstr(win, y, x + (COLS - strlen(title)) / 2, title); } return win; } diff --git a/release/sysinstall/register.c b/release/sysinstall/register.c new file mode 100644 index 0000000..8a796c0 --- /dev/null +++ b/release/sysinstall/register.c @@ -0,0 +1,346 @@ +/* + * The new sysinstall program. + * + * This is probably the last program in the `sysinstall' line - the next + * generation being essentially a complete rewrite. + * + * $Id$ + * + * Copyright (c) 1997 + * Jordan Hubbard. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer, + * verbatim and that no modifications are made prior to this + * point in the file. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY JORDAN HUBBARD ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL JORDAN HUBBARD OR HIS PETS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, LIFE OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include "sysinstall.h" +#include <ctype.h> + +#define REGISTER_HELPFILE "register" +#define REGISTRATION_FNAME "/tmp/new-registration" +#define REGISTRATION_ADDRESS "jkh@freebsd.org" +#define MAJORDOMO_ADDRESS "majordomo@freebsd.org" + +#define FIRSTNAME_FIELD_LEN 25 +#define LASTNAME_FIELD_LEN 30 +#define EMAIL_FIELD_LEN 30 +#define ADDRESS_FIELD_LEN 160 +#define CITY_FIELD_LEN 20 +#define STATE_FIELD_LEN 15 +#define ZIP_FIELD_LEN 15 + +static char firstname[FIRSTNAME_FIELD_LEN], lastname[LASTNAME_FIELD_LEN], + email[EMAIL_FIELD_LEN], address[ADDRESS_FIELD_LEN], + city[CITY_FIELD_LEN], state[STATE_FIELD_LEN], zip[ZIP_FIELD_LEN]; + +static int okbutton, cancelbutton; + +/* What the screen size is meant to be */ +#define REGISTER_DIALOG_Y 0 +#define REGISTER_DIALOG_X 2 +#define REGISTER_DIALOG_WIDTH COLS - 4 +#define REGISTER_DIALOG_HEIGHT LINES - 2 + +static Layout layout[] = { +#define LAYOUT_LASTNAME 0 + { 2, 2, LASTNAME_FIELD_LEN - 1, LASTNAME_FIELD_LEN - 1, + "Last Name:", "Your surname (family name) or company name should go here.", + lastname, STRINGOBJ, NULL }, +#define LAYOUT_FIRSTNAME 1 + { 2, 36, FIRSTNAME_FIELD_LEN - 1, FIRSTNAME_FIELD_LEN - 1, + "First Name:", "Your given name or a contact name if registering for a company.", + firstname, STRINGOBJ, NULL }, +#define LAYOUT_EMAIL 2 + { 6, 2, EMAIL_FIELD_LEN - 1, EMAIL_FIELD_LEN - 1, + "EMail Address:", + "Where you'd like any announcement email sent, e.g. bsdmail@someplace.com", + email, STRINGOBJ, NULL }, +#define LAYOUT_ADDRESS 3 + { 10, 2, 60, ADDRESS_FIELD_LEN - 1, + "Street address:", "Your street address, all in one line (optional).", + address, STRINGOBJ, NULL }, +#define LAYOUT_CITY 4 + { 14, 2, CITY_FIELD_LEN - 1, CITY_FIELD_LEN - 1, + "City:", "Your city name (optional)", + city, STRINGOBJ, NULL }, +#define LAYOUT_STATE 5 + { 14, 26, STATE_FIELD_LEN - 1, STATE_FIELD_LEN - 1, + "State / Province:", + "Your local state or province.", + state, STRINGOBJ, NULL }, +#define LAYOUT_ZIP 5 + { 14, 50, ZIP_FIELD_LEN - 1, ZIP_FIELD_LEN - 1, + "Zip / Country Code:", + "Your U.S. Zip code or International country code (optional).", + zip, STRINGOBJ, NULL }, +#define LAYOUT_OKBUTTON 7 + { 18, 20, 0, 0, + "OK", "Select this if you are happy with these settings", + &okbutton, BUTTONOBJ, NULL }, +#define LAYOUT_CANCELBUTTON 8 + { 18, 40, 0, 0, + "CANCEL", "Select this if you wish to cancel this registration", + &cancelbutton, BUTTONOBJ, NULL }, + { NULL }, +}; + +/* Submenu selections */ +#define COMMERCE_MAIL 0 +#define COMMERCE_EMAIL 1 +#define ANNOUNCE_LIST 2 +#define NEWSLETTER 3 + +static struct { int y, x, sel; char *desc, *allowed; } hotspots[] = { + { 7, 35, 0, "Do you wish to receive FreeBSD [ONLY!] related commercial mail?", "Y" }, + { 7, 57, 0, "Do you wish to receive FreeBSD [ONLY!] related commercial email?", "Y" }, + { 8, 35, 0, "Sign up (with majordomo@FreeBSD.org) for important announcements?", "Y" }, + { 9, 35, 0, "Sign up for the FreeBSD Newsletter? P = Postal (paper) copy, E = Email", "PE" }, +}; + +/* Check the accuracy of user's choices before letting them move on */ +static int +verifySettings(void) +{ + if (!lastname[0]) { + msgConfirm("Missing last name / company name field."); + return 0; + } + else if (email[0] && !index(email, '@')) + return !msgYesNo("Hmmmm, this email address has no `@' in it. Are you\n" + "sure that %s is a valid address?"); + else if (address[0] && !city[0]) { + msgConfirm("Missing City name."); + return 0; + } + else if (!email[0] && (hotspots[COMMERCE_EMAIL].sel || hotspots[NEWSLETTER].sel == 2)) { + msgConfirm("You've signed up to receive commercial email or the newsletter by\n" + "email but have no email address specified!"); + return 0; + } + else if (!address[0] && (hotspots[COMMERCE_MAIL].sel || hotspots[NEWSLETTER].sel == 1)) { + msgConfirm("You've signed up to receive commercial mail or the newsletter by\n" + "post but have no postal address specified!"); + return 0; + } + return 1; +} + +/* Do the actual work of mailing out the registration once all is filled in */ +static void +handle_registration(void) +{ + FILE *fp; + WINDOW *save = savescr(); + + dialog_clear_norefresh(); + (void)unlink(REGISTRATION_FNAME); + fp = fopen(REGISTRATION_FNAME, "w"); + if (!fp) { + msgConfirm("Unable to open %s for the new registration.\n" + "That's pretty bad! Please fix whatever's wrong\n" + "and try this registration again."); + restorescr(save); + return; + } + fprintf(fp, "<entry>\n"); + fprintf(fp, "<first>%s</first>\n", firstname); + fprintf(fp, "<last>%s</last>\n", lastname); + fprintf(fp, "<email>%s</email>\n", email); + fprintf(fp, "<address>%s</address>\n", address); + fprintf(fp, "<city>%s</city>\n", city); + fprintf(fp, "<state>%s</state>\n", state); + fprintf(fp, "<zip>%s</zip>\n", zip); + fprintf(fp, "<options commerce_email=\"%s\" commerce_mail=\"%s\" announce=\"%s\" newsletter=\"%s\"></options>\n", + hotspots[COMMERCE_EMAIL].sel ? "yes" : "no", hotspots[COMMERCE_MAIL].sel ? "yes" : "no", + hotspots[ANNOUNCE_LIST].sel ? "yes" : "no", + hotspots[NEWSLETTER].sel == 0 ? "no" : hotspots[NEWSLETTER].sel == 1 ? "postal" : "email"); + fprintf(fp, "</entry>\n"); + fclose(fp); + if (!msgYesNo("Do you have a working network connection and outgoing email\n" + "enabled at this time? I need to be able to reach freebsd.org\n" + "in order to submit your registration.")) { + if (!vsystem("mail %s < %s", REGISTRATION_ADDRESS, REGISTRATION_FNAME)) { + msgConfirm("Thank you! Your registration has been sent in successfully.\n"); + (void)unlink(REGISTRATION_FNAME); + } + else { + msgConfirm("Argh! The mail program returned a bad status - there\n" + "must be something still not quite configured correctly.\n" + "leaving the registration in: %s\n" + "When you're connected to the net and ready to send it,\n" + "simply type: mail %s < %s\n", REGISTRATION_ADDRESS, REGISTRATION_FNAME, + REGISTRATION_FNAME); + } + if (hotspots[ANNOUNCE_LIST].sel) { + char *cp; + + cp = msgGetInput(email, "What email address would you like to subscribe under?\n" + "This is a fairly low-traffic mailing list and only generates\n" + "around 5 messages a month, so it's also safe to receive at your\n" + "standard email address."); + if (!cp) + msgConfirm("OK, I won't subscribe to announce at this time. To do it manually\n" + "yourself, simply send mail to %s.", MAJORDOMO_ADDRESS); + else { + if (!vsystem("echo subscribe freebsd-announce %s | mail %s", email, MAJORDOMO_ADDRESS)) + msgConfirm("Your request to join the announce mailing list has been sent.\n" + "you should receive notification back in 24 hours or less, otherwise\n" + "something has gone wrong and you should try this again by sending\n" + "a message to %s which contains the line:\n\n" + "subscribe freebsd-announce %s\n", MAJORDOMO_ADDRESS, email); + else + msgConfirm("Argh! The mail program returned a bad status - there\n" + "must be something still not quite configured correctly.\n" + "Please fix this then try again by sending a message to\n" + "to %s which contains the line:\n\n" + "subscribe freebsd-announce %s\n", MAJORDOMO_ADDRESS, email); + } + } + } + else { + msgConfirm("OK, your registration has been left in the file %s\n" + "When you're connected to the net and ready to send it,\n" + "simply type: mail %s < %s\n", REGISTRATION_FNAME, + REGISTRATION_ADDRESS, REGISTRATION_FNAME); + } + restorescr(save); +} + +/* Put up a subdialog for the registration options */ +static void +subdialog(WINDOW *win) +{ + int i, j, attrs; + char help_line[80]; + + attrs = getattrs(win); + mvwaddstr(win, hotspots[COMMERCE_MAIL].y, hotspots[COMMERCE_MAIL].x - 1, "[ ] Postal Adverts"); + mvwaddstr(win, hotspots[COMMERCE_EMAIL].y, hotspots[COMMERCE_EMAIL].x - 1, "[ ] Email Adverts"); + mvwaddstr(win, hotspots[ANNOUNCE_LIST].y, hotspots[ANNOUNCE_LIST].x - 1, + "[ ] The announce@FreeBSD.ORG mailing list."); + mvwaddstr(win, hotspots[NEWSLETTER].y, hotspots[NEWSLETTER].x - 1, "[ ] The FreeBSD Newsletter."); + /* Tack up the initial values */ + for (i = 0; i < sizeof(hotspots) / sizeof(hotspots[0]); i++) { + wattrset(win, attrs | A_BOLD); + mvwaddch(win, hotspots[i].y, hotspots[i].x, hotspots[i].sel ? hotspots[i].allowed[hotspots[i].sel - 1] : 'N'); + } + wattrset(win, attrs); + wrefresh(win); + + for (i = 0; i < sizeof(hotspots) / sizeof(hotspots[0]);) { + int ch, len = strlen(hotspots[i].desc); + char *cp; + + /* Display the help line at the bottom of the screen */ + for (j = 0; j < 79; j++) + help_line[j] = (j < len) ? hotspots[i].desc[j] : ' '; + help_line[j] = '\0'; + use_helpline(help_line); + display_helpline(win, LINES - 1, COLS - 1); + wmove(win, hotspots[i].y, hotspots[i].x); + wrefresh(win); + switch(ch = toupper(getch())) { + case KEY_UP: + if (i) + i--; + continue; + + case KEY_DOWN: + case '\011': /* TAB */ + case '\012': /* ^J */ + case '\014': /* ^M */ + /* Treat as a no-change op */ + ++i; + break; + + case 'N': /* No is generic to all */ + hotspots[i].sel = 0; + wattrset(win, attrs | A_BOLD); + mvwaddch(win, hotspots[i].y, hotspots[i].x, 'N'); + wattrset(win, attrs); + wrefresh(win); + ++i; + break; + + default: + cp = index(hotspots[i].allowed, ch); + if (cp) { + hotspots[i].sel = (cp - hotspots[i].allowed) + 1; + wattrset(win, attrs | A_BOLD); + mvwaddch(win, hotspots[i].y, hotspots[i].x, *cp); + wattrset(win, attrs); + wrefresh(win); + ++i; + } + else + beep(); + break; + } + } +} + +/* Register a user */ +int +registerOpenDialog(void) +{ + WINDOW *ds_win, *save = savescr(); + ComposeObj *obj = NULL; + int n = 0, cancel = FALSE; + int max, ret = DITEM_SUCCESS; + + dialog_clear_norefresh(); + /* We need a curses window */ + if (!(ds_win = openLayoutDialog(REGISTER_HELPFILE, " FreeBSD Registration Form: Press F1 for Help / General Info ", + REGISTER_DIALOG_X, REGISTER_DIALOG_Y, + REGISTER_DIALOG_WIDTH, REGISTER_DIALOG_HEIGHT))) { + beep(); + msgConfirm("Cannot open registration dialog window!!"); + restorescr(save); + return DITEM_FAILURE; + } + + /* Some more initialisation before we go into the main input loop */ + obj = initLayoutDialog(ds_win, layout, REGISTER_DIALOG_X, REGISTER_DIALOG_Y, &max); + +reenter: + cancelbutton = okbutton = 0; + while (layoutDialogLoop(ds_win, layout, &obj, &n, max, &cancelbutton, &cancel)) { + if (n == LAYOUT_ADDRESS) + subdialog(ds_win); + } + + if (!cancel && !verifySettings()) + goto reenter; + + /* OK, we've got a valid registration, now push it out */ + handle_registration(); + + /* Clear this crap off the screen */ + delwin(ds_win); + dialog_clear_norefresh(); + use_helpfile(NULL); + + restorescr(save); + return ret; +} diff --git a/release/sysinstall/sysinstall.h b/release/sysinstall/sysinstall.h index 45a9971..4b6f249 100644 --- a/release/sysinstall/sysinstall.h +++ b/release/sysinstall/sysinstall.h @@ -4,7 +4,7 @@ * This is probably the last attempt in the `sysinstall' line, the next * generation being slated to essentially a complete rewrite. * - * $Id: sysinstall.h,v 1.118 1997/02/22 14:12:18 peter Exp $ + * $Id: sysinstall.h,v 1.119 1997/03/08 11:06:43 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -407,6 +407,7 @@ extern int configFstab(void); extern void configEnvironmentSysconfig(char *config); extern void configEnvironmentResolv(char *config); extern void configSysconfig(char *config); +extern int configRegister(dialogMenuItem *self); extern void configResolv(void); extern int configPackages(dialogMenuItem *self); extern int configSaver(dialogMenuItem *self); diff --git a/release/sysinstall/tcpip.c b/release/sysinstall/tcpip.c index 77361ed..c6ac750 100644 --- a/release/sysinstall/tcpip.c +++ b/release/sysinstall/tcpip.c @@ -1,5 +1,5 @@ /* - * $Id$ + * $Id: tcpip.c,v 1.64 1997/02/22 14:12:23 peter Exp $ * * Copyright (c) 1995 * Gary J Palmer. All rights reserved. @@ -168,6 +168,7 @@ tcpOpenDialog(Device *devp) TCP_DIALOG_X, TCP_DIALOG_Y, TCP_DIALOG_WIDTH, TCP_DIALOG_HEIGHT))) { beep(); msgConfirm("Cannot open TCP/IP dialog window!!"); + restorescr(save); return DITEM_FAILURE; } @@ -259,6 +260,7 @@ reenter: goto reenter; /* Clear this crap off the screen */ + delwin(ds_win); dialog_clear_norefresh(); use_helpfile(NULL); diff --git a/release/sysinstall/user.c b/release/sysinstall/user.c index 2a47352..680a543 100644 --- a/release/sysinstall/user.c +++ b/release/sysinstall/user.c @@ -1,5 +1,5 @@ /* - * $Id$ + * $Id: user.c,v 1.13 1997/02/22 14:12:36 peter Exp $ * * Copyright (c) 1996 * Jörg Wunsch. All rights reserved. @@ -381,6 +381,7 @@ reenter: goto reenter; /* Clear this crap off the screen */ + delwin(ds_win); dialog_clear_norefresh(); use_helpfile(NULL); @@ -710,6 +711,7 @@ reenter: goto reenter; /* Clear this crap off the screen */ + delwin(ds_win); dialog_clear_norefresh(); use_helpfile(NULL); |