Jim Meyering
fb2eca4cfd
give a more useful diagnostic for tap-add failure w/ENOTSUP
...
* src/qemu_conf.c (qemudNetworkIfaceConnect):
Suggestion from Daniel P. Berrange.
2008-07-09 05:24:08 +00:00
Chris Lalancette
a24b1d9eda
When doing the conversion to danpb's new memory API, a small bug was
...
introduced into the qemudNetworkIfaceConnect() function. In particular, there
is a call:
if (VIR_ALLOC_N(vm->tapfds, vm->ntapfds+2) < 0)
goto no_memory;
However, the tapfds structure is used to track *all* of the tap fds, and is
called once for each network that is being attached to the domain. VIR_ALLOC_N
maps to calloc(). So the first network would work just fine, but if you had
more than one network, subsequent calls to this function would blow away the
stored fd's that were already there and fill them all in with zeros. This
causes multiple problems, from the qemu domains not starting properly to
improper cleanup on shutdown. The attached patch just changes the VIR_ALLOC_N()
to a VIR_REALLOC_N(), and everything is happy again.
Signed-off-by: Chris Lalancette <clalance@redhat.com>
2008-06-19 10:38:36 +00:00
Daniel Veillard
5ba9e91e52
* src/qemu_conf.c: patch from Kaitlin Rupert, dynamic devices
...
for network should be defined in an 'interface' node not 'net'
Daniel
2008-06-13 07:56:59 +00:00
Daniel P. Berrange
74fb2b9704
Deal with inactive virtual network in domain creation
2008-06-12 10:19:24 +00:00
Daniel P. Berrange
895d0fdf5b
Convert to use new memory allocation APIs
2008-05-29 19:20:22 +00:00
Daniel P. Berrange
b0bcffda3b
Misc OOM / memory leak fixes
2008-05-29 15:28:28 +00:00
Richard W.M. Jones
1d8d4f86b6
Standardize use of header files, making internal.h primary.
...
* qemud/internal.h, qemud/qemud.h: Rename this file so it
doesn't conflict with src/internal.h.
* HACKING: Document how header files should be used.
* qemud/Makefile.am: Add src/ directory to includes.
* qemud/event.c, qemud/mdns.c, qemud/qemud.c, qemud/remote.c,
qemud/remote_protocol.c, qemud/remote_protocol.h,
qemud/remote_protocol.x, src/buf.c, src/libvirt.c,
src/nodeinfo.c, src/qemu_conf.c, src/qemu_driver.c,
src/stats_linux.c, src/storage_backend.c, src/storage_backend_fs.c,
src/storage_backend_iscsi.c, src/storage_backend_logical.c,
src/storage_conf.c, src/storage_driver.c, src/util.c,
src/util.h, src/virsh.c, src/virterror.c, src/xend_internal.c,
src/xml.c, tests/reconnect.c, tests/xmlrpctest.c,
tests/qparamtest.c: Standardize use of header files.
* docs/*, po/*: Rebuild docs.
2008-05-23 08:24:41 +00:00
Daniel P. Berrange
7646d59568
Refactor QEMU command line building code for readability
2008-05-22 23:45:09 +00:00
Daniel P. Berrange
e193b5ddea
Apply CPU pinning at startup for QEMU guests
2008-05-22 16:27:20 +00:00
Daniel P. Berrange
508c4226e1
Implement NUMA info/apis in QEMU driver
2008-05-22 15:29:50 +00:00
Daniel P. Berrange
ecb117a4a8
Fix exit status check with qemu -help
2008-05-21 21:14:36 +00:00
Daniel P. Berrange
3af422a82e
Run qemu with -help when probing for args
2008-05-21 19:43:39 +00:00
Jim Meyering
f011f263a1
plug two leaks
...
* src/qemu_conf.c (qemudParseXML): Free "obj" unconditionally.
2008-05-16 16:53:44 +00:00
Daniel P. Berrange
40a82f3066
Make QEMU test suite independant of host OS capabilities
2008-05-16 16:51:30 +00:00
Jim Meyering
c1ee35af3b
start using c-ctype functions
...
Up to now, we've been avoiding ctype functions like isspace, isdigit,
etc. because they are locale-dependent. Now that we have the c-ctype
functions, we can start using *them*, to make the code more readable
with changes like these:
- /* This may not work on EBCDIC. */
- if ((*p >= 'a' && *p <= 'z') ||
- (*p >= 'A' && *p <= 'Z') ||
- (*p >= '0' && *p <= '9'))
+ if (c_isalnum(*p))
- while ((*cur >= '0') && (*cur <= '9')) {
+ while (c_isdigit(*cur)) {
Also, some macros in conf.c used names that conflicted with
standard meaning of "BLANK" and "SPACE", so I've adjusted them
to be in line with the definition of e.g., isblank.
In addition, I've wrapped those statement macros with do {...} while (0),
so that we can't forget the ";" after a use. There was one like that
already (fixed below). The missing semicolon would mess up automatic
indenting.
* src/buf.c (virBufferURIEncodeString):
* src/conf.c (IS_EOL, SKIP_BLANKS_AND_EOL, SKIP_BLANKS)
(virConfParseLong, virConfParseValue, virConfParseName)
(virConfParseSeparator, virConfParseStatement, IS_BLANK, IS_CHAR)
(IS_DIGIT, IS_SPACE, SKIP_SPACES):
* src/nodeinfo.c:
* src/qemu_conf.c (qemudParseInterfaceXML):
* src/qemu_driver.c (qemudDomainBlockStats):
* src/sexpr.c:
* src/stats_linux.c:
* src/util.c (virParseNumber, virDiskNameToIndex):
* src/uuid.c (hextobin, virUUIDParse):
* src/virsh.c:
* src/xml.c (parseCpuNumber, virParseCpuSet):
2008-05-16 09:37:44 +00:00
Jim Meyering
0dc23afb0c
avoid a double-free bug
...
* src/qemu_conf.c (qemudParseXML): Ensure that "obj" is either
NULL or a valid malloc'd pointer before we might "goto error"
where it is freed.
2008-05-16 09:30:10 +00:00
Daniel P. Berrange
65c2738ea1
Remove use of strcmp()
2008-05-15 20:07:34 +00:00
Daniel P. Berrange
25f860dc2f
Fixe default disk bus selection logic
2008-05-15 16:24:26 +00:00
Daniel P. Berrange
763a59d84d
Support Xenner bootloader
2008-05-15 16:21:11 +00:00
Daniel P. Berrange
0f1b6dd06a
Pass -name arg to QEMU when available
2008-05-15 16:15:17 +00:00
Daniel P. Berrange
3a7b528d4b
Add support for Xen input device in QEMU driver for xenner
2008-05-15 16:11:40 +00:00
Daniel P. Berrange
2c37f47985
Support paravirt disk configuration for xenner guests
2008-05-15 16:05:41 +00:00
Jim Meyering
6049594045
avoid using STREQLEN with a literal; use STRPREFIX instead
...
Likewise for STRNEQLEN -> !STRPREFIX.
* src/nodeinfo.c (linuxNodeInfoCPUPopulate):
* src/qemu_conf.c (qemudNetworkIfaceConnect):
(qemudParseInterfaceXML):
* src/qemu_driver.c (qemudDomainBlockStats):
* src/remote_internal.c (call):
* src/stats_linux.c (xenLinuxDomainDeviceID):
* src/xend_internal.c (xend_parse_sexp_desc):
(xend_get, sexpr_to_xend_topology):
* src/xm_internal.c (xenXMConfigCacheRefresh)
(xenXMDomainFormatXML):
2008-05-15 14:21:34 +00:00
Daniel P. Berrange
1d73398e8f
Remove all use of strcmp, strncmp in favour of STREQ, STREQLEN, STRPREFIX
2008-05-14 19:51:24 +00:00
Jim Meyering
e830d52573
avoid "not a string literal..." warnings
...
* src/qemu_conf.c (qemudParseInterfaceXML): Add "%s".
(qemudBuildCommandLine, qemudGenerateXML): Likewise.
2008-05-13 09:15:11 +00:00
Daniel P. Berrange
098ba1a433
Add support for -drive QEMU syntax, and virtio bus / disk type
2008-05-09 16:41:19 +00:00
Daniel Veillard
da6316f20e
SetVcpus and DomainGetMaxVcpus for QEmu
...
* src/qemu_conf.c src/qemu_conf.h src/qemu_driver.c: another patch
from Cole Robinson adding SetVcpus and DomainGetMaxVcpus for QEmu
Daniel
2008-05-07 16:16:44 +00:00
Daniel Veillard
70f446631f
Sound support for QEmu and Xen
...
* src/qemu_conf.c src/qemu_conf.h src/xend_internal.c
src/xend_internal.h src/xm_internal.c src/xml.c src/xml.h:
Patch from Cole Robinson adding sound support for QEmu and Xen
* tests/qemuxml2argvtest.c tests/sexpr2xmltest.c
tests/xmconfigtest.c tests/xml2sexprtest.c:
Associated regression tests
Daniel
2008-05-07 14:04:40 +00:00
Daniel P. Berrange
159cb2b97c
Added support for network interface model setting
2008-04-30 12:30:55 +00:00
Jim Meyering
0c37f59802
remove useless tests before xmlFree
...
* src/qemu_conf.c (qemudParseDiskXML, qemudParseInterfaceXML):
(qemudParseInputXML, qemudParseDhcpRangesXML):
* src/remote_internal.c (doRemoteOpen):
* src/storage_conf.c (virStoragePoolDefParseDoc):
* src/xm_internal.c (xenXMParseXMLDisk, xenXMParseXMLVif):
(xenXMParseXMLToConfig, xenXMAttachInterface):
* src/xml.c (virDomainParseXMLDiskDesc, virDomainParseXMLIfDesc):
(virDomainXMLDevID):
2008-04-29 19:43:57 +00:00
Daniel P. Berrange
642b26fab2
Change virBuffer API to prevent common usage errors. Update all users of APIs
2008-04-28 15:14:59 +00:00
Daniel P. Berrange
49956f0469
Implement serial & parallel device support for QEMU driver
2008-04-25 20:46:13 +00:00
Jim Meyering
5bf824ea10
convert TAB-based indentation in C sources to use only spaces
...
Done using this command (also includes .c.in and .h.in files):
for i in $(g ls-files|grep -E '\.[ch](\.in)?$'|grep -v gnulib); do
expand -i $i > j && mv j $i;done
2008-04-10 16:54:54 +00:00
Jim Meyering
dc42a9d2de
remove Vim and Emacs variable settings from C source files
...
Done with these commands:
git grep -l Local.variab|xargs \
perl -0x3b -pi -e 's,\n+/\*\n \* vim:(.|\n)*,\n,'
git grep -l Local.variab|xargs \
perl -0x3b -pi -e 's,\n+/\*\n \* Local variables:\n(.|\n)*,\n,'
2008-04-10 16:53:29 +00:00
Daniel P. Berrange
038b434f14
Added patches for routed networking from Mads Chr. Olesen
2008-03-28 20:38:21 +00:00
Jim Meyering
b53c4e51f8
qemudReportError: mark for translation string args to this function
...
* Makefile.maint (msg_gen_function): Add qemudReportError.
* src/qemu_conf.c (qemudLoadDriverConfig)
(qemudExtractVersion, qemudParseDiskXML, qemudParseInterfaceXML)
(qemudParseInputXML, qemudParseXML, qemudNetworkIfaceConnect)
(qemudBuildCommandLine, qemudSaveConfig, qemudParseVMDeviceDef)
(qemudAssignVMDef, qemudSaveVMDef, qemudSaveNetworkConfig)
(qemudParseDhcpRangesXML, qemudParseNetworkXML)
(qemudAssignNetworkDef, qemudSaveNetworkDef, qemudGenerateXML)
(qemudGenerateNetworkXML, qemudDeleteConfig): Mark strings.
* src/qemu_driver.c (qemudBuildDnsmasqArgv, qemudAddIptablesRules)
(qemudGetCapabilities, qemudDomainGetOSType)
(qemudListDefinedDomains, qemudListNetworks)
(qemudListDefinedNetworks, qemudNetworkGetBridgeName): Mark strings.
2008-03-27 13:53:14 +00:00
Daniel Veillard
623ec4d2f2
* src/qemu_conf.c src/qemu_conf.h src/qemu_driver.c: applied patch
...
from Cole Robinson implementing memory operations for qemu driver
Daniel
2008-03-19 14:32:50 +00:00
Daniel P. Berrange
7ae13660cf
Don't set MAC on TAP devs. Pass TAP device name to QEMU
2008-03-14 20:30:03 +00:00
Daniel Veillard
af1c7f96a8
* src/qemu_conf.c src/qemu_driver.c: patch from Cole Robinson
...
fixing CD Rom change on live QEmu/KVM domains.
Daniel
2008-03-13 09:17:45 +00:00
Jim Meyering
4090a0870c
Don't use first byte of string as a pointer.
...
* src/qemu_conf.c (qemudReportError): Use the pointer, errorMessage,
not its first byte, errorMessage[0].
2008-03-03 18:11:16 +00:00
Daniel Veillard
004ff90483
Fix qemudReportError.
...
* src/qemu_conf.c: applied patch from Cole Robinson to use virErrorMsg
in qemudReportError.
Daniel
2008-02-28 11:17:49 +00:00
Daniel P. Berrange
9699e372c2
Set MAC address on TUN device for Xenner compatability
2008-02-28 01:23:14 +00:00
Daniel P. Berrange
63bc5dd3e1
Add formal internal capabilities API and update drivers to use it
2008-02-27 04:35:08 +00:00
Jim Meyering
b59d9c85f1
Use safewrite in place of write, in many cases.
...
Also add "make syntax-check" rules to ensure no new uses sneak in.
There are many uses of write like this:
if (write (fd, xml, towrite) != towrite)
return -1;
The problem is that the syscall can succeed, yet write less than
the requested number of bytes, so the caller should retry
rather than simply failing.
This patch changes most of them to use util.c's safewrite wrapper,
which encapsulates the process. Also, there were a few cases in
which the retry loop was open-coded, and I replaced those, too.
* Makefile.maint (sc_avoid_write): New rule, to avoid recurrence.
* .x-sc_avoid_write: New file. Record two legitimate exemptions.
* qemud/qemud.c (sig_handler, qemudClientWriteBuf): Use safewrite, not write.
* src/conf.c (__virConfWriteFile): Likewise.
* src/qemu_conf.c (qemudSaveConfig, qemudSaveNetworkConfig): Likewise.
* src/qemu_driver.c (qemudWaitForMonitor, qemudStartVMDaemon)
(qemudVMData, PROC_IP_FORWARD): Likewise.
* proxy/libvirt_proxy.c: Include "util.h".
(proxyWriteClientSocket): Use safewrite.
* src/test.c (testDomainSave, testDomainCoreDump): Likewise.
* src/proxy_internal.c (virProxyWriteClientSocket): Likewise.
* src/virsh.c: Include "util-lib.h".
(vshOutputLogFile): Use safewrite.
* src/console.c: Include "util-lib.h".
(vshRunConsole): Use safewrite.
2008-02-22 15:55:04 +00:00
Daniel P. Berrange
f43e709842
Added convenience virsh command for creating pools/volumes without XML
2008-02-20 15:29:13 +00:00
Jim Meyering
247df6e448
Mark all qemudLog diagnostics for translation.
...
* po/POTFILES.in: Add names of many new files.
* Makefile.maint (err_func_re): Add qemudLog.
Mark diagnostics with _(...). Split some long lines.
* qemud/qemud.c (remoteCheckCertFile, remoteInitializeGnuTLS):
(qemudDispatchSignalEvent, qemudSetCloseExec, qemudSetNonBlock):
(qemudWritePidFile, qemudListenUnix, remoteMakeSockets):
(remoteListenTCP, qemudInitPaths, qemudInitialize):
(qemudNetworkInit, remoteInitializeTLSSession, remoteCheckDN):
(remoteCheckCertificate, remoteCheckAccess, qemudDispatchServer):
(qemudClientReadBuf, qemudDispatchClientRead):
(qemudClientWriteBuf, qemudDispatchClientWrite, qemudOneLoop):
(remoteConfigGetStringList, checkType, GET_CONF_STR):
(remoteConfigGetAuth, remoteReadConfigFile, main):
* qemud/remote.c (remoteDispatchAuthSaslInit, remoteSASLCheckSSF):
(remoteSASLCheckAccess, remoteDispatchAuthSaslStart):
(remoteDispatchAuthSaslStep, remoteDispatchAuthSaslInit):
(remoteDispatchAuthSaslStart, remoteDispatchAuthSaslStep):
(qemudGetSocketIdentity, remoteDispatchAuthPolkit):
* src/iptables.c (notifyRulesUpdated, MAX_FILE_LEN, iptRulesSave):
(iptRulesReload):
* src/qemu_conf.c (qemudExtractVersionInfo, qemudLoadConfig):
(qemudLoadNetworkConfig, qemudScanConfigDir):
* src/qemu_driver.c (qemudSetCloseExec, qemudSetNonBlock):
(qemudAutostartConfigs, qemudStartup, qemudReload):
(qemudWaitForMonitor, qemudStartVMDaemon, qemudVMData):
(qemudShutdownVMDaemon, qemudStartNetworkDaemon):
(qemudShutdownNetworkDaemon, qemudMonitorCommand):
(qemudDomainUndefine, qemudNetworkUndefine):
* src/uuid.c (virUUIDGenerate):
* src/xm_internal.c (xenXMAttachInterface):
2008-02-07 16:50:17 +00:00
Jim Meyering
e8ff93b4e6
Remove more useless if tests before "free"-like functions.
...
* build-aux/useless-if-before-free: Rename from ...
* build-aux/find-unnecessary-if-before-free: ... this. Remove file.
Also changed it so that new names are no longer hard-coded in the
script. Instead, they're supplied via options:
* Makefile.cfg (useless_free_options): Define.
Add xmlXPathFreeObject to the list of free-like functions it detects.
* Makefile.maint (sc_avoid_if_before_free): Reflect script renaming.
* .x-sc_avoid_if_before_free: Likewise.
* src/openvz_conf.c (openvzParseXML): Remove useless "if"-before-free.
* src/qemu_conf.c (qemudParseXML, qemudParseNetworkXML): Likewise.
* src/virsh.c (cmdVNCDisplay, cmdTTYConsole, cmdDetachInterface):
(cmdDetachDisk): Likewise.
* src/xm_internal.c (xenXMConfigSetIntFromXPath): Likewise.
(xenXMConfigSetStringFromXPath, xenXMParseXMLToConfig): Likewise.
(xenXMDomainAttachDevice, xenXMAttachDisk, xenXMAttachInterface):
(xenXMDomainDetachDevice): Likewise.
* src/xml.c (virXPathString): Likewise.
* tests/xmlrpctest.c (checkRequestValue): Likewise.
2008-02-07 16:49:29 +00:00
Daniel Veillard
eecd68364a
QEmu config error handling fixes
...
* src/qemu_conf.c: applied 2 patches from Guido Guenther to avoid
crashes when reading the config file
Daniel
2008-02-06 16:24:28 +00:00
Jim Meyering
e04912a9f0
Remove all trailing blanks; turn on the rule to detect them.
...
* Makefile.cfg (local-checks-to-skip): Remove sc_trailing_blank.
* .x-sc_trailing_blank: New file, to exempt the few binary files.
2008-02-05 19:27:37 +00:00
Jim Meyering
fb66d5ab92
Eliminate all uses of virBufferAdd with string literals.
...
* Makefile.maint (sc_prohibit_virBufferAdd_with_string_literal):
New rule.
* src/buf.h (virBufferAddLit): Define.
* src/conf.c (virConfSaveValue): Use virBufferAddLit, in place
of virBufferAdd everywhere possible.
(virConfSaveEntry): Likewise.
* src/qemu_conf.c (qemudGenerateXML, qemudGenerateNetworkXML): Likewise.
* src/qemu_driver.c (qemudGetFeatures, qemudGetCapabilities): Likewise.
* src/test.c (testDomainDumpXML, testNetworkDumpXML): Likewise.
* src/xen_internal.c (xenHypervisorMakeCapabilitiesXML): Likewise.
* src/xend_internal.c (xend_parse_sexp_desc_os): Likewise.
(xend_parse_sexp_desc, sexpr_to_xend_topology_xml): Likewise.
* src/xm_internal.c (xenXMDomainFormatXML, xenXMDomainPinVcpu): Likewise.
* src/xml.c (virSaveCpuSet, virParseXenCpuTopology): Likewise.
(virDomainParseXMLGraphicsDescImage): Likewise.
(virDomainParseXMLGraphicsDescVFB, virDomainParseXMLOSDescHVM): Likewise.
(virDomainParseXMLOSDescPV, virDomainParseXMLDiskDesc): Likewise.
(virDomainParseXMLIfDesc, virDomainParseXMLDesc): Likewise.
2008-02-05 14:22:28 +00:00