PDA

View Full Version : ioFTPD v6.1.0 Beta Released


Yil
04-30-2007, 03:25 AM
Good news! ioFTPD can now be run as a real service! CPSV for FXP is available! Support for a semi-stealth mode (Microsoft broke real stealth for anything less than a network driver/firewall application) allows the server to act dumb and just drop the connection without printing anything if the IP/host isn't recognized as belonging to any user. Crc32 support for scripters! Fixed the No_SubDir_Sizing option! Plus lots of other new features and fixes.

With this release the majority of features people have requested have all been added. There are still a few things to do (like maybe builtin zip support for itcl scripters) and I have a few ideas like download counters for files that show up in directory listings, and mandatory requirements for host/ip masks (i.e. must supply 2 or 3 octets), but the majority of stuff is done. It's bug hunt mode now.

Now for the bad news! I haven't tested this release very well so I tagged this one as a Beta. Please grab it and try all the new stuff and report back anything you notice not working right.

Latest Version:
ioFTPD-v6.1.4.zip (http://home.comcast.net/~yil/ioFTPD-v6.1.4.zip)


Worse news! From the random crashes in v6.0.x that some people are seeing there might be some memory corruption taking place. I haven't really looked for it yet. But that's going to be the priority now. For those of you who want to help I've also packaged up the source for this release. I'm not sure but it might be compilable with VS2005 Express C++ compiler that MS gives away free to everyone. If so let me know. I'm using the full VS2005 release so I know that works.

ioFTPD-v6.1.0-Src.zip (http://home.comcast.net/~yil/ioFTPD-v6.1.0-Src.zip)

Yil
04-30-2007, 03:26 AM
v6.1.0 Release Notes

1) Changed the file layout for releases. Instead of /ioFTPD/ioFPTD,etc
everything is now just under /ioFTPD. This shouldn't effect anything
if you have been using relative paths.

2) ioFTPD-Start used to link to a small batch file that started ioFTPD
and then after a delay started ioGUI. The link was necessary to specify
that the batch file should create the console window minimized to avoid
seeing it during login. All of this has been replaced with a simple
application that does the same thing. This removes the problem of updating
the link's location if not installed in c:\ioFTPD and totally hides the
console window instead of just minimizing it.

3) Added new executable (ServiceInstaller.exe) and documentation file
(ServiceInstaller-README.txt). *** PLEASE READ THE README FILE!!! ***
Click ServiceInstaller.exe and it will ask if you want to install ioFTPD
as a service. If you run it again you will be prompted if you want to
remove the installed service. By default it runs under the Local System
account which is what most services run as, but I found using your regular
user account makes more sense and is required if you wish to access
network shares since granting network access to system accounts like Local
System is a bad idea. More info about default options can be found in
ServiceInstaller-README.txt which also explains some issues to keep an
eye out for.

4) New ioFTPD.ini option (Compute_CRC). Set this to false if you don't have
an onUploadComplete event or the script/executable you are using ignores
the value computed by ioFTPD. Default is True.

5) The CRC32 value passed to OnUploadComplete is now 0 if Compute_CRC is
False or it's the CRC32 value for the entire file. Previously the CRC
was only for the resumed portion of the upload which made no sense. I did
find a way to merge CRC32 values for a file so it only does the work once
which I think is cool. OnUploadError now always returns 0 for the CRC32
value.

6) New iTCL command (crc32):
crc32 filename [startPos] [length] [crcValue]
startPos: file position to begin computation at (defaults to 0)
length : number of bytes to process (defaults to filesize - startPos)
crcValue: value to begin crc32 computation with (defaults to 0)
Thus [crc32 file] will return the crc32 checksum for the indicated file.


7) Added Support for the CPSV command. This allows you to send a single
file via TLS/SSL using client mode which is necessary in some cases for
FXP SSL. Alternative to using SSCN protocol which turns on this
behavior for all files being transfered until turned off.

8) Changed .ioFTPD parsing to better handle invalid files. Previously the
server would crash in some cases with badly formed and/or incomplete files.

9) Fixed directory listings not updating properly if No_SubDir_Sizing was
enabled.

10) Changed CreateUser() to check for an existing user of the same name
before trying to create a new user. This should fix "site adduser"
returning "500 user-name: Module ownership conflict." and instead return
the far more appropriate "500 user-name: User already exists." error.

11) Changed "site adduser". Currently if you have permission to access
the command (by default users with G1M flags) and you have been given
groupadmin rights to specific groups via
SITE CHANGE user-name ADMINGROUP GroupA
the first group listed in the admingroups list is the one new users will
be created in by default. If you have no admin rights to any groups
(i.e. ioFTPD) the command used to create the user in the NoGroup group,
however this is clearly the wrong behavior for a user with just the +G
flag since they should not be able to create users who are not in their
group and not subject to the group's slot limits.
Now users with just the +G flag (i.e. no 1M flags) and no specific
admingroups configured will not be able to create users and will get
the error:
500 adduser: No group admin rights found.
Users the +1 or +M flags without any admingroups defined will act as
before and create users in the NoGroup group.

12) New super cookie ( $[AdminGroups(index)] ).

13) Modified text/ftp/UserInfo to show AdminGroups now that it's important
to see which group is listed first.
NOTE: group names are case sensitive, and "site change user admingroup"
adds/removes groups from the list in a toggle like fashion. If a
group is already there is it removed, it not it is added. Thus ordering
the list to get a particular group first can be a bit tricky for long
lists.

14) Whenever a connection is rejected because the IP has been auto-banned for
too many reconnections an entry is now recorded in Error.log.

15) New ioFTPD.ini option (Reject_Unknown_Ips). Set this to True to
automatically disconnect connections before sending the FTP Welcome
message for hosts who do not match any user's IP/Host mask. An entry
in Error.log is also made with the rejected IP/host.

16) New site command (site findip). This will return users who match a
specific IP address or hostname along with the hostmask that matched.
Thus "site findip 127.0.0.1" might return something like:
ioFTPD: 127.0.0.1
test1: *
Wildcards or incomplete addresses/hostnames will not work since the
user hostmask can contains wildcards so use dummy entries like X.Y.0.0
to find users with X.Y.* or X.Y.*.* in their hostmask. Command does
not understand ident names in the hostmask or return that portion of
the hostmask for matching entries. The data searched is the table used
for the Reject_Unknown_Ips option but is available even if the option
isn't enabled.

17) New field in ioFTPD.ini under [Sections] (<share section #>).
<alias> = <credit section #> <stats section #> <share section #> <path>
If you specify a <share section #> when defining a section then instead of
credits being applied to the current section they are added/spent from
the shared section. The biggest benefit of this is to enable you to
set different ratios for different sections but have a single credit
pool for the user.



v6.0.5 Release Notes [Not publicly released]

1) Changed "site free" to "site freespace" to avoid reported ioA/ioB conflict,
and modified ioFTPD.ini permissions to reflect change.

2) Added "site free" alias to call "site freespace". ioA/ioB users can just
remove this alias and use the textfile with cookie, and everybody else
won't notice a change.

Zer0Racer
04-30-2007, 04:57 AM
CPSV not added to FEAT?

/ZR

oldhouse
04-30-2007, 05:29 AM
Very nice update. Thx!
.ioFTPD file that made previous version crashing is now fixed.
Just to let u know, u forgot to add the freespace alias in .ini file.

Flow
04-30-2007, 06:05 AM
I got serviceinstaller failed on the new Vista Home Premium machine;
Log:

SideBySide

Det gick inte att skapa aktiveringskontext för x:\ioFTPD\system\ServiceInstaller.exe. Den beroende sammansättningen Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762" kunde inte hittas. Använd sxstrace.exe om du vill diagnostisera ytterligare.

It could find a file or somethin,,, no clue actually. :)

Zer0Racer
04-30-2007, 07:14 AM
Hey Yil. Here some info on a crash that just occured on my machine with 6.1.0.
Unhandled exception 3221225477 at address 0x004e4268 (0x00000000)
0x00000000 0x7235393b
Again it seems to be that low level stuff (0x004...) that you mentioned in the 6.0 thread. This time it was running for 2hrs 3mins 16secs with very low activity - less than 20 files total uploaded or downloaded, less than 10 logins/logouts, ran uinfo command 4 times and while cleaning up my ini file I rehashed 4 times.
During this time-period what could have happened? The things I can come to think of are; the scheduler issues ConfigUpdate every 20 mins and that I use the Global_Outbound_Bandwidth option which I also changed one or two times and then rehashed the config, and I have some 70 lines of detailed vfs permissions that I guess io has to check for every event (cwd, stor etc.)

Any ideas on what I can do to help tracking it down?

/ZR

