package Object::Remote::Connector::LocalSudo;
-
+
+use Object::Remote::Logging qw (:log :dlog);
use Symbol qw(gensym);
use Module::Runtime qw(use_module);
use IPC::Open3;
->watch_io(
handle => $sudo_stderr,
on_read_ready => sub {
- #TODO is there a specific reason sysread() and syswrite() aren't
- #a part of ::MiniLoop? It's one spot to handle errors and other
- #logic involving filehandles
Dlog_debug { "LocalSudo: Preparing to read data from $_" } $sudo_stderr;
if (sysread($sudo_stderr, my $buf, 32768) > 0) {
log_trace { "LocalSudo: successfully read data, printing it to STDERR" };
for ($_[0]) {
# username followed by @
if (defined and !ref and /^ ([^\@]*?) \@ $/x) {
- return __PACKAGE__->new(target_user => $1);
+ shift(@_);
+ return __PACKAGE__->new(@_, target_user => $1);
}
}
return;