summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/drakpxe
diff options
context:
space:
mode:
authorFrancois Pons <fpons@mandriva.com>2003-02-12 14:41:18 +0000
committerFrancois Pons <fpons@mandriva.com>2003-02-12 14:41:18 +0000
commit3b4d0d54a1d8b97c904c9bff12e3ce2eecfa3999 (patch)
tree14a99c21cd85acecc784c5b0caf40f9bb7c8009a /perl-install/standalone/drakpxe
parent36e7b9be5e3055d9df464c40f457d86938e11fe4 (diff)
downloaddrakx-backup-do-not-use-3b4d0d54a1d8b97c904c9bff12e3ce2eecfa3999.tar
drakx-backup-do-not-use-3b4d0d54a1d8b97c904c9bff12e3ce2eecfa3999.tar.gz
drakx-backup-do-not-use-3b4d0d54a1d8b97c904c9bff12e3ce2eecfa3999.tar.bz2
drakx-backup-do-not-use-3b4d0d54a1d8b97c904c9bff12e3ce2eecfa3999.tar.xz
drakx-backup-do-not-use-3b4d0d54a1d8b97c904c9bff12e3ce2eecfa3999.zip
updated to find an interface even when no profile are available.
Diffstat (limited to 'perl-install/standalone/drakpxe')
-rwxr-xr-xperl-install/standalone/drakpxe16
1 files changed, 10 insertions, 6 deletions
diff --git a/perl-install/standalone/drakpxe b/perl-install/standalone/drakpxe
index f6c04a6fc..2700490fe 100755
--- a/perl-install/standalone/drakpxe
+++ b/perl-install/standalone/drakpxe
@@ -49,11 +49,9 @@ $::direct = grep { /-direct/ } @ARGV;
#my $shorewall = network::shorewall::read();
#
#- get network configuration.
-my $netcnx = {};
my $netc = {};
my $intf = {};
-network::netconnect::read_net_conf('', $netcnx, $netc);
-network::netconnect::load_conf($netcnx, $netc, $intf);
+network::read_all_conf('', $netc, $intf);
my $in = 'interactive'->vnew('su', 'default');
@@ -128,7 +126,13 @@ undef $::Wizard_no_previous;
step_check_intf:
-my @intf = grep { exists $_->{NETWORK} } values %$intf;
+my @intf = grep { exists $_->{NETWORK} } map {
+ unless ($_->{NETWORK}) {
+ foreach my $s (split "\n", `route`) {
+ print STDERR "$s\n";
+ $s =~ /^(\S+)\s+\S+\s+$_->{NETMASK}\s+.*$_->{DEVICE}/ and $_->{NETWORK} = $1;
+ }
+ } $_ } values %$intf;
if (@intf < 1) {
#- no interface already configured found, ask user to configure.
$in->ask_warn(N("No network adapter on your system!"),
@@ -151,7 +155,7 @@ if (@intf < 1) {
step_ip_range:
#- read current configuration, or create a default suitable automatically.
-my $dhcpd_conf = parse_dhcpd_conf("/etc/dhcpd.conf", $netcnx, $netc, $intf[0]);
+my $dhcpd_conf = parse_dhcpd_conf("/etc/dhcpd.conf", {}, $netc, $intf[0]);
#- get back default of ip.
my $pool;
@@ -214,7 +218,7 @@ Leave it blank if you do not want to set up automatic installation mode.
#- now install packages...
my %rpm2file = ('dhcp-server' => '/usr/sbin/dhcpd',
- pxe => '/usr/sbin/pxe',
+ 'pxe' => '/usr/sbin/pxe',
'tftp-server' => '/usr/sbin/in.tftpd',
'apache' => '/usr/sbin/httpd');
id='n262' href='#n262'>262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604
/*
 * cistpl.h 1.34 2000/06/19 23:18:12
 *
 * The contents of this file are subject to the Mozilla Public License
 * Version 1.1 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License
 * at http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
 * the License for the specific language governing rights and
 * limitations under the License. 
 *
 * The initial developer of the original code is David A. Hinds
 * <dahinds@users.sourceforge.net>.  Portions created by David A. Hinds
 * are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.
 *
 * Alternatively, the contents of this file may be used under the
 * terms of the GNU Public License version 2 (the "GPL"), in which
 * case the provisions of the GPL are applicable instead of the
 * above.  If you wish to allow the use of your version of this file
 * only under the terms of the GPL and not to allow others to use
 * your version of this file under the MPL, indicate your decision by
 * deleting the provisions above and replace them with the notice and
 * other provisions required by the GPL.  If you do not delete the
 * provisions above, a recipient may use your version of this file
 * under either the MPL or the GPL.
 */

#ifndef _LINUX_CISTPL_H
#define _LINUX_CISTPL_H

#define CISTPL_NULL		0x00
#define CISTPL_DEVICE		0x01
#define CISTPL_LONGLINK_CB	0x02
#define CISTPL_INDIRECT		0x03
#define CISTPL_CONFIG_CB	0x04
#define CISTPL_CFTABLE_ENTRY_CB	0x05
#define CISTPL_LONGLINK_MFC	0x06
#define CISTPL_BAR		0x07
#define CISTPL_PWR_MGMNT	0x08
#define CISTPL_EXTDEVICE	0x09
#define CISTPL_CHECKSUM		0x10
#define CISTPL_LONGLINK_A	0x11
#define CISTPL_LONGLINK_C	0x12
#define CISTPL_LINKTARGET	0x13
#define CISTPL_NO_LINK		0x14
#define CISTPL_VERS_1		0x15
#define CISTPL_ALTSTR		0x16
#define CISTPL_DEVICE_A		0x17
#define CISTPL_JEDEC_C		0x18
#define CISTPL_JEDEC_A		0x19
#define CISTPL_CONFIG		0x1a
#define CISTPL_CFTABLE_ENTRY	0x1b
#define CISTPL_DEVICE_OC	0x1c
#define CISTPL_DEVICE_OA	0x1d
#define CISTPL_DEVICE_GEO	0x1e
#define CISTPL_DEVICE_GEO_A	0x1f
#define CISTPL_MANFID		0x20
#define CISTPL_FUNCID		0x21
#define CISTPL_FUNCE		0x22
#define CISTPL_SWIL		0x23
#define CISTPL_END		0xff
/* Layer 2 tuples */
#define CISTPL_VERS_2		0x40
#define CISTPL_FORMAT		0x41
#define CISTPL_GEOMETRY		0x42
#define CISTPL_BYTEORDER	0x43
#define CISTPL_DATE		0x44
#define CISTPL_BATTERY		0x45
#define CISTPL_FORMAT_A		0x47
/* Layer 3 tuples */
#define CISTPL_ORG		0x46
#define CISTPL_SPCL		0x90

typedef struct cistpl_longlink_t {
    u_int	addr;
} cistpl_longlink_t;

typedef struct cistpl_checksum_t {
    u_short	addr;
    u_short	len;
    u_char	sum;
} cistpl_checksum_t;

#define CISTPL_MAX_FUNCTIONS	8
#define CISTPL_MFC_ATTR		0x00
#define CISTPL_MFC_COMMON	0x01

typedef struct cistpl_longlink_mfc_t {
    u_char	nfn;
    struct {
	u_char	space;
	u_int	addr;
    } fn[CISTPL_MAX_FUNCTIONS];
} cistpl_longlink_mfc_t;

#define CISTPL_MAX_ALTSTR_STRINGS	4

typedef struct cistpl_altstr_t {
    u_char	ns;
    u_char	ofs[CISTPL_MAX_ALTSTR_STRINGS];
    char	str[254];
} cistpl_altstr_t;

#define CISTPL_DTYPE_NULL	0x00
#define CISTPL_DTYPE_ROM	0x01
#define CISTPL_DTYPE_OTPROM	0x02
#define CISTPL_DTYPE_EPROM	0x03
#define CISTPL_DTYPE_EEPROM	0x04
#define CISTPL_DTYPE_FLASH	0x05
#define CISTPL_DTYPE_SRAM	0x06
#define CISTPL_DTYPE_DRAM	0x07
#define CISTPL_DTYPE_FUNCSPEC	0x0d
#define CISTPL_DTYPE_EXTEND	0x0e

#define CISTPL_MAX_DEVICES	4

typedef struct cistpl_device_t {
    u_char	ndev;
    struct {
	u_char 	type;
	u_char	wp;
	u_int	speed;
	u_int	size;
    } dev[CISTPL_MAX_DEVICES];
} cistpl_device_t;

#define CISTPL_DEVICE_MWAIT	0x01
#define CISTPL_DEVICE_3VCC	0x02

typedef struct cistpl_device_o_t {
    u_char		flags;
    cistpl_device_t	device;
} cistpl_device_o_t;

#define CISTPL_VERS_1_MAX_PROD_STRINGS	4

typedef struct cistpl_vers_1_t {
    u_char	major;
    u_char	minor;
    u_char	ns;
    u_char	ofs[CISTPL_VERS_1_MAX_PROD_STRINGS];
    char	str[254];
} cistpl_vers_1_t;

typedef struct cistpl_jedec_t {
    u_char	nid;
    struct {
	u_char	mfr;
	u_char	info;
    } id[CISTPL_MAX_DEVICES];
} cistpl_jedec_t;

typedef struct cistpl_manfid_t {
    u_short	manf;
    u_short	card;
} cistpl_manfid_t;

#define CISTPL_FUNCID_MULTI	0x00
#define CISTPL_FUNCID_MEMORY	0x01
#define CISTPL_FUNCID_SERIAL	0x02
#define CISTPL_FUNCID_PARALLEL	0x03
#define CISTPL_FUNCID_FIXED	0x04
#define CISTPL_FUNCID_VIDEO	0x05
#define CISTPL_FUNCID_NETWORK	0x06
#define CISTPL_FUNCID_AIMS	0x07
#define CISTPL_FUNCID_SCSI	0x08

#define CISTPL_SYSINIT_POST	0x01
#define CISTPL_SYSINIT_ROM	0x02

typedef struct cistpl_funcid_t {
    u_char	func;
    u_char	sysinit;
} cistpl_funcid_t;

typedef struct cistpl_funce_t {
    u_char	type;
    u_char	data[0];
} cistpl_funce_t;

/*======================================================================

    Modem Function Extension Tuples

======================================================================*/

#define CISTPL_FUNCE_SERIAL_IF		0x00
#define CISTPL_FUNCE_SERIAL_CAP		0x01
#define CISTPL_FUNCE_SERIAL_SERV_DATA	0x02
#define CISTPL_FUNCE_SERIAL_SERV_FAX	0x03
#define CISTPL_FUNCE_SERIAL_SERV_VOICE	0x04
#define CISTPL_FUNCE_SERIAL_CAP_DATA	0x05
#define CISTPL_FUNCE_SERIAL_CAP_FAX	0x06
#define CISTPL_FUNCE_SERIAL_CAP_VOICE	0x07
#define CISTPL_FUNCE_SERIAL_IF_DATA	0x08
#define CISTPL_FUNCE_SERIAL_IF_FAX	0x09
#define CISTPL_FUNCE_SERIAL_IF_VOICE	0x0a

/* UART identification */
#define CISTPL_SERIAL_UART_8250		0x00
#define CISTPL_SERIAL_UART_16450	0x01
#define CISTPL_SERIAL_UART_16550	0x02
#define CISTPL_SERIAL_UART_8251		0x03
#define CISTPL_SERIAL_UART_8530		0x04
#define CISTPL_SERIAL_UART_85230	0x05

/* UART capabilities */
#define CISTPL_SERIAL_UART_SPACE	0x01
#define CISTPL_SERIAL_UART_MARK		0x02
#define CISTPL_SERIAL_UART_ODD		0x04
#define CISTPL_SERIAL_UART_EVEN		0x08
#define CISTPL_SERIAL_UART_5BIT		0x01
#define CISTPL_SERIAL_UART_6BIT		0x02
#define CISTPL_SERIAL_UART_7BIT		0x04
#define CISTPL_SERIAL_UART_8BIT		0x08
#define CISTPL_SERIAL_UART_1STOP	0x10
#define CISTPL_SERIAL_UART_MSTOP	0x20
#define CISTPL_SERIAL_UART_2STOP	0x40

typedef struct cistpl_serial_t {
    u_char	uart_type;
    u_char	uart_cap_0;
    u_char	uart_cap_1;
} cistpl_serial_t;

typedef struct cistpl_modem_cap_t {
    u_char	flow;
    u_char	cmd_buf;
    u_char	rcv_buf_0, rcv_buf_1, rcv_buf_2;
    u_char	xmit_buf_0, xmit_buf_1, xmit_buf_2;
} cistpl_modem_cap_t;

#define CISTPL_SERIAL_MOD_103		0x01
#define CISTPL_SERIAL_MOD_V21		0x02
#define CISTPL_SERIAL_MOD_V23		0x04
#define CISTPL_SERIAL_MOD_V22		0x08
#define CISTPL_SERIAL_MOD_212A		0x10
#define CISTPL_SERIAL_MOD_V22BIS	0x20
#define CISTPL_SERIAL_MOD_V26		0x40
#define CISTPL_SERIAL_MOD_V26BIS	0x80
#define CISTPL_SERIAL_MOD_V27BIS	0x01
#define CISTPL_SERIAL_MOD_V29		0x02
#define CISTPL_SERIAL_MOD_V32		0x04
#define CISTPL_SERIAL_MOD_V32BIS	0x08
#define CISTPL_SERIAL_MOD_V34		0x10

#define CISTPL_SERIAL_ERR_MNP2_4	0x01
#define CISTPL_SERIAL_ERR_V42_LAPM	0x02

#define CISTPL_SERIAL_CMPR_V42BIS	0x01
#define CISTPL_SERIAL_CMPR_MNP5		0x02

#define CISTPL_SERIAL_CMD_AT1		0x01
#define CISTPL_SERIAL_CMD_AT2		0x02
#define CISTPL_SERIAL_CMD_AT3		0x04
#define CISTPL_SERIAL_CMD_MNP_AT	0x08
#define CISTPL_SERIAL_CMD_V25BIS	0x10
#define CISTPL_SERIAL_CMD_V25A		0x20
#define CISTPL_SERIAL_CMD_DMCL		0x40

typedef struct cistpl_data_serv_t {
    u_char	max_data_0;
    u_char	max_data_1;
    u_char	modulation_0;
    u_char	modulation_1;
    u_char	error_control;
    u_char	compression;
    u_char	cmd_protocol;
    u_char	escape;
    u_char	encrypt;
    u_char	misc_features;
    u_char	ccitt_code[0];
} cistpl_data_serv_t;

typedef struct cistpl_fax_serv_t {
    u_char	max_data_0;
    u_char	max_data_1;
    u_char	modulation;
    u_char	encrypt;
    u_char	features_0;
    u_char	features_1;
    u_char	ccitt_code[0];
} cistpl_fax_serv_t;