social_stream-presence 0.0.9 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ejabberd/conf/{ejabberd.cfg → ejabberd_example.cfg} +3 -7
 - data/ejabberd/conf/ssconfig_example.cfg +32 -0
 - data/ejabberd/ejabberd_scripts/authentication_script +1 -1
 - data/ejabberd/ejabberd_scripts/{compile_module → development_scripts/compile_module} +0 -0
 - data/ejabberd/ejabberd_scripts/{generate_random_password → development_scripts/generate_random_password} +0 -0
 - data/ejabberd/ejabberd_scripts/{kill_authentication_script.sh → development_scripts/kill_authentication_script.sh} +0 -0
 - data/ejabberd/ejabberd_scripts/{reset_logs.sh → development_scripts/reset_logs.sh} +0 -2
 - data/ejabberd/ejabberd_scripts/{show_config.sh → development_scripts/show_config.sh} +3 -0
 - data/ejabberd/ejabberd_scripts/{start_ejabberd.sh → development_scripts/start_ejabberd.sh} +0 -0
 - data/ejabberd/ejabberd_scripts/{stop_ejabberd.sh → development_scripts/stop_ejabberd.sh} +0 -0
 - data/ejabberd/ejabberd_scripts/emanagement +2 -2
 - data/ejabberd/mod_sspresence/mod_sspresence.beam +0 -0
 - data/ejabberd/mod_sspresence/mod_sspresence.erl +11 -7
 - data/lib/generators/social_stream/presence/templates/initializer.rb +7 -3
 - data/lib/social_stream/presence/version.rb +1 -1
 - data/lib/social_stream-presence.rb +5 -0
 - data/lib/tasks/presence/synchronize.rake +68 -38
 - metadata +13 -32
 - data/ejabberd/conf/ejabberdctl.cfg +0 -154
 - data/ejabberd/conf/inetrc +0 -3
 - data/ejabberd/conf/ssconfig.cfg +0 -32
 - data/ejabberd/ejabberd_scripts/authentication_script_org +0 -114
 
| 
         @@ -88,7 +88,7 @@ 
     | 
|
| 
       88 
88 
     | 
    
         
             
            %% You can define one or several, for example:
         
     | 
| 
       89 
89 
     | 
    
         
             
            %% {hosts, ["example.net", "example.com", "example.org"]}.
         
     | 
| 
       90 
90 
     | 
    
         
             
            %%
         
     | 
