}
static int
-create_client(int fd, struct sockaddr_storage *addr, u_int8_t rtr_version,
- time_t ttl)
+create_client(int fd, struct sockaddr_storage *addr, u_int8_t rtr_version)
{
struct client *client;
client->sin_port = SADDR_IN6(addr)->sin6_port;
}
client->rtr_version = rtr_version;
- client->expiration = time(NULL) + ttl;
return clients_db_add_client(client);
}
int
-update_client(int fd, struct sockaddr_storage *addr, u_int8_t rtr_version,
- time_t ttl)
+update_client(int fd, struct sockaddr_storage *addr, u_int8_t rtr_version)
{
struct client *client;
client = get_client(addr, rtr_version);
if (client == NULL)
- return create_client(fd, addr, rtr_version, ttl);
- client->expiration = time(NULL) + ttl;
+ return create_client(fd, addr, rtr_version);
+ client->fd = fd;
return 0;
}
#define SRC_CLIENTS_H_
#include <arpa/inet.h>
-#include <time.h>
struct client {
int fd;
};
in_port_t sin_port;
u_int8_t rtr_version;
- /* TODO forget clients when the expiration time is reached */
- time_t expiration;
};
int clients_db_init(void);
-int update_client(int fd, struct sockaddr_storage *, u_int8_t, time_t);
+int update_client(int fd, struct sockaddr_storage *, u_int8_t);
size_t client_list(struct client **);
void clients_db_destroy(void);
return NULL;
/* RTR Version ready, now update client */
- /* TODO Remove this hardcoded ttl */
- err = update_client(param.client_fd, ¶m.client_addr, rtr_version,
- 3600);
+ err = update_client(param.client_fd, ¶m.client_addr, rtr_version);
if (err)
return NULL;
arg->client_fd = client_fd;
arg->client_addr = client_addr;
- /*
- * FIXME Handle session IDs, serial IDs, protocol version
- */
errno = pthread_create(&thread, NULL, client_thread_cb, arg);
if (errno) {
warn("Could not spawn the client's thread");