1
mirror of https://github.com/rapid7/metasploit-payloads synced 2025-03-24 18:16:24 +01:00
2017-07-21 18:27:04 +10:00

35 lines
966 B
C
Executable File

#ifndef _METERPRETER_PIVOT_TREE
#define _METERPRETER_PIVOT_TREE
typedef DWORD(*PivotWritePacket)(LPVOID state, LPBYTE rawPacket, DWORD rawPacketLength);
typedef DWORD(*PivotRemove)(LPVOID state);
typedef struct _PivotContext
{
PivotWritePacket packet_write;
PivotRemove remove;
LPVOID state;
} PivotContext;
typedef struct _PivotNode PivotNode;
typedef struct _PivotTree
{
PivotNode* head;
} PivotTree;
typedef void(*PivotTreeTraverseCallback)(LPBYTE guid, PivotContext* ctx, LPVOID state);
PivotTree* pivot_tree_create();
DWORD pivot_tree_add(PivotTree* tree, LPBYTE guid, PivotContext* ctx);
PivotContext* pivot_tree_remove(PivotTree* tree, LPBYTE guid);
PivotContext* pivot_tree_find(PivotTree* tree, LPBYTE guid);
void pivot_tree_traverse(PivotTree* tree, PivotTreeTraverseCallback callback, LPVOID state);
void pivot_tree_destroy(PivotTree* tree);
#ifdef DEBUGTRACE
void dbgprint_pivot_tree(PivotTree* tree);
#endif
#endif