Skip to content

Commit 9a7c8d7

Browse files
committed
wip
1 parent 997774c commit 9a7c8d7

File tree

3 files changed

+19
-17
lines changed

3 files changed

+19
-17
lines changed

lightbug_http/client.mojo

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,5 @@
11
from collections import Dict
22
from memory import UnsafePointer
3-
from lightbug_http.libc import (
4-
c_int,
5-
AF_INET,
6-
SOCK_STREAM,
7-
socket,
8-
connect,
9-
send,
10-
recv,
11-
close,
12-
)
13-
from lightbug_http.strings import to_string
143
from lightbug_http.net import default_buffer_size
154
from lightbug_http.http import HTTPRequest, HTTPResponse, encode
165
from lightbug_http.header import Headers, HeaderKey

lightbug_http/net.mojo

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,15 @@ struct NoTLSListener:
114114
fn __moveinit__(out self, owned existing: Self):
115115
self.socket = existing.socket^
116116

117+
fn __enter__(owned self) -> Self:
118+
return self^
119+
120+
fn __del__(owned self):
121+
try:
122+
self.socket.teardown()
123+
except e:
124+
logger.debug("NoTLSListener.__del__: Failed to close socket on deletion:", e)
125+
117126
fn accept(self) raises -> TCPConnection:
118127
return TCPConnection(self.socket.accept())
119128

@@ -199,6 +208,12 @@ struct TCPConnection:
199208
fn __moveinit__(out self, owned existing: Self):
200209
self.socket = existing.socket^
201210

211+
fn __del__(owned self):
212+
try:
213+
self.socket.teardown()
214+
except e:
215+
logger.debug("TCPConnection.__del__: Failed to close socket on deletion:", e)
216+
202217
fn read(self, mut buf: Bytes) raises -> Int:
203218
try:
204219
return self.socket.receive(buf)

lightbug_http/socket.mojo

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -168,11 +168,9 @@ struct Socket[AddrType: Addr, address_family: Int = AF_INET](Representable, Stri
168168
logger.error("Socket.teardown: Failed to close socket.")
169169
raise e
170170

171-
fn __enter__(owned self) -> Self:
172-
return self^
173-
174-
fn __exit__(mut self) raises:
175-
self.teardown()
171+
# TODO: Removed until we can determine why __del__ bugs out in the client flow, but not server flow?
172+
# fn __enter__(owned self) -> Self:
173+
# return self^
176174

177175
# TODO: Seems to be bugged if this is included. Mojo tries to delete a mystical 0 fd socket that was never initialized?
178176
# fn __del__(owned self):
@@ -181,7 +179,7 @@ struct Socket[AddrType: Addr, address_family: Int = AF_INET](Representable, Stri
181179
# try:
182180
# self.teardown()
183181
# except e:
184-
# logger.debug("Socket.__del__: Failed to close socket during deletion:", str(e))
182+
# logger.debug("Socket.__del__: Failed to close socket during deletion:", e)
185183

186184
fn __str__(self) -> String:
187185
return String.write(self)

0 commit comments

Comments
 (0)