Commit Graph

2062 Commits

Author SHA1 Message Date
Marek Marczykowski
c1214bfef9 dom0/core: VM property for qrexec startup timeout (#27 pro) 2012-09-25 03:26:44 +02:00
Marek Marczykowski
c26e21d883 dom0/qrexec: tunable connect timeout, prompt the user on timeout (#27 pro) 2012-09-25 03:26:24 +02:00
Marek Marczykowski
d1620d9a32 dom0/qrexec: kill child process on connect timeout
Sometimes vchan can not detect dead target domain so kill it explicit to not
leave a mess.
2012-09-25 03:23:54 +02:00
Marek Marczykowski
96199058d1 dom0/core: wait for user session on HVM start (#31 pro) 2012-09-25 00:23:35 +02:00
Marek Marczykowski
f271ad8463 dom0/core: fix return value of QubesHVM.run() 2012-09-25 00:23:20 +02:00
Marek Marczykowski
9db9d8b6c2 dom0/core: allow passing stdin to QubesVM.run() 2012-09-25 00:22:31 +02:00
Marek Marczykowski
11ae1f45fc vm/systemd: early user-configurable init script 2012-09-23 23:28:58 +02:00
Marek Marczykowski
dd7fe532ae vm/yum-proxy: allow pkgtags repodata 2012-09-19 12:55:45 +02:00
Marek Marczykowski
cb5479666c win/vchan: reset the evtchn buffer in case of overflow
In case of evtchn buffer overflow (received more than 1024 events between
libvchan_wait calls) further reads returns ERROR_IO_DEVICE. The only way to
recover from that is to reset the buffer. Because vchan code doesn't take care
of number of fired events - only the fact that some event was fired - lost
events here shouldn't break anything. Events reported _after_ libvchan_wait
call will be collected and reported correctly.

Some more comments in the code (here and in qrexec-agent in the next commit).
2012-09-16 23:32:56 +02:00
Marek Marczykowski
3ecc031603 dom0/core: allow '_' in VM name 2012-09-14 12:58:00 +02:00
Marek Marczykowski
2444603ef5 dom0/core: allow '_' in VM name 2012-09-14 12:57:25 +02:00
Marek Marczykowski
900a21db72 dom0/init.d: hide some missleading error 2012-09-04 19:24:01 +02:00
Marek Marczykowski
b7eaf9a30d dom0/core: do not use hardcoded "user" in qvm-sync-clock 2012-08-31 00:53:50 +02:00
Marek Marczykowski
e6da68dae2 dom0/qrexec: use DEFAULT user feature of qrexec_daemon in policy parser 2012-08-30 17:48:19 +02:00
Marek Marczykowski
3f5a34f635 Revert "dom0/qrexec: use default user from VM settings"
This reverts commit b1ccc9a510e465b8b59f12bafb7735664c4101d0.
This can be handled by qrexec_daemon itself.

Conflicts:

	qrexec/qrexec_policy
2012-08-30 17:47:32 +02:00
Marek Marczykowski
46fd664ba3 dom0/qrexec: implement default user handling in qrexec_daemon
This will simplify using qrexec from utilities which doen't load qubes.xml
normally (like qrexec_policy, gui daemon).
2012-08-30 17:44:52 +02:00
Joanna Rutkowska
614573d0a3 version 1.7.45 2012-08-29 10:48:23 +02:00
Joanna Rutkowska
23f3f424e5 Merge branch 'master' of git.qubes-os.org:/var/lib/qubes/git/marmarek/core 2012-08-29 10:46:02 +02:00
Marek Marczykowski
629ae5317c vm/qrexec: fix race between child cleanup and select call
reap_children() can close FD, which was already added to FD_SET for select.
This can lead to EBADF and agent termination.
2012-08-27 01:26:12 +02:00
Marek Marczykowski
e80ff6bdeb dom0/spec: mark qrexec policy as config files
Prevent override on upgrade, when user makes some own changes (especially
"always allow" feature).
2012-08-27 01:25:39 +02:00
Marek Marczykowski
4e2f47d95c dom0/spec: mark qrexec policy as config files
Prevent override on upgrade, when user makes some own changes (especially
"always allow" feature).
2012-08-27 00:53:58 +02:00
Marek Marczykowski
3bce6047b5 dom0/qrexec: properly process data after client terminated one way of transfer
Instead of removing client from list at EPIPE error from write, assume that
client does not wish read future data, but still can write something.
2012-08-27 00:49:45 +02:00
Marek Marczykowski
f79101d114 dom0/qrexec: fix the case when client disconnected while sending cmdline
Previously there was not cleaned up entry in clients table. Not critical, as
will be reset to known state at new client connect, but still fix it.
2012-08-27 00:48:36 +02:00
Marek Marczykowski
89ab002db1 dom0/qrexec: minor FD leak fix
qrexec_client will be shortly terminated after that, but still fix it.
2012-08-27 00:48:36 +02:00
Marek Marczykowski
d1882bb9fc vm/filecopy: close stdin when no more data will be read
This will allow qrexec_agent drop the data instead of buffering it.
2012-08-27 00:48:35 +02:00
Marek Marczykowski
4ae822846d vm/filecopy: add one missing write() error checking 2012-08-27 00:48:35 +02:00
Marek Marczykowski
6984c4d795 vm/qrexec: better handle the case when child process closes its stdin
Instead of assuming process termination (because of write returned EPIPE), just
do not write to the process pipe, but still process the data in opposite
direction until EOF received.
2012-08-27 00:48:22 +02:00
Marek Marczykowski
798d239c15 vm/qrexec: fix race between child cleanup and select call
reap_children() can close FD, which was already added to FD_SET for select.
This can lead to EBADF and agent termination.
2012-08-27 00:20:25 +02:00
Marek Marczykowski
1c04920833 vm/qrexec: log exit code in "sending exit code" message 2012-08-27 00:18:35 +02:00
Marek Marczykowski
3b320878ac dom0/qvm-block: rework device name parsing to better support c0p1 name style 2012-08-26 14:42:32 +02:00
Marek Marczykowski
6305e6cbe1 dom0/qvm-block: rework device name parsing to better support c0p1 name style 2012-08-26 14:41:35 +02:00
Marek Marczykowski
fefb6d9cff vm+dom0/filecopy-unpacker: send errors to qfile-agent istead of local message (#239)
Because unpacker no longer require GUI access, there is no need for separate
process for error reporting. Which greatly simplify the code.
2012-08-25 02:09:45 +02:00
Marek Marczykowski
cec58c048a vm/filecopy-agent: check for unpacker errors during transfer (#239)
If unpacker encounter error it sends result header immediately - detect it as
soon as possible and do not send rest of file(s).
2012-08-25 01:26:19 +02:00
Marek Marczykowski
87511f3112 vm/filecopy: support nonblocking fd in read_all
This will be needed to (non blocking) check if data is available on pipe -
especially to receive possible error from the other end (which will be
introduced sometime later).
2012-08-25 01:22:00 +02:00
Marek Marczykowski
62f626e68f vm/filecopy: close unused fds in parent process 2012-08-25 01:19:47 +02:00
Marek Marczykowski
c9a43f66ed dom0/qrexec: do not exit client before all data in both direction transfered
When qrexec_client cannot write to its stdout, this doesn't necessary mean that
there is no data in opposite direction.
Simple example is RPC service: when process in destination VM closes its stdin,
it can still send some data to triggering VM.
2012-08-25 01:17:50 +02:00
Marek Marczykowski
77b2758c93 vm/qubes-rpc: move set_(non)?block to ioall.c as can be used not only in qrexec 2012-08-25 01:11:22 +02:00
Marek Marczykowski
e03eab7137 vm/filecopy: remove duplicated error reporting
Each write_all is check for errors (when it makes sense) with own perror call,
so don't dupplicate messages.
2012-08-25 01:06:25 +02:00
Joanna Rutkowska
5c826c78cc version 2.0.36-dom0 2012-08-24 15:36:31 +02:00
Joanna Rutkowska
4092814534 Merge branch 'hvm' of 10.141.1.101:/var/lib/qubes/git/marmarek/core into hvm 2012-08-24 15:12:07 +02:00
Marek Marczykowski
ab52153ab2 win/vchan: remove outstanding evtchn events on libvchan_wait
Windows evtchn driver can double fire on one event (details in
xenpci/evtchn_device_interface.c:EvtChn_EvtIoWrite). Less intrusive way of
fixing it is just remove all events from queue on libvchan_wait (to prevent
queue fill).
This won't hurt because we are interested in events only sent
after xc_evtchn_unmask call which is one line below.
2012-08-23 21:39:41 +02:00
Joanna Rutkowska
2c12096f98 version 1.7.44-dom0 2012-08-23 12:19:37 +02:00
Marek Marczykowski
c0455ac641 Merge branch 'master' into hvm
Conflicts:
	dom0/qvm-tools/qvm-create
	version_dom0
2012-08-23 11:11:59 +02:00
Marek Marczykowski
1cd3ef3456 dom0/qvm-tools: catch exceptions while settting VM name (#656) 2012-08-23 04:02:50 +02:00
Marek Marczykowski
536eb00b9c dom0/core: verify VM name for not-allowed characters (#656) 2012-08-23 04:01:55 +02:00
Marek Marczykowski
dde1b5b2f5 dom0/qrexec: use QUBESRPC instead of direct multiplexer path 2012-08-23 03:59:31 +02:00
Marek Marczykowski
b7f5c6ac0b dom0/qvm-tools: catch exceptions while settting VM name (#656) 2012-08-23 03:48:03 +02:00
Marek Marczykowski
85565af560 dom0/core: verify VM name for not-allowed characters (#656) 2012-08-23 03:45:06 +02:00
Marek Marczykowski
4fcaf3e7b7 Revert "win: unmask evtchn before checking if libvchan_wait is needed"
This reverts commit f7ce10db8f76f752cf9d65b420de352e70bdb048.
This should be fixed by doing 0-length reads in qrexec main loop (instead of
real read of fired port number).
2012-08-23 01:58:44 +02:00
Marek Marczykowski
7c1dfe9266 dom0/qrexec: implement standalone policy evaluation (#12 pro)
This change will allow to use the same policy mechanism to control clipboard
copy between domains.
2012-08-18 22:08:26 +02:00