Ok, I don´t know if it is a bug, but I have problems extracting the zipped stats files Airo sends to my FTP every hour.
I always get an out of memory error if I try to extract them with this script:
<?php
$zip = new ZipArchive; if ($zip->open('Airio.sta1.zip') === TRUE) { $zip->extractTo('./'); $zip->close(); echo 'ok'; } else { echo 'failed'; }
?>
I asked my hosting company if there are any restrictions on the server to prevent running this script.
They answered that the zip file is the problem: "The included values for the file size in bytes are wrong. So the function is trying to return a way too big amount of data which caused the excess of the available memory" (Sorry for bad Englisch - translated from German to English here)
Once you are back from holiday, EQWorry, it would be nice to have a look at your zip function.
EDIT:
If I download the ZIP Airio created I am able to extract it with WinRAR. Then if I zip the 4 files again using WinRAR I am also able to extract them using my script...
Now I have got the PB limit working, every minute I see these chat messages:
PB time limit applied, server is closed...
PB time limit removed, server is opened...
Should I be worried about that? It seems to be working OK.
EDIT: Back to answer my own question.
LockPrimeUsersMax= and LockPrimeUsersMin= have to be different values, otherwise it's permanently turning itself off and on.
Turkey, you're right it is strange the newer file is ignored. I wanted to have some backwards compatibility, but obviously it leads rather to confusion than advantage. In the next version I'll remove the support for old config files completely. It will make the code cleaner and the causes of Airio misbehavior more obvious as well.
Crady, I guess you're right the created ZIP file is not quite OK. It works e.g. in WinRar, but only for extraction. If you add something, the archive is suddenly broken. The problem is I use external library for creating ZIPs, so I'll need to look closer at the settings used or other available options or newer version...
Deslotted, well that constant messages are not nice, certainly. They are very probably caused by some strange server time lock settings, with the status changing every minute. Check your time lock setting in SRV file, tell me what you're using now, switch to defaults until I see what's going on there...
Well I would suggest to be able to select which files to be sent unpacked to FTP until you find a solution. In my case I only need the Airio.sta.un.txt file which atm is as small as the zip of all 4 status files... So the traffic won´t increase much.
# Address of a (PHP) script to be run on every race start - string
# Airio will send the response as a typed message meaning you can
# create commands, e.g. "/msg ^3There are ^734 ^3people on chat!"
# Define more scripts by using starting/concatenating '+'. Tabs (%09)
# in response may be used for multiline output.
ScriptStart=
# Address of a (PHP) script to be run periodically - string
# Periodicity of the script in minutes - integer
ScriptTimed=
ScriptPeriod=2
Is correct this:
ScriptStart=go.php
So i want execute this script that is in the same folder of airio.
Is this possible ?
I've been playing around with a simple Twitter PHP script and am delighted to say (for someone who doesn't consider themselves much of a coder) that I have now got Airio to send (as admin) a "tweet" whenever someone starts a race (I just put the name of the script in the ScriptStart= line). Just so that if I am at a computer I can go and check on proceedings in LFSRemote. Not an earth-shattering thing in itself but at least it works! I've suggested to EQ that Twitter would be a great way to output data from races (especially long endurance ones, say, a tweet every 50 laps with the details of the top 3) - and maybe other stuff, fastest laps, retirements etc., so hopefully that function can be provided in due course. There are limitations on the length of message (140 characters) and calls per hour, but at least it seems do-able.
@ Hotmail : Ah, you're right about the times, my bad. 2.2.6 contains a fix, time is exported in 24 hour format.
@ Michele : To say the truth, I'm not sure the PHP script will work if specified this way, I'm really not sure. I'd expect a Web address there, but maybe if the local system is configured in some way to handle PHP files. About sharing the script, it is always great to have something to start with. And about export filter, there is no such thing, export to PB.txt (Lapper) file is always complete.
@ Framaris : Cool it works and LOL at your rusty French. As for 500servers, I'm not the one updating Airio there, I believe Franky does that when somebody requests an update. I guess I'll try to contact him and come up with some better arrangement so that the updates are available sooner.
@ Deslotted : Very nice, I've been playing with a Twitter library a bit, some basic updates are working in 2.2.6 being prepared now. But I'm thinking about just updating certain entries (such as who is online now, and what is the current server state), not creating new ones. This would require more testing though and also seeing what the "spamming" limits are.
@ Crady : Yup, you're right, not everyone is interested in both split and sector data. I'll see what can be done about it, a multifunction button comes to mind, turning on both, just splits, just sectors, and none...
Ok... I was just playing around with the Nickname filter...
Err...
Does it work for Jap/Chin etc. characters too? If I set all team mates to a limad level and copy/past our team Tag to PName=xxx I am able to connect although I deleted my own limad level and I also did not connect with with the admin pass...
If I delete the jap character and the colour of our Tag too the filter works.
Question 2:
How does Airio behave in the following:
We have 8 servers, 4 are at one blade (same IP, 4 different ports) and 4 on an other blade (same IP, 4 different ports). If we connect Airio to all 8 servers and one blade goes offline for some reason... Does Airio still work for the 4 remaining servers?
Another suggestion:
It is possible to disallow more than one connection from one IP. Would it also be possible to ban a player by IP? You know in Demo you can get thousands of licences... So a ban does not work here as it should...
Ok.. changing the IP is easy too.. But perhaps it helps keeping our servers clean if it is possible to store the IP of a banned guy for 24 hours...
Suggestion 2:
It is possible to define custom settings for each server by using Airio.serv.1.txt etc. ... It would be nice to use the same with the Airio.cfg.txt and Airio.tcd.txt too...
So I would be able to e.g. define a limad only for one Server (e.g. to help us as a Marshal during an event). Or I would be able to define another spin control at the "advanced" servers than at the "beginner" servers...
I may have found a little bug, I was playing with restrictions on FXR, when set to 26% cars can enter with 23% (not 24 or 22, only 23). Other GTR's don't suffer from this so that's why I'm posting it here.
Well, I would not be surprised if it won't work with Asian characters. Airio currently does not convert any Asian characters to Unicode, it leaves them in the original form. So, you may try to copy the team tag as it appears in Airio log file and see if that works.
I'm not sure what "blade" is here, but I get the meaning. Basically, Airio manages each connection to server individually, regardless of all other connections. A server (or group of servers) goes offline, their connections will close, the remaining will go on unperturbed. All connections may be broken, Airio would still run. With current state of things Airio will try to connect back to each disconnected server every 5 minutes, until the appropriate CON file is removed and the LFS server is back online and reachable. I may change this though to give it like 3 reconnect attempts andthen give up.
For anyone interested you should know the IP capturing is supported in FULL version only. I've been thinking about banning by IP several times, for now always shrinking away from the idea. Until patch Z the banning (and kicking) was done in demo using IP only, but it lead to unwelcome behavior, when wrong people were kicked (just because they used the same IP) and several drivers using the same provider (and one shared IP) were banned at once. Try running the doubled IP address filter and see in how many kicks this results, how many addresses are shared. Basically, I see banning by IP as giving more troubles than advantages.
With many items in CFG file this is clearly not possible, because they cover things common to the running instance, such as stats handling, external communications, language filter. With other items there it may be possible, but I fear it would complicate the setup. For example having different limads on different servers may be sometines desired, but it is really rather an exception. By definition the CFG file contains items common to one running instance, any server-depentant items would need to be moved to SRV file which is quite large even as it is.
With the TCD file the situation is somewhat similar, because they are track/car data common to the running instance. You may certainly see that having absolute freedom with the option to define these things differently on every server may be needed sometimes, but I wouldn't want to solve the configuration issues resulting from this. In case of step spin detection you mention you always have the option to activate that filter on one server and deactivate on another. But you're right, you cannot have two different values currently.
I'll give the TCD file yet some thought, see what items can be doubled in SRV file (such as DefaultCar is). I also feel some SRV items should be actually track/car dependant, e.g. to allow giving more points for driving with more demanding cars...
Hmmm, this look rather like incorrect configuration in the TCD file, with old value still applied somehow. Or it is because that FXR is then seen as FX2, one of the default-defined custom cars. Either remove that definition or disallow FX2 on appropriate server.
If I understood it right I am able to load the settings in this file by typing !si.
The settings of THIS file are going to server 1 and they are version 0 of a settings file, right?
Is this the same file that is loaded if I turn on the EndResetTime? - I guess so!
Well we have activated a Track rotation with several tracks, but we often change the track manually. If we choose a track that is not in our rotation list, the rotation stops. - OK!
So I set EndResetTime=30 and added the command /track=as2 into the Airio.set.1.txt.
But If I connect to our server - and it was empty the last hours - another track is active... and the Quali time I set by /qual=10 is something different too.
Airio 2.2.6 is released, containing some of the above mentioned fixes (timed messages, format of exported time, ZIP library used). New is !results or just !rs command showing last race results by car categories. It is also possible now to use IncludeFile directive in SRV and CFG files allowing config file customizations. Completely removed is support for 2.1.8 and lower versions configuration files (such as Airio.cfg.nc.txt, Airio.cfg.lc.txt, and Airio.cfg.tc.txt). These are completely ignored to address some confusion and unexpected behavior. See the changelog for more information.
All your suppositions are correct, I believe. The timer to call default server SET file starts when last driver disconnects. So if that server was empty when you did the config changes, the timer never starts and never calls the SET file. Try connecting there, disconnecting and watch Airio system log. This feature should work, it did last time I checked.
Well, I'm not a Linux guru, but the FromBinary method is in Airio for many months now and nobody reported troubles with that. So my guess would be you need to add some other Mono packages or update Mono. People running Airio under Linux use these mono packages: mono-runtime, libmono-corlib2.0-cil, libmono-system2.0-cil. I hope this helps...
This is the mono version in my machine.
Is it "bad" ?
Mono JIT compiler version 1.2.2.1, (C) 2002-2006 Novell, Inc and Contributors. www.mono-project.com
TLS: normal
GC: Included Boehm (with typed GC)
SIGSEGV: normal
Disabled: none
Well, the most simplest answer is that your Mono is outdated. I'm running Ubuntu Jaunty (9.04) and it has Mono (mono-jit package) version 2.0.1-4. You may take a look here for Debian repositories with fresh Mono.
Good luck
PS: Perhaps, the minimal version of Mono to run Airio without problem is 1.9.1