diff --git a/llarp/ev/ev_win32.cpp b/llarp/ev/ev_win32.cpp index d7a8f19aa..00e3cfb94 100644 --- a/llarp/ev/ev_win32.cpp +++ b/llarp/ev/ev_win32.cpp @@ -278,6 +278,19 @@ namespace llarp return uwrite(fd, (char*)buf, sz); } + std::deque< std::vector< char > > m_WriteQueue; + + static ssize_t + TCPWrite(llarp_tcp_conn* conn, const byte_t* ptr, size_t sz) + { + llarp::ev_io* io = (llarp::ev_io*)conn->impl; + m_WriteQueue.emplace_back(sz); + std::copy_n(ptr, sz, m_WriteQueue.back().begin()); + byte_t* buf = new byte_t[sz]; + memcpy(buf, m_WriteQueue.back().data(), sz); + return uwrite(io->fd, (char*)buf, sz); + } + void tcp_conn::connect() { @@ -430,6 +443,7 @@ llarp_win32_loop::tcp_connect(struct llarp_tcp_connecter* tcp, if(fd == -1) return false; llarp::tcp_conn* conn = new llarp::tcp_conn(this, fd, remoteaddr, tcp); + conn->tcp.write = &llarp::TCPWrite; add_ev(conn, true); conn->connect(); return true; diff --git a/win32-setup/lokinet-win32.iss b/win32-setup/lokinet-win32.iss index 5d603b0f1..fe54749b9 100644 --- a/win32-setup/lokinet-win32.iss +++ b/win32-setup/lokinet-win32.iss @@ -88,8 +88,7 @@ Source: "{#DevPath}ui-win32\bin\release\lokinetui.pdb"; DestDir: "{app}"; Flags: #endif ; eh, might as well ship the 32-bit port of everything else Source: "{#DevPath}build\testAll.exe"; DestDir: "{app}"; Flags: ignoreversion -; we don't ship this yet -; Source: "{#DevPath}build\lokinetctl.exe"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#DevPath}build\lokinetctl.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "LICENSE"; DestDir: "{app}"; Flags: ignoreversion Source: "lokinet-bootstrap.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "rootcerts.pem"; DestDir: "{app}"; Flags: ignoreversion