Merge from waqas
authorMatthew Wild <mwild1@gmail.com>
Sun, 30 Nov 2008 01:02:12 +0000 (01:02 +0000)
committerMatthew Wild <mwild1@gmail.com>
Sun, 30 Nov 2008 01:02:12 +0000 (01:02 +0000)
Makefile
util-src/Makefile
util/sasl.lua

index 9fca034cd8d82c14c8d3235961703fa3ada433af..38de9e688538c36ec23fdc113a5cbef249f4827a 100644 (file)
--- 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
 
index 90e80aea6f081af948621222f3b03bc3f17c8bb8..8b886a1f0db8c118799aaa26d5dc02a0d82f735e 100644 (file)
@@ -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
        
index f1d01aedd1b1cddf4bf956eaa2aee725783e0639..fa818b9aaf198f46045a18fb8ae0d1a240895c7d 100644 (file)
@@ -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