turn into a cell package
This commit is contained in:
115
net/socket_playdate.c
Normal file
115
net/socket_playdate.c
Normal file
@@ -0,0 +1,115 @@
|
||||
// socket_playdate.c - Socket stub for Playdate
|
||||
// Raw sockets are not directly supported on Playdate.
|
||||
// Use the http module for HTTP requests or enet for game networking.
|
||||
|
||||
#include "cell.h"
|
||||
|
||||
// All socket functions throw "not supported" errors
|
||||
|
||||
JSC_CCALL(socket_getaddrinfo,
|
||||
return JS_ThrowInternalError(js, "socket.getaddrinfo: not supported on Playdate");
|
||||
)
|
||||
|
||||
JSC_CCALL(socket_socket,
|
||||
return JS_ThrowInternalError(js, "socket.socket: not supported on Playdate");
|
||||
)
|
||||
|
||||
JSC_CCALL(socket_bind,
|
||||
return JS_ThrowInternalError(js, "socket.bind: not supported on Playdate");
|
||||
)
|
||||
|
||||
JSC_CCALL(socket_connect,
|
||||
return JS_ThrowInternalError(js, "socket.connect: not supported on Playdate");
|
||||
)
|
||||
|
||||
JSC_CCALL(socket_listen,
|
||||
return JS_ThrowInternalError(js, "socket.listen: not supported on Playdate");
|
||||
)
|
||||
|
||||
JSC_CCALL(socket_accept,
|
||||
return JS_ThrowInternalError(js, "socket.accept: not supported on Playdate");
|
||||
)
|
||||
|
||||
JSC_CCALL(socket_send,
|
||||
return JS_ThrowInternalError(js, "socket.send: not supported on Playdate");
|
||||
)
|
||||
|
||||
JSC_CCALL(socket_recv,
|
||||
return JS_ThrowInternalError(js, "socket.recv: not supported on Playdate");
|
||||
)
|
||||
|
||||
JSC_CCALL(socket_sendto,
|
||||
return JS_ThrowInternalError(js, "socket.sendto: not supported on Playdate");
|
||||
)
|
||||
|
||||
JSC_CCALL(socket_recvfrom,
|
||||
return JS_ThrowInternalError(js, "socket.recvfrom: not supported on Playdate");
|
||||
)
|
||||
|
||||
JSC_CCALL(socket_shutdown,
|
||||
return JS_ThrowInternalError(js, "socket.shutdown: not supported on Playdate");
|
||||
)
|
||||
|
||||
JSC_CCALL(socket_getpeername,
|
||||
return JS_ThrowInternalError(js, "socket.getpeername: not supported on Playdate");
|
||||
)
|
||||
|
||||
JSC_CCALL(socket_gethostname,
|
||||
return JS_NewString(js, "playdate");
|
||||
)
|
||||
|
||||
JSC_CCALL(socket_gai_strerror,
|
||||
return JS_NewString(js, "not supported on Playdate");
|
||||
)
|
||||
|
||||
JSC_CCALL(socket_setsockopt,
|
||||
return JS_ThrowInternalError(js, "socket.setsockopt: not supported on Playdate");
|
||||
)
|
||||
|
||||
JSC_CCALL(socket_close,
|
||||
return JS_ThrowInternalError(js, "socket.close: not supported on Playdate");
|
||||
)
|
||||
|
||||
static const JSCFunctionListEntry js_socket_funcs[] = {
|
||||
MIST_FUNC_DEF(socket, getaddrinfo, 3),
|
||||
MIST_FUNC_DEF(socket, socket, 3),
|
||||
MIST_FUNC_DEF(socket, bind, 2),
|
||||
MIST_FUNC_DEF(socket, connect, 2),
|
||||
MIST_FUNC_DEF(socket, listen, 2),
|
||||
MIST_FUNC_DEF(socket, accept, 1),
|
||||
MIST_FUNC_DEF(socket, send, 3),
|
||||
MIST_FUNC_DEF(socket, recv, 3),
|
||||
MIST_FUNC_DEF(socket, sendto, 4),
|
||||
MIST_FUNC_DEF(socket, recvfrom, 3),
|
||||
MIST_FUNC_DEF(socket, shutdown, 2),
|
||||
MIST_FUNC_DEF(socket, getpeername, 1),
|
||||
MIST_FUNC_DEF(socket, gethostname, 0),
|
||||
MIST_FUNC_DEF(socket, gai_strerror, 1),
|
||||
MIST_FUNC_DEF(socket, setsockopt, 4),
|
||||
MIST_FUNC_DEF(socket, close, 1),
|
||||
};
|
||||
|
||||
JSValue js_socket_use(JSContext *js) {
|
||||
JSValue mod = JS_NewObject(js);
|
||||
JS_SetPropertyFunctionList(js, mod, js_socket_funcs, countof(js_socket_funcs));
|
||||
|
||||
// Add constants (even though they won't be useful)
|
||||
JS_SetPropertyStr(js, mod, "AF_UNSPEC", JS_NewInt32(js, 0));
|
||||
JS_SetPropertyStr(js, mod, "AF_INET", JS_NewInt32(js, 2));
|
||||
JS_SetPropertyStr(js, mod, "AF_INET6", JS_NewInt32(js, 10));
|
||||
JS_SetPropertyStr(js, mod, "AF_UNIX", JS_NewInt32(js, 1));
|
||||
|
||||
JS_SetPropertyStr(js, mod, "SOCK_STREAM", JS_NewInt32(js, 1));
|
||||
JS_SetPropertyStr(js, mod, "SOCK_DGRAM", JS_NewInt32(js, 2));
|
||||
|
||||
JS_SetPropertyStr(js, mod, "AI_PASSIVE", JS_NewInt32(js, 1));
|
||||
|
||||
JS_SetPropertyStr(js, mod, "SHUT_RD", JS_NewInt32(js, 0));
|
||||
JS_SetPropertyStr(js, mod, "SHUT_WR", JS_NewInt32(js, 1));
|
||||
JS_SetPropertyStr(js, mod, "SHUT_RDWR", JS_NewInt32(js, 2));
|
||||
|
||||
JS_SetPropertyStr(js, mod, "SOL_SOCKET", JS_NewInt32(js, 1));
|
||||
JS_SetPropertyStr(js, mod, "SO_REUSEADDR", JS_NewInt32(js, 2));
|
||||
|
||||
return mod;
|
||||
}
|
||||
Reference in New Issue
Block a user