diff --git a/src/connectivity/ip_utils.cpp b/src/connectivity/ip_utils.cpp index 217472bc305c0777115ce304ed9b138dc00cfef5..83a48333e511873799e604489d27fab7d4906920 100644 --- a/src/connectivity/ip_utils.cpp +++ b/src/connectivity/ip_utils.cpp @@ -149,7 +149,7 @@ ip_utils::getHostName(char* out, size_t out_len) i += sizeof *pifReq; // See if this is the sort of interface we want to deal with. memset(ifReq.ifr_name, 0, sizeof(ifReq.ifr_name)); - strncpy(ifReq.ifr_name, pifReq->ifr_name, sizeof(ifReq.ifr_name) - 1); + strncpy(ifReq.ifr_name, pifReq->ifr_name, sizeof(ifReq.ifr_name)); ioctl(localSock, SIOCGIFFLAGS, &ifReq); // Skip loopback, point-to-point and down interfaces. // except don't skip down interfaces if we're trying to get diff --git a/src/connectivity/ip_utils.h b/src/connectivity/ip_utils.h index 8e6649e5f9161c20e92cf682bb6b3a9ad3f95504..3023ac16722ba793ec012042aa224fdf1d03e920 100644 --- a/src/connectivity/ip_utils.h +++ b/src/connectivity/ip_utils.h @@ -179,13 +179,6 @@ public: inline operator const sockaddr*() const { return reinterpret_cast<const sockaddr*>(&addr); } - inline operator sockaddr_storage() - { - sockaddr_storage ss; - memcpy(&ss, &addr, getLength()); - return ss; - } - inline const pj_sockaddr* pjPtr() const { return &addr; } inline pj_sockaddr* pjPtr() { return &addr; } diff --git a/src/fileutils.cpp b/src/fileutils.cpp index e3a61b6334646a39414a217223497be7f49201ac..948100a9a3fce2008f979d75b0f09a54e6cacd1b 100644 --- a/src/fileutils.cpp +++ b/src/fileutils.cpp @@ -79,6 +79,7 @@ #include <iostream> #include <stdexcept> #include <limits> +#include <array> #include <cstdlib> #include <cstring> @@ -931,32 +932,25 @@ eraseFile_posix(const std::string& path, bool dosync) return false; } - uintmax_t size_blocks = st.st_size / ERASE_BLOCK; - if (st.st_size % ERASE_BLOCK) - size_blocks++; - - char* buffer; - try { - buffer = new char[ERASE_BLOCK]; - } catch (std::bad_alloc& ba) { - JAMI_WARN("Can not allocate buffer for erasing %s.", path.c_str()); - close(fd); - return false; - } - memset(buffer, 0x00, ERASE_BLOCK); - - for (uintmax_t i = 0; i < size_blocks; i++) { - lseek(fd, i * ERASE_BLOCK, SEEK_SET); - write(fd, buffer, ERASE_BLOCK); + lseek(fd, 0, SEEK_SET); + + std::array<char, ERASE_BLOCK> buffer; + buffer.fill(0); + decltype(st.st_size) written(0); + while (written < st.st_size) { + auto ret = write(fd, buffer.data(), buffer.size()); + if (ret < 0) { + JAMI_WARNING("Error while overriding file with zeros."); + break; + } else + written += ret; } - delete[] buffer; - if (dosync) fsync(fd); close(fd); - return true; + return written >= st.st_size; } #endif diff --git a/src/media/audio/audiolayer.cpp b/src/media/audio/audiolayer.cpp index 09d9c1a1c5b363e0bbabfffa6b32f3170e05573f..7d9b1ec6f64ece5cb844b7e2aff316ee94209e35 100644 --- a/src/media/audio/audiolayer.cpp +++ b/src/media/audio/audiolayer.cpp @@ -47,6 +47,7 @@ AudioLayer::AudioLayer(const AudioPreference& pref) , isPlaybackMuted_(pref.getPlaybackMuted()) , captureGain_(pref.getVolumemic()) , playbackGain_(pref.getVolumespkr()) + , pref_(pref) , mainRingBuffer_( Manager::instance().getRingBufferPool().getRingBuffer(RingBufferPool::DEFAULT_ID)) , audioFormat_(Manager::instance().getRingBufferPool().getInternalAudioFormat()) @@ -54,7 +55,6 @@ AudioLayer::AudioLayer(const AudioPreference& pref) , urgentRingBuffer_("urgentRingBuffer_id", SIZEBUF, audioFormat_) , resampler_(new Resampler) , lastNotificationTime_() - , pref_(pref) { urgentRingBuffer_.createReadOffset(RingBufferPool::DEFAULT_ID); diff --git a/src/media/media_encoder.cpp b/src/media/media_encoder.cpp index b3ab0bb8c3f1fc0aebce44482763da7f857c0c21..1f67dad6221d04c4d22748e0e2d2f2106cde839d 100644 --- a/src/media/media_encoder.cpp +++ b/src/media/media_encoder.cpp @@ -243,6 +243,8 @@ MediaEncoder::initStream(const SystemCodecInfo& systemCodecInfo, AVBufferRef* fr mediaType = AVMEDIA_TYPE_VIDEO; else if (systemCodecInfo.mediaType == MEDIA_AUDIO) mediaType = AVMEDIA_TYPE_AUDIO; + else + throw MediaEncoderException("Unsuported media type"); AVStream* stream {nullptr}; diff --git a/src/sip/sipaccount_config.cpp b/src/sip/sipaccount_config.cpp index 56b48d99456601a7138e928fde24b7c760ea4646..613a9c0f3bb5a4d07b8a73a3fb24ac9f4fe34e86 100644 --- a/src/sip/sipaccount_config.cpp +++ b/src/sip/sipaccount_config.cpp @@ -76,16 +76,6 @@ static constexpr unsigned MIN_REGISTRATION_TIME = 60; // second using yaml_utils::parseValueOptional; using yaml_utils::parseVectorMap; -static void -addRangeToDetails(std::map<std::string, std::string>& a, - const char* minKey, - const char* maxKey, - const std::pair<uint16_t, uint16_t>& range) -{ - a.emplace(minKey, std::to_string(range.first)); - a.emplace(maxKey, std::to_string(range.second)); -} - void SipAccountConfig::serialize(YAML::Emitter& out) const { @@ -256,17 +246,6 @@ SipAccountConfig::fromMap(const std::map<std::string, std::string>& details) parseBool(details, Conf::CONFIG_PRESENCE_ENABLED, presenceEnabled); parseString(details, Conf::CONFIG_ACCOUNT_DTMF_TYPE, dtmfType); - int tmpMin = -1; - parseInt(details, Conf::CONFIG_ACCOUNT_AUDIO_PORT_MIN, tmpMin); - int tmpMax = -1; - parseInt(details, Conf::CONFIG_ACCOUNT_AUDIO_PORT_MAX, tmpMax); - updateRange(tmpMin, tmpMax, audioPortRange); - tmpMin = -1; - parseInt(details, Conf::CONFIG_ACCOUNT_VIDEO_PORT_MIN, tmpMin); - tmpMax = -1; - parseInt(details, Conf::CONFIG_ACCOUNT_VIDEO_PORT_MAX, tmpMax); - updateRange(tmpMin, tmpMax, videoPortRange); - // srtp settings parseBool(details, Conf::CONFIG_SRTP_RTP_FALLBACK, srtpFallback); auto iter = details.find(Conf::CONFIG_SRTP_KEY_EXCHANGE); diff --git a/src/sip/sipvoiplink.cpp b/src/sip/sipvoiplink.cpp index a4fb90fc05f4ee8671ef78db6b05c8058e21c031..af34fad755af6cbbf1f3c8ccbcb9b93bbf42e00a 100644 --- a/src/sip/sipvoiplink.cpp +++ b/src/sip/sipvoiplink.cpp @@ -1665,7 +1665,7 @@ SIPVoIPLink::findLocalAddressFromSTUN(pjsip_transport* transport, case PJ_SUCCESS: port = pj_sockaddr_in_get_port(&mapped_addr); - addr = IpAddr((const pj_sockaddr&) mapped_addr).toString(); + addr = IpAddr((const sockaddr_in&) mapped_addr).toString(); JAMI_DBG("STUN server %.*s replied '%s:%u'", (int) stunServerName->slen, stunServerName->ptr,