mirror of
https://github.com/CPunch/Laika.git
synced 2024-11-21 20:40:05 +00:00
Bot persistence boilerplate
This commit is contained in:
parent
3515d10b1c
commit
b6bd8b2518
27
bot/include/persist.h
Normal file
27
bot/include/persist.h
Normal file
@ -0,0 +1,27 @@
|
||||
#ifndef LAIKA_PERSIST_H
|
||||
#define LAIKA_PERSIST_H
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
/* check if laika is already running */
|
||||
bool laikaB_checkRunning(void);
|
||||
|
||||
/* check if laika is already installed on current machine */
|
||||
bool laikaB_checkPersist(void);
|
||||
|
||||
/* check if laika is running as super-user */
|
||||
bool laikaB_checkRoot(void);
|
||||
|
||||
/* mark that laika is currently running */
|
||||
void laikaB_markRunning(void);
|
||||
|
||||
/* unmark that laika is currently running */
|
||||
void laikaB_unmarkRunning(void);
|
||||
|
||||
/* try to gain persistance on machine */
|
||||
void laikaB_tryPersist(void);
|
||||
|
||||
/* try to gain root */
|
||||
void laikaB_tryRoot(void);
|
||||
|
||||
#endif
|
55
bot/lin/linpersist.c
Normal file
55
bot/lin/linpersist.c
Normal file
@ -0,0 +1,55 @@
|
||||
/* platform specific code for achieving persistence on linux */
|
||||
|
||||
/* this is only used to check if another instance of laika is currently running */
|
||||
#define LAIKA_RESERVED_PORT 32876
|
||||
|
||||
#include "persist.h"
|
||||
#include "lsocket.h"
|
||||
#include "lerror.h"
|
||||
|
||||
static struct sLaika_socket laikaB_markerPort;
|
||||
|
||||
/* check if laika is already running */
|
||||
bool laikaB_checkRunning() {
|
||||
return true; /* stubbed for now */
|
||||
}
|
||||
|
||||
/* check if laika is already installed on current machine */
|
||||
bool laikaB_checkPersist() {
|
||||
return true; /* stubbed for now */
|
||||
}
|
||||
|
||||
/* check if laika is running as super-user */
|
||||
bool laikaB_checkRoot() {
|
||||
return true; /* stubbed for now */
|
||||
}
|
||||
|
||||
/* mark that laika is currently running */
|
||||
void laikaB_markRunning() {
|
||||
#ifndef DEBUG
|
||||
LAIKA_TRY
|
||||
laikaS_initSocket(&laikaB_markerPort, NULL, NULL, NULL, NULL);
|
||||
laikaS_bind(&laikaB_markerPort, LAIKA_RESERVED_PORT);
|
||||
LAIKA_CATCH
|
||||
LAIKA_DEBUG("Failed to bind marker port, laika is already running!\n");
|
||||
exit(0);
|
||||
LAIKA_TRYEND
|
||||
#endif
|
||||
}
|
||||
|
||||
/* unmark that laika is currently running */
|
||||
void laikaB_unmarkRunning() {
|
||||
#ifndef DEBUG
|
||||
laikaS_kill(&laikaB_markerPort);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* try to gain persistance on machine */
|
||||
void laikaB_tryPersist() {
|
||||
/* stubbed */
|
||||
}
|
||||
|
||||
/* try to gain root */
|
||||
void laikaB_tryRoot() {
|
||||
/* stubbed */
|
||||
}
|
38
bot/win/winpersist.c
Normal file
38
bot/win/winpersist.c
Normal file
@ -0,0 +1,38 @@
|
||||
/* platform specific code for achieving persistence on windows */
|
||||
|
||||
#include "persist.h"
|
||||
|
||||
/* check if laika is already running */
|
||||
bool laikaB_checkRunning() {
|
||||
return true; /* stubbed for now */
|
||||
}
|
||||
|
||||
/* check if laika is already installed on current machine */
|
||||
bool laikaB_checkPersist() {
|
||||
return true; /* stubbed for now */
|
||||
}
|
||||
|
||||
/* check if laika is running as super-user */
|
||||
bool laikaB_checkRoot() {
|
||||
return true; /* stubbed for now */
|
||||
}
|
||||
|
||||
/* mark that laika is currently running */
|
||||
void laikaB_markRunning() {
|
||||
/* stubbed */
|
||||
}
|
||||
|
||||
/* unmark that laika is currently running */
|
||||
void laikaB_unmarkRunning() {
|
||||
/* stubbed */
|
||||
}
|
||||
|
||||
/* try to gain persistance on machine */
|
||||
void laikaB_tryPersist() {
|
||||
/* stubbed */
|
||||
}
|
||||
|
||||
/* try to gain root */
|
||||
void laikaB_tryRoot() {
|
||||
/* stubbed */
|
||||
}
|
@ -16,24 +16,18 @@
|
||||
dumping.
|
||||
*/
|
||||
|
||||
enum {
|
||||
BOX_IP,
|
||||
BOX_PUBKEY,
|
||||
BOX_MAX
|
||||
};
|
||||
|
||||
struct sLaikaB_box {
|
||||
uint8_t *data;
|
||||
uint8_t *unlockedData;
|
||||
struct sLaikaV_vm vm;
|
||||
};
|
||||
|
||||
inline void laikaB_unlock() {
|
||||
inline void laikaB_unlock(struct sLaikaB_box *box) {
|
||||
|
||||
}
|
||||
|
||||
/* safely free's allocated buffer using libsodium's api for clearing sensitive data from memory */
|
||||
inline void laikaB_lock() {
|
||||
inline void laikaB_lock(struct sLaikaB_box *box) {
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user