Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
ygopro
Commits
d7cf1187
Commit
d7cf1187
authored
Jan 13, 2025
by
Chen Bill
Committed by
GitHub
Jan 13, 2025
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
use std array in NetServer::ServerEchoRead (#2648)
parent
8b622643
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
6 additions
and
6 deletions
+6
-6
gframe/duelclient.cpp
gframe/duelclient.cpp
+3
-3
gframe/netserver.cpp
gframe/netserver.cpp
+3
-3
No files found.
gframe/duelclient.cpp
View file @
d7cf1187
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,7 @@
#include "deck_manager.h"
#include "deck_manager.h"
#include "replay.h"
#include "replay.h"
#include <thread>
#include <thread>
#include <array>
namespace ygo {
namespace ygo {
...
@@ -101,18 +102,17 @@ void DuelClient::ClientRead(bufferevent* bev, void* ctx) {
...
@@ -101,18 +102,17 @@ void DuelClient::ClientRead(bufferevent* bev, void* ctx) {
int len = evbuffer_get_length(input);
int len = evbuffer_get_length(input);
if (len < 2)
if (len < 2)
return;
return;
unsigned
char
*
duel_client_read
=
new
unsigned
char
[
SIZE_NETWORK_BUFFER
]
;
std::array<unsigned char, SIZE_NETWORK_BUFFER> duel_client_read
;
uint16_t packet_len = 0;
uint16_t packet_len = 0;
while (len >= 2) {
while (len >= 2) {
evbuffer_copyout(input, &packet_len, sizeof packet_len);
evbuffer_copyout(input, &packet_len, sizeof packet_len);
if (len < packet_len + 2)
if (len < packet_len + 2)
break;
break;
int
read_len
=
evbuffer_remove
(
input
,
duel_client_read
,
packet_len
+
2
);
int read_len = evbuffer_remove(input, duel_client_read
.data()
, packet_len + 2);
if (read_len > 2)
if (read_len > 2)
HandleSTOCPacketLan(&duel_client_read[2], read_len - 2);
HandleSTOCPacketLan(&duel_client_read[2], read_len - 2);
len -= packet_len + 2;
len -= packet_len + 2;
}
}
delete
[]
duel_client_read
;
}
}
void DuelClient::ClientEvent(bufferevent* bev, short events, void* ctx) {
void DuelClient::ClientEvent(bufferevent* bev, short events, void* ctx) {
if (events & BEV_EVENT_CONNECTED) {
if (events & BEV_EVENT_CONNECTED) {
...
...
gframe/netserver.cpp
View file @
d7cf1187
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
#include "tag_duel.h"
#include "tag_duel.h"
#include "deck_manager.h"
#include "deck_manager.h"
#include <thread>
#include <thread>
#include <array>
namespace
ygo
{
namespace
ygo
{
std
::
unordered_map
<
bufferevent
*
,
DuelPlayer
>
NetServer
::
users
;
std
::
unordered_map
<
bufferevent
*
,
DuelPlayer
>
NetServer
::
users
;
...
@@ -126,18 +127,17 @@ void NetServer::ServerEchoRead(bufferevent *bev, void *ctx) {
...
@@ -126,18 +127,17 @@ void NetServer::ServerEchoRead(bufferevent *bev, void *ctx) {
int
len
=
evbuffer_get_length
(
input
);
int
len
=
evbuffer_get_length
(
input
);
if
(
len
<
2
)
if
(
len
<
2
)
return
;
return
;
unsigned
char
*
net_server_read
=
new
unsigned
char
[
SIZE_NETWORK_BUFFER
]
;
std
::
array
<
unsigned
char
,
SIZE_NETWORK_BUFFER
>
net_server_read
;
uint16_t
packet_len
=
0
;
uint16_t
packet_len
=
0
;
while
(
len
>=
2
)
{
while
(
len
>=
2
)
{
evbuffer_copyout
(
input
,
&
packet_len
,
sizeof
packet_len
);
evbuffer_copyout
(
input
,
&
packet_len
,
sizeof
packet_len
);
if
(
len
<
packet_len
+
2
)
if
(
len
<
packet_len
+
2
)
break
;
break
;
int
read_len
=
evbuffer_remove
(
input
,
net_server_read
,
packet_len
+
2
);
int
read_len
=
evbuffer_remove
(
input
,
net_server_read
.
data
()
,
packet_len
+
2
);
if
(
read_len
>
2
)
if
(
read_len
>
2
)
HandleCTOSPacket
(
&
users
[
bev
],
&
net_server_read
[
2
],
read_len
-
2
);
HandleCTOSPacket
(
&
users
[
bev
],
&
net_server_read
[
2
],
read_len
-
2
);
len
-=
packet_len
+
2
;
len
-=
packet_len
+
2
;
}
}
delete
[]
net_server_read
;
}
}
void
NetServer
::
ServerEchoEvent
(
bufferevent
*
bev
,
short
events
,
void
*
ctx
)
{
void
NetServer
::
ServerEchoEvent
(
bufferevent
*
bev
,
short
events
,
void
*
ctx
)
{
if
(
events
&
(
BEV_EVENT_EOF
|
BEV_EVENT_ERROR
))
{
if
(
events
&
(
BEV_EVENT_EOF
|
BEV_EVENT_ERROR
))
{
...
...
Chen Bill
@salix5
mentioned in commit
8682f411
·
Jan 27, 2025
mentioned in commit
8682f411
mentioned in commit 8682f411e0fd5654560d7096d0a7dd449a0ed915
Toggle commit list
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment