From 3612c3f6cba1d423838669d130757728182d439c Mon Sep 17 00:00:00 2001 From: JustinAJ Date: Sat, 23 May 2015 02:56:15 -0400 Subject: [PATCH] Fixed bug in Socket::accept() when port is assigned. --- Jupiter/Socket.cpp | 16 ++++++++++------ Release/Jupiter.lib | Bin 267778 -> 267778 bytes 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Jupiter/Socket.cpp b/Jupiter/Socket.cpp index eee7a90..ad63250 100644 --- a/Jupiter/Socket.cpp +++ b/Jupiter/Socket.cpp @@ -366,13 +366,17 @@ Jupiter::Socket *Jupiter::Socket::accept() r->data_->sockType = Jupiter::Socket::data_->sockType; r->data_->sockProto = Jupiter::Socket::data_->sockProto; r->data_->host.set(resolved); - char *end = resolved + r->data_->host.size(); - while (end != resolved) + switch (addr.sa_family) { - if (*--end == ':') - break; - r->data_->port *= 10; - r->data_->port += static_cast(Jupiter_getBase(*end, 10)); + case AF_INET: + r->data_->port = ntohs(reinterpret_cast(&addr)->sin_port); + break; + case AF_INET6: + r->data_->port = ntohs(reinterpret_cast(&addr)->sin6_port); + break; + default: + r->data_->port = 0x00000000; + break; } return r; } diff --git a/Release/Jupiter.lib b/Release/Jupiter.lib index 83b6234f06a6221d0bf9a03103984a2d1f3301ee..4e8b4fe388014dbb8f3b872449a10a0b780cedbd 100644 GIT binary patch delta 20212 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 delta 20074 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
<$^MCoXYFBRcl36bJ{ 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 H>52O<#AaNe