> Neither of solutions solve the problem because you are > still using multiple IPs. Whether that IP address comes > from a proxy server, or from an aliased port on the > same server is irrelevant it still adds up to 1 IP > address per domain.
No, this isnt true. The proxy server would listen to <external-ip>:143/110. Cyrus would listen to 127.0.0.1:143/110. The proxy server forwards connections using localhost. Only one external IP would be required (I am using an internal network to accomplish this, but the theory is the same). *ANY* domain can be accessed through this one port. Thats the point of the proxy server. This *does* assume youre using the FQEA in place of a username though. > Here's a description of the problem given as a set of > requirements: > 1) The system must bind to exactly 1 IP address on port 143, > or have a reasonable method of automatically finding > port numbers (like SVR records which return address and port) > and clients that understand that method. (For the truly > adventuress, telling your end users that you are not on > port 143, but on some other port and having them change > the port the client is using is an acceptable alternative) > > 2) The system must distinguish between two identical usernames > and look up password information from the appropriate > password database. Given separate port numbers or IP > addresses this easy, bind a password database to that > address or port. If you decide to use FQEA's this second requirement isnt necessary. > I don't care where you get the extra domain information > from, as long as you can get it. MySQL databases, DNS lookups, > specialized identification programs use whatever you like as > long as it is generic enough to be used across the board. > BTW, if you can solve the problem, than this will directly > translate to solving the problem for anonymous FTP and a > host of other protocols this solution can apply to. This is true. I think that you are correct in saying that with one IP, you cannot discern between two different users with the same username. This makes complete sense. My solution was to eliminate any case where you would have two identical usernames by simply eliminating the username in favor of an identifier (FQEA) that doesnt have any risk of namespace collision. In a way this is sort of analagous to HTTP 1.1 providing the 'host:' header in its request so that the server can tell exactly what its looking for. In short, this problem is not practically solvable on the server-side. The best solution (in my mind) is to solve it on the client side by giving users unique identifiers. The problem with this is that a user doesnt want to have to remember a unique identifier that doesnt relate to anything in his mind (if his name is joe, he doesnt want to have to remember his username is joe33). Therefore the best solution is giving them a unique identifier that they have to have and remember already. Eg: their email address. > I also agree that giving people their FQEA as their > identifier is the most appropriate. This way they only > have to remember one identifier, without exception, > this is the identifier they use. It makes things much > simpler albeit longer to type. My thoughts exactly. -- Matt