Handle the case if an unusually long peer name is provided in the peerconnection example.
R=xians@webrtc.org Review URL: https://webrtc-codereview.appspot.com/21899004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6687 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
cb859ecd3b
commit
2adc51c86e
@ -59,6 +59,8 @@ enum RequestPathIndex {
|
||||
kMessage,
|
||||
};
|
||||
|
||||
const size_t kMaxNameLength = 512;
|
||||
|
||||
//
|
||||
// ChannelMember
|
||||
//
|
||||
@ -72,8 +74,11 @@ ChannelMember::ChannelMember(DataSocket* socket)
|
||||
assert(socket->method() == DataSocket::GET);
|
||||
assert(socket->PathEquals("/sign_in"));
|
||||
name_ = socket->request_arguments(); // TODO: urldecode
|
||||
if (!name_.length())
|
||||
if (name_.empty())
|
||||
name_ = "peer_" + int2str(id_);
|
||||
else if (name_.length() > kMaxNameLength)
|
||||
name_.resize(kMaxNameLength);
|
||||
|
||||
std::replace(name_.begin(), name_.end(), ',', '_');
|
||||
}
|
||||
|
||||
@ -100,8 +105,9 @@ bool ChannelMember::NotifyOfOtherMember(const ChannelMember& other) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Returns a string in the form "name,id\n".
|
||||
// Returns a string in the form "name,id,connected\n".
|
||||
std::string ChannelMember::GetEntry() const {
|
||||
assert(name_.length() <= kMaxNameLength);
|
||||
char entry[1024] = {0};
|
||||
sprintf(entry, "%s,%i,%i\n", name_.c_str(), id_, connected_); // NOLINT
|
||||
return entry;
|
||||
@ -169,7 +175,6 @@ void ChannelMember::SetWaitingSocket(DataSocket* ds) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// PeerChannel
|
||||
//
|
||||
|
Loading…
x
Reference in New Issue
Block a user