Page 1 of 2

module courtroom

Posted: Thu Feb 09, 2006 10:36 am
by Gavin
i am strying to compile courtroom on Unreal 3.2.4 system, but gives me the following errors when i compile it:

courtroom.c3:1: warning: "IsSkoAdmin" redefined
In file included from courtroom.c:11:
../include/struct.h:665:1: warning: this is the location of the previous definition


Then when i try to load it, it says :

[09:04:35] -Inferno.FireServ.Za.Net- *** Notice -- unrealircd.conf:18: loadmodule src/modules/courtroom.so: failed to load: tmp/550BF7A3.courtroom.so: Undefined symbol "m_part".

Any ideas??

I'm getting the same error, so you know you're not alone.

Posted: Mon Feb 20, 2006 11:45 am
by ReverendSho
I'm not sure what I'm doing wrong. I've gone to AngryWolf's site where I downloaded this fron, but I can't find anything to help. I'm trying to install the courtroom module, and when I rehash, it gives me an error. My box is a FreeBSD box and I run Unreal 3.2.4.

Oh, Gavin, here's how to fix that compiler error. I found it in another thread here:

courtroom.c3:1: warning: "IsSkoAdmin" redefined
In file included from courtroom.c:11:

Delete the line that says #define "IsSkoAdmin" from the module, it'll still compile fine. That doesn't fix the rehash error, that I get also, but it'll fix the compiler thing.

Error on re-hash:
[02:44] *** (s) Notice -- Got signal SIGHUP, reloading unrealircd.conf file
[02:44] *** (s) Notice -- Loading IRCd configuration ..
[02:44] *** (s) Notice -- unrealircd.conf:36: loadmodule src/modules/courtroom.so: failed to load: tmp/5AC693E5.courtroom.so: Undefined symbol "m_part"
[02:44] *** (s) Notice -- error: IRCd configuration failed to load

What is wrong with the module, or what can I do to get it to work? I've checked documentation, and could not find any more information on this problem.

Any assistance would be appreciated.

Posted: Tue Feb 21, 2006 1:39 am
by Jason
The lite version works fine. Its just the +U, not the /quarantine stuff.

Posted: Mon Mar 06, 2006 1:32 am
by carlosagv
http://www.freewebtown.com/carlosagv/IR ... rtroom.zip

fixed version tested with freebsd 5.4 and windows

Posted: Sun Jul 30, 2006 5:33 pm
by SpaceDoG
Ok I just installed this on my server and discovered a bad bug. If you quarantine someone and the unquarantine them they are still +U. That caused an issue on my server where I did /qlist and it killed the IRCd.

Posted: Mon Jul 31, 2006 11:59 am
by mexx3k
SpaceDoG wrote:That caused an issue on my server where I did /qlist and it killed the IRCd.
gut the same here ...

There are also problems when a server gets delinked and links back in ... the "+U" is still set on the user ...

Posted: Wed Aug 02, 2006 8:32 pm
by SpaceDoG
Is it possible for someone out there to fix this? I would but I have no clue what I'm doing.

Re: module courtroom

Posted: Mon Feb 09, 2009 3:22 am
by chevyman2002
Has anyone found a fix for this module? Or can someone provide an updated link as the previous one no longer works. I miss this module :(.

Re: module courtroom

Posted: Sat Jul 11, 2009 4:48 am
by chevyman2002
For anyone interested, I got bored tonight and decided to finally look more into it than before. I made the following two changes at line 832:

//(void) m_part(cptr, cptr, 3, parv);
do_cmd(cptr, cptr, "PART", 3, parv);

While i'm still in the midst of playing with it, it DOES appear to be working (compiles and loads properly). I'm sure there will be incidents of crashing and that this isn't the proper way to do it, but I really don't feel like searching through all the code tbh... maybe this will help someone out..

Re: module courtroom

Posted: Sun Jul 12, 2009 6:59 pm
by chevyman2002
I've watched the views on this topic and can see that people are still interested in it, so I'm giving another response. I have changed the command from /quarantine to /suspend and made some syntax changes [nothing major]. Something i am noticing while testing this module on two linked servers is that it doesn't syncronize properly. I can 'suspend' a user accross the servers but sometimes when that user disconnects and you use /qlist to display active users who are 'suspended', it will crash that server (not the other server, thus far). If anyone has suggestions to speed the process of getting this module back on its feet, please let me know! I will gladly host a download for this module once completed (if stable).

Re: module courtroom

Posted: Mon Jul 13, 2009 1:01 am
by Stealth
From the description of the problem it seems like the module is not properly cleaning up after itself when a user quits or is killed.

Re: module courtroom

Posted: Mon Jul 13, 2009 2:11 am
by chevyman2002
I appreciate you replying to this post, as old as it is. I will start off by admitting that I've never done modules for Unreal, ever. I don't understand where the problem would be. Granted, it would seem as if when the command /qlist is called and it searches for all users that have the 'Q' flag (usermode 'U'), one server says the user doesn't exist (the server they were on) and the other says the user does exist [the best I can tell] and causes the local server that had the /qlist command originate from to crash. I have created a download for the file as it sits as of the time of this post found here. Feel free [anyone] to check it out and see if there's anything you'd like to add/remove and most certainly if you see what may cause the problems listed above.

For the sake of saving people time, here's the functions respectively..

When the user quits [presumably]..

Code: Select all

static int cb_quit(aClient *sptr, char *comment)
{
	clear_qflag(sptr);
	return 0;
}
The called function 'clear_qflag()'

Code: Select all

static void clear_qflag(aClient *cptr)
{
	QFlag *q;

	if ((q = find_qflag(cptr)))
		del_qflag(q);
}
Which calls the functions..

Code: Select all

static QFlag *find_qflag(aClient *cptr)
{
	QFlag *q;

	for (q = QFlagsList; q; q = q->next)
		if (q->cptr == cptr)
			break;

	return q;
}

static inline void del_qflag(QFlag *q)
{
	DelListItem(q, QFlagsList);
	MyFree(q);
}
Does "DelListItem(q, QFlagsList);" delete it accross all linked servers?

Re: module courtroom

Posted: Mon Jul 13, 2009 5:28 am
by Stealth
Each server should be responsible for deleting the user out of its own tables.

Re: module courtroom

Posted: Mon Jul 13, 2009 9:19 pm
by katsklaw
DelListItem doesn't need to propagate across the net because the QUIT and PART commands do and every ircd that has this module loaded should do their own DelListItem on their own data tables as stealth was saying.

Few Questions,

1> What's the TS difference on all the servers when this happens?
2> Is this module loaded on all servers?
3> Are we positive this module is compatible with the unreal version being used on? (seeing stuff like "courtroom.c3:1: warning: "IsSkoAdmin" redefined " makes me wonder since IsSkoAdmin is already defined in the ircd struct.) I can see this as a problem if the user in question is what the ircd regards as a IsSkoAdmin.

Re: module courtroom

Posted: Thu Jul 16, 2009 4:39 am
by chevyman2002
1) what is the best way to determine this??
2) yes
3) it is angrywolf's module originally written for 3.2-RC2.. i have only done light mods to this module, as i lack sufficient knowledge of the API and Unreal's structure.. if the current code is so fubar'd or incompatible, i may consider reading up on the documentation and other source code to attempt to fix it; otherwise, i'll probably just leave it alone and cut the losses.. it's just a nice module that quite a few people seem interested in having back once again..

let me know what your thoughts are, thanks!