diff --git a/alterator-net-eth.spec b/alterator-net-eth.spec
index 10d2b52..6b0b946 100644
--- a/alterator-net-eth.spec
+++ b/alterator-net-eth.spec
@@ -1,8 +1,8 @@
 %define _altdata_dir %_datadir/alterator
 
 Name: alterator-net-eth
-Version: 1.0
-Release: alt6
+Version: 2.0
+Release: alt1
 
 Packager: Stanislav Ievlev <inger@altlinux.org>
 
@@ -16,6 +16,11 @@ Requires: alterator-net-common >= 0.2-alt3
 Requires: alterator-net-wifi
 Conflicts: alterator-fbi < 0.15-alt2
 
+Provides: alterator-net-general = %version
+Obsoletes: alterator-net-general
+
+%add_findreq_skiplist %_datadir/install2/preinstall.d/*
+
 BuildPreReq: alterator >= 3.1 alterator-fbi >= 0.7-alt1
 
 BuildArch: noarch
@@ -53,8 +58,13 @@ alterator module for tcp/ip connections configuration
 %_altdata_dir/help/*/*
 %_alterator_backend3dir/*
 %_alterator_backend2dir/*
+%_datadir/install2/preinstall.d/*
+
 
 %changelog
+* Mon Apr 28 2008 Stanislav Ievlev <inger@altlinux.org> 2.0-alt1
+- merge with alterator-net-general
+
 * Sat Apr 26 2008 Stanislav Ievlev <inger@altlinux.org> 1.0-alt6
 - html UI: remove template-*, sync with qt UI
 - backend: don't use ifvar utility, simplify list_iface result
diff --git a/alterator-net-eth/Makefile b/alterator-net-eth/Makefile
index f7ff513..1b52621 100644
--- a/alterator-net-eth/Makefile
+++ b/alterator-net-eth/Makefile
@@ -5,8 +5,12 @@ INSTALL=/usr/bin/install
 
 all:
 clean: clean-po 
-install: install-backend install-ui install-po
+install: install-backend install-ui install-po install-data
 
 include /usr/share/alterator/build/po.mak
 include /usr/share/alterator/build/ui2.mak
 include /usr/share/alterator/build/backend.mak
+
+install-data:
+	install -d $(datadir)/install2
+	cp -a preinstall.d $(datadir)/install2
diff --git a/alterator-net-eth/backend3/net-eth b/alterator-net-eth/backend3/net-eth
index 3605e14..a40e76a 100755
--- a/alterator-net-eth/backend3/net-eth
+++ b/alterator-net-eth/backend3/net-eth
@@ -3,6 +3,9 @@
 cachedir="/var/cache/alterator/net-eth"
 po_domain="alterator-net-eth"
 
+rdelim='[[:space:]]\+'
+wdelim=' '
+
 . alterator-sh-functions
 . shell-config
 
@@ -19,6 +22,8 @@ init_cache()
     fi
 
     [ -f "$cachedir/iftab" ] || cp /etc/iftab "$cachedir/iftab"
+    [ -f "$cachedir/resolv.conf" ] || cp /etc/resolv.conf "$cachedir/resolv.conf"
+    [ -f "$cachedir/network" ] || cp /etc/sysconfig/network "$cachedir/network"
 }
 
 clear_cache()
@@ -27,18 +32,97 @@ clear_cache()
     mkdir "$cachedir"
 }
 
+commit_hostname()
+{
+    local value="$(shell_config_get /etc/sysconfig/network HOSTNAME)"
+    [ -n "$value" ] || return
+
+    hostname "$value"
+    printf %s\\n "$value" >/etc/HOSTNAME
+
+    #bind hostname
+    grep -qs "^[^#]*\<$value\>" /etc/hosts ||
+	printf '127.0.0.1\t%s %s\n' "$value" "${value%%.*}" >> /etc/hosts
+}
+
 commit_cache()
 {
     [ -f "$cachedir/iftab" ] && mv -f "$cachedir/iftab" /etc/iftab
+    [ -f "$cachedir/resolv.conf" ] && mv -f "$cachedir/resolv.conf" /etc/resolv.conf
+    [ -f "$cachedir/network" ] && mv -f "$cachedir/network" /etc/sysconfig/network
+    commit_hostname
+
     find $cachedir -maxdepth 1 -mindepth 1 -type d|
 	while read iface; do
 	    [ -n "$iface" ] || exit
 	    rm -rf "/etc/net/ifaces/${iface##*/}"
 	    mv -f "$iface" "/etc/net/ifaces/${iface##*/}"
 	done
