[431] in BarnOwl Developers
[D-O-H] r562 - in trunk: . owl/perl/modules
daemon@ATHENA.MIT.EDU (nelhage@MIT.EDU)
Thu Oct 29 18:06:04 2009
Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
Date: Wed, 24 Jan 2007 16:12:26 -0500
To: dirty-owl-hackers@mit.edu
From: nelhage@MIT.EDU
Reply-To: dirty-owl-hackers@MIT.EDU
Author: nelhage
Date: 2007-01-24 16:12:25 -0500 (Wed, 24 Jan 2007)
New Revision: 562
Modified:
trunk/
trunk/owl/perl/modules/jabber.pl
Log:
r18185@phanatique: nelhage | 2007-01-24 16:12:20 -0500
Guess an account for jwrite based on whether the JID is in one of your
account's rosters.
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- bb873fd7-8e23-0410-944a-99ec44c633eb:/branches/owl/filter-rewrite:15925
bb873fd7-8e23-0410-944a-99ec44c633eb:/local/d-o-h/trunk:18175
+ bb873fd7-8e23-0410-944a-99ec44c633eb:/branches/owl/filter-rewrite:15925
bb873fd7-8e23-0410-944a-99ec44c633eb:/local/d-o-h/trunk:18185
Modified: trunk/owl/perl/modules/jabber.pl
===================================================================
--- trunk/owl/perl/modules/jabber.pl 2007-01-24 07:24:13 UTC (rev 561)
+++ trunk/owl/perl/modules/jabber.pl 2007-01-24 21:12:25 UTC (rev 562)
@@ -399,7 +399,7 @@
my $cmd = shift;
my $jid = new Net::XMPP::JID;
$jid->SetJID(shift);
- my $password = undef;
+ my $password = '';
$password = shift if @_;
my $uid = $jid->GetUserID();
@@ -421,7 +421,6 @@
my ( $server, $port ) = getServerFromJID($jid);
$vars{jlogin_jid} = $jidStr;
- $vars{jlogin_password} = $password;
$vars{jlogin_connhash} = {
hostname => $server,
tls => 1,
@@ -559,7 +558,7 @@
my $jwrite_sid = "";
my $jwrite_thread = "";
my $jwrite_subject = "";
- my $to;
+ my ($to, $from);
my $jwrite_type = "chat";
my @args = @_;
@@ -569,7 +568,7 @@
GetOptions(
'thread=s' => \$jwrite_thread,
'subject=s' => \$jwrite_subject,
- 'account=s' => \$jwrite_from,
+ 'account=s' => \$from,
'id=s' => \$jwrite_sid,
);
$jwrite_type = 'groupchat' if $gc;
@@ -583,14 +582,18 @@
$to = shift @ARGV;
}
- ($jwrite_from, $jwrite_to, $jwrite_type) = guess_jwrite($jwrite_from, $to);
+ ($jwrite_from, $jwrite_to, $jwrite_type) = guess_jwrite($from, $to);
unless($jwrite_to) {
die("Unable to resolve JID $to");
}
unless($jwrite_from) {
- die("Unable to resolve account");
+ if(!$from) {
+ die("You must specify an account with -a");
+ } else {
+ die("Unable to resolve account $from");
+ }
}
$vars{jwrite} = {
@@ -1295,14 +1298,15 @@
sub resolveDestJID {
my ($to, $from) = @_;
- return $to if $to =~ /@/;
my $jid = Net::Jabber::JID->new($to);
my $roster = $conn->getRosterFromJID($from);
my @jids = $roster->jids('all');
for my $j (@jids) {
- if($roster->query($j, 'name') eq $to) {
+ if(($roster->query($j, 'name') || "") eq $to) {
return $j->GetJID('full');
+ } elsif($j->GetJID('base') eq baseJID($to)) {
+ return $j->GetJID('full');
}
}
@@ -1312,6 +1316,7 @@
sub resolveType {
my $to = shift;
my $from = shift;
+ return unless $from;
my @mucs = $conn->getConnectionFromJID($from)->MUCs;
if(grep {$_->BaseJID eq $to } @mucs) {
return 'groupchat';
@@ -1328,10 +1333,6 @@
$from_jid = resolveConnectedJID($from);
die("Unable to resolve account $from") unless $from_jid;
$to_jid = resolveDestJID($to, $from_jid);
- } elsif($to =~ /@/) {
- $to_jid = $to;
- $from_jid = defaultJID();
- die("You must specify an account with -a") unless $from_jid;
} else {
for my $f ($conn->getJids) {
$to_jid = resolveDestJID($to, $f);
@@ -1339,6 +1340,7 @@
$from_jid = $f;
}
}
+ $to_jid = $to if $to =~ /@/;
die("Unable to resolve JID $to") unless $to_jid;
}