Yil
04-30-2007, 12:13 PM
Zer0: CPSV missing from FEAT... check

oldhouse: freespace alias missing... check. The release tree is maintained separate from development so things like the cache/logfiles/etc don't get zip'd up. I guess I forgot to move a line over...

Flow: I think I know what the problem is though I don't read german... I was very careful to build ioFTPD and the tcl/php libraries to NOT require the newer VS2005 MS CRT DLLs. I however failed to do so with the helper apps so you will probably get the same error with the new ioFTPD-Start application. I'll rebuild and remove the runtime dependency since I'm not sure how you get the libraries since the license prohibits redistribution I believe.

ZerO: I think the only way to find the problem is to compile from the source, run it under the debugger and/or with tools like Purify, BoundsChecker, etc and test out lots of commands. I plan to do this soon as I've implemented almost everything now and getting it stable is now the top priority. The debugger still has problems with closesocket() in some situations but I'm not sure if that's a real problem or not since the socket libraries are notoriously bad. It does prevent releasing a general purpose debug build for you to use since it won't stay up long without saying there is a problem...

Yil
04-30-2007, 12:29 PM
New Version:
ioFTPD-v6.1.1.zip (http://home.comcast.net/~yil/ioFTPD-v6.1.1.zip)

mr.babek
04-30-2007, 12:47 PM
Hey Yil,

it would be nice if you could make an upgrade text with the new options for the ini file so one could copy the new stuff from there to the existing ini file without comparing the new and existing files and telling what files have top be replaced when upgrading. So sort of changelog but a little bit more detailed for upgrading.

pion
04-30-2007, 01:25 PM
Is there any 'todo' list, or whishlist put up anywhere?

Flow
04-30-2007, 01:41 PM
Service Installer works now in 6.1.1 version. You ROCK Yil!

Yil
04-30-2007, 02:21 PM
Babek: I think the changelog is pretty detailed already and I believe I mention every file I modified in the release so you know where to look. I suggest you try some free file comparision tools to help locate changes in the ioFTPD.ini file. Check out ExamDiff or P4WinMerge from this link: Free File Comparison Tools (http://www.thefreecountry.com/programming/filecomparison.shtml)

Either of those tools should make it easy to see changes between ioFTPD.ini releases. A trick is to compare the previous unmodified file I released and the current one and then apply those change to your own file. I think P4WinMerge might even have 3 file support.

pion: Check out the Todo/Wishlist sticky thread :) That reminds me I should go update it...

bravisimo
04-30-2007, 02:51 PM
wonderful job you're doing Yil... much appreciated :)

Flow
05-01-2007, 09:16 AM
14) Whenever a connection is rejected because the IP has been auto-banned for
too many reconnections an entry is now recorded in Error.log.

Errr. just got myself banned. How do i unban , LOL

n/m, closed it down and altered the user file, limits 0 0 0 -1 0 for master account now, shouldn be a future problem, hehe

Mave
05-01-2007, 12:39 PM
Hey Yil .... Darn i,m amazed again of the progress you make and a BIG thx for the requested feature ( share section ) :) i asked for short time back.



17) New field in ioFTPD.ini under [Sections] (<share section #>).
<alias> = <credit section #> <stats section #> <share section #> <path>
If you specify a <share section #> when defining a section then instead of
credits being applied to the current section they are added/spent from
the shared section. The biggest benefit of this is to enable you to
set different ratios for different sections but have a single credit
pool for the user.


Now i got one question .... is there a way to move all the existing creds in the other sections to this shared section? Cause i dont want the users to loose the existing creds.

Thx

Yil
05-01-2007, 02:13 PM
Mave: Sorry, there isn't a way to move the credits automatically. You can lookup the credits in the other sections and then use "SITE CHANGE user CREDITS +-num [section]" manually. If you have lots of users consider a tcl script to do it for you :)

Flow: got yourself auto-banned huh? Join the club! :) The good news is the ban is only like 10 minutes long, but be careful that 10 minute counter is reset every time you attempt to connect and are still banned... The bad news is your solution of changing the max connections for the user isn't going to help you. Auto-banning is based on connection attempts and is separate from max simultaneous logins. You can configure the options in the ioFTPD.ini file though:

# To be removed from the ban list a user MUST NOT attempt to connect during
# the temp ban time else he'll just keep pushing the ban farther out...
Connections_To_Ban = 6 # 6 connections without a reset and
# IP is temp banned (5)
Ban_Counter_Reset_Interval = 60 #
Temporary_Ban_Duration = 600 # Seconds host remains banned



BTW, 127.0.0.1 is immune from auto-banning and is always valid even if Reject_Unknown_Ips is enabled and no user has that address. Might not help you much if you're at a different computer though... In the future perhaps a list of immune addresses could be added to support BNCs or trusted computers...

Zer0Racer
05-01-2007, 03:31 PM
Moved Flow's ioGui on Vista post to proper category.

/ZR

tuff
05-01-2007, 03:34 PM
Yil

the new crc32 command is returning the crc32 value as a decimal value, it should be returned as hex, this isnt a big problem, but never the less, the crc32 returned onuploadcomplete etc is a hex value, and since sfv files expect a hex value, maybe you could sort this bug out quickly ;)

Yil
05-01-2007, 03:34 PM
Good news! The heap corruption issues I was experiencing with remarkable repeatability in various Winsock functions especially closesocket() has been found! Unfortunately it isn't Winsock OR ioFTPD but the netlimiter application which forces all apps to load a dll so it can monitor/control the network connections... Needless to say it was really hard to find that since it never showed up on any stack trace and I didn't even know it was there until I caught it out of the corner of my eye as it scroll by as a loaded dll when starting the debugger...

Of course now that this has been found I can run ioFTPD for extended periods of time inside the debugger trying to find any real problems...

Yil
05-01-2007, 05:08 PM
Hey Tuff. The crc32 value is a hex value. It's not prefixed with 0x because it never was before. The actual line to print the value wasn't changed at all.

tuff
05-01-2007, 06:28 PM
Yil,

You need to check this further :P i aint often wrong :P

site rescan
[2] 200->> file.rar 377923821

set crc [crc32 [resolve pwd $pwd]/$filename]
iputs ">> $filename $crc"

obviously thats decimal, and the sfv is looking for 1686a8ed which is hex ;)

now, strangely enough, if you convert the crc returned from crc32 to hex, guess what you get ;)

someone else confirm this please ;)

o_dog
05-01-2007, 06:50 PM
the crc32 is returned in decimal value
real crc32 of a file: b91a00c8
crc32 returned by io: -1189478200

neoxed
05-01-2007, 07:03 PM
the crc32 is returned in decimal value
real crc32 of a file: b91a00c8
crc32 returned by io: -1189478200

So? Just convert it. It's actually a lot more practical to return it in integer form.

% set crc -1189478200
-1189478200
% set crcHex [format %08X $crc]
B91A00C8
% puts "The hexidecimal value is: $crcHex"
The hexidecimal value is: B91A00C8
%

o_dog
05-01-2007, 07:17 PM
why would you need a decimal value of crc? can't really follow your reasoning here, how it's more practical?

Yil
05-01-2007, 07:52 PM
I thought were you talking about the new CRC value for resumed files since I was just testing that to make sure it actually works so I was confused how I could have goofed in printing it...

As for crc32 I return the value as a real tcl INTEGER and not a string. It's up to you to print it in hex or decimal or whatever.

tuff
05-02-2007, 01:30 AM
ah well, i was under the impression that since onuploadcomplete/resume passed a hex value, then so should the itcl crc32

/me slaps neoxed :P

Yil
05-02-2007, 02:05 AM
New version:

ioFTPD-v6.1.2.zip (http://home.comcast.net/~yil/ioFTPD-v6.1.2.zip)

I fixed a dumb error I made in the new crc32 code that could cause problems. Since this is used to correctly calculate the CRC for resumed uploads everyone needs to update if your on a 6.1 release. Only the ioFTPD.exe executable itself changed.

For 4 hours I FXP'd files between 2 local computers while at the same time FXPing between 2 logins on the same machine with ioGUI updating every second and me issuing a few random commands on yet another login. No problems. Some indications that there are a few potential issues in the php/tcl libraries though...

Let me know if anybody gets any crashes with this version along with what additions you are using. I'm not using any zipscripts so I may go ahead and configure ioSFV since it uses a lot of TCL commands and see if that turns up anything.

If anyone is feeling really bored a list of commands to create a user and a group and then change all the fields in both and then delete them would be good. Plus an example of every other site command... I can use that to verify everything works...

Flow
05-02-2007, 03:39 AM
Hi Yil!, impot this command set and try site commands: http://www.inicom.net/forum/showthread.php?t=1839

btw, is it possible to exclude specified users from auto-ban check? like;

Exclude_from_AutoBan !-sitebot !-bncuser !-masteraccountuser

Thanks again for your GREAT developing work :)

