59 lines
2.2 KiB
C
59 lines
2.2 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* utils.h
|
|
*
|
|
* Utilty module of Postgres-XC configuration and operation tool.
|
|
*
|
|
* Copyright (c) 2013 Postgres-XC Development Group
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
|
|
extern void* Malloc(size_t size);
|
|
extern void* Malloc0(size_t size);
|
|
extern void* Realloc(void* ptr, size_t size);
|
|
extern void Free(void* ptr);
|
|
extern int Chdir(char* path, int flag);
|
|
extern FILE* Fopen(char* path, char* mode);
|
|
extern char* Strdup(const char* s);
|
|
extern char** addToList(char** List, char* val);
|
|
extern void appendFiles(FILE* f, char** fileList);
|
|
extern FILE* prepareLocalStdin(char* buf, int len, char** fileList);
|
|
extern char* timeStampString(char* buf, int len);
|
|
extern char** makeActualNodeList(char** nodeList);
|
|
extern int gtmProxyIdx(char* gtmProxyName);
|
|
extern int coordIdx(char* coordName);
|
|
extern int datanodeIdx(char* datanodeName);
|
|
extern int getEffectiveGtmProxyIdxFromServerName(char* serverName);
|
|
extern pid_t get_prog_pid(char* host, char* progname, char* dir);
|
|
extern int pingNode(char* host, char* port);
|
|
extern void trimNl(char* s);
|
|
extern char* getChPidList(char* host, pid_t ppid);
|
|
extern char* getIpAddress(char* hostName);
|
|
|
|
#define get_postmaster_pid(host, dir) get_prog_pid(host, "postgres", dir)
|
|
#define get_gtm_pid(host, dir) get_prog_pid(host, "gtm", dir)
|
|
#define get_gtmProxy_pid(host, dir) get_prog_pid(host, "gtm_proxy", dir)
|
|
#define freeAndReset(x) \
|
|
do { \
|
|
Free(x); \
|
|
(x) = NULL; \
|
|
} while (0)
|
|
#define myWEXITSTATUS(rc) ((rc)&0x000000FF)
|
|
|
|
/* Printout variable in bash format */
|
|
#define svalFormat "%s=%s\n"
|
|
#define expandSval(name) name, sval(name)
|
|
#define avalFormat "%s=( %s )\n"
|
|
#define expandAval(name) name, listValue(name)
|
|
#define fprintAval(f, name) \
|
|
do { \
|
|
fprintf(f, avalFormat, expandAval(name)); \
|
|
} while (0)
|
|
#define fprintSval(f, name) \
|
|
do { \
|
|
fprintf(f, svalFormat, expandSval(name)); \
|
|
} while (0)
|