aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile10
-rw-r--r--util-src/Makefile4
-rw-r--r--util/sasl.lua5
3 files changed, 10 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index 9fca034c..38de9e68 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@ INSTALLEDMODULES = $(PREFIX)/lib/prosody/modules
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
@@ -25,12 +25,12 @@ install: prosody.install prosody.cfg.lua util/encodings.so util/encodings.so
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:
@@ -42,6 +42,6 @@ util/hashes.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
diff --git a/util-src/Makefile b/util-src/Makefile
index 90e80aea..8b886a1f 100644
--- a/util-src/Makefile
+++ b/util-src/Makefile
@@ -21,8 +21,8 @@ clean:
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
diff --git a/util/sasl.lua b/util/sasl.lua
index f1d01aed..fa818b9a 100644
--- a/util/sasl.lua
+++ b/util/sasl.lua
@@ -12,6 +12,7 @@ local type = type
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"
@@ -87,7 +88,7 @@ local function new_digest_md5(realm, password_handler)
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)
@@ -126,7 +127,7 @@ local function new_digest_md5(realm, password_handler)
--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