+
     clear_cache
 }
 
+### dns
+
+read_dns()
+{
+	local resolv_conf="/etc/resolv.conf"
+	[ -f "$cachedir/resolv.conf" ] && resolv_conf="$cachedir/resolv.conf"
+
+	shell_config_get "$resolv_conf" nameserver "$rdelim"| tr '\n' ' '
+}
+
+write_dns()
+{
+	local resolv_conf="$cachedir/resolv.conf"
+
+	shell_config_del "$resolv_conf" nameserver "$rdelim"
+
+	local IFS=' '
+	for i in $1;do
+	    printf 'nameserver %s\n' "$i" >>"$resolv_conf"
+	done
+}
+
+read_search()
+{
+	local resolv_conf="/etc/resolv.conf"
+	[ -f "$cachedir/resolv.conf" ] && resolv_conf="$cachedir/resolv.conf"
+
+	shell_config_get "$resolv_conf" search "$rdelim"|
+	    tail -n1
+}
+
+write_search()
+{
+	local resolv_conf="$cachedir/resolv.conf"
+	local IFS=' '
+
+	shell_config_del "$resolv_conf" search "$rdelim"
+	shell_config_set "$resolv_conf" search "$1" "$rdelim" "$wdelim"
+}
+
+### hostname
+
+read_hostname()
+{
+	local netconfig="/etc/sysconfig/network"
+	[ -f "$cachedir/network" ] && netconfig="$cachedir/network"
+	
+	local value="$(shell_config_get "$netconfig" HOSTNAME)"
+
+	[ -n "$value" ] || value="localhost.localdomain"
+	echo "$value"
+}
+
+write_hostname()
+{
+	local netconfig="$cachedir/network"
+
+	shell_config_set "$netconfig" HOSTNAME "$1"
+	shell_config_del "$netconfig" DOMAINNAME
+}
+
 ### interface work
 
 list_mask()
@@ -259,17 +343,18 @@ on_message()
 		constraints)
 			echo '('
 			if [ "$in__objects" != "/" ];then
-    			    printf 'info (label "%s")' "`_ "Interface state"`"
+			    printf 'hostname (required #t hostname #t label "%s" default "localhost.localdomain")\n' \
+				"`_ "Host name"`"
+			     printf 'search (hostname #t label "%s")\n' \
+                               "`_ "Search domains"`"
+			    printf 'dns (ipv4-address #t label "%s")' \
+                               "`_ "DNS servers"`"
 			    printf 'dhcp (exclude (#t ip) exclude (#t default) exclude (#t mask) default #f label "%s")' \
 				    "`_ "Use DHCP"`"
 			    printf 'ip (required #t ipv4-address #t label "%s")' \
 				    "`_ "IP address"`"
 			    printf 'default (ipv4-address #t label "%s")' \
 				    "`_ "Default gateway"`"
-			    printf 'mask (label "%s")' \
-				    "`_ "NetMask"`"
-			    printf 'hw_binding (label "%s")' \
-				    "`_ "Hardware binding"`"
 			fi
 			echo ')'
 			;;
@@ -287,16 +372,24 @@ on_message()
 			echo "("
 			local name="${in_ifname}"
 			[ -n "$name" ] || name="$(iflist|cut -f1 -d' '|head -n1)"
-
 			printf 'name "%s"' "$name"