spirit
05-02-2007, 07:41 AM
Hi,
Ive got a silly problem with iogui. All is configured to run it, and after i start it up it connects and all is fine but iogui doesnt show me any info: activity, users, groups, stats etc nothing. Its connecting with master account so should be fine.
Im using io6.1.2 latest version.

Yil
05-02-2007, 11:13 AM
Flow: Not at the moment. Primarily because auto-ban works on IP addresses only and occurs VERY early on. However with the new logic I added to support Reject_Unknown_Ips I actually cache the hostmasks for all the users ahead of time. Thus it should be possible to flag items in the cache belonging to excluded users and search for them... So the short answer is no, but at least it's a somewhat simple addition later on.

If you are having problems just up the reconnect count to 100 every 60 seconds or something silly like that...

Spirit: check that ioGUI is setup in your ioFTPD.ini file correctly. Both the TCL command and permissions for it. I remember I had that same problem and I think that was the issue.

tuff
05-02-2007, 12:49 PM
Yil, btw, your missing the resolve group <group> from the itcl docs

spirit
05-02-2007, 06:58 PM
Spirit: check that ioGUI is setup in your ioFTPD.ini file correctly. Both the TCL command and permissions for it. I remember I had that same problem and I think that was the issue.

Yep it was the problem ehhh ;) sry for taking time, cant believe ive configured it incorrectly :|

PSA9
05-03-2007, 09:28 AM
:confused: is ioFTPD set to where user ioFTPD can only connect from 127.0.0.1 ?

in windows vista 32 Bit ioGUI worked as normal, but ioGUI does not work in 64 bit vista and i trying to do a clean install for testing before i use it on the 1.5TB FTP. ioGUI is not needed but i atleast need to log in from FTP 192.168 IPs, but when i try that i get this
[R] Connected to ioFTPD
[R] Connection failed (Connection lost)
[R] Delaying for 15 seconds before reconnect attempt #1


ioFTPD-v6.1.2 no settings, no scripts, clean install
Windows Vista Ultimate 64 Bit

ArtX
05-03-2007, 09:40 AM
C:\ioFTPD\etc\Hosts.Rules - i think you should be able to work out what you need to change in there - if you havent already

hukker
05-03-2007, 10:30 AM
:confused: is ioFTPD set to where user ioFTPD can only connect from 127.0.0.1 ?

Its in the userfile, /users/0 probably, edit that when ioFTPD is off. Change the ip to whatever you want.

ArtX
05-03-2007, 12:08 PM
but if the host rules are set to deny all but 127.0.0.1 that wont work, untill he changes the rules in the host file, unless he never put an ip in for the user when he made the account

PSA9
05-03-2007, 06:45 PM
thanks hukker and carpo but hukker u were right and carpo u was wrong. cause from a fresh install

ACCEPT I 127.0.0. ADMIN -1
ACCEPT I 192.168. ADMIN -1


and as i was trying to connect from 192.168 it had to be something else. i just didn't know if Yil set it inside ioFTPD to not let u connect unless 127.0.0.1 but all in all it was just ip restricted to that ip but thanks!

Yil
05-03-2007, 11:35 PM
I know I'm going to regret saying this... I can't believe I'm going to say this... But nobody has had a crash yet? If you're running it as a service double check for a crash log since the service will auto-restart or check your Windows event log for restarts. Make sure it is a v6.1.2 crash as well since I know 6.1.1 can randomly crash with resumed uploads.

I didn't want to proceed with development if things weren't stable, so just checking...

Zer0Racer
05-04-2007, 01:02 AM
I know I'm going to regret saying this... I can't believe I'm going to say this... But nobody has had a crash yet? If you're running it as a service double check for a crash log since the service will auto-restart or check your Windows event log for restarts. Make sure it is a v6.1.2 crash as well since I know 6.1.1 can randomly crash with resumed uploads.

I didn't want to proceed with development if things weren't stable, so just checking...I had those low-level crashes with 6.1.1 but then I cleaned up my ioFTPD.ini from a couple of unused events and commands, at the same time as I upgraded to 6.1.2 and now everything seems stable. Not running it as a service btw.

Since I don't think you changed anything major for 6.1.2 that would eliminate that low-level stuff maybe the problem is how ioFTPD handles particular (unused/not valid) settings from the ini. Two things I remember changing ;No_SubDir_Sizing = True (note the semi-colon = commented/not used) to No_SubDir_Sizing = False and that I removed some oooold chached message files.

You can run it in debug mode now since you found out Netlimiter screwed up socketclose() or what it was? Imho 6.1.2 should be properly debugged and if everything seems OK it could even be labeled as stable. It would be a perfect stepping stone for moving on with new features etc. Users would always have this 'stable' version to revert to.

/ZR

Flow
05-04-2007, 01:02 AM
Hi Yil!, sorry to comfirm this, but service is running fine, darn, no crash :)

Mave
05-04-2007, 01:11 PM
Hey YIL

I,m running it also not as a service and its looking stable :)
Not crashed yet at all.


Great :D

PopWeasel
05-05-2007, 10:50 PM
I know I'm going to regret saying this... I can't believe I'm going to say this... But nobody has had a crash yet?

:p

Running 6.1.2, LIST -T seems to be able to cause reproducible crashing.

Yil
05-06-2007, 06:43 PM
PopWeasel: Confirmed. I used a $ instead of a % in one of the formatting options for the date. That meant the option didn't get interpreted correctly and the resulting string was longer than the temp buffer. The good news is I'm using the secure version of sprintf and an exception is being thrown when it sees the buffer is too small. That makes finding problems easy :)

New Version:
ioFTPD-v6.1.3.zip (http://home.comcast.net/~yil/ioFTPD-v6.1.3.zip)

v6.1.3 Release Notes:

1) Removed the never implemented OnServiceStart and OnServiceStop events from
the ioFTPD.ini file.

2) Fixed the formatting string for printing dates via list -T.

PSA9
05-06-2007, 11:39 PM
Yil this path C:\ioFTPD\source has nothing to do with making ioFTPD operate right? if so why not get rid of it?

Yil
05-06-2007, 11:58 PM
PSA9: The source\include directory is actually necessary if you are building 3rd party executables that use shared memory to talk to ioFTPD. Most of the files aren't used, but rather than split out just the necessary headers into a separate dir, ioFTPD at one point in the past started distributing all the real header files... I've updated the headers anytime a shared memory data structure gets touched which isn't very often, but they are up to date for the intended purpose.

Sha1 is used to hash user passwords which is often useful for scripts, and the sharedmemory dir is really just an outdated example, but better than nothing for someone interested in writing something new.

You are correct that none of those really need to be included to just run ioFTPD, but an argument can be made they are really necessary for end users writing scripts so it can't really hurt to leave them there. They compress pretty small anyway.

rolan
05-07-2007, 01:17 AM
i set it (6.1.3):
Compute_CRC = True

i upload a sfv file, but never happened,how can i do it work fine? thx all.

Flow
05-07-2007, 03:02 AM
# Set this to false if you don't have an onUploadComplete event or the
# script/executable you are using ignores the computed value.
Compute_CRC = True

