projects
/
NeonServV5.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2889b84
)
added more debug output to cmd_nicklist
author
pk910
<philipp@zoelle1.de>
Mon, 20 Aug 2012 21:42:09 +0000
(23:42 +0200)
committer
pk910
<philipp@zoelle1.de>
Mon, 20 Aug 2012 21:43:47 +0000
(23:43 +0200)
src/modules/NeonServ.mod/cmd_neonserv_nicklist.c
patch
|
blob
|
history
diff --git
a/src/modules/NeonServ.mod/cmd_neonserv_nicklist.c
b/src/modules/NeonServ.mod/cmd_neonserv_nicklist.c
index c978247e8d30302deff963b81c9ab29f16d756f0..d8fe67a0bc3c52a1a08db348a55bf92867f53666 100644
(file)
--- a/
src/modules/NeonServ.mod/cmd_neonserv_nicklist.c
+++ b/
src/modules/NeonServ.mod/cmd_neonserv_nicklist.c
@@
-22,37
+22,46
@@
* argv[1] (optional) nick mask
*/
static USERLIST_CALLBACK(neonserv_cmd_nicklist_userlist_lookup);
* argv[1] (optional) nick mask
*/
static USERLIST_CALLBACK(neonserv_cmd_nicklist_userlist_lookup);
-static void neonserv_cmd_nicklist_async1(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, char *nickmask, int
syncuser
s);
+static void neonserv_cmd_nicklist_async1(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, char *nickmask, int
flag
s);
static void neonserv_cmd_nicklist_synchronize_user(struct ChanNode *chan, struct UserNode *user, int access);
static void neonserv_cmd_nicklist_synchronize_user(struct ChanNode *chan, struct UserNode *user, int access);
+#define NEONSERV_CMD_NICKLIST_FLAG_SYNCUSERS 0x01
+#define NEONSERV_CMD_NICKLIST_FLAG_NOWHO 0x02
+#define NEONSERV_CMD_NICKLIST_FLAG_VISCOUNT 0x04
+
struct neonserv_cmd_nicklist_cache {
struct ClientSocket *client, *textclient;
struct UserNode *user;
struct Event *event;
char *nickmask;
struct neonserv_cmd_nicklist_cache {
struct ClientSocket *client, *textclient;
struct UserNode *user;
struct Event *event;
char *nickmask;
- int
syncuser
s;
+ int
flag
s;
};
CMD_BIND(neonserv_cmd_nicklist) {
};
CMD_BIND(neonserv_cmd_nicklist) {
- int syncusers = 0;
- if(argc && !stricmp(argv[0], "sync")) {
- if(!checkChannelAccess(user, chan, "channel_canadd", 0)) {
- if(isGodMode(user)) {
- event->flags |= CMDFLAG_OPLOG;
- } else {
- reply(textclient, user, "NS_ACCESS_DENIED");
- return;
+ int flags = 0;
+ while(argc) {
+ if(!stricmp(argv[0], "sync")) {
+ if(!checkChannelAccess(user, chan, "channel_canadd", 0)) {
+ if(isGodMode(user)) {
+ event->flags |= CMDFLAG_OPLOG;
+ } else {
+ reply(textclient, user, "NS_ACCESS_DENIED");
+ return;
+ }
}
}
- }
+ flags |= NEONSERV_CMD_NICKLIST_FLAG_SYNCUSERS;
+ event->flags |= CMDFLAG_LOG;
+ } else if(argc && !stricmp(argv[0], "nowho") && isGodMode(user)) {
+ flags |= NEONSERV_CMD_NICKLIST_FLAG_NOWHO;
+ } else if(argc && !stricmp(argv[0], "viscount") && isGodMode(user)) {
+ flags |= NEONSERV_CMD_NICKLIST_FLAG_VISCOUNT;
+ } else
+ break;
argv++;
argc--;
argv++;
argc--;
- syncusers = 1;
- event->flags |= CMDFLAG_LOG;
}
}
- if(argc && !stricmp(argv[0], "nowho") && isGodMode(user)) {
- argv++;
- argc--;
- neonserv_cmd_nicklist_async1(client, textclient, user, chan, event, (argc ? argv[0] : NULL), syncusers);
+ if(flags & NEONSERV_CMD_NICKLIST_FLAG_NOWHO) {
+ neonserv_cmd_nicklist_async1(client, textclient, user, chan, event, (argc ? argv[0] : NULL), flags);
return;
}
struct neonserv_cmd_nicklist_cache *cache = malloc(sizeof(*cache));
return;
}
struct neonserv_cmd_nicklist_cache *cache = malloc(sizeof(*cache));
@@
-68,13
+77,13
@@
CMD_BIND(neonserv_cmd_nicklist) {
cache->nickmask = strdup(argv[0]);
} else
cache->nickmask = NULL;
cache->nickmask = strdup(argv[0]);
} else
cache->nickmask = NULL;
- cache->
syncusers = syncuser
s;
+ cache->
flags = flag
s;
get_userlist_with_invisible(chan, module_id, neonserv_cmd_nicklist_userlist_lookup, cache);
}
static USERLIST_CALLBACK(neonserv_cmd_nicklist_userlist_lookup) {
struct neonserv_cmd_nicklist_cache *cache = data;
get_userlist_with_invisible(chan, module_id, neonserv_cmd_nicklist_userlist_lookup, cache);
}
static USERLIST_CALLBACK(neonserv_cmd_nicklist_userlist_lookup) {
struct neonserv_cmd_nicklist_cache *cache = data;
- neonserv_cmd_nicklist_async1(cache->client, cache->textclient, cache->user, chan, cache->event, cache->nickmask, cache->
syncuser
s);
+ neonserv_cmd_nicklist_async1(cache->client, cache->textclient, cache->user, chan, cache->event, cache->nickmask, cache->
flag
s);
if(cache->nickmask)
free(cache->nickmask);
free(cache);
if(cache->nickmask)
free(cache->nickmask);
free(cache);
@@
-106,11
+115,11
@@
static int neonserv_cmd_nicklist_sort(const void *a, const void *b) {
return i_a - i_b;
}
return i_a - i_b;
}
-static void neonserv_cmd_nicklist_async1(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, char *nickmask, int
syncuser
s) {
+static void neonserv_cmd_nicklist_async1(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, char *nickmask, int
flag
s) {
MYSQL_RES *res;
MYSQL_ROW row, defaults = NULL;
struct Table *table;
MYSQL_RES *res;
MYSQL_ROW row, defaults = NULL;
struct Table *table;
- char *content[
3
];
+ char *content[
4
];
int userlistlen, i, j;
int db_enfops, db_enfvoice;
int caccess, synced_user;
int userlistlen, i, j;
int db_enfops, db_enfvoice;
int caccess, synced_user;
@@
-119,9
+128,15
@@
static void neonserv_cmd_nicklist_async1(struct ClientSocket *client, struct Cli
int chanuser_count;
char statebuf[5];
char accessbuf[9];
int chanuser_count;
char statebuf[5];
char accessbuf[9];
+ char viscountbuf[5];
int uaccess;
int uaccess;
- table = table_init(3, chan->usercount + 1, 0);
+ i = 3;
+ if(flags & NEONSERV_CMD_NICKLIST_FLAG_VISCOUNT) {
+ i++;
+ content[3] = "VisCount";
+ }
+ table = table_init(i, chan->usercount + 1, 0);
content[0] = get_language_string(user, "NS_NICKLIST_NICK");
content[1] = get_language_string(user, "NS_NICKLIST_STATE");
content[2] = get_language_string(user, "NS_NICKLIST_ACCESS");
content[0] = get_language_string(user, "NS_NICKLIST_NICK");
content[1] = get_language_string(user, "NS_NICKLIST_STATE");
content[2] = get_language_string(user, "NS_NICKLIST_ACCESS");
@@
-173,7
+188,7
@@
static void neonserv_cmd_nicklist_async1(struct ClientSocket *client, struct Cli
if(!stricmp(chanuser->user->auth, userlist[j][1])) {
uaccess = atoi(userlist[j][0]);
if((((chanuser->flags & CHANUSERFLAG_OPPED) && uaccess < db_enfops) || ((chanuser->flags & CHANUSERFLAG_VOICED) && uaccess < db_enfvoice)) && !isNetworkService(chanuser->user)) {
if(!stricmp(chanuser->user->auth, userlist[j][1])) {
uaccess = atoi(userlist[j][0]);
if((((chanuser->flags & CHANUSERFLAG_OPPED) && uaccess < db_enfops) || ((chanuser->flags & CHANUSERFLAG_VOICED) && uaccess < db_enfvoice)) && !isNetworkService(chanuser->user)) {
- if(
syncusers
) {
+ if(
flags & NEONSERV_CMD_NICKLIST_FLAG_SYNCUSERS
) {
if((chanuser->flags & CHANUSERFLAG_OPPED) && (db_enfops < caccess || isGodMode(user))) {
if(db_enfops >= caccess)
event->flags |= CMDFLAG_OPLOG;
if((chanuser->flags & CHANUSERFLAG_OPPED) && (db_enfops < caccess || isGodMode(user))) {
if(db_enfops >= caccess)
event->flags |= CMDFLAG_OPLOG;
@@
-203,7
+218,7
@@
static void neonserv_cmd_nicklist_async1(struct ClientSocket *client, struct Cli
}
}
if(!uaccess && (chanuser->flags & CHANUSERFLAG_OPPED_OR_VOICED) && !isNetworkService(chanuser->user)) {
}
}
if(!uaccess && (chanuser->flags & CHANUSERFLAG_OPPED_OR_VOICED) && !isNetworkService(chanuser->user)) {
- if(
syncusers
) {
+ if(
flags & NEONSERV_CMD_NICKLIST_FLAG_SYNCUSERS
) {
if((chanuser->flags & CHANUSERFLAG_OPPED) && (db_enfops < caccess || isGodMode(user))) {
if(db_enfops >= caccess)
event->flags |= CMDFLAG_OPLOG;
if((chanuser->flags & CHANUSERFLAG_OPPED) && (db_enfops < caccess || isGodMode(user))) {
if(db_enfops >= caccess)
event->flags |= CMDFLAG_OPLOG;
@@
-230,7
+245,10
@@
static void neonserv_cmd_nicklist_async1(struct ClientSocket *client, struct Cli
} else if(!uaccess)
sprintf(accessbuf, "0");
content[2] = accessbuf;
} else if(!uaccess)
sprintf(accessbuf, "0");
content[2] = accessbuf;
-
+ if(flags & NEONSERV_CMD_NICKLIST_FLAG_VISCOUNT) {
+ sprintf(viscountbuf, "%d", chanuser->visCount);
+ content[3] = viscountbuf;
+ }
table_add(table, content);
}
table_add(table, content);
}
@@
-244,7
+262,7
@@
static void neonserv_cmd_nicklist_async1(struct ClientSocket *client, struct Cli
reply(textclient, user, "NS_TABLE_COUNT", table->length - 1);
table_free(table);
if(synced_user) {
reply(textclient, user, "NS_TABLE_COUNT", table->length - 1);
table_free(table);
if(synced_user) {
- if(!
syncusers
)
+ if(!
(flags & NEONSERV_CMD_NICKLIST_FLAG_SYNCUSERS)
)
reply(textclient, user, "NS_NICKLIST_SYNC", db_enfops, db_enfvoice);
else
logEvent(event);
reply(textclient, user, "NS_NICKLIST_SYNC", db_enfops, db_enfvoice);
else
logEvent(event);