-			read_iface "$name"
+			[ -n "$name" ] && read_iface "$name"
+
+			printf "hostname \"%s\"\n" "$(read_hostname)"
+			printf "dns \"%s\"\n" "$(read_dns)"
+			printf "search \"%s\"\n" "$(read_search)"
+
 			echo ")"
 			;;
 		write)
 			local name="${in_ifname}"
 			[ -n "$name" ] || name="$(iflist|cut -f1 -d' '|head -n1)"
+			[ -n "$name" ] && write_iface "$name"
+
+			[ -n "$in_hostname" ] && write_hostname "$in_hostname"
+			[ -n "$in_dns" ] && write_dns "$in_dns"
+			[ -n "$in_search" ] && write_search "$in_search"
 
-			write_iface "$name"
 			[ -n "$in_commit" ] && commit_iface
 			[ -n "$in_reset" ] && reset_iface
 			write_nop
diff --git a/alterator-net-eth/po/alterator-net-eth.pot b/alterator-net-eth/po/alterator-net-eth.pot
index 3c15f23..84ffb1e 100644
--- a/alterator-net-eth/po/alterator-net-eth.pot
+++ b/alterator-net-eth/po/alterator-net-eth.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-04-26 12:10+0400\n"
+"POT-Creation-Date: 2008-04-28 16:32+0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,112 +16,131 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ui/net-eth/index.scm:96 стандартный ввод:2
+#.
+#: ui/net-eth/index.scm:112
+msgid "Host name:"
+msgstr ""
+
+#.
+#: ui/net-eth/index.scm:120
+msgid "DNS servers:"
+msgstr ""
+
+#.
+#: ui/net-eth/index.scm:125
+msgid "Search domains:"
+msgstr ""
+
+#: ui/net-eth/index.scm:131
+msgid "multiple values should be space separated"
+msgstr ""
+
+#: ui/net-eth/index.scm:139 стандартный ввод:2
 msgid "Interfaces"
 msgstr ""
 
 #.
-#: ui/net-eth/index.scm:111 стандартный ввод:4
+#: ui/net-eth/index.scm:154 стандартный ввод:4
 msgid "Status:"
 msgstr ""
 
 #.
-#: ui/net-eth/index.scm:115 стандартный ввод:5
+#: ui/net-eth/index.scm:158 стандартный ввод:5
 msgid "Configuration:"
 msgstr ""
 
 #.
-#: ui/net-eth/index.scm:125 стандартный ввод:6
+#: ui/net-eth/index.scm:168 стандартный ввод:6
 msgid "IP address:"
 msgstr ""
 
 #.
-#: ui/net-eth/index.scm:129 стандартный ввод:7
+#: ui/net-eth/index.scm:172 стандартный ввод:7
 msgid "Netmask:"
 msgstr ""
 
 #.
-#: ui/net-eth/index.scm:133 стандартный ввод:8
+#: ui/net-eth/index.scm:176 стандартный ввод:8
 msgid "Default gateway:"
 msgstr ""
 
 #.
-#: ui/net-eth/index.scm:137 стандартный ввод:9
+#: ui/net-eth/index.scm:180 стандартный ввод:9
 msgid "Hardware binding:"
 msgstr ""
 
-#: ui/net-eth/index.scm:142 стандартный ввод:10
+#: ui/net-eth/index.scm:185 стандартный ввод:10
 msgid "Wireless settings..."
 msgstr ""
 
-#: ui/net-eth/index.scm:158 стандартный ввод:11
+#: ui/net-eth/index.scm:203 стандартный ввод:11
 msgid "Apply"
 msgstr ""
 
-#: ui/net-eth/index.scm:159 стандартный ввод:12
+#: ui/net-eth/index.scm:204 стандартный ввод:12
 msgid "Reset"
 msgstr ""
 
-#: backend3/net-eth:63
+#: backend3/net-eth:147
 msgid "missing"
 msgstr ""
 
-#: backend3/net-eth:64
+#: backend3/net-eth:148
 msgid "by MAC address"
 msgstr ""
 
-#: backend3/net-eth:65
+#: backend3/net-eth:149
 msgid "by bus location"
 msgstr ""
 
-#: backend3/net-eth:70
+#: backend3/net-eth:154
 msgid "Turned off"
 msgstr ""
 
