Am 21.07.2016 um 03:20 schrieb David Cunningham:
Well, can't say what you did different, but I just tried a freshly
installed Ubuntu 14.04 and ejabberd 2.1.11 started up without problems.
Then I gave ejabberd 15.07 from jabber.at a try, that also worked right
away.
Regards,
The HTTP response code suggests that the client is not capable of
accepting the server’s response. Is your client perhaps sending an
Accept header such as |Accept: text/plain| where ejabberd is expecting
to send a response of content-type |application/xml|?
JT
With a similar configuration than you, using ejabberd 16.06 and recent
mod_rest,this call works correctly for me:
$ wget http://localhost:5280/rest/ --server-response --post-data
'<presence to="user1< at >localhost" from="other< at >foo.com"><status>On the
phone</status></presence>'
--2016-07-22 13:51:22-- http://localhost:5280/rest/
S'està resolent localhost (localhost)… 127.0.0.1
S'està connectant a localhost (localhost)|127.0.0.1|:5280…connectat.
HTTP: s'ha enviat la petició, s'està esperant una resposta…
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 2
In ejabberd configuration file set loglevel te debug, then make the
request, and see if the ejabberd log files show any lines that mention
"REST" or similar.
---
Badlop
ProcessOne
On 22 July 2016 at 07:52, David Cunningham <dcunningham< at >voisonics.com> wrote:
_______________________________________________
ejabberd mailing list
ejabberd< at >jabber.ru
http://lists.jabber.ru/mailman/listinfo/ejabberd
Hi,
I'm trying to push presence updates to XMPP clients, and have been working
with mod_rest. When an HTTP request is sent it gets an error "REST request
is rejected by service". I'm sure the client IP is allowed in the mod_rest
configuration so what could be wrong? Thanks in advance.
BTW, if another method instead of mod_rest is recommended I'd be interested
to hear it.
Using ngrep:
T XX.XX.246.78:42797 -> XX.XX.246.78:5285 [AP]
POST /rest HTTP/1.1..TE: deflate,gzip;q=0.3..Connection: TE, close..Host:
foo.com:5285..User-Agent: foo 1.0..Content-Length: 132..Content-Type:
application/x-www-form-urlencoded....<presence to="david< at >foo.com" from="
other< at >foo.com"><status>On the phone</status></presence>
##
T XX.XX.246.78:5285 -> XX.XX.246.78:42797 [AP]
HTTP/1.1 406 Not Acceptable..Content-Type: text/html;
charset=utf-8..Content-Length: 43....Error: REST request is rejected by
service.
From ejabberd.yml:
port: 5285
module: ejabberd_http
request_handlers:
"/rest": mod_rest
and:
modules:
mod_rest:
allowed_ips:
- "XX.XX.246.78"
Hi Holger,
Yes, the external script was running before and was still running
afterwards. It has logging and did not record any request to perform user
authentication. This is only for the /admin/ web page. XMPP clients do
authenticate successfully.
On 22 July 2016 at 01:20, Holger Weiß <holger< at >zedat.fu-berlin.de> wrote:
* David Cunningham <dcunningham< at >voisonics.com> [2016-07-21 22:10]:
Is the 'extauth' script still running after that error? Are you sure it
was running immediately before that error? Do you see any [error] or
[critical] messages in the log before this happens?
Does the script work for other things (such as authenticating with an
XMPP client) or did you not test that?
Holger
Hi Holger,
Thanks for the reply. I'm running ejabberd 16.06 and here is the crash
report:
2016-07-21 05:09:05 =CRASH REPORT====
crasher:
initial call: ejabberd_http:init/2
pid: <0.1044.0>
registered_name: []
exception error: bad argument:
[{extauth,call_port,2,[{file,"src/extauth.erl"},{line,101}]},{ejabberd_auth_external,check_password_extauth,4,[{file,"src/ejabberd_auth_external.erl"},{line,189}]},{ejabberd_auth_external,check_password_external_cache,4,[{file,"src/ejabberd_auth_external.erl"},{line,251}]},{ejabberd_auth,check_password_loop,2,[{file,"src/ejabberd_auth.erl"},{line,160}]},{ejabberd_auth,check_password,4,[{file,"src/ejabberd_auth.erl"},{line,108}]},{ejabberd_web_admin,get_auth_account,5,[{file,"src/ejabberd_web_admin.erl"},{line,267}]},{ejabberd_web_admin,process,2,[{file,"src/ejabberd_web_admin.erl"},{line,222}]},{ejabberd_http,process,5,[{file,"src/ejabberd_http.erl"},{line,363}]}]
ancestors: [<0.471.0>,ejabberd_listeners,ejabberd_sup,<0.38.0>]
messages: []
links: [#Port<0.18694>]
dictionary: [{random_seed,{9218,7940,12105}}]
trap_exit: false
status: running
heap_size: 1598
stack_size: 27
reductions: 2313
neighbours:
On 21 July 2016 at 22:07, Holger Weiß <holger< at >zedat.fu-berlin.de> wrote:
* David Cunningham <dcunningham< at >voisonics.com> [2016-07-21 11:24]:
You should have a full trace in your crash.log file, could you show
that?
What ejabberd version are you using?
Holger
Hello!
Just installed fresh ubuntu 16.04 and ejabberd 16.01 from it.
I configured (yml) ldap authentication and declared myself as admin:
acl:
##
## The 'admin' ACL grants administrative privileges to XMPP accounts.
## You can put here as many accounts as you want.
##
admin:
user:
- "dm": "jabber.mydomain"
Then started ejabberd and login through web interface.
I see that in host config acl database is in RAM (I'm back translating
from russian).
If I set it to RAM & disk then acl database file appears, but if I
restart ejabberd it removes file and
I see RAM in database config via web interface.
If I set only disk, then ejabberd dies with errors:
2016-07-21 13:02:43 =CRASH REPORT====
crasher:
initial call: ejabberd_http:init/2
pid: <0.920.0>
registered_name: []
exception error: bad argument:
[{ets,lookup,[acl,{admin,global}],[]},{acl,get_aclspecs,2,[{file,"src/acl.erl"},{line,349}]},{acl,match_acl,3,[{file,"src/acl.erl"},{line,346}]},{acl,match_acls,3,[{file,"src/ac
l.erl"},{line,276}]},{ejabberd_web_admin,'-is_acl_match/3-fun-0-',3,[{file,"src/ejabberd_web_admin.erl"},{line,88}]},{lists,any,2,[{file,"lists.erl"},{line,1224}]},{ejabberd_web_admin,'-make_server_menu/4-lc$^0/1
-0-',3,[{file,"src/ejabberd_web_admin.erl"},{line,2890}]},{ejabberd_web_admin,make_server_menu,4,[{file,"src/ejabberd_web_admin.erl"},{line,2888}]}]
ancestors: [<0.472.0>,ejabberd_listeners,ejabberd_sup,<0.38.0>]
messages: []
links: [#Port<0.8866>,#Port<0.8865>]
dictionary: []
trap_exit: false
status: running
heap_size: 28690
stack_size: 27
reductions: 53249
neighbours:
2016-07-21 13:02:43 =CRASH REPORT====
crasher:
initial call: ejabberd_http:init/2
pid: <0.1344.0>
registered_name: []
exception error: bad argument:
[{ets,lookup,[acl,{admin,global}],[]},{acl,get_aclspecs,2,[{file,"src/acl.erl"},{line,349}]},{acl,match_acl,3,[{file,"src/acl.erl"},{line,346}]},{acl,match_acls,3,[{file,"src/ac
l.erl"},{line,276}]},{ejabberd_web_admin,'-is_acl_match/3-fun-0-',3,[{file,"src/ejabberd_web_admin.erl"},{line,88}]},{lists,any,2,[{file,"lists.erl"},{line,1224}]},{ejabberd_web_admin,get_auth_account,5,[{file,"s
rc/ejabberd_web_admin.erl"},{line,269}]},{ejabberd_web_admin,process,2,[{file,"src/ejabberd_web_admin.erl"},{line,222}]}]
ancestors: [<0.472.0>,ejabberd_listeners,ejabberd_sup,<0.38.0>]
messages: []
links: [#Port<0.8879>,#Port<0.8880>]
dictionary: []
trap_exit: false
status: running
heap_size: 2586
stack_size: 27
reductions: 3836
neighbours:
And
2016-07-21 13:02:43.963 [error] <0.1344.0> CRASH REPORT Process
<0.1344.0> with 0 neighbours crashed with reason: bad argument in call
to ets:lookup(acl, {admin,global}) in acl:get_aclspecs/2 line 349
Cold you tell me what I'm doing wrong here?
btw, I have ejabberd 2 on ubuntu 12.04 and it runs just fine with almost
the same config.
Thank you!
Hello,
I'm using external authentication and have a perl program which is started
by ejabberd correctly. I can see the process running, ejabberd is it's
parent process, and the perl program writes to a log to say it's running.
But when I try to access the /admin/ web page ejabberd logs:
2016-07-20 18:23:00.870 [info] <0.471.0>< at >ejabberd_listener:accept:333
(#Port<0.18688>) Accepted connection 203.217.21.197:45227 ->
70.42.246.78:5280
2016-07-20 18:23:00.871 [debug] <0.500.0>< at >ejabberd_http:init:154 S:
[{[<<"websocket">>],ejabberd_http_ws},{[<<"admin">>],ejabberd_web_admin},{[<<"http-bind">>],mod_http_bind}]
2016-07-20 18:23:00.871 [info] <0.500.0>< at >ejabberd_http:init:158 started:
{gen_tcp,#Port<0.18688>}
2016-07-20 18:23:00.875 [debug] <0.500.0>< at >ejabberd_http:process_header:281
(#Port<0.18688>) http query: 'GET' <<"/admin/">>
2016-07-20 18:23:00.875 [debug] <0.500.0>< at >ejabberd_http:process:353
[<<"admin">>] matches [<<"admin">>]
2016-07-20 18:23:00.875 [error] <0.500.0> CRASH REPORT Process <0.500.0>
with 0 neighbours crashed with reason: bad argument in extauth:call_port/2
line 101
Given the external authentication program is running okay, can anyone
suggest how to debug the issue?
Thanks in advance,
Just to update, I reinstalled using the repository from https://jabber.at
but it had the same issue. Then I installed using the .deb from ejabberd.im
and that worked fine.
On 20 July 2016 at 07:16, David Cunningham <dcunningham< at >voisonics.com>
wrote:
Hi,
How to manage ejabberd cluster?
how to change ejabberd configure without restart ejabberd?
max ejabberd nodes in cluster?
thanks in advance
_______________________________________________
ejabberd mailing list
ejabberd< at >jabber.ru
http://lists.jabber.ru/mailman/listinfo/ejabberd
Hi Philipp,
Thanks for the ideas. The process isn't running. I'll try upgrading to a
newer version.
On 19 July 2016 at 22:41, Philipp Huebner <debalance< at >debian.org> wrote:
Hi,
Am 19.07.2016 um 14:09 schrieb David Cunningham:
on Debian/Ubuntu, ejabberd is automatically started upon installation,
I guess your ejabberd is already running, when I call "ejabberdctl live"
in that situation I get a crash as well.
Use "/etc/init.d/ejabberd start|stop|restart" or call
"service ejabberd start|stop|restart" on your system.
As for that version - that is indeed quite old.
I'd suggest to use Debian Jessie with Backports, or a newer Ubuntu
Release, or use the repository from https://jabber.at/en/apt-repository
(preferrably in that order ;) )
Regards,
Hello,
I've installed ejabberd on Ubuntu 14.04 (using the distro package) but from
time of installation it has always immediately crashed.
It seems the error is:
# ejabberdctl live
{error_logger,{{2016,7,19},{4,56,59}},"Protocol: ~tp: register/listen
error: ~tp~n",["inet_tcp",econnrefused]}
I've googled and found suggestions like:
- Check the hostname is resolvable (it is, in /etc/hosts and DNS)
- Check /var/lib/ejabberd/.erlang.cookie is owned by the ejabberd user (it
is)
- Check nothing else is listening on port 4369 (nothing is)
What else could I check? The Ubuntu version is 2.1.11-1ubuntu2.1 which
seems very out of date. Is a newer version likely to avoid the problem?
Thank you in advance.
Hi,
is it possible to disable "multi-subscribe" in the ejabberd PubSub
module? I found a post mentioning that this should be possible starting
with 16.01
http://stackoverflow.com/questions/34618854/how-can-i-disable-multi-subscription-on-pubsub-node-in-ejabberd
Im using 16.06 and multi-subscribe still seems to be the default
behaviour. Is there any config option to disable this?
Best,
Florian
Yes, this as well - sorry for not mentioning right away -, you must make
sure to use plaintext authentication. No Digest possible in your case. If
using plaintext make sure your connections are being encrypted.
//Stefan
On Thu, Jul 14, 2016 at 6:10 PM Florian Sailer <fs< at >sailer-interactive.com>
wrote:
_______________________________________________
ejabberd mailing list
ejabberd< at >jabber.ru
http://lists.jabber.ru/mailman/listinfo/ejabberd
Thank for you answer... i did some further tests and it seems that the
rest method being called depends on the sasl mechanism selected by the
client. That makes sense in my eyes...
Florian
On 13.07.2016 15:17, Stefan Strigler wrote:
Hey,
I think all you have to do is not enabled SCRAM for passwords. Then
check_password with the password will be called. See here:
https://github.com/processone/ejabberd-contrib/blob/master/ejabberd_auth_http/src/ejabberd_auth_http.erl#L76
Greets, Stefan
On Wed, Jul 13, 2016 at 2:21 PM Florian Sailer <fs< at >sailer-interactive.com>
wrote:
_______________________________________________
ejabberd mailing list
ejabberd< at >jabber.ru
http://lists.jabber.ru/mailman/listinfo/ejabberd
Hi,
i'm currently evaluating ejabberd and try to setup auth with the module
ejabberd_auth_http.
I got the module working and whenever a user authenticates ejabberd is
making the following get request to my http API:
/xmppauth/get_password?user=test&server=myserver.com&pass=
This works fine when i return the clear text password through the API.
However, instead of "get_password" i would rather like ejabberd to call
"check_password", so that i can validate the password the user has
entered within the API service. There are a lot of references to
"check_password" in the docs and the code of ejabberd_auth_http but i
can't figure out how to influence whether get_password or check_password
are being used.
Im using ejabberd 16.06 on Ubuntu 14.04.
This is my auth setup:
auth_method: http
auth_opts:
host: "https://www.myserver.com"
path_prefix: "/xmppauth/"
Any help would be very much appreciated.