Do you have a zipscript (http://www.iotools.co.uk/)or anything under the [Events] ??

[Events]
# NOTE: You can list more than one event and all will be called.
;OnUploadComplete =
;OnUploadError =

Nasq
05-07-2007, 04:25 PM
Installed 6.1.3 and everything is looking fine so far. A few remarks:

README file:

edit the files etc\default.vfs and etc\admin.vfs to configure the virtual
file system. -> There is no etc/admin.vfs

by default, both of these files
are configured to use ..\site as the "/" directory for ioFTPD. this
directory contains a basic site layout to start from.
-> only one file which is configured to C:\ioFTPD\FTP-ROOT-DIR

ip address
127.0.0.1 port 9999 -> port 5420

in the basic configuration, you just need to uncomment one line
to permit incoming connections. -> untrue


ioFTPD.ini:
MessageCache_Size = 1000 # Number of .message files to cache
# (min 10, default 100)
-> default = 1000 ?

Under NETWORK: What does (10), (1800) and (5) stand for?



It seems that site chmod changes doesn't show directly sometimes, even though it is registered. Looks like a directory caching thing.

Yil
05-07-2007, 05:55 PM
Nasq: The README file is actually a relic from the 5.x builds but it contains the instructions on how to install SSL certs. I probably should just remove the non-SSL parts and rename it SSL-config or something. The README-FIRST file is the one I wrote and contains the real instructions to follow. Now that both README's are in the same directory with the 6.1.x builds I can see where that might be confusing to a new user :)


Numbers in parens from ioFTPD.ini are the defaults for unspecified values taken from the source code itself. They are just for reference.

site chmod: Are you refreshing the directory listing in your FTP client? If on a new listing the change isn't showing up but does show up if you create a directory or make some other modification then the internal ioFTPD cache is stale and that's a bug... If you confirm it what is the No_SubDir_Sizing option set to in your config file?


rolan: The crc option only computes the crc and passes it to scripts. It's the job of whatever zipscript you choose to run to verify files and take action.

rolan
05-07-2007, 08:59 PM
thx Yil and Flow,its works for ioSFV2.0beta1.55.

Nasq
05-08-2007, 12:47 AM
Yes I refresh the directory listing and making a directory doesn't trigger an update either. I have No_SubDir_Sizing = True

tuff
05-08-2007, 04:38 PM
Yil, a bug with the new tcl crc command

As you know im using this in ioSFV, the new 1.55 beta, anyhow heres the scenario.

If you have a release which has a bad file, ie. that aint complete, and i use the site rescan
command, the new crc command works fine for the valid/passed crc files, but once it
reaches the failed file, if my ioSFV settings tell the zs to delete the failed file, ioSFV
attempts to delete the file

this is where the problem occurs, ioSFV cant delete the file, and you cant physically delete
the file from io yourself, you end up getting the following error

[2] DELE test-test12.r81
[2] 550 test-test12.r81: No such file or directory.

You can delete it from windows, or when you shutdown io, restart it, the file will be gone

tuff
05-08-2007, 04:59 PM
actually Yil,

ive done some more testing, and this bug is not only effecting incomplete files, it also causing
problems with complete/crc passed files!

you can no longer delete a complete release that has been rescanned, ie, once you use the crc itcl command on a file, its locked, be it passed, faileded etc.

it doesnt seem to be closing the files once it computes the crc

this needs fixed asap!

Yil
05-08-2007, 05:01 PM
Updated entry: Yup, I forgot to close a file handle for the tcl version of the command. The new code to handle uploaded files is fine.

New version coming real soon.

Yil
05-08-2007, 05:23 PM
Fixed crc command:

ioFTPD-v6.1.4.zip (http://home.comcast.net/~yil/ioFTPD-v6.1.4.zip)

v6.1.4 Release Notes:

1) Merged the original README file and my README-FIRST file and updated
the links slightly to indicate the forum as the place to look for help.

2) Fixed the crc32 itcl command not closing file handles.

Zer0Racer
05-08-2007, 06:36 PM
Nice =)

/ZR

l.d.m
05-09-2007, 12:25 AM
hi Yil!
I have got a problem with rename command:


[R] MKD A
[R] 257 "A" created.
[R] PWD
[R] 257 "/" is current directory.
[R] TYPE A
[R] 200 Type set to A.
[R] PASV
[R] 227 Entering Passive Mode (192,168,1,3,21,66)
[R] Opening data connection IP: 192.168.1.3 PORT: 5442
[R] LIST -al
[R] 150 Opening ASCII mode data connection for directory listing.
[R] List Complete: 466 bytes in 0,19 seconds (2,4 KB/s)
[R] RNFR A
[R] 350 Directory exists, ready for destination name.
[R] RNTO B
[R] 550 B: No such file or directory.
Rename Failure!



(ioFTPD 6.1.4, clean install, no scripts, Windows Server 2003)

Yil
05-09-2007, 01:44 AM
l.d.m: The most likely cause is real filesystem permissions. Running as the same user as ioFTPD can you rename the directory in windows? I run ioFTPD under a limited rights account and sometimes I forget to set the permissions on files/directories I move into the VFS and I see the same thing.

The other possibility (highlighted by tuff's issue with the itcl crc) is that the error reason isn't always accurate. If someone is under the directory tree transferring a file, etc windows may prevent any renaming of parent directories. Try the command when the server doesn't have anyone online and see if that makes a difference.

l.d.m
05-09-2007, 02:27 AM
I found my error

I set relative path in my \etc\default.vfs:
"..\FTP-ROOT-DIR\" /

now I set full path and no more rename problems ;)

Zer0Racer
05-09-2007, 02:55 AM
I found my error

I set relative path in my \etc\default.vfs:
"..\FTP-ROOT-DIR\" /

now I set full path and no more rename problems ;)
I can confirm this. Though I don't think you're supposed to use that trailing backslash in vfs files. Anyhow, I tried a clean 6.1.4 install, with minor changes, and had root set to "..\site" / which gave me the same error on RNTO for dirs. Changing the root to "c:\ioftpd\site" / made the problem go away.

Imo setting the root to a relative path should work. ioFTPD.ini is full of relative paths. Also handy for easier use if someone wants to install their ioFTPD on another drive than C:\. And the fact that RNFR finds the directory and is ready for the new name but RNTO fails.

/ZR

P.S. Renaming files works just fine if root is set to a relative path. D.S.

pointBreak
05-09-2007, 11:37 AM
6.1.4
Unhandled exception 3221225477 at address 0x20b0b9c8 (0x00000000)
0x00000001 0x00000008

PSA9
05-09-2007, 10:34 PM
is it just me or does ioFTPD still dont let u rename CAPS!

[edited]

Ft i want to change to ft but it doesn't seem to work!
that was something uploaded back on the ioFTPD 5.
would i have to redo it due to the ioFTPD small file?

Yil
05-10-2007, 12:24 AM
PSA9: Yup, it's in the suggestion thread. I didn't know about the problem till like yesterday when someone brought it up there. Definitely annoying and on the todo soon list... There are a few suggestions of mine on workarounds until the next release.

I can't fix stuff nobody complains about, so keep em coming because I'd be annoyed when I found this problem on my own at some point in the future...

l.d.m
05-10-2007, 01:27 PM
Windows Server 2003, clean install, ioFTPD6.1.4, nxTools1.0.5 + ioSFV v2.0beta1.55

seems to crash when more than one user is downloading:
Unhandled exception 3221225477 at address 0x7c83248b (0x00000000)
0x00000000 0x00000001

Yil
05-11-2007, 02:48 AM
I "fixed" the rename issue when renaming a file that just differs in case of letters. However, when testing it I ran into several other issues I think need addressing.

1) When you rename a file/dir (even just by case) it will try to move the file to the last filesystem listed in a merged/raided directory. I've already identified the place to add logic to attempt to preserve the filesystem a file is on to prevent this behavior. It's a bit trickier since moving a directory across mountpoints or something should try to keep the files local as well and that's more of a move than a rename...

2) I specifically disallow renaming of mount points. Whatever is listed in the VFS is how you should see things. You can still move/rename the target of a mountpoint if it's visible somewhere else in the VFS which will break the association if you do it, but I think that's OK.

3) The code to determine which filesystem to move a file to in #1 is probably the place to add logic to test for free space issues I've added to the wishlist. Why try to move a directory to a filesystem that doesn't have room for it when another raided one does? Right now it will test for the space before the move, but not proceed to the next filesystem and test again.

To really fix the problem the correct place to make some changes looks to be in the path resolver and changing that might have issues... Therefore I'm going to not release a quick fix for this and try to solve it right later on in a 6.2 release.

P.S. The test for a stale cache entry is case insensitive and renaming a file doesn't update the file's timestamp. Therefore my suggestion of using a script to do the rename won't work. You'll need to rename test to testA to Test to force the update which sucks on non-leaf directories since the odds of someone else being in it go up which will prevent the rename from working...

Flow
05-13-2007, 09:27 AM
Hi Yil!
Tweak, Optimize .dll and .exe and make a -stable 6.1.5 rel for now? ;)

Zer0Racer
05-15-2007, 10:20 AM
Windows Server 2003, clean install, ioFTPD6.1.4, nxTools1.0.5 + ioSFV v2.0beta1.55

seems to crash when more than one user is downloading:
Unhandled exception 3221225477 at address 0x7c83248b (0x00000000)
0x00000000 0x00000001
0x7 suggests that the problem is a script. ioSFV is updated to work with io6. So my guess is that the problem is something in nxTools. Does io still crash if you disable nxTools?

/ZR

hellord
05-17-2007, 10:28 AM
disabled all scripts, still crash.
ioFTPD 6.1.4 , windows 2003 enterpise edition.

Unhandled exception 3221225477 at address 0x0041bc53 (0x00000000) 0x00000000 0x01c76bc7

Yil
05-17-2007, 02:34 PM
hellord: I'll look into that crash. The 0x004... address is inside ioFTPD itself and without any scripts means something is indeed going wrong.