-#: backend3/net-eth:71 backend3/net-eth:264
+#: backend3/net-eth:155 backend3/net-eth:353
 msgid "Use DHCP"
 msgstr ""
 
-#: backend3/net-eth:72
+#: backend3/net-eth:156
 msgid "Manually"
 msgstr ""
 
-#: backend3/net-eth:103
+#: backend3/net-eth:187
 msgid "interface is up"
 msgstr ""
 
-#: backend3/net-eth:103
+#: backend3/net-eth:187
 msgid "interface is down"
 msgstr ""
 
-#: backend3/net-eth:108
+#: backend3/net-eth:192
 msgid "plugged"
 msgstr ""
 
-#: backend3/net-eth:109
+#: backend3/net-eth:193
 msgid "unplugged"
 msgstr ""
 
-#: backend3/net-eth:262
-msgid "Interface state"
+#: backend3/net-eth:347
+msgid "Host name"
 msgstr ""
 
-#: backend3/net-eth:266
+#: backend3/net-eth:349
+msgid "Search domains"
+msgstr ""
+
+#: backend3/net-eth:351
+msgid "DNS servers"
+msgstr ""
+
+#: backend3/net-eth:355
 msgid "IP address"
 msgstr ""
 
-#: backend3/net-eth:268
+#: backend3/net-eth:357
 msgid "Default gateway"
 msgstr ""
 
-#: backend3/net-eth:270
-msgid "NetMask"
-msgstr ""
-
-#: backend3/net-eth:272
-msgid "Hardware binding"
-msgstr ""
-
 #: стандартный ввод:1
 msgid "IP interfaces"
 msgstr ""
diff --git a/alterator-net-eth/po/ru.po b/alterator-net-eth/po/ru.po
index d472fd2..3742c73 100644
--- a/alterator-net-eth/po/ru.po
+++ b/alterator-net-eth/po/ru.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-04-26 12:10+0400\n"
+"POT-Creation-Date: 2008-04-28 16:32+0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -15,112 +15,131 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ui/net-eth/index.scm:96 стандартный ввод:2
+#.
+#: ui/net-eth/index.scm:112
+msgid "Host name:"
+msgstr "Имя компьютера:"
+
+#.
+#: ui/net-eth/index.scm:120
+msgid "DNS servers:"
+msgstr "DNS-серверы:"
+
+#.
+#: ui/net-eth/index.scm:125
+msgid "Search domains:"
+msgstr "Домены поиска:"
+
+#: ui/net-eth/index.scm:131
+msgid "multiple values should be space separated"
+msgstr "несколько значений записываются через пробел"
+
+#: ui/net-eth/index.scm:139 стандартный ввод:2
 msgid "Interfaces"
 msgstr "Интерфейсы"
 
 #.
-#: ui/net-eth/index.scm:111 стандартный ввод:4
+#: ui/net-eth/index.scm:154 стандартный ввод:4
 msgid "Status:"
 msgstr "Состояние:"
 
 #.
-#: ui/net-eth/index.scm:115 стандартный ввод:5
+#: ui/net-eth/index.scm:158 стандартный ввод:5
 msgid "Configuration:"
 msgstr "Конфигурация:"
 
 #.
-#: ui/net-eth/index.scm:125 стандартный ввод:6
+#: ui/net-eth/index.scm:168 стандартный ввод:6
 msgid "IP address:"
 msgstr "IP-адрес:"
 
 #.
-#: ui/net-eth/index.scm:129 стандартный ввод:7
+#: ui/net-eth/index.scm:172 стандартный ввод:7
 msgid "Netmask:"
 msgstr "Маска сети:"
 
 #.
-#: ui/net-eth/index.scm:133 стандартный ввод:8
+#: ui/net-eth/index.scm:176 стандартный ввод:8
 msgid "Default gateway:"
 msgstr "Шлюз по умолчанию:"
 
 #.
-#: ui/net-eth/index.scm:137 стандартный ввод:9
+#: ui/net-eth/index.scm:180 стандартный ввод:9
 msgid "Hardware binding:"
 msgstr "Привязка:"
 
