twisted / twisted/twisted

FTP DTP not binding to correct IP Address

Open
#4,256 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug ftp new priority-normal
Dominant language
Python
Stars
6k
Forks
1.2k
Avg merge
2d 10h
Merged PRs (30d)
10

Description

alepra1's avatar alepra1 reported
Trac ID trac#4256
Type defect
Created 2010-02-04 20:24:07Z

When serving FTP on a box with multiple IP address, the DTP Protocol may bind to the wrong address when handling a PORT command.

For ex., I have a server with the following addresses:
192.168.1.8 -
192.168.1.9 -
192.168.1.10

When a connection to the FTP server is made on address 192.168.1.9, and an active file transfer is started, the DTP connection starts from 192.168.1.8

This may end up resulting in the impossibility to setup the data connection if the server is multi-homed.

I have attached a simple patch that seems to solve the problem for me, but is quite untested.

Attachments:

  • ftp.patch (521 bytes) - added by alepra1 on 2010-02-04 20:24:39Z -
Searchable metadata
trac-id__4256 4256
type__defect defect
reporter__alepra1 alepra1
priority__normal normal
milestone__ 
branch__ 
branch_author__ 
status__new new
resolution__None None
component__ftp ftp
keywords__ 
time__1265315047000000 1265315047000000
changetime__1265318997000000 1265318997000000
version__None None
owner__ 
cc__pradu@... cc__exarkun

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the attached ftp.patch and the FTP DTP handling for active PORT commands. Reproduce the case on a multi-homed server with several local addresses, then verify that the data connection uses the address receiving the control connection and add or update coverage for that behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.