Index: trunk/packages/sipb-xen-dhcp/code/dhcpserver.py
===================================================================
--- trunk/packages/sipb-xen-dhcp/code/dhcpserver.py	(revision 375)
+++ trunk/packages/sipb-xen-dhcp/code/dhcpserver.py	(revision 377)
@@ -23,5 +23,4 @@
                 'router': '18.181.0.1',
                 'domain_name_server': '18.70.0.160,18.71.0.151,18.72.0.3',
-                'domain_name': 'mit.edu',
                 'ip_address_lease_time': 60*60*24}
 
@@ -96,5 +95,14 @@
             elif option_type == "string" :
                 options[parameter] = strlist(value).list()
+            
+            elif option_type == "RFC3397" :
+                parsed_value = ""
+                for item in value:
+                    components = item.split('.')
+                    item_fmt = "".join(chr(len(elt)) + elt for elt in components) + "\x00"
+                    parsed_value += item_fmt
                 
+                options[parameter] = strlist(parsed_value).list()
+            
             else :
                 options[parameter] = strlist(value).list()
@@ -110,14 +118,21 @@
         if ip is None:  #Deactivated?
             return False
+
+        options = {}
         if nic.hostname and '.' in nic.hostname:
-            hostname = nic.hostname
+            options['host_name'], options['domain_name'] = nic.hostname.split('.', 1)
         elif nic.machine.name:
-            hostname = nic.machine.name + '.servers.csail.mit.edu'
+            options['host_name'] = nic.machine.name
+            options['domain_name'] = 'servers.csail.mit.edu'
         else:
             hostname = None
+        if DhcpOptions['domain_search'] in packet.GetOption('parameter_request_list'):
+            options['host_name'] += '.' + options['domain_name']
+            del options['domain_name']
+            options['domain_search'] = ['mit.edu']
         if ip is not None:
             ip = ipv4(ip)
             Log.Output(Log.debug,"dhcp_backend : Discover result = "+str(ip))
-            packet_parameters = self.getParameters(host_name=hostname)
+            packet_parameters = self.getParameters(**options)
 
             # FIXME: Other offer parameters go here
Index: trunk/packages/sipb-xen-dhcp/debian/changelog
===================================================================
--- trunk/packages/sipb-xen-dhcp/debian/changelog	(revision 375)
+++ trunk/packages/sipb-xen-dhcp/debian/changelog	(revision 377)
@@ -1,2 +1,9 @@
+sipb-xen-dhcp (2) unstable; urgency=low
+
+  * DHCP server should send information to set correct information
+    (fixes #44)
+
+ -- SIPB Xen Projet <sipb-xen@mit.edu>  Mon, 31 Mar 2008 19:43:00 -0400
+
 sipb-xen-dhcp (1.1) unstable; urgency=low
 
Index: trunk/packages/sipb-xen-dhcp/debian/control
===================================================================
--- trunk/packages/sipb-xen-dhcp/debian/control	(revision 375)
+++ trunk/packages/sipb-xen-dhcp/debian/control	(revision 377)
@@ -8,4 +8,4 @@
 Package: sipb-xen-dhcp
 Architecture: all
-Depends: ${misc:Depends}, daemon, sipb-xen-database-common, sipb-xen-python-pydhcplib
+Depends: ${misc:Depends}, daemon, sipb-xen-database-common, sipb-xen-python-pydhcplib (>= 0.3.2-2)
 Description: Install and enable the DHCP server
Index: trunk/packages/sipb-xen-python-pydhcplib/debian/changelog
===================================================================
--- trunk/packages/sipb-xen-python-pydhcplib/debian/changelog	(revision 375)
+++ trunk/packages/sipb-xen-python-pydhcplib/debian/changelog	(revision 377)
@@ -1,2 +1,8 @@
+sipb-xen-python-pydhcplib (0.3.2-2) unstable; urgency=low
+
+  * Add a patch to allow DHCP option 119 (domain-search) to work
+
+ -- SIPB Xen Project <sipb-xen@mit.edu>  Mon, 31 Mar 2008 19:33:13 -0400
+
 sipb-xen-python-pydhcplib (0.3.2-1) unstable; urgency=low
 
Index: trunk/packages/sipb-xen-python-pydhcplib/debian/control
===================================================================
--- trunk/packages/sipb-xen-python-pydhcplib/debian/control	(revision 375)
+++ trunk/packages/sipb-xen-python-pydhcplib/debian/control	(revision 377)
@@ -3,5 +3,5 @@
 Priority: extra
 Maintainer: SIPB Xen Project <sipb-xen@mit.edu>
-Build-Depends: cdbs (>= 0.4.23-1.1), debhelper (>= 5), debhelper (>= 5.0.37.2), cdbs (>= 0.4.43), python-all-dev (>= 2.3.5-11), python-support (>= 0.3.2)
+Build-Depends: cdbs (>= 0.4.23-1.1), debhelper (>= 5), quilt, patchutils (>= 0.2.25), cdbs (>= 0.4.27-1), debhelper (>= 5.0.37.2), cdbs (>= 0.4.43), python-all-dev (>= 2.3.5-11), python-support (>= 0.3.2)
 Standards-Version: 3.7.2
 
Index: trunk/packages/sipb-xen-python-pydhcplib/debian/patches/non-standard-options.patch
===================================================================
--- trunk/packages/sipb-xen-python-pydhcplib/debian/patches/non-standard-options.patch	(revision 377)
+++ trunk/packages/sipb-xen-python-pydhcplib/debian/patches/non-standard-options.patch	(revision 377)
@@ -0,0 +1,16 @@
+Index: pydhcplib/dhcp_basic_packet.py
+===================================================================
+--- sipb-xen-python-pydhcp/pydhcplib/dhcp_basic_packet.py
++++ sipb-xen-python-pydhcp/pydhcplib/dhcp_basic_packet.py
+@@ -99,9 +99,9 @@
+                              "char":[1,0,1], "16-bits":[2,0,1],
+                              "32-bits":[4,0,1], "identifier":[0,2,1]}
+             
+-            specs = fields_specs[DhcpOptionsTypes[DhcpOptions[name]]]
++            specs = fields_specs.get(DhcpOptionsTypes[DhcpOptions[name]], [])
+             length = len(value)
+-            if (specs[0]!=0 and specs==length) or (specs[1]<=length and length%specs[2]==0):
++            if specs == [] or (specs[0]!=0 and specs==length) or (specs[1]<=length and length%specs[2]==0):
+                 self.options_data[name] = value
+                 return True
+             else :
Index: trunk/packages/sipb-xen-python-pydhcplib/debian/patches/series
===================================================================
--- trunk/packages/sipb-xen-python-pydhcplib/debian/patches/series	(revision 377)
+++ trunk/packages/sipb-xen-python-pydhcplib/debian/patches/series	(revision 377)
@@ -0,0 +1,1 @@
+non-standard-options.patch
Index: trunk/packages/sipb-xen-python-pydhcplib/debian/rules
===================================================================
--- trunk/packages/sipb-xen-python-pydhcplib/debian/rules	(revision 375)
+++ trunk/packages/sipb-xen-python-pydhcplib/debian/rules	(revision 377)
@@ -5,3 +5,4 @@
 
 include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
 include /usr/share/cdbs/1/class/python-distutils.mk
