Fred Wright wrote:
> On Mon, 7 Jul 2003, Manuel Kasper wrote:
>> On Sun, 6 Jul 2003, Fred Wright wrote:
>>> Only the GRE traffic is a problem, since there's no conflict with
>>> the control connection (as long as you don't need simultaneous
>>> client and server operation with respect to a single remote
>>> system). So the PPTP code should be able to use the local IP
>>> address of the already-established control connection socket to
>>> bind() the (presumably raw) GRE socket. It could even bind to the
>>> remote IP by using connect(), which also improves efficiency.
>> Interestingly, the reason for the "Address already in use" message
>> is not GRE, but the TCP port 1723 server socket. I sent Michiel a
> That's bizarre, unless the PPTP client is actually attempting to
> implement the shared client/server control connection, perhaps in a
> non-useful way. Otherwise, there's no reason why the client would
> use *local* port 1723 at all.
> Or are multiple server-side instances getting started?
>> modified version of m0n0wall where the PPTP server uses "set pptp
>> self" (to 127.0.0.1) like the PPTP client does (which uses the
>> pseudo WAN IP
> What's it trying to do with loopback? A connection bound to that IP
> couldn't leave the box.
>> address assigned on the WAN->PPTP setup page). Still - the same
>> message... Looking at MPD's source code, it's clear that the message
>> originates from the bind() on the TCP server socket. I don't quite
>> understand why two different processes cannot bind to the same port
>> but on different IP addresses... I thought that was possible. MPD
>> even uses setsockopt(...
> It's possible if you use SO_REUSEADDR.
>> SO_REUSEADDR ...) before the bind() - don't know what effect that
>> has, though.
> It definitely needs that if it's using a fixed port locally. Without
> SO_REUSEADDR, it's not even possible to bind a listener to a port
> when a *connection* exists involving that same local port, let alone
> another listener. Part of the problem is that there's no way to
> atomically bind a socket to both local and remote addresses, since
> two separate calls are involved.
>> Some more debugging may be in order, I guess. Maybe we have to check
>> if MPD really supplies the IP address given in "set pptp self" to
> A good start would be to look with netstat while the client side is
> Fred Wright
Status.cgi will provide this information right?