mIRC Home    About    Download    Register    News    Help

Print Thread
Joined: Aug 2006
Posts: 167
P
Vogon poet
OP Offline
Vogon poet
P
Joined: Aug 2006
Posts: 167
mIRC allows you to configure which port your own DCC fserve will listen on, but how does one initiate an outgoing DCC fserve connection to someone using a port other than 59?

I've tried /dcc fserve their.ip.address.here:12345 and /dcc fserve their.ip.address.here 12345 but neither work.

And I can't find anything in the help file about this...

Joined: Oct 2004
Posts: 8,330
Hoopy frood
Offline
Hoopy frood
Joined: Oct 2004
Posts: 8,330
If you want to connect to their server, they'll choose the port because they are the ones who have to configure their router/firewall to allow the access in the first place. If you want to use passive (reverse dcc) for your own server, then you can just enable that in mIRC's options and set the port there. *They must have the port open*. You can also use /dcc with the port as long as they have the port open. They also need to have /dcc's allowed or at least accept the /dcc if they have it set to ask each time.


Invision Support
#Invision on irc.irchighway.net
Joined: Aug 2006
Posts: 167
P
Vogon poet
OP Offline
Vogon poet
P
Joined: Aug 2006
Posts: 167
Sorry, I think my choice of wording was poor ("DCC fserve").

I am asking about mIRC's built-in DCC server, which can be used to establish DCC fserve sessions (along with DCC chat and DCC send sessions) without being connected to an IRC server. mIRC allows you to configure this server's listening port as demonstrated here: http://i.imgur.com/BlyxV.png. The default port is 59, and as the image shows, that's where it listens (and, after I changed it to 5959, that's where it listened instead).

According to mirc.chm (look up "DCC Server" in the [Index] tab), one initiates connections to these servers by typing either:

/dcc send their.ip.address.here
/dcc chat their.ip.address.here
/dcc fserve their.ip.address.here

I've tested these commands and they work fine, provided the other person has his mIRC installation's DCC Server configured to listen on the default port (59).

However, if the other person changes his listening port to something else (like 5959), then I can't figure out how to connect to it -- i.e., none of the following work:

/dcc send their.ip.address.here:5959
/dcc send their.ip.address.here 5959
/dcc chat their.ip.address.here:5959
/dcc chat their.ip.address.here 5959
/dcc fserve their.ip.address.here:5959
/dcc fserve their.ip.address.here 5959

In other words, it is not a matter of bad port forwarding at the other person's end. My miRC installation physically won't accept port numbers as part of the /dcc [type] [IP] command's syntax.

Joined: Oct 2004
Posts: 8,330
Hoopy frood
Offline
Hoopy frood
Joined: Oct 2004
Posts: 8,330
Did you forward port 5959 on your end?


Invision Support
#Invision on irc.irchighway.net
Joined: Aug 2006
Posts: 167
P
Vogon poet
OP Offline
Vogon poet
P
Joined: Aug 2006
Posts: 167
Yes, all port-forwarding is correctly configured. But the problem isn't related to port-forwarding. The problem is that mIRC simply doesn't accept a port number in the /dcc command.

If I type:
/dcc fserve their.ip.address.here:5959
mIRC responds:
* /dcc: invalid address

If I type:
/dcc fserve their.ip.address.here 5959
My packet sniffer shows mIRC making an outbound TCP connection to their.ip.address.here:59

So in example #1, the /dcc command refuses to accept the port number -- while in example #2, the /dcc command ignores the port number.

It is as if Khaled created a way to customize the mIRC DCC Server's listening port, without providing a way to connect to a mIRC DCC Server with a customized listening port.

But if that were true, I surely wouldn't be the first to have noticed. So I'm assuming that I'm the one who's overlooking the correct method. smile

Joined: Oct 2004
Posts: 8,330
Hoopy frood
Offline
Hoopy frood
Joined: Oct 2004
Posts: 8,330
I see what you're saying now. It looks like you have to use the /dccserver command to set the port before using /dcc chat/fserve/etc. I had thought it worked with the port inline, but it doesn't look like it. I'm not sure if that changed at some point or if it's always been that way.


Invision Support
#Invision on irc.irchighway.net
Joined: Aug 2006
Posts: 167
P
Vogon poet
OP Offline
Vogon poet
P
Joined: Aug 2006
Posts: 167
Thanks. I would not have guessed that the DCC Server's listening port also dictated which port outgoing DCC Server connections were made to. Now I know this is a design oversight/flaw. I hope Khaled sees this.

I've made the following for myself to compensate. It changes the port so quickly that nobody should ever find your own server unreachable.

Code:
dcc {
  ; Syntax: /dcc <chat|fserve> <ip:port>
  ;         /dcc <send> <ip:port> <filename>
  ; Any other syntax is passed raw to normal /dcc command
  if ($numtok($2,58) == 2) && (($1 == chat) || ($1 == send) || ($1 == fserve)) {
    if ($numtok($gettok($2,1,58),46) == 4) && $&
      ($gettok($gettok($2,1,58),1,46) isnum 0-255) && ($gettok($gettok($2,1,58),2,46) isnum 0-255) && $&
      ($gettok($gettok($2,1,58),3,46) isnum 0-255) && ($gettok($gettok($2,4,46),1,58) isnum 0-255) {
      if ($gettok($2,2,58) isnum 1-65535) && ($calc($gettok($2,2,58) % 1) == 0) {
        if ($1 != send) || ($0 > 2) {
          var %x = $dccport $gettok($readini($mircini,n,dccserver,n0),1,44)
          /.dccserver on $gettok($2,2,58)
          /.dcc $1 $gettok($2,1,58) $3-
          /.dccserver on $gettok(%x,1,32)
          if ($gettok(%x,2,32) == 0) /.dccserver off
        }
        else echo -abcfilr [ $+ [ $iif($active == Status Window,e) ] ] info * /dcc: no file specified
      }
      else echo -abcfilr [ $+ [ $iif($active == Status Window,e) ] ] info * /dcc: invalid port
    }
    else echo -abcfilr [ $+ [ $iif($active == Status Window,e) ] ] info * /dcc: invalid address
  }
  else /.dcc $1-
}


Link Copied to Clipboard