-#: ui/net-eth/index.scm:142 стандартный ввод:10
+#: ui/net-eth/index.scm:185 стандартный ввод:10
 msgid "Wireless settings..."
 msgstr "Параметры для беспроводных интерфейсов..."
 
-#: ui/net-eth/index.scm:158 стандартный ввод:11
+#: ui/net-eth/index.scm:203 стандартный ввод:11
 msgid "Apply"
 msgstr "Применить"
 
-#: ui/net-eth/index.scm:159 стандартный ввод:12
+#: ui/net-eth/index.scm:204 стандартный ввод:12
 msgid "Reset"
 msgstr "Вернуть"
 
-#: backend3/net-eth:63
+#: backend3/net-eth:147
 msgid "missing"
 msgstr "отсутствует"
 
-#: backend3/net-eth:64
+#: backend3/net-eth:148
 msgid "by MAC address"
 msgstr "по  аппаратному адресу (MAC)"
 
-#: backend3/net-eth:65
+#: backend3/net-eth:149
 msgid "by bus location"
 msgstr "по местоположению на шине"
 
-#: backend3/net-eth:70
+#: backend3/net-eth:154
 msgid "Turned off"
 msgstr "Выключено"
 
-#: backend3/net-eth:71 backend3/net-eth:264
+#: backend3/net-eth:155 backend3/net-eth:353
 msgid "Use DHCP"
 msgstr "Использовать DHCP"
 
-#: backend3/net-eth:72
+#: backend3/net-eth:156
 msgid "Manually"
 msgstr "Вручную"
 
-#: backend3/net-eth:103
+#: backend3/net-eth:187
 msgid "interface is up"
 msgstr "интерфейс включён"
 
-#: backend3/net-eth:103
+#: backend3/net-eth:187
 msgid "interface is down"
 msgstr "интерфейс выключен"
 
-#: backend3/net-eth:108
+#: backend3/net-eth:192
 msgid "plugged"
 msgstr "провод подсоединён"
 
-#: backend3/net-eth:109
+#: backend3/net-eth:193
 msgid "unplugged"
 msgstr "провод отсоединён"
 
-#: backend3/net-eth:262
-msgid "Interface state"
-msgstr "Состояние интерфейса"
+#: backend3/net-eth:347
+msgid "Host name"
+msgstr "Имя компьютера"
 
-#: backend3/net-eth:266
+#: backend3/net-eth:349
+msgid "Search domains"
+msgstr "Домены поиска"
+
+#: backend3/net-eth:351
+msgid "DNS servers"
+msgstr "DNS-серверы"
+
+#: backend3/net-eth:355
 msgid "IP address"
 msgstr "IP-адрес"
 
-#: backend3/net-eth:268
+#: backend3/net-eth:357
 msgid "Default gateway"
 msgstr "Шлюз по умолчанию"
 
-#: backend3/net-eth:270
-msgid "NetMask"
-msgstr "Маска сети"
-
-#: backend3/net-eth:272
-msgid "Hardware binding"
-msgstr "Привязка"
-
 #: стандартный ввод:1
 msgid "IP interfaces"
 msgstr "IP-интерфейсы"
@@ -128,3 +147,4 @@ msgstr "IP-интерфейсы"
 #: стандартный ввод:3
 msgid "Select"
 msgstr "Выбрать"
+
diff --git a/alterator-net-eth/po/uk.po b/alterator-net-eth/po/uk.po
index 89194b5..55da44f 100644
--- a/alterator-net-eth/po/uk.po
+++ b/alterator-net-eth/po/uk.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-04-26 12:04+0400\n"
+"POT-Creation-Date: 2008-04-28 16:32+0400\n"
 "PO-Revision-Date: 2007-08-13 20:57+0300\n"
 "Last-Translator: Michael Shigorin <mike@altlinux.org>\n"
 "Language-Team: Ukrainian <uk@li.org>\n"
