diff options
Diffstat (limited to 'src/pmproxy/pmproxy.h')
-rw-r--r-- | src/pmproxy/pmproxy.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/pmproxy/pmproxy.h b/src/pmproxy/pmproxy.h new file mode 100644 index 0000000..df6005c --- /dev/null +++ b/src/pmproxy/pmproxy.h @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2012-2013 Red Hat. + * Copyright (c) 2002 Silicon Graphics, Inc. All Rights Reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ +#ifndef _PROXY_H +#define _PROXY_H + +#include "pmapi.h" +#include "impl.h" + +/* The table of clients, used by pmproxy */ +typedef struct { + int fd; /* client socket descriptor */ + int version; /* proxy-client protocol version */ + struct { /* Status of connection to client */ + unsigned int connected : 1; /* Client connected, socket level */ + unsigned int allowed : 1; /* Creds seen, OK to talk to pmcd */ + } status; + char *pmcd_hostname; /* PMCD hostname */ + int pmcd_port; /* PMCD port */ + int pmcd_fd; /* PMCD socket file descriptor */ + __pmSockAddr *addr; /* address of client */ +} ClientInfo; + +extern ClientInfo *client; /* Array of clients */ +extern int nClients; /* Number of entries in array */ +extern int maxReqPortFd; /* highest request port fd */ +extern int maxSockFd; /* largest fd for a clients + * and pmcd connections */ +extern __pmFdSet sockFds; /* for select() */ + +/* prototypes */ +extern ClientInfo *AcceptNewClient(int); +extern void DeleteClient(ClientInfo *); +extern void StartDaemon(int, char **); +extern void Shutdown(void); + +#endif /* _PROXY_H */ |