projects
/
NeonServV5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'IOMultiplexer.git/master' into development
[NeonServV5.git]
/
src
/
BanNode.c
diff --git
a/src/BanNode.c
b/src/BanNode.c
index 7b98d85a030fd0a6e7e78039579d7e2e447f518f..df3e38e9485049add86c3af208ee244790c7f704 100644
(file)
--- a/
src/BanNode.c
+++ b/
src/BanNode.c
@@
-1,4
+1,4
@@
-/* BanNode.c - NeonServ v5.
3
+/* BanNode.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
@@
-23,22
+23,28
@@
struct BanNode* addChannelBan(struct ChanNode *chan, char *mask) {
struct BanNode *ban = malloc(sizeof(*ban));
ban->chan = chan;
ban->mask = strdup(mask);
struct BanNode *ban = malloc(sizeof(*ban));
ban->chan = chan;
ban->mask = strdup(mask);
+ SYNCHRONIZE(cache_sync);
ban->next = chan->bans;
chan->bans = ban;
ban->next = chan->bans;
chan->bans = ban;
+ DESYNCHRONIZE(cache_sync);
return ban;
}
struct BanNode* getMatchingChannelBan(struct ChanNode *chan, char *mask) {
return ban;
}
struct BanNode* getMatchingChannelBan(struct ChanNode *chan, char *mask) {
+ SYNCHRONIZE(cache_sync);
struct BanNode *cban;
for(cban = chan->bans; cban; cban = cban->next) {
if(!match(cban->mask, mask)) {
struct BanNode *cban;
for(cban = chan->bans; cban; cban = cban->next) {
if(!match(cban->mask, mask)) {
+ DESYNCHRONIZE(cache_sync);
return cban;
}
}
return cban;
}
}
+ DESYNCHRONIZE(cache_sync);
return NULL;
}
void removeChannelBanMask(struct ChanNode *chan, char *mask) {
return NULL;
}
void removeChannelBanMask(struct ChanNode *chan, char *mask) {
+ SYNCHRONIZE(cache_sync);
struct BanNode *cban, *last = NULL;
for(cban = chan->bans; cban; cban = cban->next) {
if(!strcmp(cban->mask, mask)) {
struct BanNode *cban, *last = NULL;
for(cban = chan->bans; cban; cban = cban->next) {
if(!strcmp(cban->mask, mask)) {
@@
-52,9
+58,11
@@
void removeChannelBanMask(struct ChanNode *chan, char *mask) {
} else
last = cban;
}
} else
last = cban;
}
+ DESYNCHRONIZE(cache_sync);
}
void removeChannelBan(struct BanNode *ban) {
}
void removeChannelBan(struct BanNode *ban) {
+ SYNCHRONIZE(cache_sync);
struct BanNode *cban, *last = NULL;
struct ChanNode *chan = ban->chan;
for(cban = chan->bans; cban; cban = cban->next) {
struct BanNode *cban, *last = NULL;
struct ChanNode *chan = ban->chan;
for(cban = chan->bans; cban; cban = cban->next) {
@@
-69,9
+77,11
@@
void removeChannelBan(struct BanNode *ban) {
} else
last = cban;
}
} else
last = cban;
}
+ DESYNCHRONIZE(cache_sync);
}
void removeChannelBans(struct ChanNode *chan) {
}
void removeChannelBans(struct ChanNode *chan) {
+ SYNCHRONIZE(cache_sync);
struct BanNode *ban, *next;
for(ban = chan->bans; ban; ban = next) {
next = ban->next;
struct BanNode *ban, *next;
for(ban = chan->bans; ban; ban = next) {
next = ban->next;
@@
-79,4
+89,5
@@
void removeChannelBans(struct ChanNode *chan) {
free(ban);
}
chan->bans = NULL;
free(ban);
}
chan->bans = NULL;
+ DESYNCHRONIZE(cache_sync);
}
}