Browse Source

Made setLocalDescription() parameter optional

Paul-Louis Ageneau 5 years ago
parent
commit
1c9752b27d
2 changed files with 4 additions and 3 deletions
  1. 1 1
      include/rtc/peerconnection.hpp
  2. 3 2
      src/peerconnection.cpp

+ 1 - 1
include/rtc/peerconnection.hpp

@@ -79,7 +79,7 @@ public:
 	std::optional<string> localAddress() const;
 	std::optional<string> remoteAddress() const;
 
-	void setLocalDescription(Description description);
+	void setLocalDescription(std::optional<Description> description = nullopt);
 	void setRemoteDescription(Description description);
 	void addRemoteCandidate(Candidate candidate);
 

+ 3 - 2
src/peerconnection.cpp

@@ -71,7 +71,7 @@ std::optional<Description> PeerConnection::remoteDescription() const {
 	return mRemoteDescription;
 }
 
-void PeerConnection::setLocalDescription(Description description) {
+void PeerConnection::setLocalDescription(std::optional<Description> description) {
 	if (auto iceTransport = std::atomic_load(&mIceTransport)) {
 		throw std::logic_error("Local description is already set");
 	} else {
@@ -80,7 +80,8 @@ void PeerConnection::setLocalDescription(Description description) {
 		// See https://tools.ietf.org/html/rfc5763#section-5
 		iceTransport = initIceTransport(Description::Role::ActPass);
 		Description localDescription = iceTransport->getLocalDescription(Description::Type::Offer);
-		localDescription.addMedia(description);
+		if (description)
+			localDescription.addMedia(*description);
 		processLocalDescription(localDescription);
 		iceTransport->gatherLocalCandidates();
 	}