diff --git a/mbuni/ChangeLog b/mbuni/ChangeLog index 6c59ac9..2abd70d 100644 --- a/mbuni/ChangeLog +++ b/mbuni/ChangeLog @@ -1,3 +1,5 @@ +2010-11-04 P. A. Bagyenda + * Minor compiler error fixes 2010-11-03 P. A. Bagyenda * Fixed bug in configure.ac 2010-10-27 P. A. Bagyenda diff --git a/mbuni/mmlib/mms_eventlogger.h b/mbuni/mmlib/mms_eventlogger.h index 45b83a6..7ccf7c6 100644 --- a/mbuni/mmlib/mms_eventlogger.h +++ b/mbuni/mmlib/mms_eventlogger.h @@ -49,7 +49,7 @@ extern void mms_event_logger(enum mbuni_event_type_t type, const char *subtype, #define mms_warning_ex(subtype,err,intf,id,fmt,...) mms_event_logger(MBUNI_WARNING, (subtype), (err), __FILE__, __LINE__,__FUNCTION__,(intf), (id),(fmt),##__VA_ARGS__) -MmsEventLoggerFuncs shell_event_logger; /* For logging using a shell command. */ +extern MmsEventLoggerFuncs shell_event_logger; /* For logging using a shell command. */ /* Stop all from using gwlib info, error and warning functions */ #define error use_mms_error_instead diff --git a/mbuni/mmlib/mms_util.c b/mbuni/mmlib/mms_util.c index 339c6f6..51182aa 100644 --- a/mbuni/mmlib/mms_util.c +++ b/mbuni/mmlib/mms_util.c @@ -536,9 +536,10 @@ static int send2email(Octstr *to, Octstr *from, Octstr *subject, { Octstr *s; FILE *f; - int ret = MMS_SEND_OK, i, n; - char fname[L_tmpnam]; + int ret = MMS_SEND_OK, i, n, fd = -1; + char fname[] = "/tmp/mms.XXXXXX"; + Octstr *cmd = octstr_create(""); List *headers = mime_entity_headers(m); /* we don't want the mime version header removed. */ @@ -677,8 +678,8 @@ static int send2email(Octstr *to, Octstr *from, Octstr *subject, i += 2; } - if (tmpnam(fname) == NULL) { - *error = octstr_format("tmpnam: Failed to create temporary file: %s", + if ((fd = mkstemp(fname)) < 0) { + *error = octstr_format("mkstemp: Failed to create temporary file: %s", strerror(errno)); ret = MMS_SEND_ERROR_TRANSIENT; goto done; @@ -712,8 +713,10 @@ static int send2email(Octstr *to, Octstr *from, Octstr *subject, ret = MMS_SEND_QUEUED; done: - if (fname[0]) + if (fd >= 0) { + close(fd); unlink(fname); + } http_destroy_headers(headers); octstr_destroy(cmd); octstr_destroy(s);