aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/db/migration/data/v310/gold.php
diff options
context:
space:
mode:
authorJakub Senko <jakubsenko@gmail.com>2016-09-25 19:58:28 +0200
committerJakub Senko <jakubsenko@gmail.com>2016-09-26 11:13:11 +0200
commitf66ca6a9cc1779270debd5240e5bb6e3f44b9759 (patch)
tree6e0b211adff39b830fbaea2b4dd4fda78e1cb4b1 /phpBB/phpbb/db/migration/data/v310/gold.php
parent51d830a6d332b4e37d90ee4f8455a6b3a47f9591 (diff)
downloadforums-f66ca6a9cc1779270debd5240e5bb6e3f44b9759.tar
forums-f66ca6a9cc1779270debd5240e5bb6e3f44b9759.tar.gz
forums-f66ca6a9cc1779270debd5240e5bb6e3f44b9759.tar.bz2
forums-f66ca6a9cc1779270debd5240e5bb6e3f44b9759.tar.xz
forums-f66ca6a9cc1779270debd5240e5bb6e3f44b9759.zip
[ticket/14786] Add mcp_forum_actions_before/after events
PHPBB3-14786
Diffstat (limited to 'phpBB/phpbb/db/migration/data/v310/gold.php')
0 files changed, 0 insertions, 0 deletions
'#n41'>41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
/*
 * Guillaume Cottenceau (gc@mandrakesoft.com)
 *
 * Copyright 2000 MandrakeSoft
 *
 * This software may be freely redistributed under the terms of the GNU
 * public license.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 */

/*
 * Portions from Erik Troan (ewt@redhat.com)
 *
 * Copyright 1996 Red Hat Software 
 *
 */

#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <sys/mount.h>
#include "stage1.h"
#include "frontend.h"
#include "modules.h"
#include "probing.h"
#include "log.h"
#include "mount.h"

#include "cdrom.h"


static int mount_that_cd_device(char * dev_name)
{
	char device_fullname[50];

	strcpy(device_fullname, "/dev/");
	strcat(device_fullname, dev_name);

	return my_mount(device_fullname, IMAGE_LOCATION, "iso9660");
}


static int test_that_cd()
{
	return access(IMAGE_LOCATION LIVE_LOCATION, R_OK);
}


static enum return_type try_with_device(char * dev_name, char * dev_model);

static enum return_type do_with_device(char * dev_name, char * dev_model)
{
	if (test_that_cd()) {
		enum return_type results;
		umount(IMAGE_LOCATION);
		results = ask_yes_no("That CDROM disc does not seem to be a " DISTRIB_NAME " Installation CDROM.\nRetry with another disc?");
		if (results == RETURN_OK)
			return try_with_device(dev_name, dev_model);
		return results;
	}

	log_message("found a " DISTRIB_NAME " CDROM, good news!");

	if (IS_SPECIAL_STAGE2 || ramdisk_possible())
		load_ramdisk(); /* we don't care about return code, we'll do it live if we failed */

	if (IS_RESCUE)
		umount(IMAGE_LOCATION);

	method_name = strdup("cdrom");
	return RETURN_OK;
}		

static enum return_type try_with_device(char * dev_name, char * dev_model)
{
	wait_message("Trying to access a CDROM disc (drive %s)", dev_model);

	if (mount_that_cd_device(dev_name) == -1) {
		enum return_type results;
		char msg[500];
		unset_param(MODE_AUTOMATIC); /* we are in a fallback mode */
		remove_wait_message();

		snprintf(msg, sizeof(msg), "I can't access a " DISTRIB_NAME " Installation disc in your CDROM drive (%s).\nRetry?", dev_model);
		results = ask_yes_no(msg);
		if (results == RETURN_OK)
			return try_with_device(dev_name, dev_model);
		return results;
	}	
	remove_wait_message();

	return do_with_device(dev_name, dev_model);
}

enum return_type cdrom_prepare(void)
{
	char ** medias, ** ptr, ** medias_models;
	char * choice;
	int i, count = 0;
	enum return_type results;

	my_insmod("ide-cd", ANY_DRIVER_TYPE, NULL);
	my_insmod("sr_mod", ANY_DRIVER_TYPE, NULL);
	
	get_medias(CDROM, &medias, &medias_models);

	ptr = medias;
	while (ptr && *ptr) {
		count++;
		ptr++;
	}

	if (count == 0) {
		stg1_error_message("No CDROM device found.");
		i = ask_insmod(SCSI_ADAPTERS);
		if (i == RETURN_BACK)
			return RETURN_BACK;
		return cdrom_prepare();
	}

	if (count == 1) {
		results = try_with_device(*medias, *medias_models);
		if (results == RETURN_OK)
			return RETURN_OK;
		i = ask_insmod(SCSI_ADAPTERS);
		if (i == RETURN_BACK)
			return RETURN_BACK;
		return cdrom_prepare();
	}

	if (IS_AUTOMATIC) {
		char ** model = medias_models;
		ptr = medias;
		while (ptr && *ptr) {
			wait_message("Trying to access " DISTRIB_NAME " CDROM disc (drive %s)", *model);
			if (mount_that_cd_device(*ptr) != -1) {
				if (!test_that_cd()) {
					remove_wait_message();
					return do_with_device(*ptr, *model);
				}
				else
					umount(IMAGE_LOCATION);
			}
			remove_wait_message();
			ptr++;
			model++;
		}
		unset_param(MODE_AUTOMATIC);
		return cdrom_prepare();
	}
	else {
		results = ask_from_list_comments("Please choose the CDROM drive to use for the installation.", medias, medias_models, &choice);
		if (results == RETURN_OK) {
			char ** model = medias_models;
			ptr = medias;
			while (ptr && *ptr && model && *model) {
				if (!strcmp(*ptr, choice))
					break;
				ptr++;
				model++;
			}
			results = try_with_device(choice, *model);
		} else
			return results;
	}

	if (results == RETURN_OK)
		return RETURN_OK;
	if (results == RETURN_BACK)
		return cdrom_prepare();

	i = ask_insmod(SCSI_ADAPTERS);
	if (i == RETURN_BACK)
		return RETURN_BACK;
	return cdrom_prepare();
}