diff options
-rw-r--r-- | src/irc.lua | 2 | ||||
-rw-r--r-- | src/irc/dcc.lua | 22 |
2 files changed, 8 insertions, 16 deletions
diff --git a/src/irc.lua b/src/irc.lua index 2b2bca7..ff90c36 100644 --- a/src/irc.lua +++ b/src/irc.lua @@ -502,7 +502,7 @@ function ctcp_handlers.on_dcc(from, to, message) local type, argument, address, port, size = base.unpack(misc.split(message, " ", nil, '"', '"')) if type == "SEND" then if misc.try_call(on_dcc, from, to, argument, address, port, size) then - dcc.accept(argument, address, port, size) + dcc.accept(argument, address, port) end elseif type == "CHAT" then -- TODO: implement this? do people ever use this? diff --git a/src/irc/dcc.lua b/src/irc/dcc.lua index 45eb446..bd06864 100644 --- a/src/irc/dcc.lua +++ b/src/irc/dcc.lua @@ -23,17 +23,13 @@ LAST_PORT = 5000 -- private functions {{{ -- send_file {{{ --- TODO: no reason to be sending the size parameter all over the place when we --- only need it in this function. also, should probably seek to the beginning --- of the file before sending it. -- -- Sends a file to a remote user, after that user has accepted our DCC SEND -- invitation -- @param sock Socket to send the file on -- @param file Lua file object corresponding to the file we want to send --- @param size Size of the file to send -- @param packet_size Size of the packets to send the file in -local function send_file(sock, file, size, packet_size) +local function send_file(sock, file, packet_size) local bytes = 0 while true do local packet = file:read(packet_size) @@ -49,7 +45,6 @@ local function send_file(sock, file, size, packet_size) break end end - if bytes >= size then break end coroutine.yield(true) end file:close() @@ -66,9 +61,8 @@ end -- that we can send data on -- @param ssock Server socket that the remote user connected to -- @param file Lua file object corresponding to the file we want to send --- @param size Size of the file to send -- @param packet_size Size of the packets to send the file in -local function handle_connect(ssock, file, size, packet_size) +local function handle_connect(ssock, file, packet_size) packet_size = packet_size or 1024 local sock = ssock:accept() sock:settimeout(0.1) @@ -76,7 +70,7 @@ local function handle_connect(ssock, file, size, packet_size) irc._unregister_socket(ssock, 'r') irc._register_socket(sock, 'w', coroutine.wrap(function(sock) - return send_file(sock, file, size, packet_size) + return send_file(sock, file, packet_size) end)) return true end @@ -87,9 +81,8 @@ end -- Accepts a file from a remote user which has offered it to us. -- @param sock Socket to receive the file on -- @param file Lua file object corresponding to the file we want to save --- @param size Size of the file we are receiving -- @param packet_size Size of the packets to receive the file in -local function accept_file(sock, file, size, packet_size) +local function accept_file(sock, file, packet_size) local bytes = 0 while true do local packet, err, partial_packet = sock:receive(packet_size) @@ -133,7 +126,7 @@ function send(nick, filename, port) file:seek("set") irc._register_socket(sock, 'r', coroutine.wrap(function(sock) - return handle_connect(sock, file, size) + return handle_connect(sock, file) end)) filename = misc.basename(filename) if filename:find(" ") then filename = '"' .. filename .. '"' end @@ -150,9 +143,8 @@ end -- @param filename Name to save the file as -- @param address IP address of the remote user -- @param port Port to connect to at the remote user --- @param size Size of the file that the remote user is offering -- @param packet_size Size of the packets the remote user will be sending -function accept(filename, address, port, size, packet_size) +function accept(filename, address, port, packet_size) packet_size = packet_size or 1024 local sock = base.assert(socket.tcp()) base.assert(sock:connect(misc.ip_int_to_str(address), port)) @@ -160,7 +152,7 @@ function accept(filename, address, port, size, packet_size) local file = base.assert(io.open(misc.get_unique_filename(filename), "w")) irc._register_socket(sock, 'r', coroutine.wrap(function(sock) - return accept_file(sock, file, size, packet_size) + return accept_file(sock, file, packet_size) end)) end -- }}} |