static function getHostString($s) { if (!$s['nameserver']) { $nm = "127.0.0.1"; } else { $nm = str_replace(" ", ", ", $s['nameserver']); } $string = null; $string .= "option domain-name-servers\t{$nm};\n"; $string .= "option domain-name \"{$s['hostname']}\";\n"; $string .= "option host-name\t\"{$s['hostname']}\";\n"; $i = 1; foreach ($s['iplist'] as $ip) { $ip = trim($ip); if (!$ip) { continue; } $hex = get_double_hex($i); $string .= "host {$s['nname']}{$i} {\n"; $string .= "hardware ethernet {$s['macaddress']}:{$hex}; \n"; if (!$s['networkgateway']) { $gw = os_get_network_gateway(); } else { $gw = $s['networkgateway']; } $string .= "option routers\t{$gw};\n"; $string .= "fixed-address {$ip};\n"; $i++; $string .= "}\n\n"; } return $string; }
public function createWindowsConfig() { $memory = $this->getRealMemory(); if (trim(lxshell_output("uname", "-r")) === "2.6.16.33-xen0") { $vifnamestring = null; } else { $vifnamestring = "vifname=vif{$this->main->vifname},"; } if (!$this->isUnlimited($this->main->priv->uplink_usage) && $this->main->priv->uplink_usage > 0) { $ratestring = "rate = {$this->main->priv->uplink_usage}KB/s,"; } else { $ratestring = null; } $mac = $this->main->macaddress; if (!char_search_beg($mac, "aa:00")) { $mac = "aa:00:{$mac}"; } $count = count($this->main->vmipaddress_a); // Big bug workaround. the first vif seems to be ignored. Need to be fixed later. $vifnamestring = "vifname=vif{$this->main->vifname},"; //$vif[] = "'type=ioemu, $vifnamestring $ratestring mac=$mac:00'"; for ($i = 1; $i <= $count; $i++) { $hex = get_double_hex($i); $h = base_convert($i, 10, 36); $bridgestring = null; if ($this->main->networkbridge && $this->main->networkbridge !== '--automatic--') { $bridgestring = ",bridge={$this->main->networkbridge}"; } $vifnamestring = "vifname=vif{$this->main->vifname}{$h},"; $vif[] = "'type=ioemu, {$vifnamestring} {$ratestring} mac={$mac}:{$hex} {$bridgestring}'"; } $vif = implode(", ", $vif); $vif = "vif = [ {$vif} ]\n"; $string = null; $string .= "import os, re\n"; $string .= "arch = os.uname()[4]\n"; $string .= "if re.search('64', arch):\n"; $string .= " arch_libdir = 'lib64'\n"; $string .= "else:\n"; $string .= " arch_libdir = 'lib'\n"; $string .= "name = '{$this->main->nname}'\n"; $string .= "kernel = '/usr/lib/xen/boot/hvmloader'\n"; $string .= "builder='hvm'\n"; if ($this->main->isBlankWindows()) { $string .= "boot='d'\n"; } else { $string .= "boot='c'\n"; } $string .= "memory = {$memory}\n"; $string .= $vif; $string .= "device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'\n"; $string .= "vnc=1\n"; $string .= "sdl=0\n"; $string .= $this->addVcpu(); $string .= "vnclisten='0.0.0.0'\n"; $string .= "vncpasswd='{$this->main->realpass}'\n"; if ($this->main->isBlankWindows()) { $string .= "disk = [ 'file:/home/wincd.img,hdc:cdrom,r', 'phy:{$this->main->maindisk},ioemu:hda,w']\n"; $string .= "acpi=1\n"; } else { $string .= "disk = [ 'phy:{$this->main->maindisk},ioemu:hda,w']\n"; $string .= "acpi=1\n"; } $string .= "vncunused=0\n"; $string .= "vncdisplay={$this->main->vncdisplay}\n"; if ($this->main->text_xen_config) { $string .= "{$this->main->text_xen_config}\n"; } lxfile_mkdir($this->main->configrootdir); lfile_put_contents("{$this->main->configrootdir}/{$this->main->nname}.cfg", $string); }
function getViflist() { if (!$this->isWindows()) { $list[] = $this->vifname; return $list; } $name = $this->vifname; $count = count($this->vmipaddress_a); for ($i = 1; $i <= $count; $i++) { $hex = get_double_hex($i); $h = base_convert($i, 10, 36); $list[] = "{$name}{$h}"; } return $list; }