FileZilla 3 development diary

Moderator: Project members

Message
Author
User avatar
botg
Site Admin
Posts: 35565
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

#691 Post by botg » 2007-10-21 14:05

What puzzles me is, if someone is using a firewall or NAT router, which are very complex and invasive devices, why do they blame the other unrelated software for bugs in THEIR firewall/router?

Instead in the past, I've received lots and lots of complaints from clueless, ignorant users about transfers timing out. In all cases the culprit is the user's firewall or NAT router.

Due to the nature of the FTP protocol, the control connection is completely idle during the transfer. Many broken firewalls and routers hence drop the control connection, ultimately causing the transfer to time out or even fail.

In theory the SO_KEEPALIVE socket option sounds like a solution. However, the default keepalive time is set to two hours, whereas lots of broken routers/firewalls already drop the connection far earlier, e.g. 15 minutes or less.
While I have no idea how to set that option on other platforms, I figured out how to set it on Windows using WSAIoctl with the SIO_KEEPALIVE_VALS option.

I hope this helps the clueless.

GoD
500 Syntax error
Posts: 14
Joined: 2007-04-09 21:26

#692 Post by GoD » 2007-10-22 15:02

You should set this value to 5 minutes. So the noobs will have no problems.

User avatar
botg
Site Admin
Posts: 35565
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

#693 Post by botg » 2007-11-04 01:16

I don't like OS X, it's worse than Windows. It's a failed attempt at creating a unix-like system, despite its BSD core or the worthless unix certifications.

My latest gripe: Application bundles. Which are actually just directories with the name suffix .app and a badly documented structure of the expected contents of that directory.

Take for example the application icons. You'd thing that since it's already directory based you could just drop your finished icons in an open, widely accepted format into it. That sounds nice and reasonably, and on top it is. But doesn't work.
Just like Windows, OS X uses its very own, proprietary icon format with the extension .icns. The difference: Windows uses it for historical reasons, OS X however is recent enough, Apple should have known better.
I couldn't find any program running under a non-tutti-frutti operating systems, neither open source nor freeware nor fully commercial software. Outside of OS X, the .icns format just doesn't exist. How does Apple expect to lure cross platform developers if a potential developer can't even create an application icon? Now internally, .icns appears to be very simple to the .ico file format, a simple container for a rasterized images in various sizes.
Since the application bundle is a directory, why didn't Apple choose to use a collection of .png files with a fixed name and size? I.e. inside a bundle, several files like 16x16.png, 32x32.png and so on.

Next there's the integration of the bundle with the operating system. You can actually execute some directories on OS X, namely the bundles. What OS X does behind the scenes is something like this:
- read the file MacInfo.plist in some subdirectory inside the bundle. This file actually is a XML file with a rather strange structure. Inside a <plist><dict> element, it has pairs of <key> and <string> elements. This means that it relies on a fixed order. I'd never design any XML scheme in that way. (Question: Any XML experts here? Do the XML specs say anything about the relative order of elements?).
- Read the string for the key CFBundleExecutable
- Execute said file

So far so good, however there are a couple of problems with this.

First of all Finder hides the fact that the bundles are just simple directories from the user. No operating should ever hide things from the user unless the user explicitly tells the system to do so.

Anti-DLL hell. We all know DLL hell all too well, some might know the elegant solution under Unix-like systems with versioned .so files, but few know about the implications of application bundles. Using application bundles in essence prohibits using shared libraries. By that I mean shared libraries which by definition live outside the bundle using such a library. Program + library in the very same bundle counts as static library, it's not shared with any other program, despite being a .so for example.
With such a scheme, using shared libraries would involve scanning all other bundles for the library, resulting in a massive performance drop.

To enforce the confusion, OS X does not display any error message if a program (inside a bundle) cannot be started if for example one dependency is missing, may it be a dependency from a future OS X version (e.g. trying to run an app for Tiger on 10.3 or older) or a shared library.

eyebex
226 Transfer OK
Posts: 171
Joined: 2004-04-02 15:24

#694 Post by eyebex » 2007-11-04 11:50

botg wrote:I couldn't find any program running under a non-tutti-frutti operating systems, neither open source nor freeware nor fully commercial software. Outside of OS X, the .icns format just doesn't exist.
After googling 5 seconds, I found that XnView (a free cross-platform image viewer) seems to support .icns files:

http://filext.com/file-extension/ICNS

Stefan1200
425 Can't open data connection
Posts: 42
Joined: 2007-09-27 07:27

#695 Post by Stefan1200 » 2007-11-04 12:30

eyebex wrote:After googling 5 seconds, I found that XnView (a free cross-platform image viewer) seems to support .icns files:
I checked it (I use XNView as default image app since many years), but XNView can only read this icns files. I think botg need a program that can write this files, but I am not sure.
<removed advertisement>

User avatar
botg
Site Admin
Posts: 35565
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

#696 Post by botg » 2007-11-04 12:35

Exactly, no program can write it.

cooperspc
226 Transfer OK
Posts: 94
Joined: 2005-10-21 15:21
Location: Indiana USA

#697 Post by cooperspc » 2007-11-04 15:15

http://www.shinyfrog.net/en/software/img2icns/
http://www.macupdate.com/info.php/id/18369

looks like open source..but you may already know of this one

User avatar
botg
Site Admin
Posts: 35565
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

#698 Post by botg » 2007-11-04 16:18

It's still only a Mac program. I'd like to have one for Linux.


User avatar
botg
Site Admin
Posts: 35565
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

#700 Post by botg » 2007-11-07 09:11

It's only for reading, not for writing icns files :/

Stefan1200
425 Can't open data connection
Posts: 42
Joined: 2007-09-27 07:27

#701 Post by Stefan1200 » 2007-11-08 11:43

I only found some informations about this icns files:
http://ezix.org/project/wiki/MacOSXIcon ... caldetails
<removed advertisement>

Ezh
500 Syntax error
Posts: 15
Joined: 2004-04-14 09:23

#702 Post by Ezh » 2007-11-13 02:44

Where should I post bugs? In separate thread? For now I'll post it here.

See the screenshot.
http://www.menelon.ee/private/mozilla/filezilla_bug.png

I renamed a file remotely (F2), switced windows, server disconnected and I got this. Only after I closed the rename dialog I was able to reconnect to any server.

eyebex
226 Transfer OK
Posts: 171
Joined: 2004-04-02 15:24

#703 Post by eyebex » 2007-11-13 09:05

Ezh wrote:Where should I post bugs? In separate thread? For now I'll post it here.
Like for all SourceForge projects, go to the bug tracker on the project page:
http://sourceforge.net/tracker/?group_i ... tid=372241

Jab
500 Command not understood
Posts: 4
Joined: 2007-11-07 00:52

#704 Post by Jab » 2007-11-16 01:15

Maybe ICNWriter. Included in Glassworks.

http://www.halogenware.com/software/glassworks.html

Java based?

User avatar
botg
Site Admin
Posts: 35565
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

#705 Post by botg » 2007-11-16 16:45

Time to implement support for these legacy FTP proxies which some people seem to really like for some stupid reason.

I hope I have identified the most common proxy login sequences as outlined below:

USER@host

Code: Select all

USER %s
PASS %w
USER %u@%h
PASS %p
ACCT %a
SITE

Code: Select all

USER %s
PASS %w
SITE %h
USER %u
PASS %p
ACCT %a
OPEN

Code: Select all

USER %s
PASS %w
OPEN %h
USER %u
PASS %p
ACCT %a
%h Host
%u Username
%p Password
%a Account
%s Proxy user
%w Proxy password

Post Reply