Flow
05-26-2007, 03:13 AM
Hi Yil! Whare you at?, whats going on ?, Is 6.14 it for now? AND do i haveto use the new ## section ## format?`default = 0 0 0 *

Why i ask?, since some script is still based on the old section format (nxTools-v1.0.5a), which is a GREAT script combined with ioSFV.

Yil
05-28-2007, 04:34 PM
Flow: Yea, 6.1.4 is what to use currently.

I tried to keep compatibility with existing scripts so you don't have to use the new "share credit" feature for sections. Just like specifying a different <stats section> is optional, you don't have to specify a <share section>. However if you wish to specify a <share section> you will have to specify a <stats section> so just duplicate the <credit section> if you're not doing anything special with it.

Thus: 0 /* , 0 0 /*, and 0 0 0 /* are all the same and if you aren't using the new feature you don't have to change anything at all.

tmgomez
05-28-2007, 04:35 PM
if you want to test any releases, download and install it yourself, do not offer sites here

tuff

zombies
05-31-2007, 02:18 AM
I seem to be having problems running v6.1.4 as a service with SSL/TLS. I can login without SSL/TLS just fine and do just about anything on the server but once I turn on SSL in my client, I get AUTH TLS unsupported. I've tried switching to SSL and that's not supported either.

I'm positive I have the SSL certificate installed correctly because it worked fine when I had an older version of ioFTPD installed (5.x). I've tried using the user, group and configuration files from my old setup as well as fresh ones from the new version. Both yield the same result.

I believe it's a problem with the service installer in this version because if I run ioFTPD as a regular executable (not a service) then I can login with SSL/TLS just fine. I've even tried installing the new version as a service using instsrv and I got connection refused (probably because the server didn't even start).

I'm running ioFTPD without any scripts on Windows XP x64.

Yil
05-31-2007, 10:08 AM
zombies: It's a problem with the cert. When you use the default service installation you are running as "Local Service" which is a special account on all windows machines for services. However, you installed the cert under YOUR user account and thus ioFTPD can't find it. There are 2 solutions:

1) Install the cert under the Local Service account as well, this is the same as installing it for a different user via the site command / .bat file method described somewhere...

2) Change the user the service runs as to yourself (or another real user account and install the cert there). This can be done from services under admin tools in the control panel. I know I talked about how to do this in the ServiceInstall-README file. This is probably the easiest solution and also has the benefit of uploaded files being created with you as the owner instead of the system.

zombies
05-31-2007, 07:55 PM
I went with option number 2 and it worked just fine. Thanks for the help.

One suggestion would be to have that information listed somewhere in the ServiceInstall-README file. I know the instructions on how to change the user the service runs as were there but the rest wasn't quite as easy as connecting the dots.

Lastly, you've done a fantastic job picking up the development of ioFTPD :)

sweetsour
06-02-2007, 10:59 AM
Thanks for the great updates Yil! ioFTPD is almost perfect now in my eyes. :)

isteana
06-03-2007, 02:14 PM
ioftpd 6.1.4 has been random crashed then got this log:
Unhandled exception 3221225477 at address 0x0042e9cf (0x00000000)
0x00000000 0xec00000c
Unhandled exception 3221225477 at address 0x0042e9cf (0x00000000)
0x00000000 0xec00000c
Unhandled exception 3221225477 at address 0x0041abe3 (0x00000000)
0x00000000 0x322e6873
Unhandled exception 3221225477 at address 0x0042e9cf (0x00000000)
0x00000000 0xec00000c
Unhandled exception 3221225477 at address 0x0040269f (0x00000000)
0x00000000 0xe801ac99
Unhandled exception 3221225477 at address 0x0040269f (0x00000000)
0x00000000 0xe801ac99
Unhandled exception 3221225477 at address 0x0040269f (0x00000000)
0x00000000 0x9801ac99
Unhandled exception 3221225477 at address 0x0040269f (0x00000000)
0x00000000 0xa001ac99
Unhandled exception 3221225477 at address 0x0040269f (0x00000000)
0x00000000 0xa001ac99
Unhandled exception 3221225477 at address 0x0040269f (0x00000000)
0x00000000 0xa001ac99
Unhandled exception 3221225477 at address 0x0040269f (0x00000000)
0x00000000 0xa001ac99
Unhandled exception 3221225477 at address 0x0040269f (0x00000000)
0x00000000 0xa001ac99
Unhandled exception 3221225477 at address 0x7c9796d0 (0x00000000)
0x00000000 0x00000014
Unhandled exception 3221225477 at address 0x7c9796d0 (0x00000000)
0x00000000 0x00000014
Unhandled exception 3221225477 at address 0x0042fe8f (0x00000000)
0x00000000 0x0c01f004
Unhandled exception 3221225477 at address 0x76e61e13 (0x00000000)
0x00000000 0xe800162d

FTPServerTools
06-04-2007, 04:37 AM
Just a question from my side. The source that is in the forum now is that 6.1.0.4 or is it still 6.1.0.0??

Yil
06-05-2007, 02:51 PM
FTP: it's 6.1.0.0 although the number of lines that differ between that and the current release is probably like 10 tops as I only fixed the few bugs listed in the ChangeLog and all were simple.

PSA9
06-07-2007, 10:56 PM
i am unsure if this is a ioFTPD or ioSFV setting but if i upload something it makes Incomplete symlinks like normal but i can only enter them with the user that uploaded the file. any other user and it says this.
*** but if u try the same thing with the user that uploaded it, it will work as normal!
----------------------------------------------------
ioFTPD 6.1.4 ioSFV Version 2.0beta1.56

PSA9
06-08-2007, 09:00 PM
zerorace what are u talking about no release names. their is release names and the sym links work fine if the user that uploads the stuff clicks on them. its when other users use them when the links do not work. i trying to find out if its a setting that i set wrong, but to do that i have to know what the setting is and if its a setting in ioSFV or ioFTPD, but thanks anyway for trying to help!!!

i noticed this crash but not sure when and why it happened.
Unhandled exception 3221225477 at address 0x0043ef68 (0x00000000)
0x00000000 0x00000000

running as system service
----------------------------------------------------
ioFTPD 6.1.4 ioSFV Version 2.0beta1.56

Zer0Racer
06-09-2007, 01:55 AM
zerorace what are u talking about no release names. their is release names and the sym links work fine if the user that uploads the stuff clicks on them.
[...]
Actually, I didn't help you with anything. Just told you that you shouldn't post release names here.

/ZR

ESP
06-09-2007, 12:30 PM
I just upgraded to the latest ioFTPD and I'm having a problem with the serviceinstaller.exe

I had ioFTPD as a service before but using the command line program (the one that came in service.zip with the tools to make a certificate) and so I used that to uninstall the service.

When I try to install the service with this new program, I get an error. It says it can't find the EXE when it's in the same directory as it. Its looking in my C:\Documents and Settings\User directory for ioFTPD.exe.

How do I fix this?


Also maybe in future releases the Idle_Exempt could be changed to include flags instead of just username and group. Flags would make it much easier; you just give the person exempt a special flag instead of adding their name to the config and rehashing.

PSA9
06-09-2007, 03:03 PM
Sorry Zer0Racer, i have much respect for u, tuff, Yil and others!!!
i misunderstood
Last edited by Zer0Racer : Yesterday at 08:28 AM. Reason: no release names
as thinkin u were saying that the reason the sym links were not working was due to no release names, sorry for the confusion! I HOPE THAT SOMEONE CAN HELP ME THOUGH.

Yil
06-11-2007, 09:56 PM
ESP: I made Idle_Exempt a regular permission string (note the use of -'s before individual users and not just their names). Thus you can exclude specific users such as I did, but nothing is stopping you from something like "Idle_Exempt = I" and then giving users the I flag to make them exempt... That would solve your rehash problem.

PSA9: Symlink issue...

#1) Do the symlinks work correctly after a server restart?

#2) What zipscript is creating the symlinks? ioSFV?

#3) If you manually create a symlink via the site command does it work correctly for all users?

I don't understand why it would work for the creating user, but not the others. Might be a permission issue or something on the directory being pointed at so double check that. Turn the release name into XYZ, but send the error message other users are seeing again as it got edited out...

rolan
06-12-2007, 02:10 AM
Yil, i had posted a symlinks question at Neoxed's section. its ioFTPD cant work correctly?

The link:
http://www.inicom.net/forum/showpost.php?p=67819&postcount=33

tuff
06-12-2007, 02:03 PM
Yil, just so you can rule out a permissions issue with symlinks and ioSFV, ioSFV doesnt modify the perms of the incomplete parent symlinks, although this doesnt mean that it could be io messing it up

sweetsour
06-14-2007, 11:22 AM
Hi!

I wanted to limit my upload speed today, but as soon as I did, outgoing CPSV FXP stopped working.

Here's what I get:
x CPSV
227 Entering Passive Mode ()
x RETR hello.rar
150 Opening BINARY mode data connection for hello.rar.
426 Connection closed: Overlapped I/O operation is in progress.

Then I tried Client_Outbound_Bandwidth instead of global, doesn't help. Scheduler_Update_Speed = HIGH # Socket scheduler update speed
# (HIGH/NORMAL/LOW/DISABLED)
Tried the lower values, those don't help either. It only worked after I set it to DISABLED, but that means no bandwidth control at all obviously.

sweetsour
06-14-2007, 11:39 AM
Also, what's your opinion concerning the last '/' character of the full path?
(for instance the last character of /blah/upload/)

The other FTPd programs don't put '/' at the end, and some clients use that for some functions.
Any chance of removing it?

peep
06-19-2007, 10:02 AM
I totally forgot about this issue of mine earlier, but I'm not sure this actually is a bug, need someone to confirm this.

I've got an 'echoall' batch-file (see below) set to be executed OnUploadComplete but the SECTION is always reported as blank, even tho' the STATSSECTION is reported as the correct one. Am I using the wrong argument to check the section or?



@echo off
set
echo arg1 = %1
echo arg2 = %2
echo arg3 = %3

jeza
06-20-2007, 12:53 AM
i think OnUploadComplete u get "path+file" "CRC" "virtualpath+file" as first 3 arguments (at least in 585)

tuff
06-20-2007, 02:04 AM
its still the same in 6.1.X, obviously if there was a problem none of the zipscripts would work etc

peep
06-20-2007, 04:42 AM
Actually I'm looking at the list of outputs from 'set' and not the %1-%3 (I should've removed those lines from the batch file, was just for some other testing purposes).

Output:
[R] 226-SECTION=
[R] 226-STATSSECTION=2

ioftpd.ini (section-part):
TV = 0 2 /TV/*

This is what I'm curious about, why the SECTION is reported as blank (ignore the %1-%3 lines)

Tuff: It was already like this in the 5.8.X versions. What I want to know is what the argument for the section is, because like you say, there must be one that reports it for eg. the zipscripts but the output of 'set' gives a blank %SECTION%

jeza
06-21-2007, 01:04 AM
most zipscripts checks the section name against VIRTUALPATH
example:
sections in config -> VIRTUALPATH
"/mp3/ /games/" -> /mp3/0101/blalba-iND

maybe is SECTIONNAME what u are looking for (just guesing).

peep
06-21-2007, 06:56 AM
Nope, gives nothing. And if you create a .bat file with the content:
@echo off
set
put "OnUploadComplete = %EXEC X:\xxx\batchfile.bat" in your ioftpd.ini, upload just any file and then look at the output in the ftp-client status-window, you will notice that everything is returned except the value of SECTION.

jeza
06-21-2007, 12:18 PM
add this to your ioftod.env
SECTIONNAME=%[$section]

jenga
06-29-2007, 08:37 PM
I just installed the v6.1.4 ioGui and everything works great but the zipscript

I'm using php_psio and it seems to have that problem with the OnUploadComplete command.

My ioftpd.ini looks like this:
[FTP_Pre-Command_Events]
OnUploadComplete = EXEC php.exe -q c:\ioFTPD\scripts\php_psio\zipscript-c.php
OnUploadError = EXEC php.exe -q c:\ioFTPD\scripts\php_psio\zipscript-c.php
dele = EXEC php.exe -q c:\ioFTPD\scripts\php_psio\postdel.php

and i've changed all the paths in php_psio from d: to c:
...the site rescan command works great, but it's not autoscanning the files.

Is there any fix for this?

Thanks

whocarez2k5
06-30-2007, 11:08 AM
Hi, after longtime not using io (well wanted a few weeks back with problems only) and seeing 6.1.4 i again installed io but was wondering if there is any around script that communicates with eggdrop/windrop?

I normaly used ioBanana and ioA because of the eggdrop function but for what i see now ioB and ioA arent working proper with io 1.6.14 and nx Tools doesn't provide the eggdrop function , atleast it isn't in the readme :(

Any 1 here that has io 1.6.14 working with eggdrop/windrop?

peep
06-30-2007, 11:29 AM
I haven't noticed any problems in particular using ioBanana and ioA with the latest io-version.

jenga201
06-30-2007, 02:48 PM
yeah, all the scripts i installed...dzsbot/ioa work fine

It's just some zipscripts that don't work anymore :S

ArtX
07-01-2007, 05:45 AM
Yil - dont know if this has been reported sorry if it already has - its only a slight error i feel in ioftpd 6.1.4 - but its an error that has been there since last ioftpd 5.x rls and i reported it back then if i remember, error is that gives the wrong error info in ioftpd - for wrong ip (or no ip) anyway

eg
[R] 331 Password required for Carpo.
[R] PASS (hidden)
[R] 530 Login failed: Invalid password.
[R] Connection failed

now from that you would think the obvious and i forgot the pass right? wrong! ;)

its because i forgot to add the right ip for the intranet into my account in ioftpd

07-01-2007 11:37:12 Host '*@THE-MAJOR' did not match any of user 'Carpo' allowed hosts.
07-01-2007 11:38:20 Host '*@10.10.1.2' did not match any of user 'Carpo' allowed hosts.

after adding these two entries to my account i can log in ok again :)

a pidly error i know but it can be a bit miss leading - as i said before it used to throw this error up for near every error (no matter what the reall error was) in 5.8.6+ aswell

whocarez2k5
07-01-2007, 06:18 AM
I haven't noticed any problems in particular using ioBanana and ioA with the latest io-version.

Well i'll give it a shot.

btw is it true that ioG functions don't work with 6.1.x like mkdir del dir etc?

*update*
Changed the location of ioFTPD to d: within a subdir and after changing all files and locations it's inpossible for me to get io and iogui started :(
15:32:59 wSock_Error() -> Connection is forcefully rejected (10061)
15:32:59 ----------- connection closed -----------

Double checked every setting but it just won't start any more

io 6.1.14 + nxtools + iosfv

the readme says
1) Extract the zip file to C:\ If you put it anywhere else you will need to
change the path of the link in the handy ioFTPD-Start shortcut if you want
to use it to start the server and ioGUI.

that shortcut isn't there but i guess i need to create 1 myself, but i don't see any problems on this part

the ioftpd.log says
07-01-2007 15:33:08 START: "PID=4812" "CmdLine="

Nothing usefull also

any help pls

whocarez2k5
07-01-2007, 02:08 PM
I did a complete new clean setup (no scripts) checked every option 2 times to see difference with "broken" server, edited everything in wordpad, but when walking true the config i noticed a few minor things that are double imo
Under Permissions
###################
### PERMISSIONS ###
###################
# Here's an example of a generally Read Only server with a /Incoming
# directory that allows regular users (the 3 flag) to upload just
# to directories under /Incoming. If you want people to be able to
# upload anywhere just change /Incoming/* to /*.
Upload = /Incoming/* 31VM
Resume = /Incoming/* 31VM
MakeDir = /Incoming/* 31VM
RemoveDir = /Incoming/* 1VM
RemoveOwnDir = /Incoming/* 31VM
Rename = /Incoming/* 1VM
RenameOwn = /Incoming/* 31VM
Overwrite = /Incoming/* 1VM
Delete = /Incoming/* 1VM
DeleteOwn = /Incoming/* 31VM

# This defines everything else as Read Only for regular users.
Upload = /* 31VM
Resume = /* 31VM
MakeDir = /* 31VM
RemoveOwnDir = /* 31VM
RemoveDir = /* 1VM
Rename = /* 1VM
RenameOwn = /* 31VM
Delete = /* 1VM
DeleteOwn = /* 31VM

# nobody can overwrite a file, they must delete it and resend
Overwrite = /* !*
NoStats = /* !*

# anybody can download anything...
Download = /* *

I dunno why this is but i guess some settings are double in the config and the part that is named as example need to be marked with # or am i wrong?

Second thing i found was a small ioGui config, Yil added ioGui to the new ioFTPD as it is now but the paths to the ioGuiExt are wrong.
In Yil's setup ioGui is in ../ioGUI and not in ../scripts
# ioGUI
ioGuiExt = TCL ..\scripts\ioGuiExt.itcl
#ioGuiExt = EXEC ..\scripts\ioGuiExt.exe

imo it needs to be
# ioGUI
ioGuiExt = TCL ..\ioGUI\ioGuiExt.itcl
#ioGuiExt = EXEC ..\ioGUI\ioGuiExt.exe

Hope it helps.

Server still isn't running from subdir (d:\subdir\ioFTPD\..) , help still appreciated ;)

*update*
Dunno if it's allready there but maybe a good idea to add a clean.registry file to ioFTPD because i think there lies my problem. i checked registry on ioFTPD items and there are a bunch of reg settings in winXP. I dunno which 1 to remove to get a clean start for io to setup.
Because when i unpack io6.1.14 and don't make any changes at all and hit the ioFTPD-Start.exe i mostly get winsock errors and io also says password in correct?¿?¿ that is strange for me because the very first time i run io it worked like a charm but now it just won't, and when i open ioftpd.ini 1 time and only change port for example i can't connect at all and it keeps giving me the error in previous posts

Zer0Racer
07-03-2007, 01:00 AM
Yil - dont know if this has been reported sorry if it already has - its only a slight error i feel in ioftpd 6.1.4 - but its an error that has been there since last ioftpd 5.x rls and i reported it back then if i remember, error is that gives the wrong error info in ioftpd - for wrong ip (or no ip) anyway

eg
[R] 331 Password required for Carpo.
[R] PASS (hidden)
[R] 530 Login failed: Invalid password.
[R] Connection failed

now from that you would think the obvious and i forgot the pass right? wrong! ;)

its because i forgot to add the right ip for the intranet into my account in ioftpd

07-01-2007 11:37:12 Host '*@THE-MAJOR' did not match any of user 'Carpo' allowed hosts.
07-01-2007 11:38:20 Host '*@10.10.1.2' did not match any of user 'Carpo' allowed hosts.

after adding these two entries to my account i can log in ok again :)

a pidly error i know but it can be a bit miss leading - as i said before it used to throw this error up for near every error (no matter what the reall error was) in 5.8.6+ aswell

This is by design. I take it you haven't read the changelog at all for io 6.x ;) It's designed this way for security reasons. Now l33t h4xXoRs have a hard time fishing for info on which usernames exist etc. And since the logs contain the correct info that only admins should have access to.. isn't that nice? :)

/ZR

Zer0Racer
07-03-2007, 01:17 AM
I did a complete new clean setup (no scripts) checked every option 2 times to see difference with "broken" server, edited everything in wordpad, but when walking true the config i noticed a few minor things that are double imo
Under Permissions

I dunno why this is but i guess some settings are double in the config and the part that is named as example need to be marked with # or am i wrong?
To just say broken server is unfortunately not very helpful. There are alot of things that, when configged the wrong way, can make ioFTPD unable to start, or that will spit out error when you try to log in.

Those lines with permissions are not duplicates or anything like that because the first set of rules set permissions for /Incoming/* and then there are som general rules that apply to everything besides incoming dir. The first rules only apply IF there is a dir called incoming, of course.


[...]

*update*
Dunno if it's allready there but maybe a good idea to add a clean.registry file to ioFTPD because i think there lies my problem. i checked registry on ioFTPD items and there are a bunch of reg settings in winXP. I dunno which 1 to remove to get a clean start for io to setup.
Because when i unpack io6.1.14 and don't make any changes at all and hit the ioFTPD-Start.exe i mostly get winsock errors and io also says password in correct?¿?¿ that is strange for me because the very first time i run io it worked like a charm but now it just won't, and when i open ioftpd.ini 1 time and only change port for example i can't connect at all and it keeps giving me the error in previous posts
As far as I know ioFTPD itself doesn't set a single entry in the registry. If you find anything about ioFTPD there it's either windows own way of keeping track of which files you recently edited and ioGUI needs to keep track of a couple of things. ioGUI is not a part of ioFTPD itself. And ioGUI is not required in order to get ioFTPD to run.

And certain settings in ioFTPD, like changing service port, you actually have to restart ioFTPD before the new settings take effect. Most changes only reguire config rehash though.

/ZR

whocarez2k5
07-03-2007, 04:16 AM
That broken part you need to skip, i meant with that that i miss configured the server the way i wanted, so i did a clean setup.

That double part, how does io deal with that?

The example says that you can remove that incoming part but in that case you will get double rules/commands!

That registry part, has more to do with ioGUI build in latest io version, and because it's delivered with io now i did mentioned here.

I'm aware that ioGUI isn't needed but it's the simplest way to check if everything works fine.

I'm not gonna go further here with the problems i encounter otherwise i get banned from the forum for cross posting ;)

ArtX
07-03-2007, 10:03 AM
This is by design. I take it you haven't read the changelog at all for io 6.x ;) It's designed this way for security reasons. Now l33t h4xXoRs have a hard time fishing for info on which usernames exist etc. And since the logs contain the correct info that only admins should have access to.. isn't that nice? :)

/ZR

yes and no -- no, cus ioftpd is on a pc that has no net axs - just a home backup server, but i get the point of it, and no i didnt read the changelog - i have add ;)

Zer0Racer
07-03-2007, 03:30 PM
That double part, how does io deal with that?
ioFTPD neatly handles multiple lines of settings. It checks the lines top to bottom and acts accordingly. Take the example with the detailed vfs permissions – you have a couple of default rules that basically allows users to upload, download, create dirs etc.

Upload = * * simply means "everywhere" "everyone" is allowed to upload, but at the same time limited by the chmod settings on the existing vfs system. Now, what happens if I put another Upload rule just beneath it? Nothing happens since the first rule applies, everyone everywhere. That rule lets everything slide. So you need to put additional rules above the default rule in order to take advantage of the config's strength.

Example:
Upload = /Incoming/* 1M
Upload = * *

This means that only users with the flag 1 or M can upload to /Incoming but everywhere else is not limited by this rule since it's path specific.

You can but lots and lots of lines there to really tweak your vfs to only allow the actions you've chosen. Btw.. my own ioFTPD.ini has some 30+ lines starting with Upload and it has been working just great for years.

The example says that you can remove that incoming part but in that case you will get double rules/commands!I'm sure the "remove the incoming" part refers to removing the lines containing /Incoming/*, thus you won't have any duplicates. You're not supposed to just edit out the text "/Incoming/*".

That registry part, has more to do with ioGUI build in latest io version, and because it's delivered with io now i did mentioned here.

I'm aware that ioGUI isn't needed but it's the simplest way to check if everything works fine.
ioGUI is NOT the simplest way to check if everything works. If you want to make sure ioFTPD works, set it up and try to log in with a regular ftp client. And I have to mention (again) that ioGUI really isn't a part of ioFTPD. Yil just chose to put it in the default package to "help" new users.

So my suggestion is, forget about ioGUI for now, set up your ioFTPD so that it works for you on your system. When you get it to work (login, download, upload, fxp, ssl etc.) you can sink your teeth into ioGUI by just making the needed changes in settings.ini and sites.ini to suit your config.. then fire it up.




This is alot of text that might not make you even a little bit smarter. But I've done this for years and I really haven't had any major problems with ioFTPD. It's actually VERY easy once you know the foundation of it – set up the vfs, generate your own ssl cert (optional) make sure you've forwarded/opened (and configured) the correct ports and dataports to the ones you want, then just log in. It's explained in greater detail in the online documentation I wrote back in May 2003 for ioFTPD 4.9.x, and most of it still applies to io 6.x.

/ZR

Zer0Racer
07-08-2007, 05:53 AM
Hey Yil.

Got some info that might help tracking down one of those internal bugs that crashes ioFTPD. The last few days I've experienced a handful of crashes directly after issuing ie. MKDIR command after LOGIN. The ioFTPD.log logs the LOGIN event but not NEWDIR. This is the 0x00418d34 crash and the event when I started io again manually. 07-07-2007 16:36:59 LOGIN: "FTP_Service" "***" "***" "***" "*@***"
07-07-2007 16:39:04 START: "PID=5276" "CmdLine="
[18:43:56] [R] MKD ***
[18:43:57] [R] Connection lost: ***

Another time nothing strange happened but one user logged in download some files and ioFTPD crashed the same second the xferlog logged that that user just transferred another file. This last occurance was logged as 0x0042010a in the crash log.

Some info that might be relevant; I hide IPs in xferlog, use SSL, global outbound speedlimit, on OnUploadComplete I use EXEC ZR-Ban, EXEC ioZS, TCL newdir script and TCL nfourl script and PRE mkd I have ZR-Ban and newdir, and on OnFtpLogin I use the script ioActivity to log last logins.

EDIT: I decided to disable the newdir script for now to rule it out.

/ZR

Yil
07-08-2007, 07:49 PM
Zero: I went back to the function map and that address is in the ListMergeInfo function which is something I wrote for the new directory listing code. When using merged/raided dirs it sums up the entries from two different directories with the same name into a faked out single entry. This eliminates the old 5.8+ code where you would see dir ABC and then later on another ABC dir (or if you view it sorted two next to each other). Since this should only be called when merging mount points or when you have two directories of the same name beneath those mount points can you confirm you actually are using that feature?

Oops, looks like I use that to fake out the root entry of every directory, but still, would be good to know the types of VFS dirs being used.

Yil
07-09-2007, 12:02 AM
First off, I noticed the "symbolic links not showing up" problem a few people have reported. Basically when you create a symlink by converting a directory the link part isn't showing up in listings (but it works!) until you restart the server or the directory is flushed from the cache. It only happens when using the No_SubDir_Sizing option. What's happening here is converting a directory to a symlink just changes the .ioftpd file so the directory timestamp isn't updated and the fake directory entry doesn't know it should update itself.

I've fixed the problem by hunting down and invalidating the fake entry during updates on directories. This should also fix any potential issues with not seeing permission updates as I think that could happen as well.

While playing with this I've also become annoyed at symlinks in general. You manipulate them via "site chattr" but this command allows you to not only modify symlinks but the private flag thus making this command unsuitable for non-trusted users which means most people can't really create them. That's bad, but even worse is the fact that deleting them is hard.

Therefor I'm going to:
1) Create a new site command "site symlink name | target" which will allow users to create a symlink since you can allow more users access to the command. I think I'll also allow a shorthand of just "site target" which will strip off the last component and use that as the local name and in either case the target must actually exist. Using | as the delimiter isn't perfect (it's not a valid windows file character, and perhaps not a unix one either - but it's certainly a tricky one if it is) but it's a whole lot better than a 2 stage command like rename uses or enclosing stuff in quotes...

2) Modify the RMD (remove directory) command to NOT follow symlinks. Currently if you enter the command manually it will try to delete the target directory which will usually just fail since it's not empty, but if it is empty it's probably not what you expected...

3) Modify the DELE command which is what Flash, etc use when you try to delete a symlink to just go ahead and delete the link provided you have permissions on the link itself. No more having to revert the link to a directory and then deleting it. That SUCKS bigtime and of course means nobody without VM flags can actually do it...

There are a few dumb things you can do like turn a populated directory into a symlink via chatter which hides all the files in it but I'm not sure I'll write checks for that since only VM flagged users can use it anyway...

Oh, I think I'm going to add a "site ioversion" command which will print the version of ioFTPD. I'll default it to 1+ users, but just want to make sure nobody knows of a script using it already. I got burned with "site free" once already :)

Zer0Racer
07-09-2007, 06:02 AM
Zero: I went back to the function map and that address is in the ListMergeInfo function which is something I wrote for the new directory listing code. When using merged/raided dirs it sums up the entries from two different directories with the same name into a faked out single entry. This eliminates the old 5.8+ code where you would see dir ABC and then later on another ABC dir (or if you view it sorted two next to each other). Since this should only be called when merging mount points or when you have two directories of the same name beneath those mount points can you confirm you actually are using that feature?

Oops, looks like I use that to fake out the root entry of every directory, but still, would be good to know the types of VFS dirs being used.
At the moment I don't use merged directories. Root is a dir containing two symlinks and one empty dir named [sitename], yes including the brackets. That dir is chmodded to 000. The symlinks are updated manually every month or so.

All the other dirs are mounted seperately into that root dir and one or two are mounted with underscore infront of the name in order to be at the top of the dirlist ie. "x:\somedir" mounted as /_archive. Such mount points sometimes also occur as subdirs inside any given dir mounted to root.

And btw I don't use Allowed_Recursive or No_Subdir_Sizing.Allowed_Recursive = !*
Hide_Xfer_Host = True
No_SubDir_Sizing = False

Hope this helps, and if you need any other info just let me know
/ZR

Zer0Racer
07-09-2007, 06:24 AM
[...]

While playing with this I've also become annoyed at symlinks in general. You manipulate them via "site chattr" but this command allows you to not only modify symlinks but the private flag thus making this command unsuitable for non-trusted users which means most people can't really create them. That's bad, but even worse is the fact that deleting them is hard.

[...]

Oh, I think I'm going to add a "site ioversion" command which will print the version of ioFTPD. I'll default it to 1+ users, but just want to make sure nobody knows of a script using it already. I got burned with "site free" once already :)
While you're at it please see if you can come up with a solution for the permissions on private dirs. Currently you have to site chattr +h "dir" "-user -user =group" or use a flag. The permissions seem to be set as string/text and then read. But what happens if you rename a user? When I check the permissions for a private dir it still shows the old username. Maybe the permissions themselves in the .ioftpd file can somehow be bound to the uid but still show the username when you want to view the permissions?

tuff wrote/modified a version script for ioftpd and it works nicely with io 6.x.
proc onsiteversion {} {
set executable "c:/ioFTPD/system/ioFTPD.exe"
set filesize [file size $executable]
set infile [open $executable r]
seek $infile [expr $filesize - 2]
set offset [scan [read $infile 1] %c]
seek $infile [expr $filesize - [expr $offset + 3]]
set version [read $infile]
regsub -all {[^\w\d\-]} $version {} version
set version [string map {- .} $version]
close $infile;
iputs "ioFTPD version: $version"
}
onsiteversion
version = TCL ..\scripts\version\onsiteversion.itcl

/ZR

Yil
07-09-2007, 12:48 PM
Zero: The private dir permissions utilize the same routine as all of the .ini file options and thus are just strings that use names instead of id's. I suppose that format could be extended to support id's for users/groups and when valid users/groups are specified they could be resolved and stored that way. I think it's probably far far easier to just use a user flag though. That's especially true since if you add a new user you would be forced to update all the permissions if you specified them individually and that's probably more likely than the user rename issue.

Yea, I append the extra data to executables so tuff's script works :) That's cool, and mentioning that means I probably should provide a TCL version as well for future use.

VFS: it sounds like you're doing nothing fancy at all. That means the problem won't be found easily as it's more likely memory corruption based rather than a simple programming error in the new code I wrote.

Zer0Racer
07-09-2007, 04:31 PM
Zero: The private dir permissions utilize the same routine as all of the .ini file options and thus are just strings that use names instead of id's. I suppose that format could be extended to support id's for users/groups and when valid users/groups are specified they could be resolved and stored that way. I think it's probably far far easier to just use a user flag though. That's especially true since if you add a new user you would be forced to update all the permissions if you specified them individually and that's probably more likely than the user rename issue.

Yea, I append the extra data to executables so tuff's script works :) That's cool, and mentioning that means I probably should provide a TCL version as well for future use.

VFS: it sounds like you're doing nothing fancy at all. That means the problem won't be found easily as it's more likely memory corruption based rather than a simple programming error in the new code I wrote.
Of course using flags is very handy for certain types of private dirs that more than one user has access to. But for scenarios like when you have one private dir (as a subdir) for each user and set the permissions accordingly, just to be extra sure that noone could gain access to something they're not supposed to, making that resolve thing to uid work would greatly improve the flexibility. Just a thought...

Any ideas on how that supposed memory corruption could be tracked down? Maybe a debug version?

/ZR

BigBoxer
07-10-2007, 11:35 AM
i have problem with SSL and Windows Vista Home Premium x32, i generate certificate on the machine via ioFTPd with a rsagen command that executes rsa.bat that contains the makecert etc etc command. then i install the certificate to the system. I start ioFTPd and then try to connect and it says
[1] AUTH SSL
[1] 504 AUTH SSL unsupported.

i also tryed to move certificate in different certification archive (in vista there are 3 main certificate archive) but i get always the same message when trying to connect?

anyone solved?

ArtX
07-10-2007, 01:05 PM
Yil first time i have had a crash on 6.1.x in a long time but i had one today :(

Unhandled exception 3221225477 at address 0x20b0bcd8 (0x00000000)
0x00000000 0x0000000c

edit: and another one
Unhandled exception 3221225477 at address 0x20b0b3a7 (0x00000000)
0x00000000 0x00000528

whocarez2k5
07-10-2007, 01:06 PM
i have problem with SSL and Windows Vista Home Premium x32, i generate certificate on the machine via ioFTPd with a rsagen command that executes rsa.bat that contains the makecert etc etc command. then i install the certificate to the system. I start ioFTPd and then try to connect and it says
[1] AUTH SSL
[1] 504 AUTH SSL unsupported.

i also tryed to move certificate in different certification archive (in vista there are 3 main certificate archive) but i get always the same message when trying to connect?

anyone solved?
Try to reboot your pc.
Worked for me everytime';)

p.s.: i probably don't have to say it but ioftpd.ini is modified for ssl?

Zer0Racer
07-12-2007, 12:25 AM
Thread closed because 6.2.0 thread is now open where the memory corruption is being debugged.

/ZR