]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add append flag to mod_shout
authorAnthony Minessale <anthm@freeswitch.org>
Tue, 31 May 2011 15:40:34 +0000 (10:40 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Tue, 31 May 2011 15:40:34 +0000 (10:40 -0500)
src/mod/formats/mod_shout/mod_shout.c

index a4134db943984a8c813838966f71fafdc4a5e629..4ac6790933a255adb7e6ec07e4494952e06d90d5 100644 (file)
@@ -655,9 +655,6 @@ static switch_status_t shout_file_open(switch_file_handle_t *handle, const char
 
                }
        } else if (switch_test_flag(handle, SWITCH_FILE_FLAG_WRITE)) {
-               if (switch_test_flag(handle, SWITCH_FILE_WRITE_APPEND)) {
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Appending to MP3 not supported.\n");
-               }
                if (!(context->gfp = lame_init())) {
                        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Could not allocate lame\n");
                        goto error;
@@ -781,8 +778,13 @@ static switch_status_t shout_file_open(switch_file_handle_t *handle, const char
                        }
 
                } else {
+                       const char *mask = "wb+";
+                       
+                       if (switch_test_flag(handle, SWITCH_FILE_WRITE_APPEND)) {
+                               mask = "ab+";
+                       }
                        /* lame being lame and all has FILE * coded into it's API for some functions so we gotta use it */
-                       if (!(context->fp = fopen(path, "wb+"))) {
+                       if (!(context->fp = fopen(path, mask))) {
                                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error opening %s\n", path);
                                goto error;
                        }