Merge pull request #68 from jkczyz/2022-03-ldk-0-0-106
[ldk-c-bindings] / ldk-net / ldk_net.c
index dc19e8ee6794a900b1a2a3939940cd333c6d8a85..8bae7af192c1c08b0f41f1bbf1310718fb635c5b 100644 (file)
@@ -111,10 +111,9 @@ static uintptr_t sock_send_data(void* desc, struct LDKu8slice data, bool resume_
                for (int i = 0; i < descriptor->handler->sockcount; i++) {
                        if (descriptor->handler->pollfds[i].fd == descriptor->fd) {
                                if (pause_read) {
-                                       descriptor->handler->pollfds[i].events &= POLLIN;
-                                       descriptor->handler->pollfds[i].events |= POLLOUT;
+                                       descriptor->handler->pollfds[i].events = POLLOUT;
                                } else {
-                                       descriptor->handler->pollfds[i].events |= POLLIN;
+                                       descriptor->handler->pollfds[i].events = POLLIN;
                                }
                                break;
                        }
@@ -215,7 +214,10 @@ static void *sock_thread_fn(void* arg) {
                                                                if (newfd >= 0) {
                                                                        // Received a new connection, register it!
                                                                        LDKSocketDescriptor new_descriptor = get_descriptor(handler, newfd);
-                                                                       LDKCResult_NonePeerHandleErrorZ con_res = PeerManager_new_inbound_connection(&handler->ldk_peer_manager, new_descriptor);
+                                                                       LDKCOption_NetAddressZ remote_network_address = {
+                                                                               .tag = LDKCOption_NetAddressZ_None,
+                                                                       };
+                                                                       LDKCResult_NonePeerHandleErrorZ con_res = PeerManager_new_inbound_connection(&handler->ldk_peer_manager, new_descriptor, remote_network_address);
                                                                        if (con_res.result_ok) {
                                                                                if (register_socket(handler, newfd, 0))
                                                                                        shutdown(newfd, SHUT_RDWR);
@@ -243,8 +245,7 @@ static void *sock_thread_fn(void* arg) {
                                                                        lockres = pthread_mutex_lock(&handler->sockets_mutex);
                                                                        assert(lockres == 0);
                                                                        assert(handler->pollfds[i - 1].fd == pollfds[i].fd); // Only we change fd order!
-                                                                       handler->pollfds[i - 1].events &= POLLIN;
-                                                                       handler->pollfds[i - 1].events |= POLLOUT;
+                                                                       handler->pollfds[i - 1].events = POLLOUT;
                                                                        lockres = pthread_mutex_unlock(&handler->sockets_mutex);
                                                                        assert(lockres == 0);
                                                                }
@@ -380,7 +381,10 @@ int socket_connect(void* arg, LDKPublicKey pubkey, struct sockaddr *addr, size_t
        if (register_socket(handler, fd, 0)) return -4;
 
        LDKSocketDescriptor descriptor = get_descriptor(handler, fd);
-       LDKCResult_CVec_u8ZPeerHandleErrorZ con_res = PeerManager_new_outbound_connection(&handler->ldk_peer_manager, pubkey, descriptor);
+       LDKCOption_NetAddressZ remote_network_address = {
+               .tag = LDKCOption_NetAddressZ_None,
+       };
+       LDKCResult_CVec_u8ZPeerHandleErrorZ con_res = PeerManager_new_outbound_connection(&handler->ldk_peer_manager, pubkey, descriptor, remote_network_address);
        if (con_res.result_ok) {
                ssize_t write_count = send(fd, con_res.contents.result->data, con_res.contents.result->datalen, MSG_NOSIGNAL);
                if (write_count != con_res.contents.result->datalen)