@@ -15,118 +15,137 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ui/net-eth/index.scm:96 стандартный ввод:2
+#.
+#: ui/net-eth/index.scm:112
+msgid "Host name:"
+msgstr ""
+
+#.
+#: ui/net-eth/index.scm:120
+msgid "DNS servers:"
+msgstr ""
+
+#.
+#: ui/net-eth/index.scm:125
+msgid "Search domains:"
+msgstr ""
+
+#: ui/net-eth/index.scm:131
+msgid "multiple values should be space separated"
+msgstr ""
+
+#: ui/net-eth/index.scm:139 стандартный ввод:2
 #, fuzzy
 msgid "Interfaces"
 msgstr "Інтерфейс"
 
 #.
-#: ui/net-eth/index.scm:111 стандартный ввод:4
+#: ui/net-eth/index.scm:154 стандартный ввод:4
 msgid "Status:"
 msgstr ""
 
 #.
-#: ui/net-eth/index.scm:115 стандартный ввод:5
+#: ui/net-eth/index.scm:158 стандартный ввод:5
 msgid "Configuration:"
 msgstr ""
 
 #.
-#: ui/net-eth/index.scm:125 стандартный ввод:6
+#: ui/net-eth/index.scm:168 стандартный ввод:6
 #, fuzzy
 msgid "IP address:"
 msgstr "IP-адреса"
 
 #.
-#: ui/net-eth/index.scm:129 стандартный ввод:7
+#: ui/net-eth/index.scm:172 стандартный ввод:7
 #, fuzzy
 msgid "Netmask:"
 msgstr "Мережева маска"
 
 #.
-#: ui/net-eth/index.scm:133 стандартный ввод:8
+#: ui/net-eth/index.scm:176 стандартный ввод:8
 #, fuzzy
 msgid "Default gateway:"
 msgstr "Шлюз по змовчуванню"
 
 #.
-#: ui/net-eth/index.scm:137 стандартный ввод:9
+#: ui/net-eth/index.scm:180 стандартный ввод:9
 msgid "Hardware binding:"
 msgstr ""
 
-#: ui/net-eth/index.scm:142 стандартный ввод:10
+#: ui/net-eth/index.scm:185 стандартный ввод:10
 #, fuzzy
 msgid "Wireless settings..."
 msgstr "Налаштування бездротових інтерфейсів"
 
-#: ui/net-eth/index.scm:158 стандартный ввод:11
+#: ui/net-eth/index.scm:203 стандартный ввод:11
 msgid "Apply"
 msgstr "Застосувати"
 
-#: ui/net-eth/index.scm:159 стандартный ввод:12
+#: ui/net-eth/index.scm:204 стандартный ввод:12
 msgid "Reset"
 msgstr "Скинути"
 
-#: backend3/net-eth:63
+#: backend3/net-eth:147
 msgid "missing"
 msgstr ""
 
-#: backend3/net-eth:64
+#: backend3/net-eth:148
 #, fuzzy
 msgid "by MAC address"
 msgstr "IP-адреса"
 
-#: backend3/net-eth:65
+#: backend3/net-eth:149
 msgid "by bus location"
 msgstr ""
 
-#: backend3/net-eth:70
+#: backend3/net-eth:154
 msgid "Turned off"
 msgstr ""
 
-#: backend3/net-eth:71 backend3/net-eth:264
+#: backend3/net-eth:155 backend3/net-eth:353
 msgid "Use DHCP"
 msgstr "Використовувати DHCP"
 
-#: backend3/net-eth:72
+#: backend3/net-eth:156
 msgid "Manually"
 msgstr ""
 
-#: backend3/net-eth:103
+#: backend3/net-eth:187
 msgid "interface is up"
 msgstr "інтерфейс піднято"
 
-#: backend3/net-eth:103
+#: backend3/net-eth:187
 msgid "interface is down"
 msgstr "інтерфейс опущено"
 
-#: backend3/net-eth:108
+#: backend3/net-eth:192
 msgid "plugged"
 msgstr "увімкнуто"
 
-#: backend3/net-eth:109
+#: backend3/net-eth:193
 msgid "unplugged"
 msgstr "вимкнуто"
 
