/usr/include/upsclient.h is in libupsclient-dev 2.7.2-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 | /* upsclient.h - definitions for upsclient functions
Copyright (C) 2002 Russell Kroll <rkroll@exploits.org>
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.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef UPSCLIENT_H_SEEN
#define UPSCLIENT_H_SEEN
#ifdef WITH_OPENSSL
#include <openssl/err.h>
#include <openssl/ssl.h>
#elif defined(WITH_NSS) /* WITH_OPENSSL */
#include <nss.h>
#include <ssl.h>
#endif /* WITH_OPENSSL | WITH_NSS */
#ifdef __cplusplus
/* *INDENT-OFF* */
extern "C" {
/* *INDENT-ON* */
#endif
#define UPSCLI_ERRBUF_LEN 256
#define UPSCLI_NETBUF_LEN 512 /* network i/o buffer */
#include "parseconf.h"
typedef struct {
char *host;
int port;
int fd;
int flags;
int upserror;
int syserrno;
int upsclient_magic;
PCONF_CTX_t pc_ctx;
char errbuf[UPSCLI_ERRBUF_LEN];
#ifdef WITH_OPENSSL
SSL *ssl;
#elif defined(WITH_NSS) /* WITH_OPENSSL */
PRFileDesc *ssl;
#else /* WITH_OPENSSL | WITH_NSS */
void *ssl;
#endif /* WITH_OPENSSL | WITH_NSS */
char readbuf[64];
size_t readlen;
size_t readidx;
} UPSCONN_t;
const char *upscli_strerror(UPSCONN_t *ups);
int upscli_init(int certverify, const char *certpath, const char *certname, const char *certpasswd);
int upscli_cleanup();
int upscli_tryconnect(UPSCONN_t *ups, const char *host, int port, int flags, struct timeval *tv);
int upscli_connect(UPSCONN_t *ups, const char *host, int port, int flags);
void upscli_add_host_cert(const char* hostname, const char* certname, int certverify, int forcessl);
/* --- functions that only use the new names --- */
int upscli_get(UPSCONN_t *ups, unsigned int numq, const char **query,
unsigned int *numa, char ***answer);
int upscli_list_start(UPSCONN_t *ups, unsigned int numq, const char **query);
int upscli_list_next(UPSCONN_t *ups, unsigned int numq, const char **query,
unsigned int *numa, char ***answer);
int upscli_sendline(UPSCONN_t *ups, const char *buf, size_t buflen);
int upscli_readline(UPSCONN_t *ups, char *buf, size_t buflen);
int upscli_splitname(const char *buf, char **upsname, char **hostname,
int *port);
int upscli_splitaddr(const char *buf, char **hostname, int *port);
int upscli_disconnect(UPSCONN_t *ups);
/* these functions return elements from UPSCONN_t to avoid direct references */
int upscli_fd(UPSCONN_t *ups);
int upscli_upserror(UPSCONN_t *ups);
/* returns 1 if SSL mode is active for this connection */
int upscli_ssl(UPSCONN_t *ups);
/* upsclient error list */
#define UPSCLI_ERR_UNKNOWN 0 /* Unknown error */
#define UPSCLI_ERR_VARNOTSUPP 1 /* Variable not supported by UPS */
#define UPSCLI_ERR_NOSUCHHOST 2 /* No such host */
#define UPSCLI_ERR_INVRESP 3 /* Invalid response from server */
#define UPSCLI_ERR_UNKNOWNUPS 4 /* Unknown UPS */
#define UPSCLI_ERR_INVLISTTYPE 5 /* Invalid list type */
#define UPSCLI_ERR_ACCESSDENIED 6 /* Access denied */
#define UPSCLI_ERR_PWDREQUIRED 7 /* Password required */
#define UPSCLI_ERR_PWDINCORRECT 8 /* Password incorrect */
#define UPSCLI_ERR_MISSINGARG 9 /* Missing argument */
#define UPSCLI_ERR_DATASTALE 10 /* Data stale */
#define UPSCLI_ERR_VARUNKNOWN 11 /* Variable unknown */
#define UPSCLI_ERR_LOGINTWICE 12 /* Already logged in */
#define UPSCLI_ERR_PWDSETTWICE 13 /* Already set password */
#define UPSCLI_ERR_UNKNOWNTYPE 14 /* Unknown variable type */
#define UPSCLI_ERR_UNKNOWNVAR 15 /* Unknown variable */
#define UPSCLI_ERR_VARREADONLY 16 /* Read-only variable */
#define UPSCLI_ERR_TOOLONG 17 /* New value is too long */
#define UPSCLI_ERR_INVALIDVALUE 18 /* Invalid value for variable */
#define UPSCLI_ERR_SETFAILED 19 /* Set command failed */
#define UPSCLI_ERR_UNKINSTCMD 20 /* Unknown instant command */
#define UPSCLI_ERR_CMDFAILED 21 /* Instant command failed */
#define UPSCLI_ERR_CMDNOTSUPP 22 /* Instant command not supported */
#define UPSCLI_ERR_INVUSERNAME 23 /* Invalid username */
#define UPSCLI_ERR_USERSETTWICE 24 /* Already set username */
#define UPSCLI_ERR_UNKCOMMAND 25 /* Unknown command */
#define UPSCLI_ERR_INVALIDARG 26 /* Invalid argument */
#define UPSCLI_ERR_SENDFAILURE 27 /* Send failure: %s */
#define UPSCLI_ERR_RECVFAILURE 28 /* Receive failure: %s */
#define UPSCLI_ERR_SOCKFAILURE 29 /* socket failure: %s */
#define UPSCLI_ERR_BINDFAILURE 30 /* bind failure: %s */
#define UPSCLI_ERR_CONNFAILURE 31 /* Connection failure: %s */
#define UPSCLI_ERR_WRITE 32 /* Write error: %s */
#define UPSCLI_ERR_READ 33 /* Read error: %s */
#define UPSCLI_ERR_INVPASSWORD 34 /* Invalid password */
#define UPSCLI_ERR_USERREQUIRED 35 /* Username required */
#define UPSCLI_ERR_SSLFAIL 36 /* SSL is not available */
#define UPSCLI_ERR_SSLERR 37 /* SSL error: %s */
#define UPSCLI_ERR_SRVDISC 38 /* Server disconnected */
#define UPSCLI_ERR_DRVNOTCONN 39 /* Driver not connected */
#define UPSCLI_ERR_NOMEM 40 /* Memory allocation failure */
#define UPSCLI_ERR_PARSE 41 /* Parse error: %s */
#define UPSCLI_ERR_PROTOCOL 42 /* Protocol error */
#define UPSCLI_ERR_MAX 42 /* stop here */
/* list types for use with upscli_getlist */
#define UPSCLI_LIST_VARS 1 /* all variables */
#define UPSCLI_LIST_RW 2 /* just read/write variables */
#define UPSCLI_LIST_CMDS 3 /* instant commands */
/* flags for use with upscli_connect */
#define UPSCLI_CONN_TRYSSL 0x0001 /* try SSL, OK if not supported */
#define UPSCLI_CONN_REQSSL 0x0002 /* try SSL, fail if not supported */
#define UPSCLI_CONN_INET 0x0004 /* IPv4 only */
#define UPSCLI_CONN_INET6 0x0008 /* IPv6 only */
#define UPSCLI_CONN_CERTVERIF 0x0010 /* Verify certificates for SSL */
#ifdef __cplusplus
/* *INDENT-OFF* */
}
/* *INDENT-ON* */
#endif
#endif /* UPSCLIENT_H_SEEN */
|