client: use GLib instead of utils.h
This commit is contained in:
parent
0eb1166beb
commit
2bc0144023
15
src/client.c
15
src/client.c
@ -21,7 +21,6 @@
|
||||
#include "conf.h"
|
||||
#include "listen.h"
|
||||
#include "permission.h"
|
||||
#include "utils.h"
|
||||
#include "event_pipe.h"
|
||||
#include "dlist.h"
|
||||
#include "idle.h"
|
||||
@ -33,6 +32,9 @@
|
||||
#include <assert.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef WIN32
|
||||
#include <ws2tcpip.h>
|
||||
@ -168,7 +170,7 @@ static inline void client_set_expired(struct client *client)
|
||||
}
|
||||
|
||||
if (client->fd >= 0) {
|
||||
xclose(client->fd);
|
||||
close(client->fd);
|
||||
client->fd = -1;
|
||||
}
|
||||
}
|
||||
@ -187,7 +189,6 @@ static void client_init(struct client *client, int fd)
|
||||
client->bufferLength = 0;
|
||||
client->bufferPos = 0;
|
||||
client->fd = fd;
|
||||
set_nonblocking(fd);
|
||||
|
||||
client->channel = g_io_channel_unix_new(client->fd);
|
||||
client->source_id = g_io_add_watch(client->channel, G_IO_IN,
|
||||
@ -202,7 +203,7 @@ static void client_init(struct client *client, int fd)
|
||||
|
||||
client->permission = getDefaultPermissions();
|
||||
|
||||
xwrite(fd, GREETING, sizeof(GREETING) - 1);
|
||||
write(fd, GREETING, sizeof(GREETING) - 1);
|
||||
}
|
||||
|
||||
static void free_cmd_list(GSList *list)
|
||||
@ -295,11 +296,11 @@ void client_new(int fd, const struct sockaddr *addr, int uid)
|
||||
|
||||
if (num_clients >= client_max_connections) {
|
||||
g_warning("Max Connections Reached!");
|
||||
xclose(fd);
|
||||
close(fd);
|
||||
return;
|
||||
}
|
||||
|
||||
client = xcalloc(1, sizeof(*client));
|
||||
client = g_new0(struct client, 1);
|
||||
list_add(&client->siblings, &clients);
|
||||
++num_clients;
|
||||
client_init(client, fd);
|
||||
@ -804,7 +805,7 @@ void client_vprintf(struct client *client, const char *fmt, va_list args)
|
||||
/* wtf.. */
|
||||
return;
|
||||
|
||||
buffer = xmalloc(length + 1);
|
||||
buffer = g_malloc(length + 1);
|
||||
vsnprintf(buffer, length + 1, fmt, args);
|
||||
client_write(client, buffer, length);
|
||||
free(buffer);
|
||||
|
@ -293,6 +293,8 @@ listen_in_event(G_GNUC_UNUSED GIOChannel *source,
|
||||
|
||||
fd = accept(listen_fd, &sockAddr, &socklen);
|
||||
if (fd >= 0) {
|
||||
set_nonblocking(fd);
|
||||
|
||||
client_new(fd, &sockAddr, get_remote_uid(fd));
|
||||
} else if (fd < 0 && errno != EINTR) {
|
||||
g_warning("Problems accept()'ing");
|
||||
|
Loading…
Reference in New Issue
Block a user