On Mon, Mar 23, 2009 at 11:49 AM, <[email protected]> wrote:

> There are a few bugs in hlds_run that have been bugging me for some
> time, and I hope posting them here might get it noticed by someone at
> Valve who can fix them.
>
> In the hlds_run file is the following code:
>
> if test 1 -eq $PID_FILE_SET && test -n "$PID_FILE"; then
>    HL_CMD="$HL $PARAMS -pidfile $PID_FILE"
> else
>    HL_CMD="$HL $PARAMS"
> fi
>
>
> What it does is check if the PID_FILE_SET variable equals 1 and the
> PID_FILE variable is not empty. If both of those tests pass, then it
> appends the -pidfile argument (along with the contents of the PID_FILE
> variable) to the list of arguments to pass to the actual binary.
>
> The problem is that if the list of arguments already contains this
> information, -pidfile is passed to hlds_run more than once. You end up
> with command lines like this:
>
> ./hlds_amd -debug -game cstrike -pidfile /usr/local/hlds/hlds.pid
> +maxplayers 17 +map gg_pool_day -pidfile /usr/local/hlds/hlds.pid
>
> What the code should be doing is adding those arguments if the -debug
> parameter was passed, AND the -pidfile argument was not passed. Fixing
> this one gets a little messy. (Related issue: PID_FILE_SET variable
> should be removed from the code completely.)
>
> Here's code that does what is is supposed to do and also sets a value
> for the pidfile if the user doesn't properly pass it after -pidfile (the
> arguments would look like "hlds_run ... -pidfile" in this erroneous
> case).
>
>
> PID_PASSED="`grep -e -pidfile $PARAMS`";
>
> if test -n "$PID_PASSED" || test -n "$DEBUG"; then
>    if test -z "$PID_FILE"; then
>        PID_FILE="hlds.$$.pid"
>    fi
> fi
>
> if test -n "$DEBUG" && test -z "$PID_PASSED"; then
>    HL_CMD="$HL $PARAMS -pidfile $PID_FILE"
> else
>    HL_CMD="$HL $PARAMS"
> fi
>
>
>
>
> Just above that code we find this gem:
>
> if test "unlimited" != `ulimit -c` && test "`ulimit -c`" -eq 0 ; then
>    ulimit -c 2000
> fi
>
>
> It checks if the output from "ulimit -c" is not equal to "unlimited" AND
> the output from "ulimit -c" equals 0. If it equals 0, it certainly isn't
> equal to "umlimited" or anything else besides 0. The first line should
> simply be:
>
> if test "`ulimit -c`" -eq 0 ; then
>
>
>
> The steam user and password junk should all be removed since that hasn't
> been required in ages.
>
> Also, the comment for line 25 has a typo, and is flat out wrong.
>
> If anyone wants the file with all of the fixes in it, let me know and
> I'll post it somewhere. (You too Valve; don't be shy.)
>
> With that said, I'm glad to see that hlds_run was actually modified in
> the hlds0319 beta.
>
>
> --
> Andy
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
> please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlds_linux
>
I need that one.Thanks for the proposal.

Tyrael
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlds_linux

Reply via email to