mirror of
https://github.com/CPunch/Laika.git
synced 2024-11-21 20:40:05 +00:00
Minor comments refactoring
This commit is contained in:
parent
ca0543fe90
commit
1d6ce15b3d
@ -58,7 +58,7 @@ set(SODIUM_MINIMAL ON)
|
|||||||
set(SODIUM_STATIC ON)
|
set(SODIUM_STATIC ON)
|
||||||
add_subdirectory(libsodium)
|
add_subdirectory(libsodium)
|
||||||
|
|
||||||
# ========================================== [[ CONFIG DEFAULTS ]] ==========================================
|
# ===================================== [[ CONFIG DEFAULTS ]] =====================================
|
||||||
|
|
||||||
set(LAIKA_VMBOXCONFIG ${CMAKE_SOURCE_DIR}/lib/include/lboxconfig.h)
|
set(LAIKA_VMBOXCONFIG ${CMAKE_SOURCE_DIR}/lib/include/lboxconfig.h)
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ configure_file(${CMAKE_SOURCE_DIR}/lib/include/lconfig.h.in ${CMAKE_SOURCE_DIR}/
|
|||||||
# config vm boxes
|
# config vm boxes
|
||||||
add_subdirectory(tools/vmboxgen)
|
add_subdirectory(tools/vmboxgen)
|
||||||
|
|
||||||
# =========================================== [[ BUILD TOOLING ]] ===========================================
|
# ====================================== [[ BUILD TOOLING ]] ======================================
|
||||||
|
|
||||||
# compile laikalib, tools, cnc & bot
|
# compile laikalib, tools, cnc & bot
|
||||||
add_subdirectory(lib)
|
add_subdirectory(lib)
|
||||||
|
@ -55,7 +55,7 @@ void laikaB_freeRAWShell(struct sLaika_bot *bot, struct sLaika_shell *_shell) {
|
|||||||
laikaM_free(shell);
|
laikaM_free(shell);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ============================================[[ Shell Handlers ]]============================================= */
|
/* ====================================[[ Shell Handlers ]]===================================== */
|
||||||
|
|
||||||
bool laikaB_readShell(struct sLaika_bot *bot, struct sLaika_shell *_shell) {
|
bool laikaB_readShell(struct sLaika_bot *bot, struct sLaika_shell *_shell) {
|
||||||
char readBuf[LAIKA_SHELL_DATA_MAX_LENGTH-sizeof(uint32_t)];
|
char readBuf[LAIKA_SHELL_DATA_MAX_LENGTH-sizeof(uint32_t)];
|
||||||
|
@ -18,7 +18,9 @@ void laikaB_handlePing(struct sLaika_peer *peer, LAIKAPKT_SIZE sz, void *uData)
|
|||||||
/* stubbed */
|
/* stubbed */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* =============================================[[ Packet Tables ]]============================================== */
|
/* ====================================[[ Packet Tables ]]===================================== */
|
||||||
|
|
||||||
|
/* clang-format off */
|
||||||
|
|
||||||
struct sLaika_peerPacketInfo laikaB_pktTbl[LAIKAPKT_MAXNONE] = {
|
struct sLaika_peerPacketInfo laikaB_pktTbl[LAIKAPKT_MAXNONE] = {
|
||||||
LAIKA_CREATE_PACKET_INFO(LAIKAPKT_HANDSHAKE_RES,
|
LAIKA_CREATE_PACKET_INFO(LAIKAPKT_HANDSHAKE_RES,
|
||||||
@ -43,6 +45,8 @@ struct sLaika_peerPacketInfo laikaB_pktTbl[LAIKAPKT_MAXNONE] = {
|
|||||||
true),
|
true),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* clang-format on */
|
||||||
|
|
||||||
/* socket event */
|
/* socket event */
|
||||||
void laikaB_onPollFail(struct sLaika_socket *sock, void *uData) {
|
void laikaB_onPollFail(struct sLaika_socket *sock, void *uData) {
|
||||||
struct sLaika_peer *peer = (struct sLaika_peer*)sock;
|
struct sLaika_peer *peer = (struct sLaika_peer*)sock;
|
||||||
@ -51,7 +55,7 @@ void laikaB_onPollFail(struct sLaika_socket *sock, void *uData) {
|
|||||||
laikaS_kill(&bot->peer->sock);
|
laikaS_kill(&bot->peer->sock);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ==================================================[[ Bot ]]=================================================== */
|
/* ==========================================[[ Bot ]]========================================== */
|
||||||
|
|
||||||
struct sLaika_bot *laikaB_newBot(void) {
|
struct sLaika_bot *laikaB_newBot(void) {
|
||||||
LAIKA_BOX_SKID_START(char*, cncPubKey, LAIKA_PUBKEY);
|
LAIKA_BOX_SKID_START(char*, cncPubKey, LAIKA_PUBKEY);
|
||||||
|
@ -37,7 +37,7 @@ void laikaB_freeShell(struct sLaika_bot *bot, struct sLaika_shell *shell) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ============================================[[ Packet Handlers ]]============================================= */
|
/* ====================================[[ Packet Handlers ]]==================================== */
|
||||||
|
|
||||||
void laikaB_handleShellOpen(struct sLaika_peer *peer, LAIKAPKT_SIZE sz, void *uData) {
|
void laikaB_handleShellOpen(struct sLaika_peer *peer, LAIKAPKT_SIZE sz, void *uData) {
|
||||||
struct sLaika_bot *bot = (struct sLaika_bot*)uData;
|
struct sLaika_bot *bot = (struct sLaika_bot*)uData;
|
||||||
|
@ -97,7 +97,7 @@ void laikaB_freeRAWShell(struct sLaika_bot *bot, struct sLaika_shell *_shell) {
|
|||||||
laikaM_free(shell);
|
laikaM_free(shell);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ============================================[[ Shell Handlers ]]============================================= */
|
/* ====================================[[ Shell Handlers ]]===================================== */
|
||||||
|
|
||||||
/* edited from https://github.com/microsoft/terminal/blob/main/samples/ConPTY/EchoCon/EchoCon/EchoCon.cpp */
|
/* edited from https://github.com/microsoft/terminal/blob/main/samples/ConPTY/EchoCon/EchoCon/EchoCon.cpp */
|
||||||
HRESULT CreatePseudoConsoleAndPipes(HPCON *phPC, HANDLE *phPipeIn, HANDLE *phPipeOut, int cols, int rows) {
|
HRESULT CreatePseudoConsoleAndPipes(HPCON *phPC, HANDLE *phPipeIn, HANDLE *phPipeOut, int cols, int rows) {
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#include "cpeer.h"
|
#include "cpeer.h"
|
||||||
#include "cnc.h"
|
#include "cnc.h"
|
||||||
|
|
||||||
/* ==============================================[[ PeerHashMap ]]=============================================== */
|
/* ======================================[[ PeerHashMap ]]======================================= */
|
||||||
|
|
||||||
typedef struct sCNC_PeerHashElem {
|
typedef struct sCNC_PeerHashElem {
|
||||||
struct sLaika_peer *peer;
|
struct sLaika_peer *peer;
|
||||||
@ -27,7 +27,7 @@ uint64_t cnc_PeerElemHash(const void *item, uint64_t seed0, uint64_t seed1) {
|
|||||||
return *(uint64_t*)(u->pub); /* hashes pub key (first 8 bytes) */
|
return *(uint64_t*)(u->pub); /* hashes pub key (first 8 bytes) */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ============================================[[ Packet Handlers ]]============================================= */
|
/* ====================================[[ Packet Handlers ]]==================================== */
|
||||||
|
|
||||||
bool checkPeerKey(struct sLaika_peer *peer, void *uData) {
|
bool checkPeerKey(struct sLaika_peer *peer, void *uData) {
|
||||||
if (sodium_memcmp(peer->peerPub, uData, crypto_kx_PUBLICKEYBYTES) == 0)
|
if (sodium_memcmp(peer->peerPub, uData, crypto_kx_PUBLICKEYBYTES) == 0)
|
||||||
@ -93,7 +93,9 @@ void laikaC_handlePing(struct sLaika_peer *peer, LAIKAPKT_SIZE sz, void *uData)
|
|||||||
laikaS_emptyOutPacket(peer, LAIKAPKT_PINGPONG); /* gg 2 ez */
|
laikaS_emptyOutPacket(peer, LAIKAPKT_PINGPONG); /* gg 2 ez */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* =============================================[[ Packet Tables ]]============================================== */
|
/* =====================================[[ Packet Tables ]]===================================== */
|
||||||
|
|
||||||
|
/* clang-format off */
|
||||||
|
|
||||||
#define DEFAULT_PKT_TBL \
|
#define DEFAULT_PKT_TBL \
|
||||||
LAIKA_CREATE_PACKET_INFO(LAIKAPKT_HANDSHAKE_REQ, \
|
LAIKA_CREATE_PACKET_INFO(LAIKAPKT_HANDSHAKE_REQ, \
|
||||||
@ -139,7 +141,9 @@ struct sLaika_peerPacketInfo laikaC_authPktTbl[LAIKAPKT_MAXNONE] = {
|
|||||||
|
|
||||||
#undef DEFAULT_PKT_TBL
|
#undef DEFAULT_PKT_TBL
|
||||||
|
|
||||||
/* ==================================================[[ CNC ]]=================================================== */
|
/* clang-format on */
|
||||||
|
|
||||||
|
/* ==========================================[[ CNC ]]========================================== */
|
||||||
|
|
||||||
struct sLaika_cnc *laikaC_newCNC(uint16_t port) {
|
struct sLaika_cnc *laikaC_newCNC(uint16_t port) {
|
||||||
struct sLaika_cnc *cnc = laikaM_malloc(sizeof(struct sLaika_cnc));
|
struct sLaika_cnc *cnc = laikaM_malloc(sizeof(struct sLaika_cnc));
|
||||||
@ -401,7 +405,7 @@ void laikaC_sweepPeersTask(struct sLaika_taskService *service, struct sLaika_tas
|
|||||||
laikaC_iterPeers(cnc, sweepPeers, (void*)cnc);
|
laikaC_iterPeers(cnc, sweepPeers, (void*)cnc);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ===============================================[[ Peer Iter ]]================================================ */
|
/* =======================================[[ Peer Iter ]]======================================= */
|
||||||
|
|
||||||
struct sWrapperData {
|
struct sWrapperData {
|
||||||
tLaika_peerIter iter;
|
tLaika_peerIter iter;
|
||||||
|
@ -41,7 +41,7 @@ void laikaC_sendRmvPeer(struct sLaika_peer *authPeer, struct sLaika_peer *peer)
|
|||||||
laikaS_endOutPacket(authPeer);
|
laikaS_endOutPacket(authPeer);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* =========================================[[ [Auth] Packet Handlers ]]========================================= */
|
/* ================================[[ [Auth] Packet Handlers ]]================================= */
|
||||||
|
|
||||||
void laikaC_handleAuthenticatedHandshake(struct sLaika_peer *authPeer, LAIKAPKT_SIZE sz, void *uData) {
|
void laikaC_handleAuthenticatedHandshake(struct sLaika_peer *authPeer, LAIKAPKT_SIZE sz, void *uData) {
|
||||||
struct sLaika_peerInfo *pInfo = (struct sLaika_peerInfo*)uData;
|
struct sLaika_peerInfo *pInfo = (struct sLaika_peerInfo*)uData;
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#include "cpeer.h"
|
#include "cpeer.h"
|
||||||
#include "lerror.h"
|
#include "lerror.h"
|
||||||
|
|
||||||
/* ===============================================[[ Peer Info ]]================================================ */
|
/* =======================================[[ Peer Info ]]======================================= */
|
||||||
|
|
||||||
struct sLaika_peerInfo *allocBasePeerInfo(struct sLaika_cnc *cnc, size_t sz) {
|
struct sLaika_peerInfo *allocBasePeerInfo(struct sLaika_cnc *cnc, size_t sz) {
|
||||||
struct sLaika_peerInfo *pInfo = (struct sLaika_peerInfo*)laikaM_malloc(sz);
|
struct sLaika_peerInfo *pInfo = (struct sLaika_peerInfo*)laikaM_malloc(sz);
|
||||||
@ -40,7 +40,7 @@ void laikaC_freePeerInfo(struct sLaika_peer *peer, struct sLaika_peerInfo *pInfo
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ==============================================[[ Shell Info ]]================================================ */
|
/* ======================================[[ Shell Info ]]======================================= */
|
||||||
|
|
||||||
int findOpenShellID(struct sLaika_peerInfo *pInfo) {
|
int findOpenShellID(struct sLaika_peerInfo *pInfo) {
|
||||||
int id;
|
int id;
|
||||||
@ -116,7 +116,7 @@ void laikaC_closeShells(struct sLaika_peer *peer) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ========================================[[ [Peer] Packet Handlers ]]========================================== */
|
/* ================================[[ [Peer] Packet Handlers ]]================================= */
|
||||||
|
|
||||||
void laikaC_handleShellClose(struct sLaika_peer *peer, LAIKAPKT_SIZE sz, void *uData) {
|
void laikaC_handleShellClose(struct sLaika_peer *peer, LAIKAPKT_SIZE sz, void *uData) {
|
||||||
struct sLaika_peerInfo *pInfo = (struct sLaika_peerInfo*)uData;
|
struct sLaika_peerInfo *pInfo = (struct sLaika_peerInfo*)uData;
|
||||||
|
@ -38,7 +38,7 @@ struct sLaikaB_box {
|
|||||||
uint8_t code[LAIKA_VM_CODESIZE];
|
uint8_t code[LAIKA_VM_CODESIZE];
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ==============================================[[ Box Var API ]]=============================================== */
|
/* ======================================[[ Box Var API ]]====================================== */
|
||||||
|
|
||||||
#define LAIKA_BOX_STARTVAR(type, ident, box, data) \
|
#define LAIKA_BOX_STARTVAR(type, ident, box, data) \
|
||||||
uint8_t __data##ident[LAIKA_VM_CODESIZE] = data; \
|
uint8_t __data##ident[LAIKA_VM_CODESIZE] = data; \
|
||||||
@ -61,7 +61,7 @@ struct sLaikaB_box {
|
|||||||
# define LAIKA_BOX_SKID_END(ident) ((void)0) /* no-op */
|
# define LAIKA_BOX_SKID_END(ident) ((void)0) /* no-op */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* ==============================================[[ Laika Boxes ]]=============================================== */
|
/* ======================================[[ Laika Boxes ]]====================================== */
|
||||||
|
|
||||||
/* BOX_SKID decodes null-terminated strings using a provided xor _key. aptly named lol */
|
/* BOX_SKID decodes null-terminated strings using a provided xor _key. aptly named lol */
|
||||||
#define LAIKA_BOX_SKID(_key) { \
|
#define LAIKA_BOX_SKID(_key) { \
|
||||||
@ -86,7 +86,7 @@ struct sLaikaB_box {
|
|||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ==============================================[[ Raw Box API ]]=============================================== */
|
/* ======================================[[ Raw Box API ]]====================================== */
|
||||||
|
|
||||||
LAIKA_FORCEINLINE void* laikaB_unlock(struct sLaikaB_box *box, void *data) {
|
LAIKA_FORCEINLINE void* laikaB_unlock(struct sLaikaB_box *box, void *data) {
|
||||||
struct sLaikaV_vm vm = {
|
struct sLaikaV_vm vm = {
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
/* raw obfuscated strings */
|
/* raw obfuscated strings */
|
||||||
|
|
||||||
/* =============================================[[ Linux Strings ]]============================================== */
|
/* =====================================[[ Linux Strings ]]===================================== */
|
||||||
|
|
||||||
/* we want a semi-random file lock that is stable between similar builds,
|
/* we want a semi-random file lock that is stable between similar builds,
|
||||||
* so we use the GIT_VERSION as our file lock :D */
|
* so we use the GIT_VERSION as our file lock :D */
|
||||||
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
#define LAIKA_LIN_CRONTAB_ENTRY "(crontab -l ; echo \"@reboot %s\")| crontab -"
|
#define LAIKA_LIN_CRONTAB_ENTRY "(crontab -l ; echo \"@reboot %s\")| crontab -"
|
||||||
|
|
||||||
/* ============================================[[ Windows Strings ]]============================================= */
|
/* ====================================[[ Windows Strings ]]==================================== */
|
||||||
|
|
||||||
/* we want a semi-random mutex that is stable between similar builds,
|
/* we want a semi-random mutex that is stable between similar builds,
|
||||||
* so we use the GIT_VERSION as our mutex :D */
|
* so we use the GIT_VERSION as our mutex :D */
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
if packet doesn't have either, it can be sent & received by both peer & cnc
|
if packet doesn't have either, it can be sent & received by both peer & cnc
|
||||||
*/
|
*/
|
||||||
enum {
|
enum {
|
||||||
/* ==================================================[[ Peer ]]================================================== */
|
/* =========================================[[ Peer ]]========================================== */
|
||||||
LAIKAPKT_VARPKT,
|
LAIKAPKT_VARPKT,
|
||||||
/* layout of LAIKAPKT_VARPKT:
|
/* layout of LAIKAPKT_VARPKT:
|
||||||
* LAIKAPKT_SIZE pktSize;
|
* LAIKAPKT_SIZE pktSize;
|
||||||
@ -73,7 +73,7 @@ enum {
|
|||||||
* uint32_t id;
|
* uint32_t id;
|
||||||
* char buf[VAR_PACKET_LENGTH-sizeof(uint32_t)];
|
* char buf[VAR_PACKET_LENGTH-sizeof(uint32_t)];
|
||||||
*/
|
*/
|
||||||
/* ==================================================[[ Auth ]]================================================== */
|
/* =========================================[[ Auth ]]========================================== */
|
||||||
LAIKAPKT_AUTHENTICATED_HANDSHAKE_REQ, /* second packet sent by authenticated peers (panel). there is no response packet */
|
LAIKAPKT_AUTHENTICATED_HANDSHAKE_REQ, /* second packet sent by authenticated peers (panel). there is no response packet */
|
||||||
/* layout of LAIKAPKT_STAGE2_HANDSHAKE_REQ
|
/* layout of LAIKAPKT_STAGE2_HANDSHAKE_REQ
|
||||||
* uint8_t peerType;
|
* uint8_t peerType;
|
||||||
|
@ -36,7 +36,7 @@ void laikaS_freePeer(struct sLaika_peer *peer) {
|
|||||||
laikaM_free(peer);
|
laikaM_free(peer);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ===========================================[[ Start/End Packets ]]============================================ */
|
/* ===================================[[ Start/End Packets ]]=================================== */
|
||||||
|
|
||||||
void laikaS_emptyOutPacket(struct sLaika_peer *peer, LAIKAPKT_ID id) {
|
void laikaS_emptyOutPacket(struct sLaika_peer *peer, LAIKAPKT_ID id) {
|
||||||
struct sLaika_socket *sock = &peer->sock;
|
struct sLaika_socket *sock = &peer->sock;
|
||||||
@ -157,7 +157,7 @@ void laikaS_setSecure(struct sLaika_peer *peer, bool flag) {
|
|||||||
peer->useSecure = flag;
|
peer->useSecure = flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ===========================================[[ Handle Poll Events ]]=========================================== */
|
/* ==================================[[ Handle Poll Events ]]=================================== */
|
||||||
|
|
||||||
bool laikaS_handlePeerIn(struct sLaika_socket *sock) {
|
bool laikaS_handlePeerIn(struct sLaika_socket *sock) {
|
||||||
struct sLaika_peer *peer = (struct sLaika_peer*)sock;
|
struct sLaika_peer *peer = (struct sLaika_peer*)sock;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#include "lmem.h"
|
#include "lmem.h"
|
||||||
#include "lpolllist.h"
|
#include "lpolllist.h"
|
||||||
|
|
||||||
/* ===========================================[[ Helper Functions ]]============================================= */
|
/* ===================================[[ Helper Functions ]]==================================== */
|
||||||
|
|
||||||
typedef struct sLaika_hashMapElem {
|
typedef struct sLaika_hashMapElem {
|
||||||
SOCKET fd;
|
SOCKET fd;
|
||||||
@ -21,7 +21,7 @@ uint64_t elem_hash(const void *item, uint64_t seed0, uint64_t seed1) {
|
|||||||
return (uint64_t)(u->fd);
|
return (uint64_t)(u->fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ==============================================[[ PollList API ]]============================================== */
|
/* =====================================[[ PollList API ]]====================================== */
|
||||||
|
|
||||||
void laikaP_initPList(struct sLaika_pollList *pList) {
|
void laikaP_initPList(struct sLaika_pollList *pList) {
|
||||||
laikaS_init();
|
laikaS_init();
|
||||||
|
@ -13,7 +13,7 @@ void shell_pingTask(struct sLaika_taskService *service, struct sLaika_task *task
|
|||||||
laikaS_emptyOutPacket(client->peer, LAIKAPKT_PINGPONG);
|
laikaS_emptyOutPacket(client->peer, LAIKAPKT_PINGPONG);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ==============================================[[ PeerHashMap ]]=============================================== */
|
/* ======================================[[ PeerHashMap ]]====================================== */
|
||||||
|
|
||||||
typedef struct sShell_hashMapElem {
|
typedef struct sShell_hashMapElem {
|
||||||
int id;
|
int id;
|
||||||
@ -33,7 +33,7 @@ uint64_t shell_ElemHash(const void *item, uint64_t seed0, uint64_t seed1) {
|
|||||||
return *(uint64_t*)(u->pub); /* hashes pub key (first 8 bytes) */
|
return *(uint64_t*)(u->pub); /* hashes pub key (first 8 bytes) */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ============================================[[ Packet Handlers ]]============================================= */
|
/* ====================================[[ Packet Handlers ]]==================================== */
|
||||||
|
|
||||||
void shellC_handleHandshakeRes(struct sLaika_peer *peer, LAIKAPKT_SIZE sz, void *uData) {
|
void shellC_handleHandshakeRes(struct sLaika_peer *peer, LAIKAPKT_SIZE sz, void *uData) {
|
||||||
uint8_t endianness = laikaS_readByte(&peer->sock);
|
uint8_t endianness = laikaS_readByte(&peer->sock);
|
||||||
@ -138,7 +138,9 @@ void shellC_handleShellClose(struct sLaika_peer *peer, LAIKAPKT_SIZE sz, void *u
|
|||||||
shellC_closeShell(client);
|
shellC_closeShell(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ==============================================[[ Packet Table ]]============================================== */
|
/* =====================================[[ Packet Table ]]====================================== */
|
||||||
|
|
||||||
|
/* clang-format off */
|
||||||
|
|
||||||
struct sLaika_peerPacketInfo shellC_pktTbl[LAIKAPKT_MAXNONE] = {
|
struct sLaika_peerPacketInfo shellC_pktTbl[LAIKAPKT_MAXNONE] = {
|
||||||
LAIKA_CREATE_PACKET_INFO(LAIKAPKT_HANDSHAKE_RES,
|
LAIKA_CREATE_PACKET_INFO(LAIKAPKT_HANDSHAKE_RES,
|
||||||
@ -171,6 +173,8 @@ struct sLaika_peerPacketInfo shellC_pktTbl[LAIKAPKT_MAXNONE] = {
|
|||||||
true)
|
true)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* clang-format on */
|
||||||
|
|
||||||
/* socket event */
|
/* socket event */
|
||||||
void shellC_onPollFail(struct sLaika_socket *sock, void *uData) {
|
void shellC_onPollFail(struct sLaika_socket *sock, void *uData) {
|
||||||
struct sLaika_peer *peer = (struct sLaika_peer*)sock;
|
struct sLaika_peer *peer = (struct sLaika_peer*)sock;
|
||||||
@ -179,7 +183,7 @@ void shellC_onPollFail(struct sLaika_socket *sock, void *uData) {
|
|||||||
laikaS_kill(&client->peer->sock);
|
laikaS_kill(&client->peer->sock);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ===============================================[[ Client API ]]=============================================== */
|
/* ======================================[[ Client API ]]======================================= */
|
||||||
|
|
||||||
void shellC_init(tShell_client *client) {
|
void shellC_init(tShell_client *client) {
|
||||||
laikaP_initPList(&client->pList);
|
laikaP_initPList(&client->pList);
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
jmp_buf cmdE_err;
|
jmp_buf cmdE_err;
|
||||||
|
|
||||||
/* ===========================================[[ Helper Functions ]]============================================= */
|
/* ===================================[[ Helper Functions ]]==================================== */
|
||||||
|
|
||||||
tShell_cmdDef *shellS_findCmd(char *cmd);
|
tShell_cmdDef *shellS_findCmd(char *cmd);
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ int shellS_readInt(char *str) {
|
|||||||
return atoi(str);
|
return atoi(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ===========================================[[ Command Handlers ]]============================================= */
|
/* ===================================[[ Command Handlers ]]==================================== */
|
||||||
|
|
||||||
void helpCMD(tShell_client *client, int argc, char *argv[]);
|
void helpCMD(tShell_client *client, int argc, char *argv[]);
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ void openShellCMD(tShell_client *client, int argc, char *argv[]) {
|
|||||||
PRINTSUCC("Shell closed!\n");
|
PRINTSUCC("Shell closed!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* =============================================[[ Command Table ]]============================================== */
|
/* =====================================[[ Command Table ]]===================================== */
|
||||||
|
|
||||||
#define CREATECMD(_cmd, _syntax, _help, _callback) ((tShell_cmdDef){.cmd = _cmd, .syntax = _syntax, .help = _help, .callback = _callback})
|
#define CREATECMD(_cmd, _syntax, _help, _callback) ((tShell_cmdDef){.cmd = _cmd, .syntax = _syntax, .help = _help, .callback = _callback})
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user