#include <mm_error.h>
#include <mm_debug.h>
#include <errno.h>
-#include <glib.h>
#include <pthread.h>
#include <signal.h>
char filename[MAX_FILE_LENGTH];
int result_info = 0;
- if(session_type < MM_SESSION_TYPE_MEDIA || session_type >= MM_SESSION_TYPE_NUM) {
+ if ((session_type != MM_SESSION_TYPE_REPLACED_BY_STREAM) &&
+ (session_type < MM_SESSION_TYPE_MEDIA || session_type >= MM_SESSION_TYPE_NUM)) {
return MM_ERROR_INVALID_ARGUMENT;
}
if(flags < 0) {
result_info = (flags) | (session_type << 16);
write(fd, &result_info, sizeof(int));
- if(0 > fchmod (fd, 00777)) {
+ if (0 > fchmod (fd, 00777)) {
debug_error("fchmod failed with %d", errno);
} else {
debug_warning("write session information(%x) to /tmp/mm_session_%d", result_info, mypid);
void __session_signal_handler(int signo)
{
- char* filename = NULL;
+ char filename[MAX_FILE_LENGTH];
char str_error[256];
debug_warning("ENTER, sig.num(%d)", signo);
sigfillset(&all_mask);
sigprocmask(SIG_BLOCK, &all_mask, &old_mask);
- filename = g_strdup_printf("/tmp/mm_session_%d", getpid());
+ snprintf(filename, sizeof(filename) - 1, "/tmp/mm_session_%d", getpid());
if (!remove(filename)) {
debug_log(" remove %s success\n", filename);
} else {
- strerror_r (errno, str_error, sizeof (str_error));
+ strerror_r(errno, str_error, sizeof(str_error));
debug_error(" remove %s failed with %s\n", filename, str_error);
}
- g_free(filename);
-
sigprocmask(SIG_SETMASK, &old_mask, NULL);
/* signal unblock ------------ */