projects
/
umurmur.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Extract function Client_find_by_fd().
[umurmur.git]
/
src
/
client.c
diff --git
a/src/client.c
b/src/client.c
index 961bee8a86a579c1f82f4665da80e8384bd74e8a..d61de2b00a0297adda0f300a2ed750395998bac4 100644
(file)
--- a/
src/client.c
+++ b/
src/client.c
@@
-54,6
+54,7
@@
extern char system_string[], version_string[];
static int Client_read(client_t *client);
static int Client_write(client_t *client);
static int Client_send_udp(client_t *client, uint8_t *data, int len);
static int Client_read(client_t *client);
static int Client_write(client_t *client);
static int Client_send_udp(client_t *client, uint8_t *data, int len);
+static client_t *Client_find_by_fd(int fd);
void Client_free(client_t *client);
declare_list(clients);
void Client_free(client_t *client);
declare_list(clients);
@@
-426,17
+427,27
@@
void Client_disconnect_all()
}
}
}
}
-
int Client_read
_fd(int fd)
+
client_t *Client_find_by
_fd(int fd)
{
struct dlist *itr;
{
struct dlist *itr;
- client_t *client = NULL;
list_iterate(itr, &clients) {
list_iterate(itr, &clients) {
- if (fd == list_get_entry(itr, client_t, node)->tcpfd) {
- client = list_get_entry(itr, client_t, node);
- break;
+ client_t *client = list_get_entry(itr, client_t, node);
+
+ if (client->tcpfd == fd) {
+ return client;
}
}
}
}
+
+ return NULL;
+}
+
+int Client_read_fd(int fd)
+{
+ client_t *client;
+
+ client = Client_find_by_fd(fd);
+
if (client != NULL)
return Client_read(client);
else
if (client != NULL)
return Client_read(client);
else
@@
-538,15
+549,10
@@
int Client_read(client_t *client)
int Client_write_fd(int fd)
{
int Client_write_fd(int fd)
{
- struct dlist *itr;
- client_t *client = NULL;
+ client_t *client;
+
+ client = Client_find_by_fd(fd);
- list_iterate(itr, &clients) {
- if(fd == list_get_entry(itr, client_t, node)->tcpfd) {
- client = list_get_entry(itr, client_t, node);
- break;
- }
- }
if (client != NULL)
return Client_write(client);
else
if (client != NULL)
return Client_write(client);
else