FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo Development

 
 
LinkBack Thread Tools
 
Old 02-11-2011, 03:40 PM
Chris Lumens
 
Default Prompt for media check on DVD installs (#676551).

---
loader/cdinstall.c | 27 +++++++++++++--------------
loader/cdinstall.h | 1 +
loader/loader.c | 1 +
3 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/loader/cdinstall.c b/loader/cdinstall.c
index 161def7..e1e5fe7 100644
--- a/loader/cdinstall.c
+++ b/loader/cdinstall.c
@@ -191,13 +191,18 @@ static void wrongCDMessage(void) {
}

/* ask about doing media check */
-static void queryCDMediaCheck(char *dev) {
+void queryCDMediaCheck(char *instRepo) {
int rc;
+ char *tmp, *device;

/* dont bother to test in automated installs */
if (FL_KICKSTART(flags) && !FL_MEDIACHECK(flags))
return;

+ /* Skip over the leading "cdrom://". */
+ tmp = instRepo+8;
+ checked_asprintf(&device, "%.*s", (int) (strchr(tmp, ':')-tmp), tmp);
+
/* see if we should check image(s) */
/* in rescue mode only test if they explicitly asked to */
if (!FL_RESCUE(flags) || FL_MEDIACHECK(flags)) {
@@ -213,18 +218,18 @@ static void queryCDMediaCheck(char *dev) {
* remount to pretend nothing ever happened.
*/
umount("/mnt/source");
- mediaCheckCdrom(dev);
+ mediaCheckCdrom(device);

do {
- if (doPwMount(dev, "/mnt/source", "iso9660", "ro", NULL)) {
- ejectCdrom(dev);
+ if (doPwMount(device, "/mnt/source", "iso9660", "ro", NULL)) {
+ ejectCdrom(device);
wrongCDMessage();
continue;
}

if (access("/mnt/source/.discinfo", R_OK)) {
umount("/mnt/source");
- ejectCdrom(dev);
+ ejectCdrom(device);
wrongCDMessage();
continue;
}
@@ -233,6 +238,8 @@ static void queryCDMediaCheck(char *dev) {
} while (1);
}
}
+
+ free(device);
}

int findInstallCD(struct loaderData_s *loaderData) {
@@ -314,20 +321,12 @@ int findInstallCD(struct loaderData_s *loaderData) {

int promptForCdrom(struct loaderData_s *loaderData) {
int rc;
- char *cddev = NULL, *colon, *start;

do {
rc = findInstallCD(loaderData);

if (loaderData->instRepo && rc == LOADER_OK) {
- /* Skip over the leading cdrom:// */
- start = loaderData->instRepo+8;
- colon = strchr(start, ':');
-
- /* Then grab just the device portion out of the instRepo string. */
- cddev = strndup(start, colon-start);
- queryCDMediaCheck(cddev);
- free(cddev);
+ queryCDMediaCheck(loaderData->instRepo);
return rc;
} else {
char * buf;
diff --git a/loader/cdinstall.h b/loader/cdinstall.h
index 6666b03..f883e7a 100644
--- a/loader/cdinstall.h
+++ b/loader/cdinstall.h
@@ -25,6 +25,7 @@
int findInstallCD(struct loaderData_s *loaderData);
int promptForCdrom(struct loaderData_s *loaderData);
int loadCdromImages(struct loaderData_s *loaderData);
+void queryCDMediaCheck(char *instRepo);

int kickstartFromCD(char *kssrc);
#endif
diff --git a/loader/loader.c b/loader/loader.c
index 644c1e8..dcdedc9 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -1284,6 +1284,7 @@ static void doLoaderMain(struct loaderData_s *loaderData,
*/
if (!FL_ASKMETHOD(flags) && !loaderData->instRepo && findInstallCD(loaderData) == LOADER_OK) {
logMessage(DEBUGLVL, "Found installation media, so skipping lang and kbd");
+ queryCDMediaCheck(loaderData->instRepo);
skipLangKbd = 1;
flags |= LOADER_FLAGS_NOPASS;
}
--
1.7.1.1

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 
Old 02-14-2011, 06:14 PM
Martin Sivak
 
Default Prompt for media check on DVD installs (#676551).

Looks good. Ack.

--
Martin Sivák
msivak@redhat.com
Red Hat Czech
Anaconda team / Brno, CZ

----- Original Message -----
> ---
> loader/cdinstall.c | 27 +++++++++++++--------------
> loader/cdinstall.h | 1 +
> loader/loader.c | 1 +
> 3 files changed, 15 insertions(+), 14 deletions(-)
>
> diff --git a/loader/cdinstall.c b/loader/cdinstall.c
> index 161def7..e1e5fe7 100644
> --- a/loader/cdinstall.c
> +++ b/loader/cdinstall.c
> @@ -191,13 +191,18 @@ static void wrongCDMessage(void) {
> }
>
> /* ask about doing media check */
> -static void queryCDMediaCheck(char *dev) {
> +void queryCDMediaCheck(char *instRepo) {
> int rc;
> + char *tmp, *device;
>
> /* dont bother to test in automated installs */
> if (FL_KICKSTART(flags) && !FL_MEDIACHECK(flags))
> return;
>
> + /* Skip over the leading "cdrom://". */
> + tmp = instRepo+8;
> + checked_asprintf(&device, "%.*s", (int) (strchr(tmp, ':')-tmp),
> tmp);
> +
> /* see if we should check image(s) */
> /* in rescue mode only test if they explicitly asked to */
> if (!FL_RESCUE(flags) || FL_MEDIACHECK(flags)) {
> @@ -213,18 +218,18 @@ static void queryCDMediaCheck(char *dev) {
> * remount to pretend nothing ever happened.
> */
> umount("/mnt/source");
> - mediaCheckCdrom(dev);
> + mediaCheckCdrom(device);
>
> do {
> - if (doPwMount(dev, "/mnt/source", "iso9660", "ro", NULL)) {
> - ejectCdrom(dev);
> + if (doPwMount(device, "/mnt/source", "iso9660", "ro", NULL)) {
> + ejectCdrom(device);
> wrongCDMessage();
> continue;
> }
>
> if (access("/mnt/source/.discinfo", R_OK)) {
> umount("/mnt/source");
> - ejectCdrom(dev);
> + ejectCdrom(device);
> wrongCDMessage();
> continue;
> }
> @@ -233,6 +238,8 @@ static void queryCDMediaCheck(char *dev) {
> } while (1);
> }
> }
> +
> + free(device);
> }
>
> int findInstallCD(struct loaderData_s *loaderData) {
> @@ -314,20 +321,12 @@ int findInstallCD(struct loaderData_s
> *loaderData) {
>
> int promptForCdrom(struct loaderData_s *loaderData) {
> int rc;
> - char *cddev = NULL, *colon, *start;
>
> do {
> rc = findInstallCD(loaderData);
>
> if (loaderData->instRepo && rc == LOADER_OK) {
> - /* Skip over the leading cdrom:// */
> - start = loaderData->instRepo+8;
> - colon = strchr(start, ':');
> -
> - /* Then grab just the device portion out of the instRepo string. */
> - cddev = strndup(start, colon-start);
> - queryCDMediaCheck(cddev);
> - free(cddev);
> + queryCDMediaCheck(loaderData->instRepo);
> return rc;
> } else {
> char * buf;
> diff --git a/loader/cdinstall.h b/loader/cdinstall.h
> index 6666b03..f883e7a 100644
> --- a/loader/cdinstall.h
> +++ b/loader/cdinstall.h
> @@ -25,6 +25,7 @@
> int findInstallCD(struct loaderData_s *loaderData);
> int promptForCdrom(struct loaderData_s *loaderData);
> int loadCdromImages(struct loaderData_s *loaderData);
> +void queryCDMediaCheck(char *instRepo);
>
> int kickstartFromCD(char *kssrc);
> #endif
> diff --git a/loader/loader.c b/loader/loader.c
> index 644c1e8..dcdedc9 100644
> --- a/loader/loader.c
> +++ b/loader/loader.c
> @@ -1284,6 +1284,7 @@ static void doLoaderMain(struct loaderData_s
> *loaderData,
> */
> if (!FL_ASKMETHOD(flags) && !loaderData->instRepo &&
> findInstallCD(loaderData) == LOADER_OK) {
> logMessage(DEBUGLVL, "Found installation media, so skipping lang and
> kbd");
> + queryCDMediaCheck(loaderData->instRepo);
> skipLangKbd = 1;
> flags |= LOADER_FLAGS_NOPASS;
> }
> --
> 1.7.1.1
>
> _______________________________________________
> Anaconda-devel-list mailing list
> Anaconda-devel-list@redhat.com
> https://www.redhat.com/mailman/listinfo/anaconda-devel-list

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 

Thread Tools




All times are GMT. The time now is 10:29 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ©2007 - 2008, www.linux-archive.org