]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Allow streaming binary data from mod_memcache
authorTravis Cross <tc@traviscross.com>
Sun, 28 Dec 2014 00:36:06 +0000 (00:36 +0000)
committerTravis Cross <tc@traviscross.com>
Sun, 28 Dec 2014 00:42:01 +0000 (00:42 +0000)
Previously data returned from `memcache get` would be truncated at the
first NULL byte.

By using raw_write_function here to stream the returned memcache
value, we allow mod_memcache to be used for audio and other arbitrary
binary data.

Dave has a format module planned that relies on this.

Thanks-to: Dave Olszewski <dolszewski@marchex.com>
FS-7114 #resolve

src/mod/applications/mod_memcache/mod_memcache.c

index 81c509719acb1a65f3478b7dfbe134a27ff0931a..a5a5324e93fb70b24b1dff81ab28ad72066116a0 100644 (file)
@@ -283,7 +283,7 @@ SWITCH_STANDARD_API(memcache_function)
 
                        val = memcached_get(memcached, key, strlen(key), &string_length, &flags, &rc);
                        if (rc == MEMCACHED_SUCCESS) {
-                               stream->write_function(stream, "%.*s", (int) string_length, val);
+                               stream->raw_write_function(stream, (uint8_t*)val, (int)string_length);
                        } else {
                                switch_safe_free(val);
                                switch_goto_status(SWITCH_STATUS_SUCCESS, mcache_error);