| 
       91 
     | 
    
         
            -
            {hosts, [" 
     | 
| 
      
 91 
     | 
    
         
            +
            {hosts, ["example.com"]}.
         
     | 
| 
       92 
92 
     | 
    
         | 
| 
       93 
93 
     | 
    
         
             
            %%
         
     | 
| 
       94 
94 
     | 
    
         
             
            %% route_subdomains: Delegate subdomains to other XMPP servers.
         
     | 
| 
         @@ -115,8 +115,7 @@ 
     | 
|
| 
       115 
115 
     | 
    
         
             
            			%% certificate, specify the full path to the
         
     | 
| 
       116 
116 
     | 
    
         
             
            			%% file and uncomment this line:
         
     | 
| 
       117 
117 
     | 
    
         
             
            			%%
         
     | 
| 
       118 
     | 
    
         
            -
            			%%{certfile, "/path/to/ 
     | 
| 
       119 
     | 
    
         
            -
            			{certfile, "/etc/ejabberd/server.pem"}, starttls,
         
     | 
| 
      
 118 
     | 
    
         
            +
            			%%{certfile, "/path/to/your_ssl_certificate.pem"}, starttls,
         
     | 
| 
       120 
119 
     | 
    
         | 
| 
       121 
120 
     | 
    
         
             
            			{access, c2s},
         
     | 
| 
       122 
121 
     | 
    
         
             
            			{shaper, c2s_shaper},
         
     | 
| 
         @@ -235,13 +234,10 @@ 
     | 
|
| 
       235 
234 
     | 
    
         
             
            %% Exauth Response Timeout is a extauth module constant and its value is 60 seconds.
         
     | 
| 
       236 
235 
     | 
    
         
             
            %%
         
     | 
| 
       237 
236 
     | 
    
         
             
            {auth_method, external}.
         
     | 
| 
       238 
     | 
    
         
            -
            {extauth_program, "/ 
     | 
| 
      
 237 
     | 
    
         
            +
            {extauth_program, "/scripts_path/authentication_script"}.
         
     | 
| 
       239 
238 
     | 
    
         
             
            {extauth_instances, 3}.
         
     | 
| 
       240 
239 
     | 
    
         | 
| 
       241 
240 
     | 
    
         | 
| 
       242 
     | 
    
         
            -
            %%{auth_method, external}.
         
     | 
| 
       243 
     | 
    
         
            -
            %%{extauth_program, "/home/aldo/ejabberd-2.1.8_scripts/authentication_script"}.
         
     | 
| 
       244 
     | 
    
         
            -
             
     | 
| 
       245 
241 
     | 
    
         
             
            %%
         
     | 
| 
       246 
242 
     | 
    
         
             
            %% Authentication using ODBC
         
     | 
| 
       247 
243 
     | 
    
         
             
            %% Remember to setup a database in the next section.
         
     | 
| 
         @@ -0,0 +1,32 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #Social Stream Presence: ejabberd config
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            #Ejabberd node server domain
         
     | 
| 
      
 4 
     | 
    
         
            +
            server_domain=domain.example.com
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            #Scripts Path
         
     | 
| 
      
 7 
     | 
    
         
            +
            scripts_path=/my_scripts_path
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            #Source path: uncomment to compile ejabberd social stream module
         
     | 
| 
      
 10 
     | 
    
         
            +
            #source_path=/.../ejabberd_source/src
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            #It is also necessary to modify the file: /etc/ejabberd/ejabberd.cfg
         
     | 
| 
      
 13 
     | 
    
         
            +
            #%%{auth_method, external}.
         
     | 
| 
      
 14 
     | 
    
         
            +
            #%%{extauth_program, "scripts_path/authentication_script"}.
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            #API REST
         
     | 
| 
      
 17 
     | 
    
         
            +
            auth_api=http://localhost/users/sign_in
         
     | 
| 
      
 18 
     | 
    
         
            +
            set_connection_api=http://localhost/xmpp/setConnection
         
     | 
| 
      
 19 
     | 
    
         
            +
            unset_connection_api=http://localhost/xmpp/unsetConnection
         
     | 
| 
      
 20 
     | 
    
         
            +
            reset_connection_api=http://localhost/xmpp/resetConnection
         
     | 
| 
      
 21 
     | 
    
         
            +
            synchronize_presence_api=http://localhost/xmpp/synchronizePresence
         
     | 
| 
      
 22 
     | 
    
         
            +
            set_presence_api=http://localhost/xmpp/setPresence
         
     | 
| 
      
 23 
     | 
    
         
            +
            unset_presence_api=http://localhost/xmpp/unsetPresence
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            #Social Stream Login
         
     | 
| 
      
 26 
     | 
    
         
            +
            ss_login=social_stream-presence
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            #Social Stream PASSWORD
         
     | 
| 
      
 29 
     | 
    
         
            +
            ss_password=password
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            #Ejabberd Server Password
         
     | 
| 
      
 32 
     | 
    
         
            +
            ejabberd_password=password
         
     | 
| 
         @@ -87,7 +87,7 @@ loop do 
     | 
|
| 
       87 
87 
     | 
    
         | 
| 
       88 
88 
     | 
    
         
             
                when "auth"
         
     | 
| 
       89 
89 
     | 
    
         
             
                  $logger.info "#{Process.pid}: Authenticating #{data[0]}@#{data[1]}"
         
     | 
| 
       90 
     | 
    
         
            -
                   
     | 
| 
      
 90 
     | 
    
         
            +
                  #$logger.info "#{Process.pid}: With password #{data[2]}"
         
     | 
| 
       91 
91 
     | 
    
         
             
                  #password = data[2]
         
     | 
| 
       92 
92 
     | 
    
         | 
| 
       93 
93 
     | 
    
         
             
                  #Authorization condition for LOGIN
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         @@ -3,14 +3,12 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
            echo "Starting Reset logs"
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            rm /var/log/ejabberd/auth.log
         
     | 
| 
       6 
     | 
    
         
            -
            rm /var/log/ejabberd/auth_error.log
         
     | 
| 
       7 
6 
     | 
    
         
             
            rm /var/log/ejabberd/ejabberd.log
         
     | 
| 
       8 
7 
     | 
    
         
             
            rm /var/log/ejabberd/erlang.log
         
     | 
| 
       9 
8 
     | 
    
         
             
            rm /var/log/ejabberd/scripts.log
         
     | 
| 
       10 
9 
     | 
    
         
             
            rm /var/log/ejabberd/erl_crash_*
         
     | 
| 
       11 
10 
     | 
    
         | 
| 
       12 
11 
     | 
    
         
             
            touch /var/log/ejabberd/auth.log
         
     | 
| 
       13 
     | 
    
         
            -
            touch /var/log/ejabberd/auth_error.log
         
     | 
| 
       14 
12 
     | 
    
         
             
            touch /var/log/ejabberd/ejabberd.log
         
     | 
| 
       15 
13 
     | 
    
         
             
            touch /var/log/ejabberd/erlang.log
         
     | 
| 
       16 
14 
     | 
    
         
             
            touch /var/log/ejabberd/scripts.log
         
     | 
| 
         @@ -19,12 +19,15 @@ puts "############### Ejabberd Configuration ###############" 
     | 
|
| 
       19 
19 
     | 
    
         
             
            puts "Config file for Social Stream Presence: /etc/ejabberd/ssconfig.cfg"
         
     | 
| 
       20 
20 
     | 
    
         
             
            puts "Scripts Path: #{getOption("scripts_path=")}"
         
     | 
| 
       21 
21 
     | 
    
         
             
            puts "mod_sspresence Path: #{getOption("source_path=")}"
         
     | 
| 
      
 22 
     | 
    
         
            +
            puts "Server domain: #{getOption("server_domain=")}"
         
     | 
| 
       22 
23 
     | 
    
         
             
            puts "API REST URLs"
         
     | 
| 
       23 
24 
     | 
    
         
             
            puts "Authentication: #{getOption("auth_api=")}"
         
     | 
| 
       24 
25 
     | 
    
         
             
            puts "onRegisterConnection: #{getOption("set_connection_api=")}"
         
     | 
| 
       25 
26 
     | 
    
         
             
            puts "onRemoveConnection: #{getOption("unset_connection_api=")}"
         
     | 
| 
       26 
27 
     | 
    
         
             
            puts "onPresence: #{getOption("set_presence_api=")}"
         
     | 
| 
       27 
28 
     | 
    
         
             
            puts "onUnsetPresence: #{getOption("unset_presence_api=")}"
         
     | 
| 
      
 29 
     | 
    
         
            +
            puts "ResetConnection: #{getOption("reset_connection_api=")}"
         
     | 
| 
      
 30 
     | 
    
         
            +
            puts "SynchronizePresence: #{getOption("synchronize_presence_api=")}"
         
     | 
| 
       28 
31 
     | 
    
         
             
            puts "Social Stream Presence logs in var/log/ejabberd/"
         
     | 
| 
       29 
32 
     | 
    
         
             
            puts "######################################################"
         
     | 
| 
       30 
33 
     | 
    
         
             
            puts ""
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         @@ -121,8 +121,8 @@ def setBidireccionalBuddys(usernameA,usernameB,nickA,nickB) 
     | 
|
| 
       121 
121 
     | 
    
         
             
            	#addBuddyToRoster(username,buddy,buddyNick,buddyGroup,subscription_type)
         
     | 
| 
       122 
122 
     | 
    
         
             
            	addBuddyToRoster(usernameA,usernameB,nickB,"SocialStream","both")
         
     | 
| 
       123 
123 
     | 
    
         
             
            	addBuddyToRoster(usernameB,usernameA,nickA,"SocialStream","both")
         
     | 
| 
       124 
     | 
    
         
            -
            	sendPresence(usernameA,"chat")
         
     | 
| 
       125 
     | 
    
         
            -
            	sendPresence(usernameB,"chat")
         
     | 
| 
      
 124 
     | 
    
         
            +
            	#sendPresence(usernameA,"chat")
         
     | 
| 
      
 125 
     | 
    
         
            +
            	#sendPresence(usernameB,"chat")
         
     | 
| 
       126 
126 
     | 
    
         
             
            	return "Done"
         
     | 
| 
       127 
127 
     | 
    
         
             
            end
         
     | 
| 
       128 
128 
     | 
    
         | 
| 
         Binary file 
     | 
| 
         @@ -13,8 +13,8 @@ start(Host, _Opts) -> 
     | 
|
| 
       13 
13 
     | 
    
         
             
                ejabberd_hooks:add(set_presence_hook, 		Host, ?MODULE, on_presence, 50),
         
     | 
| 
       14 
14 
     | 
    
         
             
                ejabberd_hooks:add(unset_presence_hook, 		Host, ?MODULE, on_unset_presence, 50),
         
     | 
| 
       15 
15 
     | 
    
         
             
                ejabberd_hooks:add(user_send_packet, 		Host, ?MODULE, on_packet_send, 50),
         
     | 
| 
       16 
     | 
    
         
            -
                % 
     | 
| 
       17 
     | 
    
         
            -
                 
     | 
| 
      
 16 
     | 
    
         
            +
                %Reset connected users when module sspresence starts.
         
     | 
| 
      
 17 
     | 
    
         
            +
                reset_connections(),
         
     | 
| 
       18 
18 
     | 
    
         
             
                ok.
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
20 
     | 
    
         
             
            stop(Host) ->
         
     | 
| 
         @@ -169,7 +169,11 @@ execute(Message) -> 
     | 
|
| 
       169 
169 
     | 
    
         
             
            	%frank-williamson@trapo adds demo@trapo to its roster with subscription from, in the group SocialStream with the name Nickname
         
     | 
| 
       170 
170 
     | 
    
         
             
            %%
         
     | 
| 
       171 
171 
     | 
    
         
             
            addItemToRoster(UserSlug,UserDomain,BuddySlug,BuddyDomain,ContactName,Group,Subscription_type) ->
         
     | 
| 
       172 
     | 
    
         
            -
            	Command = lists:concat(["ejabberdctl add_rosteritem ", UserSlug , " ", UserDomain, " ", BuddySlug, " ", BuddyDomain , " \\'", ContactName , "\\' ", Group , " ", 					Subscription_type]),
         
     | 
| 
      
 172 
     | 
    
         
            +
            	%%Command = lists:concat(["ejabberdctl add_rosteritem ", UserSlug , " ", UserDomain, " ", BuddySlug, " ", BuddyDomain , " \\'", ContactName , "\\' ", Group , " ", 					Subscription_type]),
         
     | 
| 
      
 173 
     | 
    
         
            +
            	%%Command = lists:concat(["ejabberdctl add_rosteritem ", UserSlug , " ", UserDomain, " ", BuddySlug, " ", BuddyDomain , " \'", ContactName , "\' ", Group , " ", 					Subscription_type]),
         
     | 
| 
      
 174 
     | 
    
         
            +
            	
         
     | 
| 
      
 175 
     | 
    
         
            +
            	[UserName|_R] = string:tokens(ContactName, " "),
         
     | 
| 
      
 176 
     | 
    
         
            +
            	Command = lists:concat(["ejabberdctl add_rosteritem ", UserSlug , " ", UserDomain, " ", BuddySlug, " ", BuddyDomain , " ", UserName , " ", Group , " ", 					Subscription_type]),
         
     | 
| 
       173 
177 
     | 
    
         
             
            	os:cmd(Command),
         
     | 
| 
       174 
178 
     | 
    
         
             
            	?INFO_MSG("Execute command: ~p", [Command]),
         
     | 
| 
       175 
179 
     | 
    
         
             
            ok.
         
     | 
| 
         @@ -248,10 +252,10 @@ ok. 
     | 
|
| 
       248 
252 
     | 
    
         | 
| 
       249 
253 
     | 
    
         | 
| 
       250 
254 
     | 
    
         
             
            %Reset all connections
         
     | 
| 
       251 
     | 
    
         
            -
             
     | 
| 
       252 
     | 
    
         
            -
             
     | 
| 
       253 
     | 
    
         
            -
             
     | 
| 
       254 
     | 
    
         
            -
             
     | 
| 
      
 255 
     | 
    
         
            +
            reset_connections() ->
         
     | 
| 
      
 256 
     | 
    
         
            +
            	Reset_path = string:concat(getOptionValue("scripts_path="), "/reset_connection_script "),
         
     | 
| 
      
 257 
     | 
    
         
            +
            	os:cmd(Reset_path),
         
     | 
| 
      
 258 
     | 
    
         
            +
            ok.
         
     | 
| 
       255 
259 
     | 
    
         | 
| 
       256 
260 
     | 
    
         | 
| 
       257 
261 
     | 
    
         | 
| 
         @@ -4,11 +4,15 @@ SocialStream::Presence.setup do |config| 
     | 
|
| 
       4 
4 
     | 
    
         
             
              #Configures Bosh Service Path
         
     | 
| 
       5 
5 
     | 
    
         
             
              #config.bosh_service = "http://xmpp-proxy/http-bind"
         
     | 
| 
       6 
6 
     | 
    
         
             
              #Configures Social Stream Rails App Password
         
     | 
| 
       7 
     | 
    
         
            -
              config.password = " 
     | 
| 
      
 7 
     | 
    
         
            +
              config.password = "password"
         
     | 
| 
       8 
8 
     | 
    
         
             
              #Configures XMPP Server Password
         
     | 
| 
       9 
     | 
    
         
            -
              config.xmpp_server_password = " 
     | 
| 
       10 
     | 
    
         
            -
              #Username of the  
     | 
| 
      
 9 
     | 
    
         
            +
              config.xmpp_server_password = "password"
         
     | 
| 
      
 10 
     | 
    
         
            +
              #Username of the Social Stream Admin sid
         
     | 
| 
       11 
11 
     | 
    
         
             
              config.social_stream_presence_username = "social_stream-presence"
         
     | 
| 
      
 12 
     | 
    
         
            +
              #Scripts path, only to execute local ejabberd commands
         
     | 
| 
      
 13 
     | 
    
         
            +
              config.scripts_path = "/scripts_path"
         
     | 
| 
      
 14 
     | 
    
         
            +
              #Remote or local mode
         
     | 
| 
      
 15 
     | 
    
         
            +
              config.remote_xmpp_server = false
         
     | 
| 
       12 
16 
     | 
    
         
             
              #False to disable Social Stream Presence
         
     | 
| 
       13 
17 
     | 
    
         
             
              #config.enable = false
         
     | 
| 
       14 
18 
     | 
    
         
             
            end
         
     | 
| 
         @@ -3,6 +3,8 @@ require 'social_stream-base' 
     | 
|
| 
       3 
3 
     | 
    
         
             
            module SocialStream
         
     | 
| 
       4 
4 
     | 
    
         
             
              module Presence   
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
      
 6 
     | 
    
         
            +
                autoload :XmppServerComunication, 'social_stream/presence/xmpp_server_comunication'
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
       6 
8 
     | 
    
         
             
                module Models
         
     | 
| 
       7 
9 
     | 
    
         
             
                  autoload :BuddyManager, 'social_stream/presence/models/buddy_manager'
         
     | 
| 
       8 
10 
     | 
    
         
             
                end
         
     | 
| 
         @@ -11,9 +13,12 @@ module SocialStream 
     | 
|
| 
       11 
13 
     | 
    
         
             
                mattr_accessor :bosh_service
         
     | 
| 
       12 
14 
     | 
    
         
             
                mattr_accessor :password
         
     | 
| 
       13 
15 
     | 
    
         
             
                mattr_accessor :xmpp_server_password
         
     | 
| 
      
 16 
     | 
    
         
            +
                mattr_accessor :remote_xmpp_server
         
     | 
| 
      
 17 
     | 
    
         
            +
                mattr_accessor :scripts_path
         
     | 
| 
       14 
18 
     | 
    
         
             
                mattr_accessor :social_stream_presence_username
         
     | 
| 
       15 
19 
     | 
    
         
             
                mattr_accessor :enable
         
     | 
| 
       16 
20 
     | 
    
         
             
                @@enable = true
         
     | 
| 
      
 21 
     | 
    
         
            +
                @@remote_xmpp_server = false
         
     | 
| 
       17 
22 
     | 
    
         | 
| 
       18 
23 
     | 
    
         
             
                class << self
         
     | 
| 
       19 
24 
     | 
    
         
             
                  def setup
         
     | 
| 
         @@ -50,49 +50,79 @@ namespace :presence do 
     | 
|
| 
       50 
50 
     | 
    
         
             
                task :rosters => :environment do
         
     | 
| 
       51 
51 
     | 
    
         
             
                    puts "Starting presence:synchronize:rosters"
         
     | 
| 
       52 
52 
     | 
    
         | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
                     
     | 
| 
       55 
     | 
    
         
            -
                    #PASSWORD
         
     | 
| 
       56 
     | 
    
         
            -
                    password= SocialStream::Presence.password
         
     | 
| 
       57 
     | 
    
         
            -
                    #SS Username
         
     | 
| 
       58 
     | 
    
         
            -
                    ss_name = SocialStream::Presence.social_stream_presence_username      
         
     | 
| 
       59 
     | 
    
         
            -
                    ss_sid = ss_name + "@" + domain 
         
     | 
| 
      
 53 
     | 
    
         
            +
                           
         
     | 
| 
      
 54 
     | 
    
         
            +
                    if SocialStream::Presence.remote_xmpp_server
         
     | 
| 
       60 
55 
     | 
    
         | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
      
 56 
     | 
    
         
            +
                      #XMPP DOMAIN
         
     | 
| 
      
 57 
     | 
    
         
            +
                      domain = SocialStream::Presence.domain
         
     | 
| 
      
 58 
     | 
    
         
            +
                      #PASSWORD
         
     | 
| 
      
 59 
     | 
    
         
            +
                      password= SocialStream::Presence.password
         
     | 
| 
      
 60 
     | 
    
         
            +
                      #SS Username
         
     | 
| 
      
 61 
     | 
    
         
            +
                      ss_name = SocialStream::Presence.social_stream_presence_username      
         
     | 
| 
      
 62 
     | 
    
         
            +
                      ss_sid = ss_name + "@" + domain 
         
     | 
| 
      
 63 
     | 
    
         
            +
                      
         
     | 
| 
      
 64 
     | 
    
         
            +
                      puts "Connecting to Xmpp Server"
         
     | 
| 
      
 65 
     | 
    
         
            +
                      client = Jabber::Client.new(Jabber::JID.new(ss_sid))
         
     | 
| 
      
 66 
     | 
    
         
            +
                      client.connect
         
     | 
| 
      
 67 
     | 
    
         
            +
                      puts "Authentication..."
         
     | 
| 
      
 68 
     | 
    
         
            +
                      client.auth(password)
         
     | 
| 
      
 69 
     | 
    
         
            +
                      puts "Connected to Xmpp Server"
         
     | 
| 
      
 70 
     | 
    
         
            +
                      
         
     | 
| 
      
 71 
     | 
    
         
            +
                      puts "Remove all rosters"
         
     | 
| 
      
 72 
     | 
    
         
            +
                      msg = Jabber::Message::new(ss_sid, "SynchronizeRosters")
         
     | 
| 
      
 73 
     | 
    
         
            +
                      msg.type=:chat
         
     | 
| 
      
 74 
     | 
    
         
            +
                      client.send(msg)
         
     | 
| 
      
 75 
     | 
    
         
            +
                      
         
     | 
| 
      
 76 
     | 
    
         
            +
                 
         
     | 
| 
      
 77 
     | 
    
         
            +
                      puts "Populate rosters"
         
     | 
| 
      
 78 
     | 
    
         
            +
                      users = User.all
         
     | 
| 
      
 79 
     | 
    
         
            +
                      checkedUsers = []
         
     | 
| 
       67 
80 
     | 
    
         | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
      
 81 
     | 
    
         
            +
                      users.each do |user|
         
     | 
| 
      
 82 
     | 
    
         
            +
                        checkedUsers << user.slug
         
     | 
| 
      
 83 
     | 
    
         
            +
                        contacts = user.contact_actors(:type=>:user)
         
     | 
| 
      
 84 
     | 
    
         
            +
                        contacts.each do |contact|
         
     | 
| 
      
 85 
     | 
    
         
            +
                          unless checkedUsers.include?(contact.slug)
         
     | 
| 
      
 86 
     | 
    
         
            +
                            user_sid = user.slug + "@" + domain
         
     | 
| 
      
 87 
     | 
    
         
            +
                            buddy_sid = contact.slug + "@" + domain  
         
     | 
| 
      
 88 
     | 
    
         
            +
                            msg = Jabber::Message::new(ss_sid, "SetRosterForBidirectionalTie&" + user_sid + "&" + buddy_sid + "&" + user.name + "&" + contact.name)
         
     | 
| 
      
 89 
     | 
    
         
            +
                            msg.type=:chat
         
     | 
| 
      
 90 
     | 
    
         
            +
                            client.send(msg)
         
     | 
| 
      
 91 
     | 
    
         
            +
                          end
         
     | 
| 
      
 92 
     | 
    
         
            +
                        end
         
     | 
| 
      
 93 
     | 
    
         
            +
                      end
         
     | 
| 
      
 94 
     | 
    
         
            +
              
         
     | 
| 
      
 95 
     | 
    
         
            +
                      puts "Synchronization complete"
         
     | 
| 
      
 96 
     | 
    
         
            +
                      puts "Closing connection"
         
     | 
| 
      
 97 
     | 
    
         
            +
                      client.close()  
         
     | 
| 
      
 98 
     | 
    
         
            +
                      puts "Connection closing"
         
     | 
| 
       72 
99 
     | 
    
         | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
     | 
    
         
            -
                     
     | 
| 
       75 
     | 
    
         
            -
                     
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
                       
     | 
| 
       81 
     | 
    
         
            -
                       
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
      
 100 
     | 
    
         
            +
                    else
         
     | 
| 
      
 101 
     | 
    
         
            +
                    #SocialStream::Presence.remote_xmpp_server=false
         
     | 
| 
      
 102 
     | 
    
         
            +
                    
         
     | 
| 
      
 103 
     | 
    
         
            +
                      puts "Removing all rosters"
         
     | 
| 
      
 104 
     | 
    
         
            +
                      system SocialStream::Presence.scripts_path + "/emanagement removeAllRosters"
         
     | 
| 
      
 105 
     | 
    
         
            +
                      puts "Rosters removed"
         
     | 
| 
      
 106 
     | 
    
         
            +
                 
         
     | 
| 
      
 107 
     | 
    
         
            +
                      puts "Populate rosters"
         
     | 
| 
      
 108 
     | 
    
         
            +
                      users = User.all
         
     | 
| 
      
 109 
     | 
    
         
            +
                      checkedUsers = []
         
     | 
| 
      
 110 
     | 
    
         
            +
                    
         
     | 
| 
      
 111 
     | 
    
         
            +
                      users.each do |user|
         
     | 
| 
      
 112 
     | 
    
         
            +
                        checkedUsers << user.slug
         
     | 
| 
      
 113 
     | 
    
         
            +
                        contacts = user.contact_actors(:type=>:user)
         
     | 
| 
      
 114 
     | 
    
         
            +
                        contacts.each do |contact|
         
     | 
| 
      
 115 
     | 
    
         
            +
                          unless checkedUsers.include?(contact.slug)
         
     | 
| 
      
 116 
     | 
    
         
            +
                            user_nick = user.name.split(" ")[0]
         
     | 
| 
      
 117 
     | 
    
         
            +
                            buddy_nick = contact.name.split(" ")[0]
         
     | 
| 
      
 118 
     | 
    
         
            +
                            command = SocialStream::Presence.scripts_path + "/emanagement setBidireccionalBuddys " + user.slug + " " + contact.slug + " " + user_nick + " " + buddy_nick
         
     | 
| 
      
 119 
     | 
    
         
            +
                            puts command
         
     | 
| 
      
 120 
     | 
    
         
            +
                            system command
         
     | 
| 
      
 121 
     | 
    
         
            +
                          end
         
     | 
| 
       88 
122 
     | 
    
         
             
                        end
         
     | 
| 
       89 
123 
     | 
    
         
             
                      end
         
     | 
| 
       90 
     | 
    
         
            -
                     
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
                    puts "Synchronization complete"
         
     | 
| 
       93 
     | 
    
         
            -
                    puts "Closing connection"
         
     | 
| 
       94 
     | 
    
         
            -
                    client.close()  
         
     | 
| 
       95 
     | 
    
         
            -
                    puts "Connection closing"
         
     | 
| 
      
 124 
     | 
    
         
            +
                    
         
     | 
| 
      
 125 
     | 
    
         
            +
                  end
         
     | 
| 
       96 
126 
     | 
    
         | 
| 
       97 
127 
     | 
    
         
             
                end
         
     | 
| 
       98 
128 
     | 
    
         
             
              end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,12 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: social_stream-presence
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              prerelease:  
     | 
| 
       5 
     | 
    
         
            -
               
     | 
| 
       6 
     | 
    
         
            -
              - 0
         
     | 
| 
       7 
     | 
    
         
            -
              - 0
         
     | 
| 
       8 
     | 
    
         
            -
              - 9
         
     | 
| 
       9 
     | 
    
         
            -
              version: 0.0.9
         
     | 
| 
      
 4 
     | 
    
         
            +
              prerelease: 
         
     | 
| 
      
 5 
     | 
    
         
            +
              version: 0.0.10
         
     | 
| 
       10 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       11 
7 
     | 
    
         
             
            authors: 
         
     | 
| 
       12 
8 
     | 
    
         
             
            - Aldo Gordillo
         
     | 
| 
         @@ -14,7 +10,7 @@ autorequire: 
     | 
|
| 
       14 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       15 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       16 
12 
     | 
    
         | 
| 
       17 
     | 
    
         
            -
            date: 2011-10- 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2011-10-25 00:00:00 +02:00
         
     | 
| 
       18 
14 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       19 
15 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       20 
16 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -25,10 +21,6 @@ dependencies: 
     | 
|
| 
       25 
21 
     | 
    
         
             
                requirements: 
         
     | 
| 
       26 
22 
     | 
    
         
             
                - - ~>
         
     | 
| 
       27 
23 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       28 
     | 
    
         
            -
                    segments: 
         
     | 
| 
       29 
     | 
    
         
            -
                    - 0
         
     | 
| 
       30 
     | 
    
         
            -
                    - 9
         
     | 
| 
       31 
     | 
    
         
            -
                    - 18
         
     | 
| 
       32 
24 
     | 
    
         
             
                    version: 0.9.18
         
     | 
| 
       33 
25 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       34 
26 
     | 
    
         
             
              version_requirements: *id001
         
     | 
| 
         @@ -40,8 +32,6 @@ dependencies: 
     | 
|
| 
       40 
32 
     | 
    
         
             
                requirements: 
         
     | 
| 
       41 
33 
     | 
    
         
             
                - - ">="
         
     | 
| 
       42 
34 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       43 
     | 
    
         
            -
                    segments: 
         
     | 
| 
       44 
     | 
    
         
            -
                    - 0
         
     | 
| 
       45 
35 
     | 
    
         
             
                    version: "0"
         
     | 
| 
       46 
36 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       47 
37 
     | 
    
         
             
              version_requirements: *id002
         
     | 
| 
         @@ -53,8 +43,6 @@ dependencies: 
     | 
|
| 
       53 
43 
     | 
    
         
             
                requirements: 
         
     | 
| 
       54 
44 
     | 
    
         
             
                - - ">="
         
     | 
| 
       55 
45 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       56 
     | 
    
         
            -
                    segments: 
         
     | 
| 
       57 
     | 
    
         
            -
                    - 0
         
     | 
| 
       58 
46 
     | 
    
         
             
                    version: "0"
         
     | 
| 
       59 
47 
     | 
    
         
             
              type: :development
         
     | 
| 
       60 
48 
     | 
    
         
             
              version_requirements: *id003
         
     | 
| 
         @@ -101,23 +89,20 @@ files: 
     | 
|
| 
       101 
89 
     | 
    
         
             
            - config/routes.rb
         
     | 
| 
       102 
90 
     | 
    
         
             
            - db/migrate/20110711111408_add_connected_column_to_user.rb
         
     | 
| 
       103 
91 
     | 
    
         
             
            - db/migrate/20110928135031_add_status_column_to_user.rb
         
     | 
| 
       104 
     | 
    
         
            -
            - ejabberd/conf/ 
     | 
| 
       105 
     | 
    
         
            -
            - ejabberd/conf/ 
     | 
| 
       106 
     | 
    
         
            -
            - ejabberd/conf/inetrc
         
     | 
| 
       107 
     | 
    
         
            -
            - ejabberd/conf/ssconfig.cfg
         
     | 
| 
      
 92 
     | 
    
         
            +
            - ejabberd/conf/ejabberd_example.cfg
         
     | 
| 
      
 93 
     | 
    
         
            +
            - ejabberd/conf/ssconfig_example.cfg
         
     | 
| 
       108 
94 
     | 
    
         
             
            - ejabberd/ejabberd_scripts/authentication_script
         
     | 
| 
       109 
     | 
    
         
            -
            - ejabberd/ejabberd_scripts/ 
     | 
| 
       110 
     | 
    
         
            -
            - ejabberd/ejabberd_scripts/ 
     | 
| 
      
 95 
     | 
    
         
            +
            - ejabberd/ejabberd_scripts/development_scripts/compile_module
         
     | 
| 
      
 96 
     | 
    
         
            +
            - ejabberd/ejabberd_scripts/development_scripts/generate_random_password
         
     | 
| 
      
 97 
     | 
    
         
            +
            - ejabberd/ejabberd_scripts/development_scripts/kill_authentication_script.sh
         
     | 
| 
      
 98 
     | 
    
         
            +
            - ejabberd/ejabberd_scripts/development_scripts/reset_logs.sh
         
     | 
| 
      
 99 
     | 
    
         
            +
            - ejabberd/ejabberd_scripts/development_scripts/show_config.sh
         
     | 
| 
      
 100 
     | 
    
         
            +
            - ejabberd/ejabberd_scripts/development_scripts/start_ejabberd.sh
         
     | 
| 
      
 101 
     | 
    
         
            +
            - ejabberd/ejabberd_scripts/development_scripts/stop_ejabberd.sh
         
     | 
| 
       111 
102 
     | 
    
         
             
            - ejabberd/ejabberd_scripts/emanagement
         
     | 
| 
       112 
     | 
    
         
            -
            - ejabberd/ejabberd_scripts/generate_random_password
         
     | 
| 
       113 
     | 
    
         
            -
            - ejabberd/ejabberd_scripts/kill_authentication_script.sh
         
     | 
| 
       114 
103 
     | 
    
         
             
            - ejabberd/ejabberd_scripts/reset_connection_script
         
     | 
| 
       115 
     | 
    
         
            -
            - ejabberd/ejabberd_scripts/reset_logs.sh
         
     | 
| 
       116 
104 
     | 
    
         
             
            - ejabberd/ejabberd_scripts/set_connection_script
         
     | 
| 
       117 
105 
     | 
    
         
             
            - ejabberd/ejabberd_scripts/set_presence_script
         
     | 
| 
       118 
     | 
    
         
            -
            - ejabberd/ejabberd_scripts/show_config.sh
         
     | 
| 
       119 
     | 
    
         
            -
            - ejabberd/ejabberd_scripts/start_ejabberd.sh
         
     | 
| 
       120 
     | 
    
         
            -
            - ejabberd/ejabberd_scripts/stop_ejabberd.sh
         
     | 
| 
       121 
106 
     | 
    
         
             
            - ejabberd/ejabberd_scripts/synchronize_presence_script
         
     | 
| 
       122 
107 
     | 
    
         
             
            - ejabberd/ejabberd_scripts/unset_connection_script
         
     | 
| 
       123 
108 
     | 
    
         
             
            - ejabberd/mod_admin_extra/mod_admin_extra.beam
         
     | 
| 
         @@ -198,21 +183,17 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       198 
183 
     | 
    
         
             
              requirements: 
         
     | 
| 
       199 
184 
     | 
    
         
             
              - - ">="
         
     | 
| 
       200 
185 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
       201 
     | 
    
         
            -
                  segments: 
         
     | 
| 
       202 
     | 
    
         
            -
                  - 0
         
     | 
| 
       203 
186 
     | 
    
         
             
                  version: "0"
         
     | 
| 
       204 
187 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement 
         
     | 
| 
       205 
188 
     | 
    
         
             
              none: false
         
     | 
| 
       206 
189 
     | 
    
         
             
              requirements: 
         
     | 
| 
       207 
190 
     | 
    
         
             
              - - ">="
         
     | 
| 
       208 
191 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
       209 
     | 
    
         
            -
                  segments: 
         
     | 
| 
       210 
     | 
    
         
            -
                  - 0
         
     | 
| 
       211 
192 
     | 
    
         
             
                  version: "0"
         
     | 
| 
       212 
193 
     | 
    
         
             
            requirements: []
         
     | 
| 
       213 
194 
     | 
    
         | 
| 
       214 
195 
     | 
    
         
             
            rubyforge_project: social_stream-presence
         
     | 
| 
       215 
     | 
    
         
            -
            rubygems_version: 1. 
     | 
| 
      
 196 
     | 
    
         
            +
            rubygems_version: 1.6.1
         
     | 
| 
       216 
197 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       217 
198 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       218 
199 
     | 
    
         
             
            summary: Presence capabilities for Social Stream, the core for building social network websites
         
     | 
| 
         @@ -1,154 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #
         
     | 
| 
       2 
     | 
    
         
            -
            # In this file you can configure options that are passed by ejabberdctl
         
     | 
| 
       3 
     | 
    
         
            -
            # to the erlang runtime system when starting ejabberd
         
     | 
| 
       4 
     | 
    
         
            -
            #
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
            #' POLL: Kernel polling ([true|false])
         
     | 
| 
       7 
     | 
    
         
            -
            #
         
     | 
| 
       8 
     | 
    
         
            -
            # The kernel polling option requires support in the kernel.
         
     | 
| 
       9 
     | 
    
         
            -
            # Additionally, you need to enable this feature while compiling Erlang.
         
     | 
| 
       10 
     | 
    
         
            -
            #
         
     | 
| 
       11 
     | 
    
         
            -
            # Default: true
         
     | 
| 
       12 
     | 
    
         
            -
            #
         
     | 
| 
       13 
     | 
    
         
            -
            #POLL=true
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
            #.
         
     | 
| 
       16 
     | 
    
         
            -
            #' SMP: SMP support ([enable|auto|disable])
         
     | 
| 
       17 
     | 
    
         
            -
            #
         
     | 
| 
       18 
     | 
    
         
            -
            # Explanation in Erlang/OTP documentation:
         
     | 
| 
       19 
     | 
    
         
            -
            # enable: starts the Erlang runtime system with SMP support enabled.
         
     | 
| 
       20 
     | 
    
         
            -
            #   This may fail if no runtime system with SMP support is available.
         
     | 
| 
       21 
     | 
    
         
            -
            # auto: starts the Erlang runtime system with SMP support enabled if it
         
     | 
| 
       22 
     | 
    
         
            -
            #   is available and more than one logical processor are detected.
         
     | 
| 
       23 
     | 
    
         
            -
            # disable: starts a runtime system without SMP support.
         
     | 
| 
       24 
     | 
    
         
            -
            #
         
     | 
| 
       25 
     | 
    
         
            -
            # Default: auto
         
     | 
| 
       26 
     | 
    
         
            -
            #
         
     | 
| 
       27 
     | 
    
         
            -
            #SMP=auto
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
            #.
         
     | 
| 
       30 
     | 
    
         
            -
            #' ERL_MAX_PORTS: Maximum number of simultaneously open Erlang ports
         
     | 
| 
       31 
     | 
    
         
            -
            #
         
     | 
| 
       32 
     | 
    
         
            -
            # ejabberd consumes two or three ports for every connection, either
         
     | 
| 
       33 
     | 
    
         
            -
            # from a client or from another Jabber server. So take this into
         
     | 
| 
       34 
     | 
    
         
            -
            # account when setting this limit.
         
     | 
| 
       35 
     | 
    
         
            -
            #
         
     | 
| 
       36 
     | 
    
         
            -
            # Default: 32000
         
     | 
| 
       37 
     | 
    
         
            -
            # Maximum: 268435456
         
     | 
| 
       38 
     | 
    
         
            -
            #
         
     | 
| 
       39 
     | 
    
         
            -
            #ERL_MAX_PORTS=32000
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
            #.
         
     | 
| 
       42 
     | 
    
         
            -
            #' FIREWALL_WINDOW: Range of allowed ports to pass through a firewall
         
     | 
| 
       43 
     | 
    
         
            -
            #
         
     | 
| 
       44 
     | 
    
         
            -
            # If Ejabberd is configured to run in cluster, and a firewall is blocking ports,
         
     | 
| 
       45 
     | 
    
         
            -
            # it's possible to make Erlang use a defined range of port (instead of dynamic
         
     | 
| 
       46 
     | 
    
         
            -
            # ports) for node communication.
         
     | 
| 
       47 
     | 
    
         
            -
            #
         
     | 
| 
       48 
     | 
    
         
            -
            # Default: not defined
         
     | 
| 
       49 
     | 
    
         
            -
            # Example: 4200-4210
         
     | 
| 
       50 
     | 
    
         
            -
            #
         
     | 
| 
       51 
     | 
    
         
            -
            #FIREWALL_WINDOW=
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
            #.
         
     | 
| 
       54 
     | 
    
         
            -
            #' INET_DIST_INTERFACE: IP address where this Erlang node listens other nodes
         
     | 
| 
       55 
     | 
    
         
            -
            #
         
     | 
| 
       56 
     | 
    
         
            -
            # This communication is used by ejabberdctl command line tool,
         
     | 
| 
       57 
     | 
    
         
            -
            # and in a cluster of several ejabberd nodes.
         
     | 
| 
       58 
     | 
    
         
            -
            # Notice that the IP address must be specified in the Erlang syntax.
         
     | 
| 
       59 
     | 
    
         
            -
            #
         
     | 
| 
       60 
     | 
    
         
            -
            # Default: {127,0,0,1}
         
     | 
| 
       61 
     | 
    
         
            -
            #
         
     | 
| 
       62 
     | 
    
         
            -
            INET_DIST_INTERFACE={127,0,0,1}
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
            #.
         
     | 
| 
       65 
     | 
    
         
            -
            #' ERL_EPMD_ADDRESS: IP addresses where epmd listens for connections
         
     | 
| 
       66 
     | 
    
         
            -
            #
         
     | 
| 
       67 
     | 
    
         
            -
            # IMPORTANT: This option works only in Erlang/OTP R14B03 and newer.
         
     | 
| 
       68 
     | 
    
         
            -
            #
         
     | 
| 
       69 
     | 
    
         
            -
            # This environment variable may be set to a comma-separated
         
     | 
| 
       70 
     | 
    
         
            -
            # list of IP addresses, in which case the epmd daemon
         
     | 
| 
       71 
     | 
    
         
            -
            # will listen only on the specified address(es) and on the
         
     | 
| 
       72 
     | 
    
         
            -
            # loopback address (which is implicitly added to the list if it
         
     | 
| 
       73 
     | 
    
         
            -
            # has not been specified). The default behaviour is to listen on
         
     | 
| 
       74 
     | 
    
         
            -
            # all available IP addresses.
         
     | 
| 
       75 
     | 
    
         
            -
            #
         
     | 
| 
       76 
     | 
    
         
            -
            # Default: 0.0.0.0
         
     | 
| 
       77 
     | 
    
         
            -
            #
         
     | 
| 
       78 
     | 
    
         
            -
            #ERL_EPMD_ADDRESS=127.0.0.1
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
            #.
         
     | 
| 
       81 
     | 
    
         
            -
            #' ERL_PROCESSES: Maximum number of Erlang processes
         
     | 
| 
       82 
     | 
    
         
            -
            #
         
     | 
| 
       83 
     | 
    
         
            -
            # Erlang consumes a lot of lightweight processes. If there is a lot of activity
         
     | 
| 
       84 
     | 
    
         
            -
            # on ejabberd so that the maximum number of processes is reached, people will
         
     | 
| 
       85 
     | 
    
         
            -
            # experience greater latency times. As these processes are implemented in
         
     | 
| 
       86 
     | 
    
         
            -
            # Erlang, and therefore not related to the operating system processes, you do
         
     | 
| 
       87 
     | 
    
         
            -
            # not have to worry about allowing a huge number of them.
         
     | 
| 
       88 
     | 
    
         
            -
            #
         
     | 
| 
       89 
     | 
    
         
            -
            # Default: 250000
         
     | 
| 
       90 
     | 
    
         
            -
            # Maximum: 268435456
         
     | 
| 
       91 
     | 
    
         
            -
            #
         
     | 
| 
       92 
     | 
    
         
            -
            #ERL_PROCESSES=250000
         
     | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
       94 
     | 
    
         
            -
            #.
         
     | 
| 
       95 
     | 
    
         
            -
            #' ERL_MAX_ETS_TABLES: Maximum number of ETS and Mnesia tables
         
     | 
| 
       96 
     | 
    
         
            -
            #
         
     | 
| 
       97 
     | 
    
         
            -
            # The number of concurrent ETS and Mnesia tables is limited. When the limit is
         
     | 
| 
       98 
     | 
    
         
            -
            # reached, errors will appear in the logs:
         
     | 
| 
       99 
     | 
    
         
            -
            #   ** Too many db tables **
         
     | 
| 
       100 
     | 
    
         
            -
            # You can safely increase this limit when starting ejabberd. It impacts memory
         
     | 
| 
       101 
     | 
    
         
            -
            # consumption but the difference will be quite small.
         
     | 
| 
       102 
     | 
    
         
            -
            #
         
     | 
| 
       103 
     | 
    
         
            -
            # Default: 1400
         
     | 
| 
       104 
     | 
    
         
            -
            #
         
     | 
| 
       105 
     | 
    
         
            -
            #ERL_MAX_ETS_TABLES=1400
         
     | 
| 
       106 
     | 
    
         
            -
             
     | 
| 
       107 
     | 
    
         
            -
            #.
         
     | 
| 
       108 
     | 
    
         
            -
            #' ERL_OPTIONS: Additional Erlang options
         
     | 
| 
       109 
     | 
    
         
            -
            #
         
     | 
| 
       110 
     | 
    
         
            -
            # The next variable allows to specify additional options passed to erlang while
         
     | 
| 
       111 
     | 
    
         
            -
            # starting ejabberd. Some useful options are -noshell, -detached, -heart. When
         
     | 
| 
       112 
     | 
    
         
            -
            # ejabberd is started from an init.d script options -noshell and -detached are
         
     | 
| 
       113 
     | 
    
         
            -
            # added implicitly. See erl(1) for more info.
         
     | 
| 
       114 
     | 
    
         
            -
            #
         
     | 
| 
       115 
     | 
    
         
            -
            # It might be useful to add "-pa /usr/local/lib/ejabberd/ebin" if you
         
     | 
| 
       116 
     | 
    
         
            -
            # want to add local modules in this path.
         
     | 
| 
       117 
     | 
    
         
            -
            #
         
     | 
| 
       118 
     | 
    
         
            -
            # Default: ""
         
     | 
| 
       119 
     | 
    
         
            -
            #
         
     | 
| 
       120 
     | 
    
         
            -
            #ERL_OPTIONS=""
         
     | 
| 
       121 
     | 
    
         
            -
             
     | 
| 
       122 
     | 
    
         
            -
            #.
         
     | 
| 
       123 
     | 
    
         
            -
            #' ERLANG_NODE: Erlang node name
         
     | 
| 
       124 
     | 
    
         
            -
            #
         
     | 
| 
       125 
     | 
    
         
            -
            # The next variable allows to explicitly specify erlang node for ejabberd
         
     | 
| 
       126 
     | 
    
         
            -
            # It can be given in different formats:
         
     | 
| 
       127 
     | 
    
         
            -
            # ERLANG_NODE=ejabberd
         
     | 
| 
       128 
     | 
    
         
            -
            #   Lets erlang add hostname to the node (ejabberd uses short name in this case)
         
     | 
| 
       129 
     | 
    
         
            -
            # ERLANG_NODE=ejabberd@hostname
         
     | 
| 
       130 
     | 
    
         
            -
            #   Erlang uses node name as is (so make sure that hostname is a real
         
     | 
| 
       131 
     | 
    
         
            -
            #   machine hostname or you'll not be able to control ejabberd)
         
     | 
| 
       132 
     | 
    
         
            -
            # ERLANG_NODE=ejabberd@hostname.domainname
         
     | 
| 
       133 
     | 
    
         
            -
            #   The same as previous, but erlang will use long hostname
         
     | 
| 
       134 
     | 
    
         
            -
            #   (see erl (1) manual for details)
         
     | 
| 
       135 
     | 
    
         
            -
            #
         
     | 
| 
       136 
     | 
    
         
            -
            # Default: ejabberd
         
     | 
| 
       137 
     | 
    
         
            -
            #
         
     | 
| 
       138 
     | 
    
         
            -
            #ERLANG_NODE=ejabberd
         
     | 
| 
       139 
     | 
    
         
            -
             
     | 
| 
       140 
     | 
    
         
            -
            #.
         
     | 
| 
       141 
     | 
    
         
            -
            #' EJABBERD_PID_PATH: ejabberd PID file
         
     | 
| 
       142 
     | 
    
         
            -
            #
         
     | 
| 
       143 
     | 
    
         
            -
            # Indicate the full path to the ejabberd Process identifier (PID) file.
         
     | 
| 
       144 
     | 
    
         
            -
            # If this variable is defined, ejabberd writes the PID file when starts,
         
     | 
| 
       145 
     | 
    
         
            -
            # and deletes it when stops.
         
     | 
| 
       146 
     | 
    
         
            -
            # Remember to create the directory and grant write permission to ejabberd.
         
     | 
| 
       147 
     | 
    
         
            -
            #
         
     | 
| 
       148 
     | 
    
         
            -
            # Default: don't write PID file
         
     | 
| 
       149 
     | 
    
         
            -
            #
         
     | 
| 
       150 
     | 
    
         
            -
            #EJABBERD_PID_PATH=/var/run/ejabberd/ejabberd.pid
         
     | 
| 
       151 
     | 
    
         
            -
             
     | 
| 
       152 
     | 
    
         
            -
            #.
         
     | 
| 
       153 
     | 
    
         
            -
            #'
         
     | 
| 
       154 
     | 
    
         
            -
            # vim: foldmarker=#',#. foldmethod=marker:
         
     | 
    
        data/ejabberd/conf/inetrc
    DELETED
    
    
    
        data/ejabberd/conf/ssconfig.cfg
    DELETED
    
    | 
         @@ -1,32 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #Social Stream Presence: ejabberd config
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            #Ejabberd node server domain
         
     | 
| 
       4 
     | 
    
         
            -
            server_domain=localhost
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
            #Scripts Path
         
     | 
| 
       7 
     | 
    
         
            -
            scripts_path=/home/aldo/ejabberd-2.1.8_scripts
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
            #Source path: uncomment to compile ejabberd social stream module
         
     | 
| 
       10 
     | 
    
         
            -
            source_path=/home/aldo/ejabberd-2.1.8_source/src
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
            #It is also necessary to modify the file: /etc/ejabberd/ejabberd.cfg
         
     | 
| 
       13 
     | 
    
         
            -
            #%%{auth_method, external}.
         
     | 
| 
       14 
     | 
    
         
            -
            #%%{extauth_program, "scripts_path/authentication_script"}.
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
            #API REST
         
     | 
| 
       17 
     | 
    
         
            -
            auth_api=http://0.0.0.0:3000/users/sign_in
         
     | 
| 
       18 
     | 
    
         
            -
            set_connection_api=http://0.0.0.0:3000/xmpp/setConnection
         
     | 
| 
       19 
     | 
    
         
            -
            unset_connection_api=http://0.0.0.0:3000/xmpp/unsetConnection
         
     | 
| 
       20 
     | 
    
         
            -
            reset_connection_api=http://0.0.0.0:3000/xmpp/resetConnection
         
     | 
| 
       21 
     | 
    
         
            -
            synchronize_presence_api=http://0.0.0.0:3000/xmpp/synchronizePresence
         
     | 
| 
       22 
     | 
    
         
            -
            set_presence_api=http://0.0.0.0:3000/xmpp/setPresence
         
     | 
| 
       23 
     | 
    
         
            -
            unset_presence_api=http://0.0.0.0:3000/xmpp/unsetPresence
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
            #Social Stream Login
         
     | 
| 
       26 
     | 
    
         
            -
            ss_login=social_stream-presence
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
            #Social Stream PASSWORD
         
     | 
| 
       29 
     | 
    
         
            -
            ss_password=DnVCB8G|R$VGmZ@2?5=CYS8z)NrL@LuQ<CUh^9B(DF4gC&sQpfbCMbaNKEdNrGYkT4L5zxM0wNWs5q3?ww(b&0d5fK87z^BmgJMMF2SKXT9pEk^UEcch!GX!Avf5GT9)j@FpHe)4RH)BK7J98u!sUmJHUN(Je6aBmn!FtZ4Ab5h8$|nsvUt3Jkq?21HOH$r0sDyJZZvGOCgFS2EKw@0wXsJRHYVRPBe&Eb!1X55e55bQ^h2AW&^R70TK0m)Fu8
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
            #Ejabberd Server Password
         
     | 
| 
       32 
     | 
    
         
            -
            ejabberd_password=G&s6GBnO)anw2Ene%K12Cb=0quj@uDmA
         
     | 
| 
         @@ -1,114 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            #!/usr/bin/env ruby
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            require 'logger'
         
     | 
| 
       4 
     | 
    
         
            -
            require 'rest_client'
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
            $stdout.sync = true
         
     | 
| 
       7 
     | 
    
         
            -
            $stdin.sync = true
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
            path = "/var/log/ejabberd/auth.log"
         
     | 
| 
       10 
     | 
    
         
            -
            file = File.open(path, File::WRONLY | File::APPEND | File::CREAT)
         
     | 
| 
       11 
     | 
    
         
            -
            file.sync = true
         
     | 
| 
       12 
     | 
    
         
            -
            $logger = Logger.new(file)
         
     | 
| 
       13 
     | 
    
         
            -
            $logger.level = Logger::DEBUG
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
            $logger.info "#{Process.pid}: Starting ejabberd authentication service"
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
            def getOption(option)
         
     | 
| 
       19 
     | 
    
         
            -
              File.open('/etc/ejabberd/ssconfig.cfg', 'r') do |f1|  
         
     | 
| 
       20 
     | 
    
         
            -
                while line = f1.gets  
         
     | 
| 
       21 
     | 
    
         
            -
                  line = line.gsub(/\n/,'')
         
     | 
| 
       22 
     | 
    
         
            -
                  if line.match(/^#/)
         
     | 
| 
       23 
     | 
    
         
            -
                    #Comments
         
     | 
| 
       24 
     | 
    
         
            -
                  elsif line.match(/^#{option}/)
         
     | 
| 
       25 
     | 
    
         
            -
                    return line.gsub(/#{option}/,'')
         
     | 
| 
       26 
     | 
    
         
            -
                  end  
         
     | 
| 
       27 
     | 
    
         
            -
                end  
         
     | 
| 
       28 
     | 
    
         
            -
              end
         
     | 
| 
       29 
     | 
    
         
            -
              return "Undefined"
         
     | 
| 
       30 
     | 
    
         
            -
            end
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
            $accessUrl = getOption("auth_api=")
         
     | 
| 
       33 
     | 
    
         
            -
            $sslogin = getOption("ss_login=")
         
     | 
| 
       34 
     | 
    
         
            -
            $sspass = getOption("ss_password=")
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
            def auth(username, password)
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
              #[TEST] Admin password
         
     | 
| 
       40 
     | 
    
         
            -
              if username == "admin" and password == "pass"
         
     | 
| 
       41 
     | 
    
         
            -
                return true
         
     | 
| 
       42 
     | 
    
         
            -
              end
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
              #Social Stream password
         
     | 
| 
       45 
     | 
    
         
            -
              if username == $sslogin and password == $sspass
         
     | 
| 
       46 
     | 
    
         
            -
                return true
         
     | 
| 
       47 
     | 
    
         
            -
              end
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
              begin
         
     | 
| 
       50 
     | 
    
         
            -
                response = RestClient.post $accessUrl, :user => { :email => username , :password => password }
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
                if response.code == 201
         
     | 
| 
       53 
     | 
    
         
            -
                  return true
         
     | 
| 
       54 
     | 
    
         
            -
                else
         
     | 
| 
       55 
     | 
    
         
            -
                  return false
         
     | 
| 
       56 
     | 
    
         
            -
                end
         
     | 
| 
       57 
     | 
    
         
            -
              
         
     | 
| 
       58 
     | 
    
         
            -
              rescue => e
         
     | 
| 
       59 
     | 
    
         
            -
                
         
     | 
| 
       60 
     | 
    
         
            -
                unless e.class.name == "RestClient::Unauthorized" and e.message == "401 Unauthorized"
         
     | 
| 
       61 
     | 
    
         
            -
            	$logger.error "#{Process.pid}: Exception in auth(username, password)"
         
     | 
| 
       62 
     | 
    
         
            -
                	$logger.error "#{Process.pid}: #{e.class.name}: #{e.message}"
         
     | 
| 
       63 
     | 
    
         
            -
                end
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
                return false
         
     | 
| 
       66 
     | 
    
         
            -
              end
         
     | 
| 
       67 
     | 
    
         
            -
              
         
     | 
| 
       68 
     | 
    
         
            -
            end
         
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
            loop do
         
     | 
| 
       72 
     | 
    
         
            -
              begin
         
     | 
| 
       73 
     | 
    
         
            -
                $stdin.eof? # wait for input
         
     | 
| 
       74 
     | 
    
         
            -
                start = Time.now
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
                msg = $stdin.read(2)
         
     | 
| 
       77 
     | 
    
         
            -
                length = msg.unpack('n').first
         
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
                msg = $stdin.read(length)
         
     | 
| 
       80 
     | 
    
         
            -
                cmd, *data = msg.split(":")
         
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
                $logger.info "#{Process.pid}: Incoming Request: '#{cmd}'"
         
     | 
| 
       83 
     | 
    
         
            -
                success = case cmd
         
     | 
| 
       84 
     | 
    
         
            -
                
         
     | 
| 
       85 
     | 
    
         
            -
                when "auth"
         
     | 
| 
       86 
     | 
    
         
            -
                  $logger.info "#{Process.pid}: Authenticating #{data[0]}@#{data[1]}"
         
     | 
| 
       87 
     | 
    
         
            -
                  $logger.info "#{Process.pid}: With password #{data[2]}"
         
     | 
| 
       88 
     | 
    
         
            -
                  #password = data[2]
         
     | 
| 
       89 
     | 
    
         
            -
                  
         
     | 
| 
       90 
     | 
    
         
            -
                  #Authorization condition for LOGIN
         
     | 
| 
       91 
     | 
    
         
            -
                  auth(data[0], data[2])
         
     | 
| 
       92 
     | 
    
         
            -
                  
         
     | 
| 
       93 
     | 
    
         
            -
                  
         
     | 
| 
       94 
     | 
    
         
            -
                when "isuser"
         
     | 
| 
       95 
     | 
    
         
            -
                 
         
     | 
| 
       96 
     | 
    
         
            -
                  $logger.info "#{Process.pid}: Isuser #{data[0]}@#{data[1]}"
         
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
     | 
    
         
            -
                  #Authorization condition for ISUSER (Add buddys)
         
     | 
| 
       99 
     | 
    
         
            -
                  true
         
     | 
| 
       100 
     | 
    
         
            -
                  
         
     | 
| 
       101 
     | 
    
         
            -
                else
         
     | 
| 
       102 
     | 
    
         
            -
                  false
         
     | 
| 
       103 
     | 
    
         
            -
                end
         
     | 
| 
       104 
     | 
    
         
            -
             
     | 
| 
       105 
     | 
    
         
            -
                bool = success ? 1 : 0
         
     | 
| 
       106 
     | 
    
         
            -
                $stdout.write [2, bool].pack("nn")
         
     | 
| 
       107 
     | 
    
         
            -
                $logger.info "#{Process.pid}: Response: #{success ? "success" : "failure"}"
         
     | 
| 
       108 
     | 
    
         
            -
              rescue => e
         
     | 
| 
       109 
     | 
    
         
            -
                $logger.error "#{Process.pid}: #{e.class.name}: #{e.message}"
         
     | 
| 
       110 
     | 
    
         
            -
                $logger.error "#{Process.pid}: " + e.backtrace.join("\n\t")
         
     | 
| 
       111 
     | 
    
         
            -
                $logger.error "#{Process.pid}: Finish process"
         
     | 
| 
       112 
     | 
    
         
            -
                break
         
     | 
| 
       113 
     | 
    
         
            -
              end
         
     | 
| 
       114 
     | 
    
         
            -
            end
         
     |