mirror of
https://github.com/freebsd/freebsd-src
synced 2024-09-22 09:43:47 +00:00
Keep our serial ports distinct so that first device is not found for
all (closes PR#2296). Print better FTP failure diagnostics Do better media failure checking in install.
This commit is contained in:
parent
c5e12995c6
commit
d42e16a0d6
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=21730
|
@ -358,6 +358,23 @@ deviceFind(char *name, DeviceType class)
|
|||
return j ? found : NULL;
|
||||
}
|
||||
|
||||
Device **
|
||||
deviceFindDescr(char *name, char *desc, DeviceType class)
|
||||
{
|
||||
static Device *found[DEV_MAX];
|
||||
int i, j;
|
||||
|
||||
j = 0;
|
||||
for (i = 0; i < numDevs; i++) {
|
||||
if ((!name || !strcmp(Devices[i]->name, name)) &&
|
||||
(!desc || !strcmp(Devices[i]->description, desc)) &&
|
||||
(class == DEVICE_TYPE_ANY || class == Devices[i]->type))
|
||||
found[j++] = Devices[i];
|
||||
}
|
||||
found[j] = NULL;
|
||||
return j ? found : NULL;
|
||||
}
|
||||
|
||||
int
|
||||
deviceCount(Device **devs)
|
||||
{
|
||||
|
|
|
@ -103,9 +103,10 @@ mediaInitFTP(Device *dev)
|
|||
if (dir && *dir != '\0') {
|
||||
if ((i = ftpChdir(OpenConn, dir)) != 0) {
|
||||
if (i == 550)
|
||||
msgConfirm("No such directory %s, please check your path and try again.", dir);
|
||||
msgConfirm("No such directory ftp://%s/%s\n"
|
||||
"please check your URL and try again.", hostname, dir);
|
||||
else
|
||||
msgConfirm("FTP chdir to directory %s returned FTP error status %d\n", dir, i);
|
||||
msgConfirm("FTP chdir to ftp://%s/%s returned error status %d\n", hostname, dir, i);
|
||||
goto punt;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -674,10 +674,14 @@ installCommit(dialogMenuItem *self)
|
|||
return DITEM_FAILURE | DITEM_RESTORE;
|
||||
}
|
||||
|
||||
if (!mediaDevice && !msgYesNo("You need to select a media type first. Do you want\n"
|
||||
"to do this now?")) {
|
||||
if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
|
||||
return DITEM_FAILURE | DITEM_RESTORE;
|
||||
if (!mediaDevice) {
|
||||
if (!msgYesNo("You need to select a media type first. Do you want\n"
|
||||
"to do this now?")) {
|
||||
if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
|
||||
return DITEM_FAILURE | DITEM_RECREATE;
|
||||
}
|
||||
else
|
||||
return DITEM_FAILURE | DITEM_RESTORE;
|
||||
}
|
||||
|
||||
if (!mediaDevice->init(mediaDevice)) {
|
||||
|
|
|
@ -415,6 +415,7 @@ extern DMenu *deviceCreateMenu(DMenu *menu, DeviceType type, int (*hook)(dialogM
|
|||
int (*check)(dialogMenuItem *d));
|
||||
extern void deviceGetAll(void);
|
||||
extern Device **deviceFind(char *name, DeviceType type);
|
||||
extern Device **deviceFindDescr(char *name, char *desc, DeviceType class);
|
||||
extern int deviceCount(Device **devs);
|
||||
extern Device *new_device(char *name);
|
||||
extern Device *deviceRegister(char *name, char *desc, char *devname, DeviceType type, Boolean enabled,
|
||||
|
|
|
@ -315,7 +315,7 @@ netHook(dialogMenuItem *self)
|
|||
{
|
||||
Device **devs;
|
||||
|
||||
devs = deviceFind(self->prompt, DEVICE_TYPE_NETWORK);
|
||||
devs = deviceFindDescr(self->prompt, self->title, DEVICE_TYPE_NETWORK);
|
||||
if (devs) {
|
||||
if (DITEM_STATUS(tcpOpenDialog(devs[0])) != DITEM_FAILURE)
|
||||
mediaDevice = devs[0];
|
||||
|
|
|
@ -358,6 +358,23 @@ deviceFind(char *name, DeviceType class)
|
|||
return j ? found : NULL;
|
||||
}
|
||||
|
||||
Device **
|
||||
deviceFindDescr(char *name, char *desc, DeviceType class)
|
||||
{
|
||||
static Device *found[DEV_MAX];
|
||||
int i, j;
|
||||
|
||||
j = 0;
|
||||
for (i = 0; i < numDevs; i++) {
|
||||
if ((!name || !strcmp(Devices[i]->name, name)) &&
|
||||
(!desc || !strcmp(Devices[i]->description, desc)) &&
|
||||
(class == DEVICE_TYPE_ANY || class == Devices[i]->type))
|
||||
found[j++] = Devices[i];
|
||||
}
|
||||
found[j] = NULL;
|
||||
return j ? found : NULL;
|
||||
}
|
||||
|
||||
int
|
||||
deviceCount(Device **devs)
|
||||
{
|
||||
|
|
|
@ -674,10 +674,14 @@ installCommit(dialogMenuItem *self)
|
|||
return DITEM_FAILURE | DITEM_RESTORE;
|
||||
}
|
||||
|
||||
if (!mediaDevice && !msgYesNo("You need to select a media type first. Do you want\n"
|
||||
"to do this now?")) {
|
||||
if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
|
||||
return DITEM_FAILURE | DITEM_RESTORE;
|
||||
if (!mediaDevice) {
|
||||
if (!msgYesNo("You need to select a media type first. Do you want\n"
|
||||
"to do this now?")) {
|
||||
if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
|
||||
return DITEM_FAILURE | DITEM_RECREATE;
|
||||
}
|
||||
else
|
||||
return DITEM_FAILURE | DITEM_RESTORE;
|
||||
}
|
||||
|
||||
if (!mediaDevice->init(mediaDevice)) {
|
||||
|
|
|
@ -415,6 +415,7 @@ extern DMenu *deviceCreateMenu(DMenu *menu, DeviceType type, int (*hook)(dialogM
|
|||
int (*check)(dialogMenuItem *d));
|
||||
extern void deviceGetAll(void);
|
||||
extern Device **deviceFind(char *name, DeviceType type);
|
||||
extern Device **deviceFindDescr(char *name, char *desc, DeviceType class);
|
||||
extern int deviceCount(Device **devs);
|
||||
extern Device *new_device(char *name);
|
||||
extern Device *deviceRegister(char *name, char *desc, char *devname, DeviceType type, Boolean enabled,
|
||||
|
|
|
@ -358,6 +358,23 @@ deviceFind(char *name, DeviceType class)
|
|||
return j ? found : NULL;
|
||||
}
|
||||
|
||||
Device **
|
||||
deviceFindDescr(char *name, char *desc, DeviceType class)
|
||||
{
|
||||
static Device *found[DEV_MAX];
|
||||
int i, j;
|
||||
|
||||
j = 0;
|
||||
for (i = 0; i < numDevs; i++) {
|
||||
if ((!name || !strcmp(Devices[i]->name, name)) &&
|
||||
(!desc || !strcmp(Devices[i]->description, desc)) &&
|
||||
(class == DEVICE_TYPE_ANY || class == Devices[i]->type))
|
||||
found[j++] = Devices[i];
|
||||
}
|
||||
found[j] = NULL;
|
||||
return j ? found : NULL;
|
||||
}
|
||||
|
||||
int
|
||||
deviceCount(Device **devs)
|
||||
{
|
||||
|
|
|
@ -103,9 +103,10 @@ mediaInitFTP(Device *dev)
|
|||
if (dir && *dir != '\0') {
|
||||
if ((i = ftpChdir(OpenConn, dir)) != 0) {
|
||||
if (i == 550)
|
||||
msgConfirm("No such directory %s, please check your path and try again.", dir);
|
||||
msgConfirm("No such directory ftp://%s/%s\n"
|
||||
"please check your URL and try again.", hostname, dir);
|
||||
else
|
||||
msgConfirm("FTP chdir to directory %s returned FTP error status %d\n", dir, i);
|
||||
msgConfirm("FTP chdir to ftp://%s/%s returned error status %d\n", hostname, dir, i);
|
||||
goto punt;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -674,10 +674,14 @@ installCommit(dialogMenuItem *self)
|
|||
return DITEM_FAILURE | DITEM_RESTORE;
|
||||
}
|
||||
|
||||
if (!mediaDevice && !msgYesNo("You need to select a media type first. Do you want\n"
|
||||
"to do this now?")) {
|
||||
if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
|
||||
return DITEM_FAILURE | DITEM_RESTORE;
|
||||
if (!mediaDevice) {
|
||||
if (!msgYesNo("You need to select a media type first. Do you want\n"
|
||||
"to do this now?")) {
|
||||
if (!dmenuOpenSimple(&MenuMedia, FALSE) || !mediaDevice)
|
||||
return DITEM_FAILURE | DITEM_RECREATE;
|
||||
}
|
||||
else
|
||||
return DITEM_FAILURE | DITEM_RESTORE;
|
||||
}
|
||||
|
||||
if (!mediaDevice->init(mediaDevice)) {
|
||||
|
|
|
@ -415,6 +415,7 @@ extern DMenu *deviceCreateMenu(DMenu *menu, DeviceType type, int (*hook)(dialogM
|
|||
int (*check)(dialogMenuItem *d));
|
||||
extern void deviceGetAll(void);
|
||||
extern Device **deviceFind(char *name, DeviceType type);
|
||||
extern Device **deviceFindDescr(char *name, char *desc, DeviceType class);
|
||||
extern int deviceCount(Device **devs);
|
||||
extern Device *new_device(char *name);
|
||||
extern Device *deviceRegister(char *name, char *desc, char *devname, DeviceType type, Boolean enabled,
|
||||
|
|
|
@ -315,7 +315,7 @@ netHook(dialogMenuItem *self)
|
|||
{
|
||||
Device **devs;
|
||||
|
||||
devs = deviceFind(self->prompt, DEVICE_TYPE_NETWORK);
|
||||
devs = deviceFindDescr(self->prompt, self->title, DEVICE_TYPE_NETWORK);
|
||||
if (devs) {
|
||||
if (DITEM_STATUS(tcpOpenDialog(devs[0])) != DITEM_FAILURE)
|
||||
mediaDevice = devs[0];
|
||||
|
|
Loading…
Reference in a new issue