Automerge with waqas.
authorTobias Markmann <tm@ayena.de>
Sun, 30 Nov 2008 16:18:31 +0000 (17:18 +0100)
committerTobias Markmann <tm@ayena.de>
Sun, 30 Nov 2008 16:18:31 +0000 (17:18 +0100)
Makefile
util/sasl.lua

index 6676fc5bfcac0321b196f05b9130a904a4b27836..80b1c25a54b81b5f10e0ebade554a18f76d2a736 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,8 +5,7 @@ BIN = $(DESTDIR)$(PREFIX)/bin
 CONFIG = $(DESTDIR)$(SYSCONFDIR)
 MODULES = $(DESTDIR)$(PREFIX)/lib/prosody/modules
 SOURCE = $(DESTDIR)$(PREFIX)/lib/prosody
-
-DATADIR?=data
+DATA = $(DESTDIR)$(DATADIR)
 
 INSTALLEDSOURCE = $(PREFIX)/lib/prosody
 INSTALLEDCONFIG = $(SYSCONFDIR)
@@ -17,7 +16,7 @@ all: prosody.install prosody.cfg.lua.install
        $(MAKE) all -C util-src
 
 install: prosody.install prosody.cfg.lua.install util/encodings.so util/encodings.so
-       install -d $(BIN) $(CONFIG) $(MODULES) $(SOURCE) $(DATADIR)
+       install -d $(BIN) $(CONFIG) $(MODULES) $(SOURCE) $(DATA)
        install -d $(CONFIG)/certs
        install -d $(SOURCE)/core $(SOURCE)/net $(SOURCE)/util
        install ./prosody.install $(BIN)/prosody
index c39e714f113192874646d367307b0bd7ab7273d4..43340105f6916e2a5b04cf20f504306972c82218 100644 (file)
@@ -4,6 +4,8 @@ local log = require "util.logger".init("sasl");
 local tostring = tostring;
 local st = require "util.stanza";
 local generate_uuid = require "util.uuid".generate;
+local t_insert, t_concat = table.insert, table.concat;
+local to_byte, to_char = string.byte, string.char;
 local s_match = string.match;
 local gmatch = string.gmatch
 local string = string
@@ -66,6 +68,20 @@ local function new_digest_md5(realm, password_handler)
                return data
        end
        
+       local function latin1toutf8(str)
+               local p = {};
+               for ch in gmatch(str, ".") do
+                       ch = to_byte(ch);
+                       if (ch < 0x80) then
+                               t_insert(p, to_char(ch));
+                       elseif (ch < 0xC0) then
+                               t_insert(p, to_char(0xC2, ch));
+                       else
+                               t_insert(p, to_char(0xC3, ch - 64));
+                       end
+               end
+               return t_concat(p);
+       end
        local function parse(data)
                message = {}
                for k, v in gmatch(data, [[([%w%-]+)="?([^",]*)"?,?]]) do -- FIXME The hacky regex makes me shudder