projects
/
NeonServV5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed renameAccount function (merging mode)
[NeonServV5.git]
/
src
/
IRCQueue.c
diff --git
a/src/IRCQueue.c
b/src/IRCQueue.c
index d68f098b0bd9fd64c2a8baeea93cd1051e2c3903..1c4997207aeb8736d506c218dfc2e651b24cc7b2 100644
(file)
--- a/
src/IRCQueue.c
+++ b/
src/IRCQueue.c
@@
-1,4
+1,4
@@
-/* IRCQueue.c - NeonServ v5.
5
+/* IRCQueue.c - NeonServ v5.
6
* Copyright (C) 2011-2012 Philipp Kreil (pk910)
*
* This program is free software: you can redistribute it and/or modify
* Copyright (C) 2011-2012 Philipp Kreil (pk910)
*
* This program is free software: you can redistribute it and/or modify
@@
-45,6
+45,7
@@
static struct BotQueue *initialize_queue(struct ClientSocket *client) {
}
queue->client = client;
client->queue = queue;
}
queue->client = client;
client->queue = queue;
+ queue->iofd = NULL;
queue->penalty = 0;
queue->fastqueue_first = NULL;
queue->fastqueue_last = NULL;
queue->penalty = 0;
queue->fastqueue_first = NULL;
queue->fastqueue_last = NULL;
@@
-118,9
+119,13
@@
int queue_add(struct ClientSocket *client, char* msg, int len) {
if(!queue->iofd) {
struct timeval timeout;
gettimeofday(&timeout, NULL);
if(!queue->iofd) {
struct timeval timeout;
gettimeofday(&timeout, NULL);
- queue->rem_penalty = (MAXPENALTY - queue->penalty) + 1;
+ if(queue->penalty >= MAXPENALTY)
+ queue->rem_penalty = (queue->penalty - MAXPENALTY)+1;
+ else
+ queue->rem_penalty = queue->penalty;
timeout.tv_sec += queue->rem_penalty;
queue->iofd = iohandler_timer(timeout, queue_callback);
timeout.tv_sec += queue->rem_penalty;
queue->iofd = iohandler_timer(timeout, queue_callback);
+ queue->iofd->data = queue;
}
} else {
struct QueueEntry *entry = malloc(sizeof(*entry));
}
} else {
struct QueueEntry *entry = malloc(sizeof(*entry));
@@
-241,9
+246,13
@@
static IOHANDLER_CALLBACK(queue_callback) {
if(queue->penalty > 0) {
struct timeval timeout;
gettimeofday(&timeout, NULL);
if(queue->penalty > 0) {
struct timeval timeout;
gettimeofday(&timeout, NULL);
- queue->rem_penalty = (MAXPENALTY - queue->penalty) + 1;
+ if(queue->penalty >= MAXPENALTY)
+ queue->rem_penalty = (queue->penalty - MAXPENALTY)+1;
+ else
+ queue->rem_penalty = queue->penalty;
timeout.tv_sec += queue->rem_penalty;
queue->iofd = iohandler_timer(timeout, queue_callback);
timeout.tv_sec += queue->rem_penalty;
queue->iofd = iohandler_timer(timeout, queue_callback);
+ queue->iofd->data = queue;
} else {
queue->iofd = NULL;
queue->penalty = 0;
} else {
queue->iofd = NULL;
queue->penalty = 0;