diff options
-rw-r--r-- | Makefile | 10 | ||||
-rw-r--r-- | util-src/Makefile | 4 | ||||
-rw-r--r-- | util/sasl.lua | 5 |
3 files changed, 10 insertions, 9 deletions
@@ -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 |