Bugs item #681864, was opened at 2003-02-06 12:17 Message generated for change (Comment added) made by dannf You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100259&aid=681864&group_id=259
Category: systemimager-client Group: None Status: Open >Resolution: Wont Fix Priority: 5 Submitted By: Randall Splinter (rxspl1) Assigned to: Nobody/Anonymous (nobody) Summary: MS DHCP Server returns SI server IP as hex Initial Comment: At boot time the client requests an IP address from a MS Win2000 DHCP server. The DHCP server complies and sends an IP address. The DHCP server also sends the option-140 to pass the SI server IP address to the client. The SI server IP address passed to the client is sent as a hex not decimal. Is there any to make a more intelligent client that recognizes a hex IP address and converts it to decimal so that the install can proceed? The IP address of the SI server is 192.168.168.15 and the client receives the address c0:a8:a8:f from the DHCP server. Attached is a poor screen shot taken with a digital camera of what is happening. I can probably do better if it is needed to help debug the problem. ---------------------------------------------------------------------- >Comment By: dann frazier (dannf) Date: 2004-01-07 23:49 Message: Logged In: YES user_id=146718 it seems that this isn't necessary - a windows server can be configured to do the right thing. Randy - can you elaborate on how to do this? i'll add it to the faq. ---------------------------------------------------------------------- Comment By: dann frazier (dannf) Date: 2003-02-12 01:59 Message: Logged In: YES user_id=146718 Randy: here's some other changes i made, fyi. i haven't actually added the code to do the conversions for specific IPs yet, but you would just need to do something like: IMAGESERVER=$(dehex_ip $IMAGESERVER) --- initrd_source/initrd.rul 9 Jan 2003 06:56:04 -0000 1.16.4.2 +++ initrd_source/initrd.rul 12 Feb 2003 08:47:36 -0000 @@ -65,7 +65,7 @@ $(INITRD_DIR)/build_dir-stamp: $(SKEL_FI $(DEVFSD_BINARY) $(DHCLIENT_BINARY) $(RSYNC_BINARY) $(UCLIBC_TARGET) $(INSMOD_BINARY) $(MODPROBE_BINARY) - $(E1000_BINARY) + $(E1000_BINARY) $(BC_BINARY) # Create directory structure. rm -fr $(INITRD_BUILD_DIR) mkdir $(INITRD_BUILD_DIR) @@ -80,6 +80,7 @@ $(INITRD_DIR)/build_dir-stamp: $(SKEL_FI # Copy over other binaries. cp -a $(RSYNC_BINARY) $(INITRD_BUILD_DIR)/bin + cp -a $(BC_BINARY) $(INITRD_BUILD_DIR)/bin cp -a $(DHCLIENT_BINARY) $(INITRD_BUILD_DIR)/sbin cp -a $(DEVFSD_BINARY) $(INITRD_BUILD_DIR)/sbin diff -u -p -u -r1.1 busybox.Config.h.noinsmod --- initrd_source/patches/busybox.Config.h.noinsmod 14 Oct 2002 15:26:55 -0000 1.1 +++ initrd_source/patches/busybox.Config.h.noinsmod 12 Feb 2003 08:47:36 -0000 @@ -120,7 +120,7 @@ //#define BB_TFTP //#define BB_TIME //#define BB_TOUCH -//#define BB_TR +#define BB_TR //#define BB_TRACEROUTE //#define BB_TRUE_FALSE //#define BB_TTY diff -u -p -u -r1.36.4.1 rcS --- initrd_source/skel/etc/init.d/rcS 21 Dec 2002 23:16:55 -0000 1.36.4.1+++ initrd_source/skel/etc/init.d/rcS 12 Feb 2003 08:47:37 -0000 @@ -56,6 +56,29 @@ adjust_arch() { fi } +################################################################################# +# dehex_ip +# +# takes an ip address, in either decimal or hexadecimal form (which MS DHCP +# servers provide), and returns the decimal form. +# +################################################################################ + +dehex_ip() { + local hex dec myip="" decimal="" + + if echo "$1" | grep -q ":"; then + for hex in $(echo $1 | sed 's/:/ /g' | tr [a-z] [A-Z]); do + dec=$(echo -e "obase=10\nibase=16\n${hex}" | bc) + myip="${myip}${decimal}${dec}" + decimal="." + done + else + myip=$1 + fi + echo "$myip" +} + write_variables() { # pass all variables set here on to the hostname.sh script rm -f /tmp/variables.txt -------- and my new initrd_source/make.d/bc.rul: BC_VERSION := 1.06 BC_DIR := bc-$(BC_VERSION) BC_TARBALL := bc-$(BC_VERSION).tar.gz BC_URL := http://download.systemimager.org/pub/bc/$(BC_TARBALL) BC_BINARY := $(INITRD_SRC_DIR)/$(BC_DIR)/bc/bc ALL_SOURCE += $(INITRD_SRC_DIR)/$(BC_TARBALL) PHONY += bc bc: $(BC_BINARY) $(BC_BINARY): $(INITRD_SRC_DIR)/$(BC_TARBALL) [ -d $(INITRD_SRC_DIR)/$(BC_DIR) ] || ( cd $(INITRD_SRC_DIR) && tar -xvzf $(BC_TARBALL) ) ( cd $(INITRD_SRC_DIR)/$(BC_DIR) && CFLAGS=-Os ./configure ) $(MAKE) -C $(INITRD_SRC_DIR)/$(BC_DIR) PATH=$(INITRD_BUILD_PATH) $(INITRD_SRC_DIR)/$(BC_TARBALL): [ -d $(INITRD_SRC_DIR) ] || mkdir -p $(INITRD_SRC_DIR) $(GETSOURCE) $(BC_URL) $(INITRD_SRC_DIR) PHONY += bc_clean bc_clean: rm -rf $(INITRD_SRC_DIR)/$(BC_DIR) ---------------------------------------------------------------------- Comment By: dann frazier (dannf) Date: 2003-02-12 01:49 Message: Logged In: YES user_id=146718 well, the big problems w/ my script are that we don't have tr, cut, or bc in the ramdisk. ok - i can live without cut, but dunno how to get along w/o bc or tr. adding full blown bc + tr affects the initrd.img size like so: base = 532349 base + busybox tr = 533255 base + busybox tr + bc = 562891 base + busybox tr + bc (built w/ -Os) = 560311 we're looking at an additional 27KB. here's an updated snippet, as a function (tested in busybox shell) dehex_ip() { local hex dec myip="" decimal="" if echo "$1" | grep -q ":"; then for hex in $(echo $1 | sed 's/:/ /g' | tr [a-z] [A-Z]); do dec=$(echo -e "obase=10\nibase=16\n${hex}" | bc) myip="${myip}${decimal}${dec}" decimal="." done else myip=$1 fi echo "$myip" } ---------------------------------------------------------------------- Comment By: dann frazier (dannf) Date: 2003-02-08 03:12 Message: Logged In: YES user_id=146718 here's some shell that'll do this: #!/bin/sh IP="c0:a8:a8:f" MYIP="" if echo "$IP" | grep -q ":"; then decimal="" for i in $(seq 1 4); do hex=$(echo $IP | cut -d ":" -f $i | tr [a-z] [A-Z]) dec=$(echo -e "obase=10\nibase=16\n${hex}" | bc) MYIP="${MYIP}${decimal}${dec}" decimal="." done else MYIP=$IP fi echo MYIP is $MYIP ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100259&aid=681864&group_id=259 ------------------------------------------------------- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html _______________________________________________ Sisuite-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/sisuite-devel