[Gd-chatter] r11089 - in trunk/libraries/network: koala/sources/examples/buddha web-framework xmpp-bot

hannes at gwydiondylan.org hannes at gwydiondylan.org
Wed Dec 20 22:48:06 CET 2006


Author: hannes
Date: Wed Dec 20 22:48:04 2006
New Revision: 11089

Modified:
   trunk/libraries/network/koala/sources/examples/buddha/buddha.dylan
   trunk/libraries/network/web-framework/library.dylan
   trunk/libraries/network/web-framework/users.dylan
   trunk/libraries/network/xmpp-bot/xmpp-bot.dylan
Log:
Bug: 7257
*removed senseless locking
*set user to correct username

Modified: trunk/libraries/network/koala/sources/examples/buddha/buddha.dylan
==============================================================================
--- trunk/libraries/network/koala/sources/examples/buddha/buddha.dylan	(original)
+++ trunk/libraries/network/koala/sources/examples/buddha/buddha.dylan	Wed Dec 20 22:48:04 2006
@@ -62,6 +62,7 @@
                  return();
                end;
                dynamic-bind(*user* = storage(<user>)[auth.head])
+                 set-current-user(*user*);
                  good? := #t;
                  if (request.request-method = #"get")
                    respond-to-get(?#"name", request, response)

Modified: trunk/libraries/network/web-framework/library.dylan
==============================================================================
--- trunk/libraries/network/web-framework/library.dylan	(original)
+++ trunk/libraries/network/web-framework/library.dylan	Wed Dec 20 22:48:04 2006
@@ -110,6 +110,7 @@
     access-level,
     access-level-setter,
     current-user,
+    set-current-user,
     login,
     logged-in?,
     valid-user?;

Modified: trunk/libraries/network/web-framework/users.dylan
==============================================================================
--- trunk/libraries/network/web-framework/users.dylan	(original)
+++ trunk/libraries/network/web-framework/users.dylan	Wed Dec 20 22:48:04 2006
@@ -38,6 +38,9 @@
   *user*
 end;
 
+define method set-current-user (user :: <user>) => (user :: <user>)
+  *user* := user;
+end;
 define method check (user :: <user>, #key test-result = 0)
  => (res :: <boolean>)
   if (element(storage(<user>), user.username, default: #f))

Modified: trunk/libraries/network/xmpp-bot/xmpp-bot.dylan
==============================================================================
--- trunk/libraries/network/xmpp-bot/xmpp-bot.dylan	(original)
+++ trunk/libraries/network/xmpp-bot/xmpp-bot.dylan	Wed Dec 20 22:48:04 2006
@@ -40,20 +40,18 @@
   send(xmpp-bot.client, make(<iq>, type: #"get", query: with-xml() query(xmlns => "jabber:iq:roster") end, id: "roster"));
 end;
 
-define constant $lock = make(<lock>);
 define method auto-subscriber (xmpp-bot, client, presence)
-  with-lock($lock)
-    if (presence.type)
-      select (presence.type)
-        #"subscribe" => begin
-                          send(client, make(<presence>,
-                                            to: presence.from,
-                                            type: #"subscribed"));
-                          send(client, make(<presence>,
-                                            to: presence.from,
-                                            type: #"subscribe"));
-                        end;
-        #"unsubscribe" =>
+  if (presence.type)
+    select (presence.type)
+      #"subscribe" => begin
+                        send(client, make(<presence>,
+                                          to: presence.from,
+                                          type: #"subscribed"));
+                        send(client, make(<presence>,
+                                          to: presence.from,
+                                          type: #"subscribe"));
+                      end;
+      #"unsubscribe" =>
                         begin
                           send(client, make(<presence>,
                                             to: presence.from,
@@ -68,33 +66,30 @@
                                                            as(<string>, presence.from),
                                                            test: subsequence-position);
                         end;
-        #"unavailable" => begin
-                            format-out("%s went offline\n", as(<string>, presence.from));
-                            xmpp-bot.online-users := remove!(xmpp-bot.online-users,
-                                                             as(<string>, presence.from),
-                                                             test: \=);
-                          end;
-         otherwise => begin
-                        format-out("Didn't know what to do with type %=\n", presence.type);
-                      end;
-      end select;
-    else
-      unless (any?(method(a) a = as(<string>, presence.from) end, xmpp-bot.online-users))
-        xmpp-bot.online-users := add!(xmpp-bot.online-users, as(<string>, presence.from));
-      end;
+      #"unavailable" => begin
+                          format-out("%s went offline\n", as(<string>, presence.from));
+                          xmpp-bot.online-users := remove!(xmpp-bot.online-users,
+                                                           as(<string>, presence.from),
+                                                           test: \=);
+                        end;
+       otherwise => begin
+                      format-out("Didn't know what to do with type %=\n", presence.type);
+                    end;
+    end select;
+  else
+    unless (any?(method(a) a = as(<string>, presence.from) end, xmpp-bot.online-users))
+      xmpp-bot.online-users := add!(xmpp-bot.online-users, as(<string>, presence.from));
     end;
   end;
 end;
 
 define method broadcast-message (bot :: <xmpp-bot>, message :: type-union(<string>, <element>))
-  with-lock($lock)
-    do(method (user)
-         send(bot.client,
-              make(<message>,
-                   type: #"chat",
-                   body: message,
-                   to: user));
-       end, bot.online-users);
-  end;
+  do(method (user)
+       send(bot.client,
+            make(<message>,
+                 type: #"chat",
+                 body: message,
+                 to: user));
+     end, bot.online-users);
 end;
 



More information about the chatter mailing list