-#: backend3/net-eth:262
-msgid "Interface state"
-msgstr "Стан інтерфейсу"
+#: backend3/net-eth:347
+msgid "Host name"
+msgstr ""
 
-#: backend3/net-eth:266
+#: backend3/net-eth:349
+msgid "Search domains"
+msgstr ""
+
+#: backend3/net-eth:351
+msgid "DNS servers"
+msgstr ""
+
+#: backend3/net-eth:355
 msgid "IP address"
 msgstr "IP-адреса"
 
-#: backend3/net-eth:268
+#: backend3/net-eth:357
 msgid "Default gateway"
 msgstr "Шлюз по змовчуванню"
 
-#: backend3/net-eth:270
-msgid "NetMask"
-msgstr "Мережева маска"
-
-#: backend3/net-eth:272
-msgid "Hardware binding"
-msgstr ""
-
 #: стандартный ввод:1
 msgid "IP interfaces"
 msgstr "IP-інтерфейси"
@@ -135,6 +154,12 @@ msgstr "IP-інтерфейси"
 msgid "Select"
 msgstr "Вибрати"
 
+#~ msgid "Interface state"
+#~ msgstr "Стан інтерфейсу"
+
+#~ msgid "NetMask"
+#~ msgstr "Мережева маска"
+
 #~ msgid "Wireless settings"
 #~ msgstr "Налаштування бездротових інтерфейсів"
 
