X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Friece-rdcc.el;h=7c0d86d8f742d8afbbb8f9edd2f532ee84d3e041;hb=52ff8cff0ff403a324b2b1b8340f75d6dc468808;hp=9b5286f68db595e789d8212538f235a29601b51f;hpb=f9c7797d207966872dba8c85f0b249e1ef01b7e8;p=elisp%2Friece.git diff --git a/lisp/riece-rdcc.el b/lisp/riece-rdcc.el index 9b5286f..7c0d86d 100644 --- a/lisp/riece-rdcc.el +++ b/lisp/riece-rdcc.el @@ -43,19 +43,21 @@ (defcustom riece-rdcc-server-address nil "Local address of the DCC server. Only used for sending files." - :type 'string + :type '(choice (string :tag "Address") + (cons (string :tag "Address") (integer :tag "Port"))) :group 'riece-rdcc) (defcustom riece-rdcc-send-program '("\ require 'socket' address = " address " +port = " port " unless address sock = UDPSocket.new sock.connect('164.46.176.4', 7) # www.unixuser.org/echo address = sock.getsockname[4 .. 7].unpack('CCCC').join('.') end -server = TCPServer.new(address, 0) +server = TCPServer.new(address, port) output(\"#{server.addr[3].split(/\\./).collect{|c| c.to_i}.pack('CCCC').unpack('N')[0]} #{server.addr[1]}\") session = server.accept if session @@ -146,9 +148,18 @@ end riece-rdcc-send-program (list (cons 'address (if riece-rdcc-server-address - (concat "'" riece-rdcc-server-address - "'") + (if (consp riece-rdcc-server-address) + (concat "'" (car riece-rdcc-server-address) + "'") + (concat "'" riece-rdcc-server-address + "'")) "nil")) + (cons 'port + (if (and riece-rdcc-server-address + (consp riece-rdcc-server-address)) + (number-to-string + (cdr riece-rdcc-server-address)) + "0")) (cons 'file (concat "'" file "'")) (cons 'block-size