all:
$(MAKE) all -C util-src
-install: prosody.install prosody.cfg.lua util/encodings.so util/encodings.so
+install: prosody.install prosody.cfg.lua.install util/encodings.so util/encodings.so
install -d $(BIN) $(CONFIG) $(MODULES) $(SOURCE)
install -d $(CONFIG)/certs
install -d $(SOURCE)/core $(SOURCE)/net $(SOURCE)/util
install -m644 plugins/* $(MODULES)
install -m644 certs/* $(CONFIG)/certs
install -m644 plugins/* $(MODULES)
- install -m644 prosody.cfg.lua $(CONFIG)/prosody.cfg.lua
+ install -m644 prosody.cfg.lua.install $(CONFIG)/prosody.cfg.lua
$(MAKE) install -C util-src
clean:
rm -f prosody.install
- rm -f prosody.cfg.lua
+ rm -f prosody.cfg.lua.install
$(MAKE) clean -C util-src
util/encodings.so:
prosody.install: prosody
sed "s|^CFG_SOURCEDIR=.*;$$|CFG_SOURCEDIR='$(INSTALLEDSOURCE)';|;s|^CFG_CONFIGDIR=.*;$$|CFG_CONFIGDIR='$(INSTALLEDCONFIG)';|;s|^CFG_PLUGINDIR=.*;$$|CFG_PLUGINDIR='$(INSTALLEDMODULES)/';|;" prosody > prosody.install
-prosody.cfg.lua:
- sed 's|certs/|$(INSTALLEDCONFIG)/certs/|' prosody.cfg.lua.dist > prosody.cfg.lua
+prosody.cfg.lua.install:
+ sed 's|certs/|$(INSTALLEDCONFIG)/certs/|' prosody.cfg.lua.dist > prosody.cfg.lua.install
rm -f ../util/*.so
encodings.so: encodings.c
- gcc -shared encodings.c -I$(LUA_INCDIR) -l$(LUA_LIB) -l$(IDN_LIB) -o encodings.so
+ gcc -shared -fPIC encodings.c -I$(LUA_INCDIR) -l$(LUA_LIB) -l$(IDN_LIB) -o encodings.so
hashes.so: hashes.c
- gcc -shared hashes.c -I$(LUA_INCDIR) -l$(LUA_LIB) -l$(OPENSSL_LIB) -o hashes.so
+ gcc -shared -fPIC hashes.c -I$(LUA_INCDIR) -l$(LUA_LIB) -l$(OPENSSL_LIB) -o hashes.so
local error = error
local print = print
local idna_ascii = require "util.encodings".idna.to_ascii
+local idna_unicode = require "util.encodings".idna.to_unicode
module "sasl"
qop = "auth",
charset = "utf-8",
algorithm = "md5-sess",
- realm = self.realm});
+ realm = idna_ascii(self.realm)});
return "challenge", challenge
elseif (self.step == 2) then
local response = parse(message)
--TODO maybe realm support
self.username = response["username"]
- local password_encoding, Y = self.password_handler(response["username"], response["realm"], "DIGEST-MD5")
+ local password_encoding, Y = self.password_handler(response["username"], idna_unicode(response["realm"]), "DIGEST-MD5")
if Y == nil then return "failure", "not-authorized"
elseif Y == false then return "failure", "account-disabled" end