diff --git a/alterator-net-eth/preinstall.d/70-net-eth.sh b/alterator-net-eth/preinstall.d/70-net-eth.sh
new file mode 100755
index 0000000..f7d96fc
--- /dev/null
+++ b/alterator-net-eth/preinstall.d/70-net-eth.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+. install2-init-functions
+
+case "$METHOD" in
+	cdrom|disk) exit 0 ;;
+esac
+
+run_chroot alterator-cmdline /net-eth action "write" \
+				      commit '#t' \
+				      hostname "${HOSTNAME:-localhost.localdomain}" \
+				      search "${DOMAINNAME:-}" \
+				      dns "${DNS_SERVER:-}${DNS_SERVER2:+ $DNS_SERVER2}"
+
+iface="$(exec_chroot ip link show up |
+	sed -n -e '/^[[:digit:]]\+:/!d' -e '/^[[:digit:]]\+: lo:/d' -e 's/^[[:digit:]]\+: \([^:]\+\):.*/\1/p' -e 'q')"
+
+if [ -n "$iface" ]; then
+    case "${BOOTPROTO:-}" in
+	static)
+		run_chroot alterator-cmdline "/net-eth" action "write" \
+							commit '#t' \
+							ifname "$iface" \
+							configuration 'static' \
+							ip "${IPADDR:-}" \
+							mask "${NETBITS:-}" \
+							default "${GATEWAY:-}"
+		;;
+	dhcp)
+		run_chroot alterator-cmdline "/net-eth" action "write" \
+							commit '#t' \
+							ifname "$iface" \
+							configuration 'dhcp'
+		;;
+    esac
+fi
diff --git a/alterator-net-eth/ui/net-eth/index.scm b/alterator-net-eth/ui/net-eth/index.scm
index cf8f5e4..b6c97d1 100644
--- a/alterator-net-eth/ui/net-eth/index.scm
+++ b/alterator-net-eth/ui/net-eth/index.scm
@@ -37,21 +37,32 @@
     (widget rows (map cdr data))))
 
 (define (read-interface name)
-  (and (not-empty-string? name)
+  (and (string? name)
        (let ((cmd (woo-read-first "/net-eth" 'ifname name)))
+
+         (hostname text (woo-get-option cmd 'hostname))
+         (dns text (woo-get-option cmd 'dns))
+         (search text (woo-get-option cmd 'search))
+
 	 (iface-info text (woo-get-option cmd 'info))
 	 (iface-ip text (woo-get-option cmd 'ip))
 	 (iface-mask current (param-index cmd 'mask *avail-masks*))
+	 (iface-gw text (woo-get-option cmd 'default)
 	 (iface-hw-binding current (param-index cmd 'hw_binding *avail-hw-bindings*))
+
 	 (iface-configuration current (param-index cmd 'configuration *avail-configurations*))
 	 (iface-configuration selected)
-	 (w-button activity (woo-get-option cmd 'wireless))
-	 (iface-gw text (woo-get-option cmd 'default)))))
+
+	 (w-button activity (woo-get-option cmd 'wireless))))))
 
 (define (write-interface path name)
-    (and (not-empty-string? name)
+    (and (string? name)
 	 (woo-write/constraints
 	   path
+	   'hostname (hostname text)
+	   'dns (dns text)
+	   'search (search text)
+
 	   'ifname name
 	   'ip    (iface-ip text)
 	   'mask  (param-value iface-mask *avail-masks*)
@@ -60,14 +71,15 @@
 	   'default (iface-gw text))))
 
 (define (commit-interface)
-  (woo-catch/message
-    (thunk
-      (write-interface "/net-eth/" (current-interface))
-      (and (global 'frame:next)
-	   (write-interface "/autoinstall/net-eth/" (current-interface)))
-      (woo-write "/net-eth" 'commit #t)
-      (and (global 'frame:next)
-	   (woo-write "/net-eth" 'commit #t)))))
+  (let ((name (or (current-interface) "")))
+    (woo-catch/message
+      (thunk
+       (write-interface "/net-eth/" name)
+       (and (global 'frame:next)
+          (write-interface "/autoinstall/net-eth/" name))
+       (woo-write "/net-eth" 'commit #t)
+       (and (global 'frame:next)
+          (woo-write "/net-eth" 'commit #t))))))
 
 (define (reset-interface)
   (woo-catch/message
@@ -78,14 +90,11 @@
       (param-init "/net-eth/avail_masks" iface-mask *avail-masks*)
       (param-init "/net-eth/avail_hw_bindings" iface-hw-binding *avail-hw-bindings*)
       (param-init "/net-eth/avail_configurations" iface-configuration *avail-configurations*)
+      (param-init "/net-eth/avail_ifaces" ifaces *avail-ifaces*)
 
-      (let ((avail-ifaces (woo-list/name+label "/net-eth")))
-	(cell-set! *avail-ifaces* avail-ifaces)
-	(ifaces rows (map car avail-ifaces))
-	(or (null? avail-ifaces)
-	    (begin (ifaces current 0)
-	           (cell-set! *prev-current* 0)
-	           (read-interface (current-interface))))))))
+      (read-interface "")
+      (cell-set! *prev-current* 0)
+      (or (null? (cell-ref *avail-ifaces*)) (ifaces current 0)))))
 
 ;;; UI
 
@@ -93,6 +102,38 @@
   columns "0;100"
   margin 20
 
+  (gridbox
+    colspan 2
+    columns "0;40;60"
+
+    ;;
+    (label text (_ "Host name:") align "right")
+    (document:id hostname (edit))
+    (spacer)
+
+    ;;
+     (label colspan 3)
+
+     ;;
+     (label text (_ "DNS servers:") align "right")
+     (document:id dns (edit))
+     (spacer)
+
+     ;;
+     (label text (_ "Search domains:") align "right")
+     (document:id search (edit))
+     (spacer)
+
+     (spacer)
+     (label text (string-append "<small>("
+				(_ "multiple values should be space separated")
+				")<small>"))
+     (spacer)
+     )
+
+
+  (separator colspan 2)
+
   (label text (bold (_ "Interfaces")))
   (spacer)
 
@@ -147,17 +188,20 @@
 				      (and (not-empty-string? name)
 					   (document:popup "/net-wifi/" 'interface name))))))
 
+
+    )
+
     ;;
     (label colspan 2)
 
     ;;
-    (spacer)
     (if (global 'frame:next)
       (label)
       (hbox align "left"
 	    (button (_ "Apply") (when clicked (commit-interface)))
 	    (button (_ "Reset") (when clicked (reset-interface)))))
-    ))
+    (spacer)
+    )
 
 
 ;;;;;;;;;;;;;;;