From ecd42d878886648ebcc321e6733ed29771d2d29d Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 18 Oct 2010 12:46:28 +0000 Subject: [PATCH 001/218] Initial commit (preliminary investigation) Fossil-ID: SVN r2578 --- clients/Makefile.am | 6 +- clients/upsc.c | 5 + clients/upsclient.c | 88 ++++ clients/upscmd.c | 9 +- clients/upslog.c | 8 + clients/upsmon.c | 29 +- clients/upsrw.c | 7 + clients/upssched.c | 35 +- clients/wincompat.c | 50 ++ clients/wincompat.h | 47 ++ common/common.c | 80 ++- common/state.c | 4 + drivers/Makefile.am | 2 +- drivers/apcsmart.h | 4 + drivers/bcmxcp_usb.c | 10 +- drivers/belkin.h | 2 + drivers/blazer_usb.c | 9 +- drivers/dstate.c | 273 ++++++++++- drivers/dstate.h | 16 + drivers/dummy-ups.c | 3 + drivers/libhid.c | 3 + drivers/libusb.c | 13 +- drivers/main-hal.c | 4 + drivers/main.c | 21 + drivers/main.h | 10 + drivers/megatec.c | 1056 ++++++++++++++++++++++++++++++++++++++++ drivers/megatec_usb.c | 663 +++++++++++++++++++++++++ drivers/mge-shut.c | 4 + drivers/mge-xml.c | 5 +- drivers/netxml-ups.c | 11 + drivers/richcomm_usb.c | 13 + drivers/serial.c | 150 +++++- drivers/serial.h | 39 ++ drivers/upsdrvctl.c | 4 + drivers/usb-common.c | 3 + drivers/usbhid-ups.c | 8 +- include/common.h | 21 + server/Makefile.am | 3 +- server/conf.c | 36 +- server/ssl.c | 253 ++++++++++ server/sstate.c | 122 +++++ server/sstate.h | 4 + server/stype.h | 5 + server/upsd.c | 225 ++++++++- server/upsd.h | 5 + server/upstype.h | 7 + server/user.c | 5 + 47 files changed, 3347 insertions(+), 33 deletions(-) create mode 100755 clients/wincompat.c create mode 100755 clients/wincompat.h create mode 100644 drivers/megatec.c create mode 100644 drivers/megatec_usb.c create mode 100644 server/ssl.c diff --git a/clients/Makefile.am b/clients/Makefile.am index 7199ec262b..592d7bf372 100644 --- a/clients/Makefile.am +++ b/clients/Makefile.am @@ -1,7 +1,7 @@ # Network UPS Tools: clients # by default, link programs in this directory with libcommon.a -LDADD = ../common/libcommon.la libupsclient.la $(NETLIBS) +LDADD = ../common/libcommon.la libupsclient.la /c/MinGW/lib/libws2_32.a $(NETLIBS) if WITH_SSL LDADD += $(LIBSSL_LIBS) endif @@ -35,7 +35,7 @@ upslog_SOURCES = upslog.c upsclient.h upslog.h upsmon_SOURCES = upsmon.c upsmon.h upsclient.h upssched_SOURCES = upssched.c upssched.h -upssched_LDADD = ../common/libcommon.la ../common/libparseconf.la $(NETLIBS) +upssched_LDADD = ../common/libcommon.la ../common/libparseconf.la /c/MinGW/lib/libws2_32.a $(NETLIBS) upsimage_cgi_SOURCES = upsimage.c upsclient.h upsimagearg.h cgilib.c cgilib.h upsimage_cgi_LDADD = $(LDADD) $(LIBGD_LDFLAGS) @@ -45,7 +45,7 @@ upsstats_cgi_SOURCES = upsstats.c upsclient.h status.h upsstats.h \ upsimagearg.h cgilib.c cgilib.h # not LDADD. -libupsclient_la_SOURCES = upsclient.c upsclient.h +libupsclient_la_SOURCES = upsclient.c upsclient.h wincompat.c wincompat.h libupsclient_la_LIBADD = ../common/libparseconf.la if WITH_SSL libupsclient_la_LIBADD += $(LIBSSL_LIBS) diff --git a/clients/upsc.c b/clients/upsc.c index ae584d3550..b65814b0d1 100644 --- a/clients/upsc.c +++ b/clients/upsc.c @@ -21,9 +21,14 @@ #include "common.h" #include "nut_platform.h" +#ifndef WIN32 #include #include #include +#else +#undef DATADIR +#include +#endif #include "upsclient.h" diff --git a/clients/upsclient.c b/clients/upsclient.c index 70b6595336..0e2d38efa2 100644 --- a/clients/upsclient.c +++ b/clients/upsclient.c @@ -27,15 +27,27 @@ #endif #include +#ifndef WIN32 #include +#endif #include #include #include #include +#ifndef WIN32 #include #include #include #include +#else +#undef DATADIR +#include +#include +#include +/* This override network system calls to adapt to Windows specificity */ +#define W32_NETWORK_CALL_OVERRIDE +#include "wincompat.h" +#endif #include "upsclient.h" #include "common.h" @@ -60,6 +72,10 @@ #define shutdown_how 2 #endif +#ifdef WIN32 +#define strtok_r(a,b,c) strtok(a,b) +#endif + struct { int flags; const char *str; @@ -842,6 +858,11 @@ int upscli_tryconnect(UPSCONN_t *ups, const char *host, int port, int flags,stru socklen_t error_size; long fd_flags; +#ifdef WIN32 + WSADATA WSAdata; + WSAStartup(2,&WSAdata); + atexit(WSACleanup); +#endif if (!ups) { return -1; } @@ -856,6 +877,73 @@ int upscli_tryconnect(UPSCONN_t *ups, const char *host, int port, int flags,stru return -1; } +<<<<<<< HEAD +======= +#ifndef HAVE_IPV6 + serv = gethostbyname(host); + + if (!serv) { +#ifndef WIN32 + struct in_addr listenaddr; + + if (!inet_aton(host, &listenaddr)) { + ups->upserror = UPSCLI_ERR_NOSUCHHOST; + return -1; + } + + serv = gethostbyaddr(&listenaddr, sizeof(listenaddr), AF_INET); + + if (!serv) { + ups->upserror = UPSCLI_ERR_NOSUCHHOST; + return -1; + } +#else + unsigned long numeric_addr; + numeric_addr = inet_addr(host); + if ( numeric_addr == INADDR_NONE ) { + ups->upserror = UPSCLI_ERR_NOSUCHHOST; + return -1; + } + server.sin_addr.s_addr = numeric_addr; + +#endif + + } + + if ((sock_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { + ups->upserror = UPSCLI_ERR_SOCKFAILURE; + ups->syserrno = errno; + close(sock_fd); + return -1; + } + + memset(&local, '\0', sizeof(local)); + local.sin_family = AF_INET; + local.sin_port = htons(INADDR_ANY); + + memset(&server, '\0', sizeof(server)); + server.sin_family = AF_INET; + server.sin_port = htons(port); + + memcpy(&server.sin_addr, serv->h_addr, serv->h_length); + + if (bind(sock_fd, (struct sockaddr *) &local, sizeof(local)) < 0) { + ups->upserror = UPSCLI_ERR_BINDFAILURE; + ups->syserrno = errno; + close(sock_fd); + return -1; + } + + if (connect(sock_fd, (struct sockaddr *) &server, sizeof(struct sockaddr_in)) < 0) { + ups->upserror = UPSCLI_ERR_CONNFAILURE; + ups->syserrno = errno; + close(sock_fd); + return -1; + } + + ups->fd = sock_fd; +#else +>>>>>>> Initial commit (preliminary investigation) snprintf(sport, sizeof(sport), "%hu", (unsigned short int)port); memset(&hints, 0, sizeof(hints)); diff --git a/clients/upscmd.c b/clients/upscmd.c index f4990a872c..097fae7660 100644 --- a/clients/upscmd.c +++ b/clients/upscmd.c @@ -20,11 +20,16 @@ #include "common.h" #include "nut_platform.h" +#ifndef WIN32 #include #include #include #include #include +#else +#undef DATADIR +#include +#endif #include "upsclient.h" @@ -243,7 +248,7 @@ int main(int argc, char **argv) if (!strchr(argv[1], '.')) { fatalx(EXIT_FAILURE, "Error: old command names are not supported"); } - +#ifndef WIN32 if (!have_un) { struct passwd *pw; @@ -312,7 +317,7 @@ int main(int argc, char **argv) if (upscli_readline(ups, buf, sizeof(buf)) < 0) { fatalx(EXIT_FAILURE, "Set password failed: %s", upscli_strerror(ups)); } - +#endif do_cmd(&argv[1], argc - 1); exit(EXIT_SUCCESS); diff --git a/clients/upslog.c b/clients/upslog.c index 7c534c7f72..6778f3134a 100644 --- a/clients/upslog.c +++ b/clients/upslog.c @@ -39,6 +39,12 @@ #include "timehead.h" #include "upslog.h" +#ifdef WIN32 +#undef DATADIR +#include +#define sleep(n) Sleep(1000 * n) +#endif + static int port, reopen_flag = 0, exit_flag = 0; static char *upsname, *hostname; static UPSCONN_t ups; @@ -80,6 +86,7 @@ static void set_exit_flag(int sig) /* handlers: reload on HUP, exit on INT/QUIT/TERM */ static void setup_signals(void) { +#ifndef WIN32 struct sigaction sa; sigemptyset(&nut_upslog_sigmask); @@ -97,6 +104,7 @@ static void setup_signals(void) fatal_with_errno(EXIT_FAILURE, "Can't install SIGQUIT handler"); if (sigaction(SIGTERM, &sa, NULL) < 0) fatal_with_errno(EXIT_FAILURE, "Can't install SIGTERM handler"); +#endif } static void help(const char *prog) diff --git a/clients/upsmon.c b/clients/upsmon.c index 12823fa1ee..dc2b7716df 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -22,8 +22,14 @@ #include "common.h" #include +#ifndef WIN32 #include #include +#else +#undef DATADIR +#include +#define sleep(n) Sleep(1000 * n) +#endif #include "upsclient.h" #include "upsmon.h" @@ -79,9 +85,11 @@ static utype_t *firstups = NULL; static int opt_af = AF_UNSPEC; +#ifndef WIN32 /* signal handling things */ static struct sigaction sa; static sigset_t nut_upsmon_sigmask; +#endif static void setflag(int *val, int flag) { @@ -124,7 +132,7 @@ static void notify(const char *notice, int flags, const char *ntype, if (flag_isset(flags, NOTIFY_SYSLOG)) upslogx(LOG_NOTICE, "%s", notice); - +#ifndef WIN32 /* fork here so upsmon doesn't get wedged if the notifier is slow */ ret = fork(); @@ -135,7 +143,7 @@ static void notify(const char *notice, int flags, const char *ntype, if (ret != 0) /* parent */ return; - +#endif /* child continues and does all the work */ if (flag_isset(flags, NOTIFY_WALL)) @@ -436,9 +444,10 @@ static void doshutdown(void) ret = write(pipefd[1], &ch, 1); } else { /* one process model = we do all the work here */ - +#ifndef WIN32 if (geteuid() != 0) upslogx(LOG_WARNING, "Not root, shutdown may fail"); +#endif set_pdflag(); @@ -494,13 +503,17 @@ static void setfsd(utype_t *ups) static void set_alarm(void) { +#ifndef WIN32 alarm(NET_TIMEOUT); +#endif } static void clear_alarm(void) { +#ifndef WIN32 signal(SIGALRM, SIG_IGN); alarm(0); +#endif } static int get_var(utype_t *ups, const char *var, char *buf, size_t bufsize) @@ -1341,6 +1354,7 @@ static void read_timeout(int sig) /* install handlers for a few signals */ static void setup_signals(void) { +#ifndef WIN32 sigemptyset(&nut_upsmon_sigmask); sa.sa_mask = nut_upsmon_sigmask; sa.sa_flags = 0; @@ -1365,6 +1379,7 @@ static void setup_signals(void) sa.sa_handler = set_reload_flag; sigaction(SIGCMD_RELOAD, &sa, NULL); +#endif } /* remember the last time the ups was not critical (OB + LB) */ @@ -1660,10 +1675,12 @@ static void runparent(int fd) int ret; char ch; +#ifndef WIN32 /* handling signals is the child's job */ signal(SIGHUP, SIG_IGN); signal(SIGUSR1, SIG_IGN); signal(SIGUSR2, SIG_IGN); +#endif ret = read(fd, &ch, 1); @@ -1693,6 +1710,7 @@ static void runparent(int fd) /* fire up the split parent/child scheme */ static void start_pipe(void) { +#ifndef WIN32 int ret; ret = pipe(pipefd); @@ -1714,6 +1732,7 @@ static void start_pipe(void) } close(pipefd[0]); +#endif } static void delete_ups(utype_t *target) @@ -1872,6 +1891,7 @@ int main(int argc, char *argv[]) while ((i = getopt(argc, argv, "+Dhic:f:pu:VK46")) != -1) { switch (i) { +#ifndef WIN32 case 'c': if (!strncmp(optarg, "fsd", strlen(optarg))) cmd = SIGCMD_FSD; @@ -1884,6 +1904,7 @@ int main(int argc, char *argv[]) if (cmd == 0) help(argv[0]); break; +#endif case 'D': nut_debug_level++; break; @@ -2015,8 +2036,10 @@ int main(int argc, char *argv[]) if (use_pipe) check_parent(); +#ifndef WIN32 /* reap children that have exited */ waitpid(-1, NULL, WNOHANG); +#endif sleep(sleepval); } diff --git a/clients/upsrw.c b/clients/upsrw.c index 8113690414..c374ce71fb 100644 --- a/clients/upsrw.c +++ b/clients/upsrw.c @@ -20,10 +20,15 @@ #include "common.h" #include "nut_platform.h" +#ifndef WIN32 #include #include #include #include +#else +#undef DATADIR +#include +#endif #include "upsclient.h" @@ -91,6 +96,7 @@ static void do_setvar(const char *varname, char *uin, const char *pass) char newval[SMALLBUF], temp[SMALLBUF], user[SMALLBUF], *ptr; struct passwd *pw; +#ifndef WIN32 if (uin) { snprintf(user, sizeof(user), "%s", uin); } else { @@ -128,6 +134,7 @@ static void do_setvar(const char *varname, char *uin, const char *pass) fatal_with_errno(EXIT_FAILURE, "getpass failed"); } } +#endif /* Check if varname is in VAR=VALUE form */ if ((ptr = strchr(varname, '=')) != NULL) { diff --git a/clients/upssched.c b/clients/upssched.c index 97b3ed42db..fc026a568d 100644 --- a/clients/upssched.c +++ b/clients/upssched.c @@ -42,10 +42,16 @@ #include "common.h" #include +#ifndef WIN32 #include #include #include #include +#else +#undef DATADIR +#include +#include +#endif #include "upssched.h" #include "timehead.h" @@ -83,6 +89,7 @@ static void exec_cmd(const char *cmd) snprintf(buf, sizeof(buf), "%s %s", cmdscript, cmd); err = system(buf); +#ifndef WIN32 if (WIFEXITED(err)) { if (WEXITSTATUS(err)) { upslogx(LOG_INFO, "exec_cmd(%s) returned %d", buf, WEXITSTATUS(err)); @@ -94,6 +101,14 @@ static void exec_cmd(const char *cmd) upslogx(LOG_ERR, "Execute command failure: %s", buf); } } +#else + if(err != -1) { + upslogx(LOG_INFO, "Execute command \"%s\" OK", buf); + } + else { + upslogx(LOG_ERR, "Execute command failure : %s", buf); + } +#endif return; } @@ -239,6 +254,7 @@ static void cancel_timer(const char *name, const char *cname) static void us_serialize(int op) { +#ifndef WIN32 static int pipefd[2]; int ret; char ch; @@ -263,10 +279,12 @@ static void us_serialize(int op) close(pipefd[0]); break; } +#endif } static int open_sock(void) { +#ifndef WIN32 int ret, fd; struct sockaddr_un ssaddr; @@ -298,6 +316,9 @@ static int open_sock(void) fatal_with_errno(EXIT_FAILURE, "listen(%d, %d) failed", fd, US_LISTEN_BACKLOG); return fd; +#else + return 0; +#endif } static void conn_del(conn_t *target) @@ -353,6 +374,7 @@ static int send_to_one(conn_t *conn, const char *fmt, ...) static void conn_add(int sockfd) { +#ifndef WIN32 int acc, ret; conn_t *tmp, *last; struct sockaddr_un saddr; @@ -407,6 +429,7 @@ static void conn_add(int sockfd) upsdebugx(3, "new connection on fd %d", acc); pconf_init(&tmp->ctx, NULL); +#endif } static int sock_arg(conn_t *conn) @@ -501,7 +524,7 @@ static void start_daemon(int lockfd) conn_t *tmp, *tmpnext; us_serialize(SERIALIZE_INIT); - +#ifndef WIN32 if ((pid = fork()) < 0) fatal_with_errno(EXIT_FAILURE, "Unable to enter background"); @@ -512,7 +535,7 @@ static void start_daemon(int lockfd) return; } - +#endif /* child */ close(0); @@ -591,6 +614,7 @@ static void start_daemon(int lockfd) static int try_connect(void) { +#ifndef WIN32 int pipefd, ret; struct sockaddr_un saddr; @@ -609,6 +633,9 @@ static int try_connect(void) return pipefd; return -1; +#else + return -1; +#endif } static int get_lock(const char *fn) @@ -667,6 +694,7 @@ static void read_timeout(int sig) static void setup_sigalrm(void) { +#ifndef WIN32 struct sigaction sa; sigset_t nut_upssched_sigmask; @@ -675,6 +703,7 @@ static void setup_sigalrm(void) sa.sa_flags = 0; sa.sa_handler = read_timeout; sigaction(SIGALRM, &sa, NULL); +#endif } static void sendcmd(const char *cmd, const char *arg1, const char *arg2) @@ -727,11 +756,13 @@ static void sendcmd(const char *cmd, const char *arg1, const char *arg2) /* ugh - probably should use select here... */ setup_sigalrm(); +#ifndef WIN32 alarm(2); ret = read(pipefd, buf, sizeof(buf)); alarm(0); signal(SIGALRM, SIG_IGN); +#endif close(pipefd); diff --git a/clients/wincompat.c b/clients/wincompat.c new file mode 100755 index 0000000000..f30a8e9add --- /dev/null +++ b/clients/wincompat.c @@ -0,0 +1,50 @@ +/* + + Copyright (C) 1999 Russell Kroll + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "common.h" +#undef DATADIR +#include + +extern int errno; + + +int sktconnect(int fh, struct sockaddr * name, int len) +{ + int ret = connect(fh,name,len); + errno = WSAGetLastError(); + return ret; +} +int sktread(int fh, char *buf, int size) +{ + int ret = recv(fh,buf,size,0); + errno = WSAGetLastError(); + return ret; +} +int sktwrite(int fh, char *buf, int size) +{ + int ret = send(fh,buf,size,0); + errno = WSAGetLastError(); + return ret; +} +int sktclose(int fh) +{ + int ret = closesocket((SOCKET)fh); + errno = WSAGetLastError(); + return ret; +} diff --git a/clients/wincompat.h b/clients/wincompat.h new file mode 100755 index 0000000000..4d08418caa --- /dev/null +++ b/clients/wincompat.h @@ -0,0 +1,47 @@ +#ifndef NUT_WINCOMPAT_H +#define NUT_WINCOMPAT_H + +/* + Copyright (C) 2001 Andrew Delpha (delpha@computer.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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + + +/* +This header is provided to make the map the windows system calls to be compatable with +the NUT code. Windows defines a lot of system functions with a _(name) like snprintf +Also, the error codes from the networking code are not put into errno as nut expects. +For convience I've provided wrapper functions which do this. +*/ + +/* This is conditional because read/write are generic in unix, and this will make them network specific */ +#ifdef W32_NETWORK_CALL_OVERRIDE +#define close(h) sktclose(h) +#define read(h,b,s) sktread(h,b,s) +#define write(h,b,s) sktwrite( h ,(char *) b , s ) +#define connect(h,n,l) sktconnect(h,n,l) +#endif + +#define strcasecmp(a,b) _stricmp(a,b) +#define snprintf _snprintf +#define vsnprintf _vsnprintf + +int sktconnect(int fh, struct sockaddr * name, int len); +int sktread(int fh, char *buf, int size); +int sktwrite(int fh, char *buf, int size); +int sktclose(int fh); + +#endif diff --git a/common/common.c b/common/common.c index ef680b0cc2..c2023d17aa 100644 --- a/common/common.c +++ b/common/common.c @@ -20,9 +20,14 @@ #include "common.h" #include +#ifndef WIN32 #include #include #include +#else +#undef DATADIR +#include +#endif /* the reason we define UPS_VERSION as a static string, rather than a macro, is to make dependency tracking easier (only common.o depends @@ -61,6 +66,7 @@ void syslogbit_set(void) /* get the syslog ready for us */ void open_syslog(const char *progname) { +#ifndef WIN32 int opt; opt = LOG_PID; @@ -109,11 +115,13 @@ void open_syslog(const char *progname) break; #endif } +#endif //WIN32 } /* close ttys and become a daemon */ void background(void) { +#ifndef WIN32 int pid; if ((pid = fork()) < 0) @@ -144,13 +152,14 @@ void background(void) #ifdef HAVE_SETSID setsid(); /* make a new session to dodge signals */ #endif - +#endif upslogx(LOG_INFO, "Startup successful"); } /* do this here to keep pwd/grp stuff out of the main files */ struct passwd *get_user_pwent(const char *name) { +#ifndef WIN32 struct passwd *r; errno = 0; if ((r = getpwnam(name))) @@ -163,13 +172,14 @@ struct passwd *get_user_pwent(const char *name) fatalx(EXIT_FAILURE, "user %s not found", name); else fatal_with_errno(EXIT_FAILURE, "getpwnam(%s)", name); - +#endif return NULL; /* to make the compiler happy */ } /* change to the user defined in the struct */ void become_user(struct passwd *pw) { +#ifndef WIN32 /* if we can't switch users, then don't even try */ if ((geteuid() != 0) && (getuid() != 0)) return; @@ -186,6 +196,7 @@ void become_user(struct passwd *pw) if (setuid(pw->pw_uid) == -1) fatal_with_errno(EXIT_FAILURE, "setuid"); +#endif } /* drop down into a directory and throw away pointers to the old path */ @@ -193,10 +204,10 @@ void chroot_start(const char *path) { if (chdir(path)) fatal_with_errno(EXIT_FAILURE, "chdir(%s)", path); - +#ifndef WIN32 if (chroot(path)) fatal_with_errno(EXIT_FAILURE, "chroot(%s)", path); - +#endif if (chdir("/")) fatal_with_errno(EXIT_FAILURE, "chdir(/)"); @@ -232,6 +243,7 @@ void writepid(const char *name) /* open pidfn, get the pid, then send it sig */ int sendsignalfn(const char *pidfn, int sig) { +#ifndef WIN32 char buf[SMALLBUF]; FILE *pidf; int pid, ret; @@ -275,6 +287,7 @@ int sendsignalfn(const char *pidfn, int sig) } fclose(pidf); +#endif return 0; } @@ -307,7 +320,16 @@ int sendsignal(const char *progname, int sig) const char *xbasename(const char *file) { +#ifndef WIN32 const char *p = strrchr(file, '/'); +#else + const char *p = strrchr(file, '\\'); + const char *r = strrchr(file, '/'); + /* if not found, try '/' */ + if( r > p ) { + p = r; + } +#endif if (p == NULL) return file; @@ -322,8 +344,13 @@ static void vupslog(int priority, const char *fmt, va_list va, int use_strerror) ret = vsnprintf(buf, sizeof(buf), fmt, va); if ((ret < 0) || (ret >= (int) sizeof(buf))) +#ifndef WIN32 syslog(LOG_WARNING, "vupslog: vsnprintf needed more than %d bytes", LARGEBUF); +#else + fprintf(stderr,"vupslog: vsnprintf needed more than %d bytes",LARGEBUF); +#endif + if (use_strerror) snprintfcat(buf, sizeof(buf), ": %s", strerror(errno)); @@ -349,7 +376,11 @@ static void vupslog(int priority, const char *fmt, va_list va, int use_strerror) if (xbit_test(upslog_flags, UPSLOG_STDERR)) fprintf(stderr, "%s\n", buf); if (xbit_test(upslog_flags, UPSLOG_SYSLOG)) +#ifndef WIN32 syslog(priority, "%s", buf); +#else + fprintf(stderr, "%s\n", buf); +#endif } /* Return the default path for the directory containing configuration files */ @@ -358,7 +389,12 @@ const char * confpath(void) const char * path; if ((path = getenv("NUT_CONFPATH")) == NULL) +#ifndef WIN32 path = CONFPATH; +#else +/*FIXME*/ + path = "./conf"; +#endif return path; } @@ -492,6 +528,7 @@ void *xmalloc(size_t size) if (p == NULL) fatal_with_errno(EXIT_FAILURE, "%s", oom_msg); + memset(p,0,size); return p; } @@ -501,6 +538,7 @@ void *xcalloc(size_t number, size_t size) if (p == NULL) fatal_with_errno(EXIT_FAILURE, "%s", oom_msg); + memset(p,0,size*number); return p; } @@ -555,6 +593,7 @@ char* ltrim(char *in, const char sep) /* Read up to buflen bytes from fd and return the number of bytes read. If no data is available within d_sec + d_usec, return 0. On error, a value < 0 is returned (errno indicates error). */ +#ifndef WIN32 int select_read(const int fd, void *buf, const size_t buflen, const long d_sec, const long d_usec) { int ret; @@ -575,12 +614,42 @@ int select_read(const int fd, void *buf, const size_t buflen, const long d_sec, return read(fd, buf, buflen); } +#else +int select_read(const HANDLE fd, void *buf, const size_t buflen, const long d_sec, const long d_usec) +{ +/* This function is only called by serial drivers right now */ + OVERLAPPED overlapped; + DWORD bytesread = 0; + DWORD ret; + + memset(&overlapped,0,sizeof(OVERLAPPED)); + overlapped.hEvent = CreateEvent(NULL, /*security*/ + FALSE, /*auto-reset*/ + FALSE, /*initally non signaled*/ + NULL ); /*no name*/ + if(overlapped.hEvent == NULL ) { + return 0; + } + ReadFile(fd,buf,buflen,&bytesread,&overlapped); + + ret = WaitForSingleObject(overlapped.hEvent, d_sec * 1000 + d_usec / 1000); + GetOverlappedResult(fd, &overlapped, &bytesread, FALSE); + CancelIo(overlapped.hEvent); + CloseHandle(overlapped.hEvent); + if( ret != WAIT_OBJECT_0 ) { + return 0; + } + + return bytesread; +} +#endif /* Write up to buflen bytes to fd and return the number of bytes written. If no data is available within d_sec + d_usec, return 0. On error, a value < 0 is returned (errno indicates error). */ int select_write(const int fd, const void *buf, const size_t buflen, const long d_sec, const long d_usec) { +#ifndef WIN32 int ret; fd_set fds; struct timeval tv; @@ -598,4 +667,7 @@ int select_write(const int fd, const void *buf, const size_t buflen, const long } return write(fd, buf, buflen); +#else + return 0; +#endif } diff --git a/common/state.c b/common/state.c index cb79e0fcf8..3db1100c94 100644 --- a/common/state.c +++ b/common/state.c @@ -24,8 +24,12 @@ #include #include #include +#ifndef WIN32 #include #include +#else +#include +#endif #include "common.h" #include "state.h" diff --git a/drivers/Makefile.am b/drivers/Makefile.am index 0f1d0c9ef7..88fc009227 100644 --- a/drivers/Makefile.am +++ b/drivers/Makefile.am @@ -149,7 +149,7 @@ voltronic_ser_LDADD = $(LDADD) -lm # dummy dummy_ups_SOURCES = dummy-ups.c dummy_ups_CFLAGS = $(AM_CFLAGS) -I$(top_srcdir)/clients -dummy_ups_LDADD = $(LDADD_DRIVERS) ../clients/libupsclient.la +dummy_ups_LDADD = $(LDADD_DRIVERS) ../clients/libupsclient.la /c/MinGW/lib/libws2_32.a if WITH_SSL dummy_ups_CFLAGS += $(LIBSSL_CFLAGS) dummy_ups_LDADD += $(LIBSSL_LIBS) diff --git a/drivers/apcsmart.h b/drivers/apcsmart.h index c0155db4d3..27bf7a77dd 100644 --- a/drivers/apcsmart.h +++ b/drivers/apcsmart.h @@ -70,6 +70,10 @@ * we have to ignore this character explicitly */ +#ifndef WIN32 +#include +#endif + /* Basic UPS reply line structure */ #define ENDCHAR 10 /* APC ends responses with LF (and CR, but it's IGNCRed) */ diff --git a/drivers/bcmxcp_usb.c b/drivers/bcmxcp_usb.c index 2788029676..a59a0ab7e6 100644 --- a/drivers/bcmxcp_usb.c +++ b/drivers/bcmxcp_usb.c @@ -406,7 +406,8 @@ usb_dev_handle *nutusb_open(const char *port) usb_find_busses(); usb_find_devices(); - for (retry = 0; retry < MAX_TRY ; retry++) + + for (retry = 0; dev_h == NULL && retry < 32; retry++) { dev_h = open_powerware_usb(); if (!dev_h) { @@ -417,6 +418,13 @@ usb_dev_handle *nutusb_open(const char *port) upsdebugx(1, "device %s opened successfully", usb_device(dev_h)->filename); errout = 0; +#ifdef WIN32 + if (usb_set_configuration(dev_h, 0) < 0) + { + upsdebugx(1, "Can't set POWERWARE USB configuration: %s", usb_strerror()); + errout = 1; + } +#endif if (usb_claim_interface(dev_h, 0) < 0) { upsdebugx(1, "Can't claim POWERWARE USB interface: %s", usb_strerror()); diff --git a/drivers/belkin.h b/drivers/belkin.h index 4e8e8d8f40..7a91c07eb7 100644 --- a/drivers/belkin.h +++ b/drivers/belkin.h @@ -17,7 +17,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#ifndef WIN32 #include +#endif #include "serial.h" #include "timehead.h" diff --git a/drivers/blazer_usb.c b/drivers/blazer_usb.c index e3ef3fce08..cf10bfa4b4 100644 --- a/drivers/blazer_usb.c +++ b/drivers/blazer_usb.c @@ -120,8 +120,10 @@ static int phoenix_command(const char *cmd, char *buf, size_t buflen) { case -EPIPE: /* Broken pipe */ usb_clear_halt(udev, 0x81); +#ifndef WIN32 /*FIXME*/ case -ETIMEDOUT: /* Connection timed out */ break; +#endif } if (ret < 0) { @@ -188,7 +190,9 @@ static int ippon_command(const char *cmd, char *buf, size_t buflen) 0x09, 0x2, 0, &tmp[i], 8, 1000); if (ret <= 0) { +#ifndef WIN32 /*FIXME*/ upsdebugx(3, "send: %s", (ret != -ETIMEDOUT) ? usb_strerror() : "Connection timed out"); +#endif return ret; } } @@ -203,7 +207,9 @@ static int ippon_command(const char *cmd, char *buf, size_t buflen) * will happen after successfully writing a command to the UPS) */ if (ret <= 0) { +#ifndef WIN32 /*FIXME*/ upsdebugx(3, "read: %s", (ret != -ETIMEDOUT) ? usb_strerror() : "Connection timed out"); +#endif return ret; } @@ -440,10 +446,11 @@ int blazer_command(const char *cmd, char *buf, size_t buflen) usb->close(udev); udev = NULL; break; - +#ifndef WIN32 case -ETIMEDOUT: /* Connection timed out */ case -EOVERFLOW: /* Value too large for defined data type */ case -EPROTO: /* Protocol error */ +#endif default: break; } diff --git a/drivers/dstate.c b/drivers/dstate.c index 2e5bd7e967..5429efa75e 100644 --- a/drivers/dstate.c +++ b/drivers/dstate.c @@ -21,20 +21,32 @@ */ #include +#ifndef WIN32 #include #include #include #include #include #include +#else +#include +#include +#include +#endif #include "common.h" #include "dstate.h" #include "state.h" #include "parseconf.h" +#ifndef WIN32 static int sockfd = -1, stale = 1, alarm_active = 0, ignorelb = 0; static char *sockfn = NULL; +#else + static HANDLE sockfd = INVALID_HANDLE_VALUE; + static int stale = 1, alarm_active = 0; ignorelb = 0; + static OVERLAPPED connect_overlapped; +#endif static char status_buf[ST_MAX_VALUE_LEN], alarm_buf[ST_MAX_VALUE_LEN]; static st_tree_t *dtree_root = NULL; static conn_t *connhead = NULL; @@ -45,6 +57,8 @@ /* this may be a frequent stumbling point for new users, so be verbose here */ static void sock_fail(const char *fn) { +#ifndef WIN32 +/*FIXME*/ int sockerr; struct passwd *user; @@ -92,11 +106,12 @@ static void sock_fail(const char *fn) * there - that wasn't so bad. every helpful line of code here * prevents one more "help me" mail to the list a year from now */ - +#endif printf("\n"); fatalx(EXIT_FAILURE, "Exiting."); } +#ifndef WIN32 static int sock_open(const char *fn) { int ret, fd; @@ -136,13 +151,62 @@ static int sock_open(const char *fn) if (ret < 0) { fatal_with_errno(EXIT_FAILURE, "listen(%d, %d) failed", fd, DS_LISTEN_BACKLOG); } +#else +static void sock_connect(HANDLE sock); +static HANDLE sock_open(const char *fn) +{ + HANDLE fd; + + fd = CreateNamedPipe( + fn, // pipe name + PIPE_ACCESS_DUPLEX | // read/write access + FILE_FLAG_OVERLAPPED, // async IO + PIPE_TYPE_BYTE | + PIPE_READMODE_BYTE | + PIPE_WAIT, + PIPE_UNLIMITED_INSTANCES, // max. instances + ST_SOCK_BUF_LEN, // output buffer size + ST_SOCK_BUF_LEN, // input buffer size + 0, // client time-out + NULL); // FIXME: default security attribute + + if (fd == INVALID_HANDLE_VALUE) { + fatal_with_errno(EXIT_FAILURE, "Can't create a state socket (windows named pipe)"); + } + + /* Prepare an async wait on a connection on the pipe */ + memset(&connect_overlapped,0,sizeof(connect_overlapped)); + connect_overlapped.hEvent = CreateEvent(NULL, /*Security*/ + FALSE, /* auto-reset*/ + FALSE, /* inital state = non signaled*/ + NULL /* no name*/); + if(connect_overlapped.hEvent == NULL ) { + printf("CreateEvent failed.\n"); + fatal_with_errno(EXIT_FAILURE, "Can't create event"); + } + + BOOL ret; + ResetEvent(connect_overlapped.hEvent); + ret = ConnectNamedPipe(fd,&connect_overlapped); + +#endif + return fd; } static void sock_disconnect(conn_t *conn) { +#ifndef WIN32 close(conn->fd); +#else + /* FIXME not sure if this is the right way to close a connection */ + DisconnectNamedPipe(conn->fd); + if( conn->read_overlapped.hEvent != INVALID_HANDLE_VALUE) { + CloseHandle(conn->read_overlapped.hEvent); + conn->read_overlapped.hEvent = INVALID_HANDLE_VALUE; + } +#endif pconf_finish(&conn->ctx); @@ -182,8 +246,24 @@ static void send_to_all(const char *fmt, ...) for (conn = connhead; conn; conn = cnext) { cnext = conn->next; +#ifndef WIN32 ret = write(conn->fd, buf, strlen(buf)); +#else + DWORD bytesWritten = 0; + BOOL result = FALSE; + result = WriteFile (conn->fd,buf,strlen(buf),&bytesWritten,NULL); + if( result == 0 ) { + printf("Write failed, disconnecting\n"); + sock_disconnect(conn); + return; + } + else { + //printf("Write %d bytes successfully\n",(int)bytesWritten); + ret = (int)bytesWritten; + } + +#endif if (ret != (int)strlen(buf)) { upsdebugx(2, "write %d bytes to socket %d failed", (int)strlen(buf), conn->fd); sock_disconnect(conn); @@ -196,6 +276,10 @@ static int send_to_one(conn_t *conn, const char *fmt, ...) int ret; va_list ap; char buf[ST_SOCK_BUF_LEN]; +#ifdef WIN32 + DWORD bytesWritten = 0; + BOOL result = FALSE; +#endif va_start(ap, fmt); ret = vsnprintf(buf, sizeof(buf), fmt, ap); @@ -208,7 +292,18 @@ static int send_to_one(conn_t *conn, const char *fmt, ...) upsdebugx(5, "%s: %.*s", __func__, ret-1, buf); +#ifndef WIN32 ret = write(conn->fd, buf, strlen(buf)); +#else + result = WriteFile (conn->fd,buf,strlen(buf),&bytesWritten,NULL); + if( result == 0 ) { + printf("Write failed\n"); + ret = 0; + } + else { + ret = (int)bytesWritten; + } +#endif if (ret != (int)strlen(buf)) { upsdebugx(2, "write %d bytes to socket %d failed", (int)strlen(buf), conn->fd); @@ -219,10 +314,18 @@ static int send_to_one(conn_t *conn, const char *fmt, ...) return 1; /* OK */ } +#ifndef WIN32 static void sock_connect(int sock) +#else +static void sock_connect(HANDLE sock) +#endif { - int fd, ret; conn_t *conn; + +#ifndef WIN32 + int ret; + int fd; + struct sockaddr_un sa; #if defined(__hpux) && !defined(_XOPEN_SOURCE_EXTENDED) int salen; @@ -268,6 +371,41 @@ static void sock_connect(int sock) connhead = conn; upsdebugx(3, "new connection on fd %d", fd); +#else + conn = xcalloc(1, sizeof(*conn)); + conn->fd = sock; + + /* Start a read operation so we could wait on the event associated to this IO */ + memset(&conn->read_overlapped,0,sizeof(conn->read_overlapped)); + memset(conn->buf,0,sizeof(conn->buf)); + conn->read_overlapped.hEvent = CreateEvent(NULL, /*Security*/ + FALSE, /* auto-reset*/ + FALSE, /* inital state = non signaled*/ + NULL /* no name*/); + if(conn->read_overlapped.hEvent == NULL ) { + printf("CreateEvent failed.\n"); + fatal_with_errno(EXIT_FAILURE, "Can't create event"); + } + + ReadFile (conn->fd,conn->buf,sizeof(conn->buf)-1,&(conn->bytesRead),&(conn->read_overlapped)); /* -1 to be sure to have a trailling 0 */ + + /* Prepare an async wait on a connection on the pipe */ + BOOL ret; + ret = ConnectNamedPipe(sockfd,&connect_overlapped); + + + pconf_init(&conn->ctx, NULL); + + if (connhead) { + conn->next = connhead; + connhead->prev = conn; + } + + connhead = conn; + + upsdebugx(3, "new connection on fd %d", (int)sock); +#endif + } static int st_tree_dump_conn(st_tree_t *node, conn_t *conn) @@ -432,6 +570,8 @@ static int sock_arg(conn_t *conn, int numarg, char **arg) static void sock_read(conn_t *conn) { int i, ret; + +#ifndef WIN32 char buf[SMALLBUF]; ret = read(conn->fd, buf, sizeof(buf)); @@ -448,6 +588,18 @@ static void sock_read(conn_t *conn) return; } } +#else + char *buf = conn->buf; + DWORD bytesRead; + BOOL res; + res = GetOverlappedResult(conn->fd, &conn->read_overlapped, &bytesRead, FALSE); + if( res == 0 ) { + upslogx(LOG_INFO, "Read error : %d",(int)GetLastError()); + sock_disconnect(conn); + return; + } + ret = bytesRead; +#endif for (i = 0; i < ret; i++) { @@ -473,12 +625,18 @@ static void sock_read(conn_t *conn) return; } } + +#ifdef WIN32 + /* Restart async read */ + memset(conn->buf,0,sizeof(conn->buf)); + ReadFile(conn->fd,conn->buf,sizeof(conn->buf)-1,&(conn->bytesRead),&(conn->read_overlapped)); /* -1 to be sure to have a trailling 0 */ +#endif } static void sock_close(void) { conn_t *conn, *cnext; - +#ifndef WIN32 if (sockfd != -1) { close(sockfd); sockfd = -1; @@ -490,6 +648,15 @@ static void sock_close(void) } } +#else + if (sockfd != INVALID_HANDLE_VALUE) { + FlushFileBuffers(sockfd); + CloseHandle(sockfd); + sockfd = INVALID_HANDLE_VALUE; + printf("sock_close Close %d\n",(int)sockfd); + } +#endif + for (conn = connhead; conn; conn = cnext) { cnext = conn->next; sock_disconnect(conn); @@ -505,6 +672,7 @@ void dstate_init(const char *prog, const char *devname) { char sockname[SMALLBUF]; +#ifndef WIN32 /* do this here for now */ signal(SIGPIPE, SIG_IGN); @@ -513,12 +681,21 @@ void dstate_init(const char *prog, const char *devname) } else { snprintf(sockname, sizeof(sockname), "%s/%s", dflt_statepath(), prog); } +#else + /* FIXME: use dflt_statepath() instead of hardcoded value ?*/ + if (port) { + snprintf(sockname, sizeof(sockname), "\\\\.\\pipe\\%s-%s", prog, port); + } else { + snprintf(sockname, sizeof(sockname), "\\\\.\\pipe\\%s", prog); + } +#endif sockfd = sock_open(sockname); upsdebugx(2, "dstate_init: sock %s open on fd %d", sockname, sockfd); } +#ifndef WIN32 /* returns 1 if timeout expired or data is available on UPS fd, 0 otherwise */ int dstate_poll_fds(struct timeval timeout, int extrafd) { @@ -605,6 +782,96 @@ int dstate_poll_fds(struct timeval timeout, int extrafd) return overrun; } +#else +/* returns 1 if timeout expired or data is available on UPS fd, 0 otherwise */ +int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) +{ + DWORD ret; + int maxfd = 0, overrun = 0; + HANDLE rfds[32]; + struct conn_t *conn; + struct timeval now; + +/* + if (extrafd != -1) { + rfds[maxfd] = extrafd; + maxfd++; + } +*/ + + gettimeofday(&now, NULL); + + /* number of microseconds should always be positive */ + if (timeout.tv_usec < now.tv_usec) { + timeout.tv_sec -= 1; + timeout.tv_usec += 1000000; + } + + if (timeout.tv_sec < now.tv_sec) { + timeout.tv_sec = 0; + timeout.tv_usec = 0; + overrun = 1; /* no time left */ + } else { + timeout.tv_sec -= now.tv_sec; + timeout.tv_usec -= now.tv_usec; + } + +/* Wait on the read IO of each connections */ + for (conn = connhead; conn; conn = conn->next) { + rfds[maxfd] = conn->read_overlapped.hEvent; + maxfd++; + } +/* Add the connect event */ + rfds[maxfd] = connect_overlapped.hEvent; + maxfd++; + + ret = WaitForMultipleObjects( + maxfd, // number of objects in array + rfds, // array of objects + FALSE, // FIXME: ?wait for any object? + timeout.tv_sec); // five-second wait + + if (ret == WAIT_TIMEOUT) { + return 1; /* timer expired */ + } + + if (ret == WAIT_FAILED) { + printf("waitfor failed\n"); + return overrun; + } + + /* Retrieve the signaled connection */ + for(conn = connhead; conn != NULL; conn = conn->next) { + if( conn->read_overlapped.hEvent == rfds[ret-WAIT_OBJECT_0]) { + break; + } + } + +/* take care of the signaled object */ + if (rfds[ret] == connect_overlapped.hEvent) { + printf("Connection detected\n"); + sock_connect(sockfd); + } + else { + if( conn != NULL) { + printf("Pending read on %d\n",(int)rfds[ret-WAIT_OBJECT_0]); + sock_read(conn); + } + } + + /* tell the caller if that fd woke up */ +/* + if ((extrafd != -1) && (ret == extrafd)) { + return 1; + } +*/ + return overrun; +} +#endif + +/****************************************************************** + * COMMON + ******************************************************************/ int dstate_setinfo(const char *var, const char *fmt, ...) { diff --git a/drivers/dstate.h b/drivers/dstate.h index b4a5aa983e..4c3de5dcc0 100644 --- a/drivers/dstate.h +++ b/drivers/dstate.h @@ -22,6 +22,11 @@ #ifndef DSTATE_H_SEEN #define DSTATE_H_SEEN 1 +#ifdef WIN32 +#undef DATADIR +#include +#endif + #include "state.h" #include "attribute.h" @@ -33,7 +38,14 @@ /* track client connections */ typedef struct conn_s { +#ifdef WIN32 + HANDLE fd; + char buf[LARGEBUF]; + OVERLAPPED read_overlapped; + DWORD bytesRead; +#else int fd; +#endif PCONF_CTX_t ctx; struct conn_s *prev; struct conn_s *next; @@ -42,7 +54,11 @@ typedef struct conn_s { extern struct ups_handler upsh; void dstate_init(const char *prog, const char *devname); +#ifndef WIN32 int dstate_poll_fds(struct timeval timeout, int extrafd); +#else +int dstate_poll_fds(struct timeval timeout, HANDLE extrafd); +#endif int dstate_setinfo(const char *var, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); int dstate_addenum(const char *var, const char *fmt, ...) diff --git a/drivers/dummy-ups.c b/drivers/dummy-ups.c index 7dbb9910d2..504fd92ac8 100644 --- a/drivers/dummy-ups.c +++ b/drivers/dummy-ups.c @@ -29,9 +29,12 @@ * * poll the "port" file for change */ +#ifndef WIN32 #include #include #include +#endif + #include #include "main.h" diff --git a/drivers/libhid.c b/drivers/libhid.c index d0ba7c5761..d61a28e0af 100644 --- a/drivers/libhid.c +++ b/drivers/libhid.c @@ -639,6 +639,9 @@ static int string_to_path(const char *string, HIDPath_t *path, usage_tables_t *u snprintf(buf, sizeof(buf), "%s", string); +#ifdef WIN32 +#define strtok_r(a,b,c) strtok(a,b) +#endif for (token = strtok_r(buf, ".", &last); token != NULL; token = strtok_r(NULL, ".", &last)) { /* lookup tables first (to override defaults) */ diff --git a/drivers/libusb.c b/drivers/libusb.c index 234b9f142a..3d5c920029 100644 --- a/drivers/libusb.c +++ b/drivers/libusb.c @@ -30,6 +30,9 @@ #include "config.h" /* for HAVE_USB_DETACH_KERNEL_DRIVER_NP flag */ #include "common.h" /* for xmalloc, upsdebugx prototypes */ +#ifdef WIN32 +#undef DATADIR +#endif #include "usb-common.h" #include "libusb.h" @@ -110,6 +113,10 @@ static int libusb_open(usb_dev_handle **udevp, USBDevice_t *curDevice, USBDevice usb_init(); usb_find_busses(); usb_find_devices(); +#ifdef WIN32 + struct usb_bus *busses; + busses = usb_get_busses(); +#endif #ifndef __linux__ /* SUN_LIBUSB (confirmed to work on Solaris and FreeBSD) */ /* Causes a double free corruption in linux if device is detached! */ @@ -218,6 +225,9 @@ static int libusb_open(usb_dev_handle **udevp, USBDevice_t *curDevice, USBDevice fatalx(EXIT_FAILURE, "Can't claim USB device [%04x:%04x]: %s", curDevice->VendorID, curDevice->ProductID, usb_strerror()); } #else +#ifdef WIN32 + usb_set_configuration(udev,1); +#endif if (usb_claim_interface(udev, 0) < 0) { fatalx(EXIT_FAILURE, "Can't claim USB device [%04x:%04x]: %s", curDevice->VendorID, curDevice->ProductID, usb_strerror()); } @@ -369,7 +379,7 @@ static int libusb_strerror(const int ret, const char *desc) case -ENOSYS: /* Function not implemented */ upslogx(LOG_DEBUG, "%s: %s", desc, usb_strerror()); return ret; - +#ifndef WIN32 case -ETIMEDOUT: /* Connection timed out */ upsdebugx(2, "%s: Connection timed out", desc); return 0; @@ -378,6 +388,7 @@ static int libusb_strerror(const int ret, const char *desc) case -EPROTO: /* Protocol error */ upsdebugx(2, "%s: %s", desc, usb_strerror()); return 0; +#endif default: /* Undetermined, log only */ upslogx(LOG_DEBUG, "%s: %s", desc, usb_strerror()); diff --git a/drivers/main-hal.c b/drivers/main-hal.c index 8cd3275b50..5c844c99c0 100644 --- a/drivers/main-hal.c +++ b/drivers/main-hal.c @@ -38,7 +38,11 @@ extern char *udi; /* data which may be useful to the drivers */ +#ifndef WIN32 int upsfd = -1; +#else + HANDLE upsfd = INVALID_HANDLE_VALUE; +#endif char *device_path = NULL; const char *progname = NULL, *upsname = NULL, *device_name = NULL; diff --git a/drivers/main.c b/drivers/main.c index 7c2fc55f17..a2a2d36fb3 100644 --- a/drivers/main.c +++ b/drivers/main.c @@ -21,12 +21,20 @@ #include "dstate.h" /* data which may be useful to the drivers */ +#ifndef WIN32 int upsfd = -1; +#else + HANDLE upsfd = INVALID_HANDLE_VALUE; +#endif char *device_path = NULL; const char *progname = NULL, *upsname = NULL, *device_name = NULL; /* may be set by the driver to wake up while in dstate_poll_fds */ +#ifndef WIN32 int extrafd = -1; +#else + HANDLE extrafd = INVALID_HANDLE_VALUE; +#endif /* for ser_open */ int do_lock_port = 1; @@ -450,6 +458,7 @@ static void set_exit_flag(int sig) static void setup_signals(void) { +#ifndef WIN32 // FIXME struct sigaction sa; sigemptyset(&sa.sa_mask); @@ -463,6 +472,7 @@ static void setup_signals(void) sa.sa_handler = SIG_IGN; sigaction(SIGHUP, &sa, NULL); sigaction(SIGPIPE, &sa, NULL); +#endif } int main(int argc, char **argv) @@ -476,6 +486,14 @@ int main(int argc, char **argv) user = xstrdup(RUN_AS_USER); /* xstrdup: this gets freed at exit */ progname = xbasename(argv[0]); +#ifdef WIN32 + // remove trailing .exe + if(strcasecmp( strrchr(progname,'.'), ".exe") == 0 ) { + progname = strdup(progname); + char * t = strrchr(progname,'.'); + *t = 0; + } +#endif open_syslog(progname); upsdrv_banner(); @@ -566,6 +584,7 @@ int main(int argc, char **argv) /* Only switch to statepath if we're not powering off */ /* This avoid case where ie /var is umounted */ +#ifndef WIN32 if ((!do_forceshutdown) && (chdir(dflt_statepath()))) fatal_with_errno(EXIT_FAILURE, "Can't chdir to %s", dflt_statepath()); @@ -602,6 +621,8 @@ int main(int argc, char **argv) pidfn = xstrdup(buffer); writepid(pidfn); /* before backgrounding */ } +#endif + setup_signals(); /* clear out callback handler data */ memset(&upsh, '\0', sizeof(upsh)); diff --git a/drivers/main.h b/drivers/main.h index 3e3e84eb6e..882fe6a575 100644 --- a/drivers/main.h +++ b/drivers/main.h @@ -6,10 +6,20 @@ #include "dstate.h" #include "extstate.h" +#ifdef WIN32 +#define sleep(a) Sleep(a*1000) +#define strtok_r(a,b,c) strtok(a,b) +#endif + /* public functions & variables from main.c */ extern const char *progname, *upsname, *device_name; extern char *device_path; +#ifndef WIN32 extern int upsfd, extrafd, broken_driver, experimental_driver, do_lock_port, exit_flag; +#else +extern int broken_driver, experimental_driver, do_lock_port, exit_flag; +extern HANDLE upsfd, extrafd; +#endif extern unsigned int poll_interval; /* functions & variables required in each driver */ diff --git a/drivers/megatec.c b/drivers/megatec.c new file mode 100644 index 0000000000..f6b9a789c4 --- /dev/null +++ b/drivers/megatec.c @@ -0,0 +1,1056 @@ +/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: t; -*- + * + * megatec.c: support for Megatec protocol based UPSes + * + * Copyright (C) Carlos Rodrigues + * + * megatec.c created on 4/10/2003 + * + * 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 + */ + + +/* + * A document describing the protocol implemented by this driver can be + * found online at "http://www.networkupstools.org/protocols/megatec.html". + */ + + +#include "main.h" +#ifndef WIN32 /* FIXME removing serial reference just during the USB compilation phase, need to be reactivated when serial will be ported to WIN32. there is several occurence of this FIXME in this file*/ +#include "serial.h" +#endif +#include "megatec.h" + +#include +#include +#include +#include + +#define DRIVER_NAME "Megatec protocol driver" +#define DRIVER_VERSION "1.6" /* FIXME: doesn't conform to "X.YZ" */ + +/* driver description structure */ +upsdrv_info_t upsdrv_info = { + DRIVER_NAME, + DRIVER_VERSION, + "Carlos Rodrigues ", + DRV_STABLE, +#ifdef MEGATEC_SUBDRV + { &megatec_subdrv_info, NULL } +#else + { NULL } +#endif +}; + +#define ENDCHAR '\r' +#define IGNCHARS "" + +#define RECV_BUFFER_LEN 128 +#define FIELD_BUFFER_LEN 16 + +/* The expected reply lengths */ +#define F_CMD_REPLY_LEN 21 +#define Q1_CMD_REPLY_LEN 46 +#define I_CMD_REPLY_LEN 38 + +#define IDENT_MAXTRIES 3 + +#define READ_TIMEOUT 2 /* timeout on read (seconds) */ +#define READ_PACE 300000 /* interval to wait between sending a command and reading the response (usec) */ + +#define MAX_START_DELAY 9999 +#define MAX_SHUTDOWN_DELAY 99 + +/* Maximum length of a string representing these values */ +#define MAX_START_DELAY_LEN 4 +#define MAX_SHUTDOWN_DELAY_LEN 2 + +#define MAX_POLL_FAILURES 3 + +#define N_FLAGS 8 + +/* The UPS status flags */ +#define FL_ON_BATT 0 +#define FL_LOW_BATT 1 +#define FL_BOOST_TRIM 2 +#define FL_FAILED 3 +#define FL_UPS_TYPE 4 +#define FL_BATT_TEST 5 +#define FL_LOAD_OFF 6 +#define FL_BEEPER_ON 7 /* bogus on some models */ + +/* Maximum lengths for the "I" command reply fields */ +#define UPS_MFR_CHARS 15 +#define UPS_MODEL_CHARS 10 +#define UPS_VERSION_CHARS 10 + +/* Below this value we can safely consider a voltage to be zero */ +#define RESIDUAL_VOLTAGE 10.0 + + +/* The values returned by the UPS for an "I" query */ +typedef struct { + char mfr[UPS_MFR_CHARS + 1]; + char model[UPS_MODEL_CHARS + 1]; + char version[UPS_VERSION_CHARS + 1]; +} UPSInfo_t; + + +/* The values returned by the UPS for an "F" query */ +typedef struct { + float volt; + float current; + float battvolt; + float freq; +} FirmwareValues_t; + + +/* The values returned by the UPS for an "Q1" query */ +typedef struct { + float ivolt; + float fvolt; + float ovolt; + float load; + float freq; + float battvolt; + float temp; + char flags[N_FLAGS + 1]; +} QueryValues_t; + + +/* Parameters for known battery types */ +typedef struct { + float nominal; /* battery voltage (nominal) */ + float min; /* lower bound for a single battery of "nominal" voltage (see "set_battery_params" below) */ + float max; /* upper bound for a single battery of "nominal" voltage (see "set_battery_params" below) */ + float empty; /* fully discharged battery */ + float full; /* fully charged battery */ + float low; /* low battery (unused) */ +} BatteryVolts_t; + + +/* Known battery types must be in ascending order by "nominal" first, and then by "max". */ +static BatteryVolts_t batteries[] = {{ 12.0, 9.0, 16.0, 9.7, 13.7, 0.0 }, /* Mustek PowerMust 600VA Plus (LB unknown) */ + { 12.0, 18.0, 30.0, 18.8, 26.8, 22.3 }, /* PowerWalker Line-Interactive VI 1000 */ + { 23.5, 18.0, 30.0, 21.3, 27.1, 22.2 }, /* UNITEK ALPHA2600 */ + { 24.0, 18.0, 30.0, 19.4, 27.4, 22.2 }, /* Mustek PowerMust 1000VA Plus */ + { 36.0, 1.5, 3.0, 1.64, 2.31, 1.88 }, /* Mustek PowerMust 1000VA On-Line */ + { 36.0, 30.0, 42.0, 32.5, 41.0, 0.0 }, /* Mecer ME-2000 (LB unknown) */ + { 48.0, 38.0, 58.0, 40.0, 54.6, 44.0 }, /* Sven Smart RM2000 */ + { 72.0, 1.5, 3.0, 1.74, 2.37, 1.82 }, /* Effekta RM2000MH */ + { 96.0, 1.5, 3.0, 1.63, 2.29, 1.8 }, /* Ablerex MS3000RT (LB at 25% charge) */ + { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }}; /* END OF DATA */ + +/* Interval between chars on send (usec) */ +static int send_pace = 100000; + +/* Some models need this */ +static char state_dtr = 1; +static char state_rts = 0; + +/* Workaround for buggy models */ +static char ignore_off = 0; /* ignore FL_LOAD_OFF if it behaves strangely */ + +/* Defined in upsdrv_initinfo */ +static float battvolt_empty = -1; /* unknown */ +static float battvolt_full = -1; /* unknown */ + +/* Battery voltage multiplier (to match the nominal voltage on some models) */ +static float battvolt_mult = 1; + +/* Minimum and maximum voltage seen on input */ +static float ivolt_min = INT_MAX; /* unknown */ +static float ivolt_max = -1; /* unknown */ + +/* In minutes: */ +static short start_delay = 2; /* wait at least this amount of time before coming back online */ +static short shutdown_delay = 0; /* wait until going offline */ + +/* In percentage: */ +static float lowbatt = -1; /* disabled */ + +static char watchdog_enabled = 0; /* disabled by default, of course */ +static char watchdog_timeout = 1; /* in minutes */ + + +static char *copy_field(char* dest, char *src, int field_len); +static float get_battery_charge(float battvolt); +static int set_battery_params(float volt_nominal, float volt_now); +static int check_ups(QueryValues_t *status); +static int get_ups_info(UPSInfo_t *info); +static int get_firmware_values(FirmwareValues_t *values); +static int run_query(QueryValues_t *values); + +int instcmd(const char *cmdname, const char *extra); +int setvar(const char *varname, const char *val); + + +/* I know, macros should evaluate their arguments only once */ +#define CLAMP(x, min, max) (((x) < (min)) ? (min) : (((x) > (max)) ? (max) : (x))) + + +static char *copy_field(char* dest, char *src, int field_len) +{ + int i, j; + + /* First we skip the leading spaces... */ + for (i = 0; i < field_len; i++) { + if (src[i] != ' ') { + break; + } + } + + /* ... then we copy the rest of the field... */ + j = 0; + while (i < field_len) { + dest[j] = src[i]; + + i++; j++; + } + + dest[j] = '\0'; + + /* ...and finally, remove the trailing spaces. */ + rtrim(dest, ' '); + + return &src[field_len]; /* return the rest of the source buffer */ +} + + +static float get_battery_charge(float battvolt) +{ + float value; + + if (battvolt_empty < 0 || battvolt_full < 0) { + return -1; + } + + battvolt = CLAMP(battvolt, battvolt_empty, battvolt_full); + value = (battvolt - battvolt_empty) / (battvolt_full - battvolt_empty); + + return value * 100; /* percentage */ +} + + +/* + * Set the proper limits, depending on the battery voltage, + * so that the "charge" calculations return meaningful values. + * + * This has to be done by looking at the present battery voltage and + * the nominal voltage because, for example, some 24V models will + * show a nominal voltage of 24, while others will show a nominal + * voltage of 12. The present voltage helps telling them apart. + */ +static int set_battery_params(float volt_nominal, float volt_now) +{ + int i = 0; + + while (batteries[i].nominal > 0) { + if (volt_nominal == batteries[i].nominal) { /* battery voltage matches... */ + while (volt_nominal == batteries[i].nominal) { /* ...find the most adequate parameters */ + if (volt_now > batteries[i].min && volt_now < batteries[i].max) { + battvolt_empty = batteries[i].empty; + battvolt_full = batteries[i].full; + + upsdebugx(1, "%.1fV battery, interval [%.1fV, %.1fV].", volt_nominal, battvolt_empty, battvolt_full); + + return i; + } + + i++; + + } + + upsdebugx(1, "%.1fV battery, present voltage (%.1fV) outside of supported intervals.", volt_nominal, volt_now); + + return -1; + } + + i++; + } + + upsdebugx(1, "Unsupported battery voltage (%.1fV).", volt_nominal); + + return -1; +} + + +/* + * The "status" parameter is left unchanged on failure. + */ +static int check_ups(QueryValues_t *status) +{ + QueryValues_t values; + + if (run_query(&values) < 0) { + return -1; + } + + memcpy(status, &values, sizeof(values)); + + return 0; +} + + +static int get_ups_info(UPSInfo_t *info) +{ + char buffer[RECV_BUFFER_LEN]; + char *anchor; + int ret; + + upsdebugx(2, "Asking for UPS information [I]..."); +#ifndef WIN32 /*FIXME*/ + ser_flush_io(upsfd); + ser_send_pace(upsfd, send_pace, "I%c", ENDCHAR); + usleep(READ_PACE); + + /* + * Expected reply: "#UPS_MFR........ UPS_MODEL. UPS_VER..." + */ + ret = ser_get_line(upsfd, buffer, RECV_BUFFER_LEN, ENDCHAR, IGNCHARS, READ_TIMEOUT, 0); + +#endif + if (ret < 0) { + upsdebug_with_errno(2, "I => FAILED"); + + return -1; + } + + if (ret == 0) { + upsdebugx(2, "I => FAILED [timeout]"); + + return -1; + } + + if (ret < I_CMD_REPLY_LEN) { + upsdebugx(2, "I => FAILED [short read]"); + upsdebug_hex(3, "I detail", (unsigned char *)buffer, ret); + + return -1; + } + + if (buffer[0] != '#') { + upsdebugx(2, "I => FAILED [invalid start character]"); + upsdebug_hex(3, "I detail", (unsigned char *)buffer, ret); + + return -1; + } + + upsdebugx(2, "I => OK [%s]", buffer); + + memset(info, 0, sizeof(UPSInfo_t)); + + /* + * Get the manufacturer, model and version fields, skipping + * the separator character that sits between them, as well as + * the first character (the control character, always a '#'). + */ + anchor = copy_field(info->mfr, &buffer[1], UPS_MFR_CHARS); + anchor = copy_field(info->model, anchor + 1, UPS_MODEL_CHARS); + copy_field(info->version, anchor + 1, UPS_VERSION_CHARS); + + upsdebugx(2, "I VALUES => [%s %s %s]", info->mfr, info->model, info->version); + + return 0; +} + + +static int get_firmware_values(FirmwareValues_t *values) +{ + char buffer[RECV_BUFFER_LEN]; + char field[FIELD_BUFFER_LEN]; + char *anchor; + int ret; + + upsdebugx(2, "Asking for UPS power ratings [F]..."); +#ifndef WIN32 /*FIXME*/ + ser_flush_io(upsfd); + ser_send_pace(upsfd, send_pace, "F%c", ENDCHAR); + usleep(READ_PACE); + + /* + * Expected reply: "#MMM.M QQQ SS.SS RR.R" + */ + ret = ser_get_line(upsfd, buffer, RECV_BUFFER_LEN, ENDCHAR, IGNCHARS, READ_TIMEOUT, 0); +#endif + + if (ret < 0) { + upsdebug_with_errno(2, "F => FAILED"); + + return -1; + } + + if (ret == 0) { + upsdebugx(2, "F => FAILED [timeout]"); + + return -1; + } + + if (ret < F_CMD_REPLY_LEN) { + upsdebugx(2, "F => FAILED [short read]"); + upsdebug_hex(3, "F detail", (unsigned char *)buffer, ret); + + return -1; + } + + + if (buffer[0] != '#') { + upsdebugx(2, "F => FAILED [invalid start character]"); + upsdebug_hex(3, "F detail", (unsigned char *)buffer, ret); + + return -1; + } + + upsdebugx(2, "F => OK [%s]", buffer); + + anchor = copy_field(field, &buffer[1], 5); + values->volt = atof(field); + + anchor = copy_field(field, anchor + 1, 3); + values->current = atof(field); + + anchor = copy_field(field, anchor + 1, 5); + values->battvolt = atof(field); + + anchor = copy_field(field, anchor + 1, 4); + values->freq = atof(field); + + upsdebugx(2, "F VALUES => [%.1f %.1f %.1f %.1f]", values->volt, + values->current, values->battvolt, values->freq); + + return 0; +} + + +static int run_query(QueryValues_t *values) +{ + char buffer[RECV_BUFFER_LEN]; + char field[FIELD_BUFFER_LEN]; + char *anchor; + int ret; + + upsdebugx(2, "Asking for UPS status [Q1]..."); +#ifndef WIN32 /*FIXME*/ + ser_flush_io(upsfd); + ser_send_pace(upsfd, send_pace, "Q1%c", ENDCHAR); + usleep(READ_PACE); + + /* + * Expected reply: "(MMM.M NNN.N PPP.P QQQ RR.R S.SS TT.T b7b6b5b4b3b2b1b0" + */ + ret = ser_get_line(upsfd, buffer, RECV_BUFFER_LEN, ENDCHAR, IGNCHARS, READ_TIMEOUT, 0); +#endif + + if (ret < 0) { + upsdebug_with_errno(2, "Q1 => FAILED"); + + return -1; + } + + if (ret == 0) { + upsdebugx(2, "Q1 => FAILED [timeout]"); + + return -1; + } + + if (ret < Q1_CMD_REPLY_LEN) { + upsdebugx(2, "Q1 => FAILED [short read]"); + upsdebug_hex(3, "Q1 detail", (unsigned char *)buffer, ret); + + return -1; + } + + if (buffer[0] != '(') { + upsdebugx(2, "Q1 => FAILED [invalid start character]"); + upsdebug_hex(3, "Q1 detail", (unsigned char *)buffer, ret); + + return -1; + } + + upsdebugx(2, "Q1 => OK [%s]", buffer); + + anchor = copy_field(field, &buffer[1], 5); + values->ivolt = atof(field); + + anchor = copy_field(field, anchor + 1, 5); + values->fvolt = atof(field); + + anchor = copy_field(field, anchor + 1, 5); + values->ovolt = atof(field); + + anchor = copy_field(field, anchor + 1, 3); + values->load = atof(field); + + anchor = copy_field(field, anchor + 1, 4); + values->freq = atof(field); + + anchor = copy_field(field, anchor + 1, 4); + values->battvolt = atof(field); + + anchor = copy_field(field, anchor + 1, 4); + values->temp = atof(field); + + anchor = copy_field(values->flags, anchor + 1, N_FLAGS); + + if (strlen(values->flags) < N_FLAGS) { + upsdebugx(2, "Q1 => FAILED [flags error]"); + return -1; + } + + upsdebugx(2, "Q1 VALUES => [%.1f %.1f %.1f %.1f %.1f %.1f %.1f %s]", + values->ivolt, values->fvolt, values->ovolt, values->load, + values->freq, values->battvolt, values->temp, values->flags); + + return 0; +} + + +void upsdrv_initinfo(void) +{ + int i; + FirmwareValues_t values; + QueryValues_t status; + UPSInfo_t info; + + /* + * Some models apparently time-out with the default send pace, so we must + * allow the user to override it if needed be. The configuration parameter + * is specified in milliseconds for the user's benefit. + */ + if (getval("sendpace")) { + upsdebugx(2, "Default command send pace is %d usec.", send_pace); + upsdebugx(2, "Parameter [sendpace]: [%s]", getval("sendpace")); + + /* Having 1 second as the upper-bound is an arbitrary choice... */ + send_pace = CLAMP(atoi(getval("sendpace")), 1, 1000) * 1000; + + upslogx(LOG_NOTICE, "Command send pace changed to %d usec.", send_pace); + } + + /* + * UPS detection sequence. + */ + upsdebugx(1, "Starting UPS detection process..."); + + /* Some models seem to need this. We'll just discard the ouput for now... */ + get_ups_info(&info); + + /* Check for a compatible UPS... */ + for (i = 0; i < IDENT_MAXTRIES; i++) { + if (check_ups(&status) == 0) { + break; + } + } + + if (i == IDENT_MAXTRIES) { + fatalx(EXIT_FAILURE, "Megatec protocol UPS not detected."); + } + + dstate_setinfo("ups.type", status.flags[FL_UPS_TYPE] == '1' ? "standby" : "online"); + + upsdebugx(1, "Cancelling any pending shutdown or battery test."); +#ifndef WIN32 /*FIXME*/ + ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); +#endif + + /* + * Try to identify the UPS. + */ + if (get_ups_info(&info) >= 0) { + char model[UPS_MODEL_CHARS + UPS_VERSION_CHARS + 2]; + snprintf(model, sizeof(model), "%s %s", info.model, info.version); + + dstate_setinfo("ups.mfr", "%s", getval("mfr") ? getval("mfr") : info.mfr); + dstate_setinfo("ups.model", "%s", getval("model") ? getval("model") : model); + + upslogx(LOG_INFO, "Megatec protocol UPS detected [%s %s %s].", info.mfr, info.model, info.version); + } else { + dstate_setinfo("ups.mfr", "%s", getval("mfr") ? getval("mfr") : "unknown"); + dstate_setinfo("ups.model", "%s", getval("model") ? getval("model") : "unknown"); + + upslogx(LOG_INFO, "Megatec protocol UPS detected."); + } + + dstate_setinfo("ups.serial", "%s", getval("serial") ? getval("serial") : "unknown"); + + /* + * Workaround for buggy models. + */ + ignore_off = testvar("ignoreoff"); + + if (status.flags[FL_LOAD_OFF] == '1' && status.load > 0.01 && !ignore_off) { + ignore_off = 1; + upslogx(LOG_INFO, "The UPS reports OFF status but appears to be ON. Parameter \"ignoreoff\" set automatically."); + } + upsdebugx(2, "Parameter [ignoreoff]: [%s]", (ignore_off ? "true" : "false")); + + /* + * Set battery-related values. + */ + if (get_firmware_values(&values) >= 0) { + dstate_setinfo("battery.voltage.nominal", "%.1f", values.battvolt); + dstate_setinfo("input.voltage.nominal", "%.1f", values.volt); + dstate_setinfo("input.frequency.nominal", "%.1f", values.freq); + + if (set_battery_params(values.battvolt, status.battvolt) < 0) { + upslogx(LOG_NOTICE, "This UPS has an unsupported combination of battery voltage/number of batteries."); + } + } + + if (getval("battvoltmult")) { + upsdebugx(2, "Parameter [battvoltmult]: [%s]", getval("battvoltmult")); + + /* Having SHRT_MAX as the upper-bound is an arbitrary choice... */ + battvolt_mult = CLAMP(atof(getval("battvoltmult")), 1, SHRT_MAX); + + upslogx(LOG_NOTICE, "The battery voltage reported by the UPS will be multiplied by %.1f.", battvolt_mult); + } + + if (getval("battvolts")) { + upsdebugx(2, "Parameter [battvolts]: [%s]", getval("battvolts")); + + if (sscanf(getval("battvolts"), "%f:%f", &battvolt_empty, &battvolt_full) != 2) { + fatalx(EXIT_FAILURE, "Error in \"battvolts\" parameter."); + } + + upslogx(LOG_NOTICE, "Overriding battery voltage interval [%.1fV, %.1fV].", battvolt_empty, battvolt_full); + } + + if (battvolt_empty < 0 || battvolt_full < 0) { + upslogx(LOG_NOTICE, "Cannot calculate charge percentage for this UPS."); + } + + if (getval("lowbatt")) { + if (battvolt_empty < 0 || battvolt_full < 0) { + upslogx(LOG_NOTICE, "Ignoring \"lowbatt\" parameter."); + } else { + lowbatt = CLAMP(atof(getval("lowbatt")), 0, 100); + } + } + + /* + * Set the restart and shutdown delays. + */ + if (getval("ondelay")) { + start_delay = CLAMP(atoi(getval("ondelay")), 0, MAX_START_DELAY); + } + + if (getval("offdelay")) { + shutdown_delay = CLAMP(atoi(getval("offdelay")), 0, MAX_SHUTDOWN_DELAY); + } + + dstate_setinfo("ups.delay.start", "%d", start_delay); + dstate_setinfo("ups.delay.shutdown", "%d", shutdown_delay); + + /* + * Register the available instant commands. + */ + dstate_addcmd("test.battery.start.deep"); + dstate_addcmd("test.battery.start"); + dstate_addcmd("test.battery.stop"); + dstate_addcmd("shutdown.return"); + dstate_addcmd("shutdown.stayoff"); + dstate_addcmd("shutdown.stop"); + dstate_addcmd("load.on"); + dstate_addcmd("load.off"); + dstate_addcmd("reset.input.minmax"); + dstate_addcmd("reset.watchdog"); + dstate_addcmd("beeper.toggle"); + + upsh.instcmd = instcmd; + upsh.setvar = setvar; + + upsdebugx(1, "Done setting up the UPS."); +} + + +void upsdrv_updateinfo(void) +{ + QueryValues_t query; + float charge; + static int poll_fail = 0; + + if (run_query(&query) < 0) { + /* + * Query wasn't successful (we got some weird + * response), however we won't fatalx(EXIT_FAILURE, ) as this + * happens sometimes when the ups is offline. + * + * Some fault tolerance is good, we just assume + * that the UPS is just taking a nap. ;) + */ + poll_fail++; + upsdebugx(2, "Poll failure [%d].", poll_fail); +#ifndef WIN32 /*FIXME */ + ser_comm_fail("No status from UPS."); +#endif + + if (poll_fail >= MAX_POLL_FAILURES) { + upsdebugx(2, "Too many poll failures, data is stale."); + dstate_datastale(); + } + + return; + } + + poll_fail = 0; +#ifndef WIN32 /*FIXME*/ + ser_comm_good(); +#endif + + dstate_setinfo("input.voltage", "%.1f", query.ivolt); + dstate_setinfo("input.voltage.fault", "%.1f", query.fvolt); + dstate_setinfo("output.voltage", "%.1f", query.ovolt); + dstate_setinfo("ups.load", "%.1f", query.load); + dstate_setinfo("input.frequency", "%.1f", query.freq); + + /* + * The battery voltage multiplier should only be applied to battery.voltage + * in order not to break the charge calculation (that uses the 'raw' value + * that is reported by the UPS). + */ + dstate_setinfo("battery.voltage", "%.2f", battvolt_mult * query.battvolt); + + if (query.temp > 0.01) { + dstate_setinfo("ups.temperature", "%.1f", query.temp); + } + + charge = get_battery_charge(query.battvolt); + if (charge >= 0) { + dstate_setinfo("battery.charge", "%.1f", charge); + + upsdebugx(2, "Calculated battery charge: %.1f%%", charge); + } + + dstate_setinfo("ups.beeper.status", query.flags[FL_BEEPER_ON] == '1' ? "enabled" : "disabled"); + + status_init(); + + /* + * Some models, when OFF, never change to on-battery status when + * line power is unavailable. To get around this, we also look at + * the input voltage level here. + */ + if (query.flags[FL_ON_BATT] == '1' || query.ivolt < RESIDUAL_VOLTAGE) { + status_set("OB"); + } else { + status_set("OL"); + + if (query.flags[FL_BOOST_TRIM] == '1') { + if (query.ivolt < query.ovolt) { + status_set("BOOST"); + } else if (query.ivolt > query.ovolt) { + status_set("TRIM"); + } else { + status_set("BYPASS"); + } + } + + /* Update minimum and maximum input voltage levels too */ + if (query.ivolt < ivolt_min) { + ivolt_min = query.ivolt; + } + + if (query.ivolt > ivolt_max) { + ivolt_max = query.ivolt; + } + + dstate_setinfo("input.voltage.minimum", "%.1f", ivolt_min); + dstate_setinfo("input.voltage.maximum", "%.1f", ivolt_max); + } + + /* + * If "lowbatt > 0", it becomes a "soft" low battery level + * and the hardware flag "FL_LOW_BATT" is always ignored. + */ + if ((lowbatt <= 0 && query.flags[FL_LOW_BATT] == '1') || + (lowbatt > 0 && charge < lowbatt)) { + status_set("LB"); + } + + if (query.flags[FL_BATT_TEST] == '1') { + status_set("CAL"); + } + + if (query.flags[FL_LOAD_OFF] == '1' && !ignore_off) { + status_set("OFF"); + } + + alarm_init(); + + if (query.flags[FL_FAILED] == '1') { + alarm_set("Internal UPS fault!"); + } + + alarm_commit(); + + status_commit(); + + dstate_dataok(); +} + + +void upsdrv_shutdown(void) +{ + int s_wait = getval("offdelay") ? CLAMP(atoi(getval("offdelay")), 0, MAX_SHUTDOWN_DELAY) : shutdown_delay; + int r_wait = getval("ondelay") ? CLAMP(atoi(getval("ondelay")), 0, MAX_START_DELAY) : start_delay; + + upslogx(LOG_INFO, "Shutting down UPS."); +#ifndef WIN32 /*FIXME*/ + ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); + ser_send_pace(upsfd, send_pace, "S%02dR%04d%c", s_wait, r_wait, ENDCHAR); +#endif +} + + +int instcmd(const char *cmdname, const char *extra) +{ +#ifndef WIN32 + char buffer[RECV_BUFFER_LEN]; + + /* + * Some commands are always supported by every UPS implementing + * the megatec protocol, but others may or may not be supported. + * Unsupported commands are echoed back without ENDCHAR. + */ + + if (strcasecmp(cmdname, "test.battery.start.deep") == 0) { + ser_flush_io(upsfd); + ser_send_pace(upsfd, send_pace, "TL%c", ENDCHAR); + usleep(READ_PACE); + + if (ser_get_line(upsfd, buffer, 2 + 1, '\0', IGNCHARS, READ_TIMEOUT, 0) > 0) { + upslogx(LOG_NOTICE, "test.battery.start.deep not supported by UPS hardware."); + } else { + upslogx(LOG_INFO, "Deep battery test started."); + } + + return STAT_INSTCMD_HANDLED; + } + + if (strcasecmp(cmdname, "test.battery.start") == 0) { + ser_flush_io(upsfd); + ser_send_pace(upsfd, send_pace, "T%c", ENDCHAR); + usleep(READ_PACE); + + if (ser_get_line(upsfd, buffer, 1 + 1, '\0', IGNCHARS, READ_TIMEOUT, 0) > 0) { + upslogx(LOG_NOTICE, "test.battery.start not supported by UPS hardware."); + } else { + upslogx(LOG_INFO, "Battery test started."); + } + + return STAT_INSTCMD_HANDLED; + } + + if (strcasecmp(cmdname, "test.battery.stop") == 0) { + ser_flush_io(upsfd); + ser_send_pace(upsfd, send_pace, "CT%c", ENDCHAR); + usleep(READ_PACE); + + if (ser_get_line(upsfd, buffer, 2 + 1, '\0', IGNCHARS, READ_TIMEOUT, 0) > 0) { + upslogx(LOG_NOTICE, "test.battery.stop not supported by UPS hardware."); + } else { + upslogx(LOG_INFO, "Battery test stopped."); + } + + return STAT_INSTCMD_HANDLED; + } + + if (strcasecmp(cmdname, "shutdown.return") == 0) { + ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); + watchdog_enabled = 0; + + ser_send_pace(upsfd, send_pace, "S%02dR%04d%c", shutdown_delay, start_delay, ENDCHAR); + + upslogx(LOG_INFO, "Shutdown (return) initiated."); + + return STAT_INSTCMD_HANDLED; + } + + if (strcasecmp(cmdname, "shutdown.stayoff") == 0) { + ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); + watchdog_enabled = 0; + + ser_flush_io(upsfd); + ser_send_pace(upsfd, send_pace, "S%02d%c", shutdown_delay, ENDCHAR); + usleep(READ_PACE); + + if (ser_get_line(upsfd, buffer, 3 + 1, '\0', IGNCHARS, READ_TIMEOUT, 0) > 0) { + ser_send_pace(upsfd, send_pace, "S%02dR9999%c", shutdown_delay, ENDCHAR); + upslogx(LOG_NOTICE, "UPS refuses to turn the load off indefinitely. Will turn off for 9999 minutes instead."); + } + + upslogx(LOG_INFO, "Shutdown (stayoff) initiated."); + + return STAT_INSTCMD_HANDLED; + } + + if (strcasecmp(cmdname, "shutdown.stop") == 0) { + ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); + watchdog_enabled = 0; + + upslogx(LOG_INFO, "Shutdown canceled."); + + return STAT_INSTCMD_HANDLED; + } + + if (strcasecmp(cmdname, "load.on") == 0) { + ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); + watchdog_enabled = 0; + + upslogx(LOG_INFO, "Turning the load on."); + + return STAT_INSTCMD_HANDLED; + } + + if (strcasecmp(cmdname, "load.off") == 0) { + ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); + watchdog_enabled = 0; + + ser_flush_io(upsfd); + ser_send_pace(upsfd, send_pace, "S00%c", ENDCHAR); + usleep(READ_PACE); + + if (ser_get_line(upsfd, buffer, 3 + 1, '\0', IGNCHARS, READ_TIMEOUT, 0) > 0) { + ser_send_pace(upsfd, send_pace, "S00R9999%c", ENDCHAR); + upslogx(LOG_NOTICE, "UPS refuses to turn the load off indefinitely. Will turn off for 9999 minutes instead."); + } + + upslogx(LOG_INFO, "Turning the load off."); + + return STAT_INSTCMD_HANDLED; + } + + if (strcasecmp(cmdname, "reset.input.minmax") == 0) { + ivolt_min = INT_MAX; + ivolt_max = -1; + + dstate_setinfo("input.voltage.minimum", "%.1f", ivolt_min); + dstate_setinfo("input.voltage.maximum", "%.1f", ivolt_max); + + upslogx(LOG_INFO, "Resetting minimum and maximum input voltage values."); + + return STAT_INSTCMD_HANDLED; + } + + if (strcasecmp(cmdname, "reset.watchdog") == 0) { + ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); + ser_send_pace(upsfd, send_pace, "S%02dR0001%c", watchdog_timeout, ENDCHAR); + + if (watchdog_enabled) { + upsdebugx(2, "Resetting the UPS watchdog."); + } else { + watchdog_enabled = 1; + upslogx(LOG_INFO, "UPS watchdog started."); + } + + return STAT_INSTCMD_HANDLED; + } + + if (strcasecmp(cmdname, "beeper.toggle") == 0) { + ser_flush_io(upsfd); + ser_send_pace(upsfd, send_pace, "Q%c", ENDCHAR); + usleep(READ_PACE); + + if (ser_get_line(upsfd, buffer, 1 + 1, '\0', IGNCHARS, READ_TIMEOUT, 0) > 0) { + upslogx(LOG_NOTICE, "beeper.toggle not supported by UPS hardware."); + } else { + upslogx(LOG_INFO, "Toggling UPS beeper."); + } + + return STAT_INSTCMD_HANDLED; + } + + upslogx(LOG_NOTICE, "instcmd: unknown command [%s]", cmdname); +#endif + return STAT_INSTCMD_UNKNOWN; +} + + +int setvar(const char *varname, const char *val) +{ + return STAT_SET_UNKNOWN; +} + + +void upsdrv_help(void) +{ +} + + +void upsdrv_makevartable(void) +{ + addvar(VAR_VALUE, "mfr", "Manufacturer name"); + addvar(VAR_VALUE, "model", "Model name"); + addvar(VAR_VALUE, "serial", "UPS serial number"); + addvar(VAR_VALUE, "lowbatt", "Low battery level (%)"); + addvar(VAR_VALUE, "ondelay", "Min. delay before UPS startup (minutes)"); + addvar(VAR_VALUE, "offdelay", "Delay before UPS shutdown (minutes)"); + addvar(VAR_VALUE, "battvolts", "Battery voltages (empty:full)"); + addvar(VAR_VALUE, "battvoltmult", "Battery voltage multiplier"); + addvar(VAR_FLAG , "ignoreoff", "Ignore the OFF status from the UPS"); + addvar(VAR_VALUE, "sendpace", "Interval between command chars (msec)"); + addvar(VAR_VALUE, "dtr", "Serial DTR line state (0/1)"); + addvar(VAR_VALUE, "rts", "Serial RTS line state (0/1)"); + + megatec_subdrv_makevartable(); +} + + +void upsdrv_initups(void) +{ +#ifndef WIN32 /*FIXME*/ + upsfd = ser_open(device_path); + ser_set_speed(upsfd, device_path, B2400); + + if (getval("dtr")) { + upsdebugx(2, "Parameter [dtr]: [%s]", getval("dtr")); + + if (strcmp(getval("dtr"), "0") != 0 && strcmp(getval("dtr"), "1") != 0) { + fatalx(EXIT_FAILURE, "Error in \"dtr\" parameter."); + } + + state_dtr = atoi(getval("dtr")); + } + + if (getval("rts")) { + upsdebugx(2, "Parameter [rts]: [%s]", getval("rts")); + + if (strcmp(getval("rts"), "0") != 0 && strcmp(getval("rts"), "1") != 0) { + fatalx(EXIT_FAILURE, "Error in \"rts\" parameter."); + } + + state_rts = atoi(getval("rts")); + } + + upsdebugx(2, "DTR=%d, RTS=%d", state_dtr, state_rts); + + ser_set_dtr(upsfd, state_dtr); + ser_set_rts(upsfd, state_rts); +#endif +} + + +void upsdrv_cleanup(void) +{ +#ifndef WIN32 + ser_set_dtr(upsfd, 0); + ser_close(upsfd, device_path); +#endif +} + + +/* EOF - megatec.c */ diff --git a/drivers/megatec_usb.c b/drivers/megatec_usb.c new file mode 100644 index 0000000000..7f4ef4e5cd --- /dev/null +++ b/drivers/megatec_usb.c @@ -0,0 +1,663 @@ +/* megatec_usb.c - usb communication layer for Megatec protocol based UPSes + * + * Copyright (C) 2006 Andrey Lelikov + * Copyright (C) 2007 Alexander Gordeev + * Copyright (C) 2007 Jon Gough + * + * 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 + */ + +#include "main.h" +#include "megatec.h" +#include "libusb.h" +#ifndef WIN32 /*FIXME*/ +#include "serial.h" +#else +/*FIXME : is this define correct ?*/ +#define speed_t int +#endif +#include "usb-common.h" + +#include +#include +#include +#include + +#define SUB_DRIVER_VERSION "0.10" +#define SUB_DRIVER_NAME "Serial-over-USB transport layer" + +/* driver description structure */ +upsdrv_info_t megatec_subdrv_info = { + SUB_DRIVER_NAME, + SUB_DRIVER_VERSION, + "Andrey Lelikov \n" \ + "Alexander Gordeev \n" \ + "Jon Gough ", + DRV_STABLE, + { NULL } +}; + +/* + This is a communication driver for "USB HID" UPS-es which use proprietary +usb-to-serial converter and speak megatec protocol. Usually these are cheap +models and usb-to-serial converter is a huge oem hack - HID tables are bogus, +device has no UPS reports, etc. + This driver has a table of all known devices which has pointers to device- +specific communication functions (namely send a string to UPS and read a string +from it). Driver takes care of detection, opening a usb device, string +formatting etc. So in order to add support for another usb-to-serial device one +only needs to implement device-specific get/set functions and add an entry into +KnownDevices table. + +*/ + +static usb_communication_subdriver_t *usb = &usb_subdriver; +static usb_dev_handle *udev = NULL; +static USBDevice_t usbdevice; +static USBDeviceMatcher_t *reopen_matcher = NULL; +static USBDeviceMatcher_t *regex_matcher = NULL; + +static int (*get_data)(char *buffer, int buffer_size) = NULL; +static int (*set_data)(const char *str) = NULL; + +/* agiler-old subdriver definition */ +static int get_data_agiler_old(char *buffer, int buffer_size); +static int set_data_agiler_old(const char *str); + +static void *agiler_old_subdriver(void) +{ + get_data = &get_data_agiler_old; + set_data = &set_data_agiler_old; + return NULL; +} + +/* agiler subdriver definition */ +static int get_data_agiler(char *buffer, int buffer_size); +static int set_data_agiler(const char *str); + +static void *agiler_subdriver(void) +{ + get_data = &get_data_agiler; + set_data = &set_data_agiler; + return NULL; +} + +/* Phoenixtec Power Co subdriver definition */ +static int get_data_phoenix(char *buffer, int buffer_size); +static int set_data_phoenix(const char *str); + +static void *phoenix_subdriver(void) +{ + get_data = &get_data_phoenix; + set_data = &set_data_phoenix; + return NULL; +} + +/* krauler (ablerex) subdriver definition */ +static int get_data_krauler(char *buffer, int buffer_size); +static int set_data_krauler(const char *str); + +static void *krauler_subdriver(void) +{ + get_data = &get_data_krauler; + set_data = &set_data_krauler; + return NULL; +} + +/* list of subdrivers for manual overrides */ +static const struct { + const char *name; + void *(*handler)(void); +} subdriver[] = { + { "agiler-old", &agiler_old_subdriver }, + { "agiler", &agiler_subdriver }, + { "phoenix", &phoenix_subdriver }, + { "krauler", &krauler_subdriver }, + /* end of list */ + { NULL } +}; + +/* list of all known devices */ +static usb_device_id_t megatec_usb_id[] = { + /* Agiler UPS */ + { USB_DEVICE(0x05b8, 0x0000), &agiler_subdriver}, + /* Krauler UP-M500VA */ + { USB_DEVICE(0x0001, 0x0000), &krauler_subdriver}, + /* Ablerex 625L USB */ + { USB_DEVICE(0xffff, 0x0000), &krauler_subdriver}, + /* Belkin F6C1200-UNV */ + { USB_DEVICE(0x0665, 0x5161), &phoenix_subdriver}, + /* Mustek Powermust */ + { USB_DEVICE(0x06da, 0x0003), &phoenix_subdriver}, + /* Unitek Alpha 1200Sx */ + { USB_DEVICE(0x0f03, 0x0001), &phoenix_subdriver}, + /* end of list */ + {-1, -1, NULL} +}; + +static int subdriver_match_func(USBDevice_t *d, void *privdata) +{ + if(getval("subdriver")) + return 1; + + switch (is_usb_device_supported(megatec_usb_id, d->VendorID, d->ProductID)) + { + case SUPPORTED: + return 1; + + case POSSIBLY_SUPPORTED: + case NOT_SUPPORTED: + default: + return 0; + } +} + +static USBDeviceMatcher_t subdriver_matcher = { + &subdriver_match_func, + NULL, + NULL +}; + +static void usb_open_error(const char *port) +{ + fatalx(EXIT_FAILURE, +"No supported devices found. Please check your device availability with 'lsusb'\n" +"and make sure you have an up-to-date version of NUT. If this does not help,\n" +"try running the driver with at least 'vendorid' and 'subdriver' options\n" +"specified. Please refer to the man page for details about these options\n" +"(man 8 megatec_usb).\n" +"Please report your results to the NUT user's mailing list\n" +".\n" + ); +} + +/* FIXME: Fix "serial" variable (which conflicts with "serial" variable in megatec.c) */ +void megatec_subdrv_makevartable() +{ + addvar(VAR_VALUE, "vendor", "Regular expression to match UPS Manufacturer string"); + addvar(VAR_VALUE, "product", "Regular expression to match UPS Product string"); + /* addvar(VAR_VALUE, "serial", "Regular expression to match UPS Serial number"); */ + addvar(VAR_VALUE, "vendorid", "Regular expression to match UPS Manufacturer numerical ID (4 digits hexadecimal)"); + addvar(VAR_VALUE, "productid", "Regular expression to match UPS Product numerical ID (4 digits hexadecimal)"); + addvar(VAR_VALUE, "bus", "Regular expression to match USB bus name"); + addvar(VAR_VALUE, "subdriver", "Serial-over-USB subdriver selection"); +} + +int ser_open(const char *port) +{ + char *regex_array[6]; + int ret; + + char *subdrv = getval("subdriver"); + char *vid = getval("vendorid"); + char *pid = getval("productid"); + char *vend = getval("vendor"); + char *prod = getval("product"); + + /* pick up the subdriver name if set explicitly */ + if(subdrv) + { + int i; + + if(!vid && !pid && !vend && !prod) + { + upslogx(LOG_WARNING, "It's unsafe to select a subdriver but not specify device!\n" + "Please set some of \"vendor\", \"product\", \"vendorid\", \"productid\"" + " variables.\n"); + } + + for (i = 0; subdriver[i].name; i++) + { + if (!strcasecmp(subdrv, subdriver[i].name)) + { + (*subdriver[i].handler)(); + break; + } + } + + if(!subdriver[i].name) + fatalx(EXIT_FAILURE, "No subdrivers named \"%s\" found!", subdrv); + } + + /* FIXME: fix "serial" variable */ + /* process the UPS selection options */ + regex_array[0] = vid; + regex_array[1] = pid; + regex_array[2] = vend; + regex_array[3] = prod; + regex_array[4] = NULL; /* getval("serial"); */ + regex_array[5] = getval("bus"); + + ret = USBNewRegexMatcher(®ex_matcher, regex_array, REG_ICASE | REG_EXTENDED); + if (ret == -1) { + fatal_with_errno(EXIT_FAILURE, "USBNewRegexMatcher"); + } else if (ret) { + fatalx(EXIT_FAILURE, "invalid regular expression: %s", regex_array[ret]); + } + /* link the matchers */ + regex_matcher->next = &subdriver_matcher; + + ret = usb->open(&udev, &usbdevice, regex_matcher, NULL); + if (ret < 0) + usb_open_error(port); + + /* create a new matcher for later reopening */ + ret = USBNewExactMatcher(&reopen_matcher, &usbdevice); + if (ret) { + fatal_with_errno(EXIT_FAILURE, "USBNewExactMatcher"); + } + /* link the matchers */ + reopen_matcher->next = regex_matcher; + + /* NOTE: This is here until ser_flush_io() is used in megatec.c */ +#ifndef WIN32 /*FIXME*/ + ser_flush_io(0); +#endif + + return 0; +} + +int ser_set_speed(int fd, const char *port, speed_t speed) +{ + return 0; +} + +int ser_set_dtr(int fd, int state) +{ + return 0; +} + +int ser_set_rts(int fd, int state) +{ + return 0; +} + +int ser_flush_io(int fd) +{ + char flush_buf[256]; + int i; + + /* flush input buffers */ + for (i = 0; i < 10; i++) { + if ((*get_data)(flush_buf, sizeof(flush_buf)) < 1) + break; + } + + return 0; +} + +void ser_comm_fail(const char *fmt, ...) +{ +} + +void ser_comm_good(void) +{ +} + +int ser_close(int fd, const char *port) +{ + usb->close(udev); + USBFreeExactMatcher(reopen_matcher); + USBFreeRegexMatcher(regex_matcher); + return 0; +} + +/*!@brief Try to reconnect once. + * @return 1 if reconnection was successful. + */ +static int reconnect_ups(void) +{ + int ret; + + upsdebugx(2, "=================================================="); + upsdebugx(2, "= device has been disconnected, try to reconnect ="); + upsdebugx(2, "=================================================="); + + usb->close(udev); + + ret = usb->open(&udev, &usbdevice, reopen_matcher, NULL); + if (ret < 1) { + upslogx(LOG_INFO, "Reconnecting to UPS failed; will retry later..."); + udev = NULL; + return 0; + } else + upslogx(LOG_NOTICE, "Successfully reconnected"); + + return ret; +} + +/*!@brief Report a USB comm failure, and reconnect if necessary + * + * @param[in] res Result code from libusb/libhid call + * @param[in] msg Error message to display + */ +void usb_comm_fail(int res, const char *msg) +{ + switch(res) { + case -EBUSY: + upslogx(LOG_WARNING, "%s: Device claimed by another process", msg); + fatalx(EXIT_FAILURE, "Terminating: EBUSY"); + + default: + upslogx(LOG_WARNING, "%s: Device detached? (error %d: %s)", msg, res, usb_strerror()); + + if(reconnect_ups()) { + /* upsdrv_initinfo(); */ + } + break; + } +} + +int ser_send_pace(int fd, unsigned long d_usec, const char *fmt, ...) +{ + char buf[128]; + size_t len; + va_list ap; + int ret; + + if ((udev == NULL) && (! reconnect_ups())) + return -1; + + va_start(ap, fmt); + + len = vsnprintf(buf, sizeof(buf), fmt, ap); + + va_end(ap); + + if ((len < 1) || (len >= (int) sizeof(buf))) { + upslogx(LOG_WARNING, "ser_send_pace: vsnprintf needed more than %d bytes", (int) sizeof(buf)); + buf[sizeof(buf) - 1] = 0; + } + + ret = (*set_data)(buf); + if(ret < 0) { + usb_comm_fail(ret, "ser_send_pace"); + } + + return ret; +} + +int ser_get_line(int fd, void *buf, size_t buflen, char endchar, const char *ignset, long d_sec, long d_usec) +{ + int len; + char *src, *dst, c; + + if ((udev == NULL) && (! reconnect_ups())) + return -1; + + len = (*get_data)((char *)buf, buflen); + if (len < 0) { + usb_comm_fail(len, "ser_get_line"); + return len; + } + + dst = (char *)buf; + + for (src = (char *)buf; src != ((char *)buf + len); src++) { + c = *src; + + if (c == endchar) + break; + + if ((c == 0) || ((ignset != NULL) && (strchr(ignset, c) != NULL))) + continue; + + *(dst++) = c; + } + + /* terminate string if we have space */ + if (dst != ((char *)buf + len)) + *dst = 0; + + return (dst - (char *)buf); +} + +/************** minidrivers go after this point **************************/ + +/* + agiler-old subdriver +*/ +/* Protocol was reverse-engineered from Windows driver + HID tables are completely bogus + Data is transferred out as one 8-byte packet with report ID 0 + Data comes in as 6 8-byte reports per line , padded with zeroes + All constants are hardcoded in windows driver +*/ + +#define AGILER_REPORT_SIZE 8 +#define AGILER_REPORT_COUNT 6 +#define AGILER_TIMEOUT 5000 + +static int set_data_agiler_old(const char *str) +{ + unsigned char report_buf[AGILER_REPORT_SIZE]; + + if (strlen(str) > AGILER_REPORT_SIZE) { + upslogx(LOG_ERR, "set_data_agiler: output string too large"); + return -1; + } + + memset(report_buf, 0, sizeof(report_buf)); + memcpy(report_buf, str, strlen(str)); + + return usb->set_report(udev, 0, report_buf, sizeof(report_buf)); +} + +static int get_data_agiler_old(char *buffer, int buffer_size) +{ + int i, len; + char buf[AGILER_REPORT_SIZE * AGILER_REPORT_COUNT + 1]; + + memset(buf, 0, sizeof(buf)); + + for (i = 0; i < AGILER_REPORT_COUNT; i++) { + len = usb->get_interrupt(udev, (unsigned char *) buf + i * AGILER_REPORT_SIZE, AGILER_REPORT_SIZE, AGILER_TIMEOUT); + if (len != AGILER_REPORT_SIZE) { + if (len < 0) + len = 0; + buf[i * AGILER_REPORT_SIZE + len] = 0; + upsdebug_hex(5, "get_data_agiler: raw dump", buf, i * AGILER_REPORT_SIZE + len); + break; + } + } + + len = strlen(buf); + + if (len > buffer_size) { + upslogx(LOG_ERR, "get_data_agiler: input buffer too small"); + len = buffer_size; + } + + memcpy(buffer, buf, len); + return len; +} + + +/* + Agiler serial-to-usb device. +*/ + +static int set_data_agiler(const char *str) +{ + return usb->set_report(udev, 0, (unsigned char *)str, strlen(str)); +} + +static int get_data_agiler(char *buffer, int buffer_size) +{ + return usb->get_interrupt(udev, (unsigned char *)buffer, buffer_size, 1000); +} + + +/* + Phoenixtec Power Co serial-to-usb device. +*/ +static char phoenix_buffer[32]; + +static int set_data_phoenix(const char *str) +{ + unsigned int count; + + memset(phoenix_buffer, '\0', sizeof(phoenix_buffer)); + + snprintf(phoenix_buffer, sizeof(phoenix_buffer), "%s", str); + + if (!strcmp(phoenix_buffer, "I\r") || !strcmp(phoenix_buffer, "C\r")) { + /* Ignore these, since they seem to lock up the connection */ + return strlen(phoenix_buffer); + } + + for (count = 0; count < strlen(phoenix_buffer); count += 8) { + + if (usb->set_report(udev, 0, (unsigned char *)(phoenix_buffer + count), 8) < 1) { + return -1; + } + } + + return strlen(phoenix_buffer); +} + +static int get_data_phoenix(char *buffer, int buffer_size) +{ + int count; + + memset(buffer, '\0', buffer_size); + + if (!strcmp(phoenix_buffer, "I\r") || !strcmp(phoenix_buffer, "C\r")) { + /* Echo back unsupported commands */ + snprintf(buffer, buffer_size, "%s", phoenix_buffer); + return strlen(buffer); + } + + for (count = 8; count <= buffer_size; count += 8) { + + /* Read data in 8-byte chunks, break on a timeout */ + if (usb->get_interrupt(udev, (unsigned char *)&buffer[count-8], 8, 1000) < 0) { + return count-8; + } + + upsdebugx(3, "get_data_phoenix: got so far [%s]", buffer); + upsdebug_hex(4, "get_data_phoenix", (unsigned char *)buffer, count); + } + + upsdebugx(3, "get_data_phoenix: buffer too small"); + return -1; +} + + +/* + Krauler serial-over-usb device. + + Protocol was reverse-engineered using Windows driver. +*/ + +#define KRAULER_MAX_ATTEMPTS_Q1 4 +#define KRAULER_MAX_ATTEMPTS_F 31 +#define KRAULER_MAX_ATTEMPTS_I 15 + +typedef struct { + char *str; /* Megatec command */ + int index; /* Krauler string index for this command */ + char prefix; /* character to replace the first byte in reply */ + int retry; /* number of retries (1 is typically for instant commands) */ +} krauler_command_t; + +static krauler_command_t krauler_command_lst[] = { + { "T\r", 0x04, '\0', 1 }, + { "TL\r", 0x05, '\0', 1 }, + { "Q\r", 0x07, '\0', 1 }, + { "C\r", 0x0b, '\0', 1 }, + { "CT\r", 0x0b, '\0', 1 }, + { "Q1\r", 0x03, '(', KRAULER_MAX_ATTEMPTS_Q1 }, + { "I\r", 0x0c, '#', KRAULER_MAX_ATTEMPTS_I }, + { "F\r", 0x0d, '#', KRAULER_MAX_ATTEMPTS_F }, + { NULL, 0, '\0', 0 } +}; + +/* +Still not implemented: + 0x6 T (don't know how to pass the parameter) + 0x68 and 0x69 both cause shutdown after an undefined interval +*/ + + +/* an intermediate buffer for 1 command's output */ +static char krauler_line_buf[255]; +static char krauler_line_buf_len = 0; + +static int set_data_krauler(const char *str) +{ + krauler_command_t *command; + int retval = strlen(str); + + for (command = krauler_command_lst; command->str != NULL; command++) { + int retry; + + if (strcmp(str, command->str)) { + continue; + } + + upsdebugx(3, "set_data_krauler: index [%02x]", command->index); + + krauler_line_buf_len = 0; + for (retry = 0; retry < command->retry; retry++) { + int res; + + res = usb->get_string(udev, command->index, krauler_line_buf, sizeof(krauler_line_buf)); + if (res < 1) { + /* TODO: handle_error(res) */ + upsdebugx(2, "set_data_krauler: connection failure"); + return res; + } + + /* "UPS No Ack" has a special meaning */ + if (!strcmp(krauler_line_buf, "UPS No Ack")) { + upsdebugx(4, "set_data_krauler: retry [%s]", krauler_line_buf); + continue; + } + + /* Replace the first byte of what we received with the correct one */ + if(command->prefix) + krauler_line_buf[0] = command->prefix; + + krauler_line_buf_len = res; + return retval; + } + + if(command->retry > 1 && retry == command->retry) + upsdebugx(2, "set_data_krauler: too many attempts, the UPS is probably switched off!"); + + return retval; + } + + upsdebugx(4, "set_data_krauler: unknown command [%s]", str); + + /* echo the unknown command back */ + strcpy(krauler_line_buf, str); + krauler_line_buf_len = retval; + + return retval; +} + +static int get_data_krauler(char *buffer, int buffer_size) +{ + int retrieved = (buffer_size < krauler_line_buf_len) ? buffer_size : krauler_line_buf_len; + int left = krauler_line_buf_len - retrieved; + + memcpy(buffer, krauler_line_buf, retrieved); + memmove(krauler_line_buf, krauler_line_buf + retrieved, left); + krauler_line_buf_len = left; + + return retrieved; +} diff --git a/drivers/mge-shut.c b/drivers/mge-shut.c index 06398edf0e..80ec779cb7 100644 --- a/drivers/mge-shut.c +++ b/drivers/mge-shut.c @@ -633,7 +633,11 @@ int serial_read (int read_timeout, u_char *readbuf) **********************************************************************/ int serial_send (u_char *buf, int len) { +#ifndef WIN32 tcflush (upsfd, TCIFLUSH); +#else + FlushFileBuffers(upsfd); +#endif upsdebug_hex (3, "sent", (u_char *)buf, len); return write (upsfd, buf, len); } diff --git a/drivers/mge-xml.c b/drivers/mge-xml.c index adb8262323..bf5c31a808 100644 --- a/drivers/mge-xml.c +++ b/drivers/mge-xml.c @@ -30,7 +30,10 @@ #include "netxml-ups.h" #include "mge-xml.h" - +#ifdef WIN32 +// strtok for win32 is re-entrant +#define strtok_r(a,b,c) strtok(a,b) +#endif //WIN32 #define MGE_XML_VERSION "MGEXML/0.22" #define MGE_XML_INITUPS "/" #define MGE_XML_INITINFO "/mgeups/product.xml /product.xml /ws/product.xml" diff --git a/drivers/netxml-ups.c b/drivers/netxml-ups.c index 2568ff06f8..75cc2b0d00 100644 --- a/drivers/netxml-ups.c +++ b/drivers/netxml-ups.c @@ -45,6 +45,13 @@ /** *_OBJECT query multi-part body boundary */ #define FORM_POST_BOUNDARY "NUT-NETXML-UPS-OBJECTS" +#ifdef WIN32 // FIXME ?? skip alarm handling +#define HAVE_NE_SET_CONNECT_TIMEOUT 1 +#define HAVE_NE_SOCK_CONNECT_TIMEOUT 1 +//strtok for win32 is re-entrant +#define strtok_r(a,b,c) strtok(a,b) +#endif + /* driver description structure */ upsdrv_info_t upsdrv_info = { DRIVER_NAME, @@ -606,7 +613,11 @@ void upsdrv_initups(void) /* if debug level is set, direct output to stderr */ if (!nut_debug_level) { +#ifndef WIN32 fp = fopen("/dev/null", "w"); +#else + fp = fopen("nul", "w"); +#endif } else { fp = stderr; } diff --git a/drivers/richcomm_usb.c b/drivers/richcomm_usb.c index 0b9b8f2742..61205f1d8f 100644 --- a/drivers/richcomm_usb.c +++ b/drivers/richcomm_usb.c @@ -181,6 +181,9 @@ static int driver_callback(usb_dev_handle *handle, USBDevice_t *device) return -1; } +#ifdef WIN + usb_set_configuration(handle, 0); +#endif if (usb_claim_interface(handle, 0) < 0) { upsdebugx(5, "Can't claim USB interface"); return -1; @@ -226,7 +229,11 @@ static int usb_device_open(usb_dev_handle **handlep, USBDevice_t *device, USBDev usb_device_close(*handlep); #endif +#ifndef WIN32 for (bus = usb_busses; bus; bus = bus->next) { +#else + for (bus = usb_get_busses(); bus; bus = bus->next) { +#endif struct usb_device *dev; usb_dev_handle *handle; @@ -358,7 +365,13 @@ void upsdrv_initups(void) for (i = 0; usb_device_open(&udev, &usbdevice, &device_matcher, &driver_callback) < 0; i++) { +#ifndef WIN32 if ((i < 32) && (sleep(5) == 0)) { +#else +/*FIXME*/ + sleep(5); + if ((i < 32)) { +#endif usb_comm_fail("Can't open USB device, retrying ..."); continue; } diff --git a/drivers/serial.c b/drivers/serial.c index 9c6129d334..8e79d14485 100644 --- a/drivers/serial.c +++ b/drivers/serial.c @@ -22,12 +22,14 @@ #include "serial.h" #include "main.h" +#ifndef WIN32 #include #include +#include +#endif #include #include #include -#include #include #ifdef HAVE_UU_LOCK @@ -39,8 +41,10 @@ static void ser_open_error(const char *port) { struct stat fs; +#ifndef WIN32 struct passwd *user; struct group *group; +#endif printf("\n"); @@ -54,6 +58,7 @@ static void ser_open_error(const char *port) fatalx(EXIT_FAILURE, "Fatal error: unusable configuration"); } +#ifndef WIN32 user = getpwuid(getuid()); if (user) @@ -71,7 +76,7 @@ static void ser_open_error(const char *port) if (group) printf("Serial port group: %s (%d)\n", group->gr_name, (int) fs.st_gid); - +#endif printf(" Mode of port: %04o\n\n", (int) fs.st_mode & 07777); printf("Things to try:\n\n"); @@ -123,9 +128,9 @@ static void lock_set(int fd, const char *port) #endif } +#ifndef WIN32 /* Non fatal version of ser_open */ int ser_open_nf(const char *port) - { int fd; @@ -152,6 +157,31 @@ int ser_open(const char *port) return res; } +#else +HANDLE ser_open_nf(const char *port) +{ + HANDLE fd; + fd = CreateFileA(port, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_FLAG_WRITE_THROUGH, 0); + + if (fd == INVALID_HANDLE_VALUE) + return INVALID_HANDLE_VALUE; + + return fd; +} + +HANDLE ser_open(const char *port) +{ + HANDLE fd; + fd = ser_open_nf(port); + + if (fd == INVALID_HANDLE_VALUE) + ser_open_error(port); + + return fd; +} +#endif + +#ifndef WIN32 int ser_set_speed_nf(int fd, const char *port, speed_t speed) { struct termios tio; @@ -179,8 +209,32 @@ int ser_set_speed_nf(int fd, const char *port, speed_t speed) return 0; } +#else +int ser_set_speed_nf(HANDLE fd, const char *port, speed_t speed) +{ + COMMTIMEOUTS TOut; + DCB dcb; + + GetCommTimeouts(fd,&TOut); + TOut.ReadIntervalTimeout = 0xffffffff; + TOut.ReadTotalTimeoutConstant = 0; + SetCommTimeouts(fd,&TOut); + GetCommState(fd, &dcb); + dcb.fOutxCtsFlow = FALSE; + dcb.fOutxDsrFlow = FALSE; + dcb.fRtsControl = RTS_CONTROL_DISABLE; + dcb.BaudRate = speed; + + return SetCommState(fd,&dcb); +} +#endif + +#ifndef WIN32 int ser_set_speed(int fd, const char *port, speed_t speed) +#else +int ser_set_speed(HANDLE fd, const char *port, speed_t speed) +#endif { int res; @@ -192,6 +246,7 @@ int ser_set_speed(int fd, const char *port, speed_t speed) return 0; } +#ifndef WIN32 static int ser_set_control(int fd, int line, int state) { if (state) { @@ -210,7 +265,29 @@ int ser_set_rts(int fd, int state) { return ser_set_control(fd, TIOCM_RTS, state); } +#else +int ser_set_dtr(HANDLE fd, int state) +{ + DCB dcb; + GetCommState(fd, &dcb); + dcb.fDtrControl = state; + + return SetCommState(fd,&dcb); +} + +int ser_set_rts(HANDLE fd, int state) +{ + DCB dcb; + + GetCommState(fd, &dcb); + dcb.fRtsControl = state; + + return SetCommState(fd,&dcb); +} +#endif + +#ifndef WIN32 static int ser_get_control(int fd, int line) { int flags; @@ -234,12 +311,44 @@ int ser_get_dcd(int fd) { return ser_get_control(fd, TIOCM_CD); } +#else +int ser_get_dsr(HANDLE fd) +{ + DCB dcb; + + GetCommState(fd, &dcb); + return dcb.fOutxDsrFlow; +} + +int ser_get_cts(HANDLE fd) +{ + DCB dcb; + + GetCommState(fd, &dcb); + return dcb.fOutxCtsFlow; +} + +int ser_get_dcd(HANDLE fd) +{ + /*FIXME*/ + return 0; +} +#endif + +#ifndef WIN32 int ser_flush_io(int fd) { return tcflush(fd, TCIOFLUSH); } +#else +int ser_flush_io(HANDLE fd) +{ + return FlushFileBuffers(fd); +} +#endif +#ifndef WIN32 int ser_close(int fd, const char *port) { if (fd < 0) @@ -255,6 +364,18 @@ int ser_close(int fd, const char *port) return 0; } +#else +int ser_close(HANDLE fd, const char *port) +{ + if (fd == INVALID_HANDLE_VALUE) + fatal_with_errno(EXIT_FAILURE, "ser_close: programming error: fd=%d port=%s", fd, port); + + if (CloseHandle(fd) != 0) + return -1; + + return 0; +} +#endif int ser_send_char(int fd, unsigned char ch) { @@ -311,6 +432,7 @@ int ser_send_buf(int fd, const void *buf, size_t buflen) return ser_send_buf_pace(fd, 0, buf, buflen); } +#ifndef WIN32 /* send buflen bytes from buf with d_usec delay after each char */ int ser_send_buf_pace(int fd, unsigned long d_usec, const void *buf, size_t buflen) @@ -332,6 +454,28 @@ int ser_send_buf_pace(int fd, unsigned long d_usec, const void *buf, return sent; } +#else +/* send buflen bytes from buf with d_usec delay after each char */ +int ser_send_buf_pace(HANDLE fd, unsigned long d_usec, const void *buf, + size_t buflen) +{ + int ret; + DWORD sent = 0; + DWORD sent_OK; + + for (sent_OK = 0; sent_OK < buflen; sent_OK += sent) { + ret = WriteFile(fd, &((char *)buf)[sent_OK], (d_usec == 0) ? (buflen - sent_OK) : 1, &sent, NULL); + + if (ret == 0 ) { + return ret; + } + + usleep(d_usec); + } + + return sent; +} +#endif int ser_get_char(int fd, void *ch, long d_sec, long d_usec) { diff --git a/drivers/serial.h b/drivers/serial.h index 5fb3a45129..d020d2256b 100644 --- a/drivers/serial.h +++ b/drivers/serial.h @@ -8,13 +8,26 @@ #if defined(HAVE_SYS_TERMIOS_H) # include /* for speed_t */ #else +#ifndef WIN32 # include +#else +#define speed_t DWORD +#define B300 CBR_300 +#define B600 CBR_600 +#define B1200 CBR_1200 +#define B2400 CBR_2400 +#define B4800 CBR_4800 +#define B9600 CBR_9600 +#define B19200 CBR_19200 +#define B38400 CBR_38400 +#endif #endif /* HAVE_SYS_TERMIOS_H */ /* limit the amount of spew that goes in the syslog when we lose the UPS */ #define SER_ERR_LIMIT 10 /* start limiting after 10 in a row */ #define SER_ERR_RATE 100 /* then only print every 100th error */ +#ifndef WIN32 int ser_open_nf(const char *port); int ser_open(const char *port); @@ -34,6 +47,27 @@ int ser_flush_io(int fd); int ser_close(int fd, const char *port); +#else +#undef DATADIR +#include +HANDLE ser_open(const char *port); +int ser_set_speed(HANDLE fd, const char *port, speed_t speed); + +/* set the state of modem control lines */ +int ser_set_dtr(HANDLE fd, int state); +int ser_set_rts(HANDLE fd, int state); + +/* get the status of modem control lines */ +int ser_get_dsr(HANDLE); +int ser_get_cts(HANDLE); +int ser_get_dcd(HANDLE); + +int ser_flush_io(HANDLE); + +int ser_close(HANDLE fd, const char *port); + +#endif + int ser_send_char(int fd, unsigned char ch); /* send the results of the format string with d_usec delay after each char */ @@ -48,8 +82,13 @@ int ser_send(int fd, const char *fmt, ...) int ser_send_buf(int fd, const void *buf, size_t buflen); /* send buflen bytes from buf with d_usec delay after each char */ +#ifndef WIN32 int ser_send_buf_pace(int fd, unsigned long d_usec, const void *buf, size_t buflen); +#else +int ser_send_buf_pace(HANDLE fd, unsigned long d_usec, const void *buf, + size_t buflen); +#endif int ser_get_char(int fd, void *ch, long d_sec, long d_usec); diff --git a/drivers/upsdrvctl.c b/drivers/upsdrvctl.c index 623f753840..d0da873e62 100644 --- a/drivers/upsdrvctl.c +++ b/drivers/upsdrvctl.c @@ -22,7 +22,9 @@ #include #include #include +#ifndef WIN32 #include +#endif #include "config.h" #include "proto.h" @@ -179,6 +181,7 @@ static void debugcmdline(int level, const char *msg, char *const argv[]) static void forkexec(char *const argv[], const ups_t *ups) { +#ifndef WIN32 int ret; pid_t pid; @@ -241,6 +244,7 @@ static void forkexec(char *const argv[], const ups_t *ups) /* shouldn't get here */ fatal_with_errno(EXIT_FAILURE, "execv"); +#endif } static void start_driver(const ups_t *ups) diff --git a/drivers/usb-common.c b/drivers/usb-common.c index 4fc88b6885..ae10af6846 100644 --- a/drivers/usb-common.c +++ b/drivers/usb-common.c @@ -18,6 +18,9 @@ */ #include "common.h" +#ifdef WIN32 +#undef DATADIR +#endif #include "usb-common.h" int is_usb_device_supported(usb_device_id_t *usb_device_id_list, USBDevice_t *device) diff --git a/drivers/usbhid-ups.c b/drivers/usbhid-ups.c index fcf628d11a..ce6d94ab5c 100644 --- a/drivers/usbhid-ups.c +++ b/drivers/usbhid-ups.c @@ -152,7 +152,7 @@ typedef enum { BYPASSAUTO, /* on automatic bypass */ BYPASSMAN, /* on manual/service bypass */ OFF, /* ups is off */ - CAL, /* calibration */ + CALIB, /* calibration */ OVERHEAT, /* overheat; Belkin, TrippLite */ COMMFAULT, /* UPS fault; Belkin, TrippLite */ DEPLETED, /* battery depleted; Belkin */ @@ -195,7 +195,7 @@ static status_lkp_t status_info[] = { { "bypassauto", STATUS(BYPASSAUTO) }, { "bypassman", STATUS(BYPASSMAN) }, { "off", STATUS(OFF) }, - { "cal", STATUS(CAL) }, + { "cal", STATUS(CALIB) }, { "overheat", STATUS(OVERHEAT) }, { "commfault", STATUS(COMMFAULT) }, { "depleted", STATUS(DEPLETED) }, @@ -1267,9 +1267,11 @@ static bool_t hid_ups_walk(walkmode_t mode) case 0: continue; +#ifndef WIN32 case -ETIMEDOUT: /* Connection timed out */ case -EOVERFLOW: /* Value too large for defined data type */ case -EPROTO: /* Protocol error */ +#endif case -EPIPE: /* Broken pipe */ default: /* Don't know what happened, try again later... */ @@ -1424,7 +1426,7 @@ static void ups_status_set(void) if (ups_status & STATUS(OFF)) { status_set("OFF"); /* ups is off */ } - if (ups_status & STATUS(CAL)) { + if (ups_status & STATUS(CALIB)) { status_set("CAL"); /* calibration */ } } diff --git a/include/common.h b/include/common.h index 4de85044a3..f686b3d61a 100644 --- a/include/common.h +++ b/include/common.h @@ -36,7 +36,12 @@ #include #include #include +#ifndef WIN32 #include +#else +#undef DATADIR +#include +#endif #include #include @@ -120,7 +125,11 @@ char *xstrdup(const char *string); char *rtrim(char *in, const char sep); char* ltrim(char *in, const char sep); +#ifndef WIN32 int select_read(const int fd, void *buf, const size_t buflen, const long d_sec, const long d_usec); +#else +int select_read(const HANDLE fd, void *buf, const size_t buflen, const long d_sec, const long d_usec); +#endif int select_write(const int fd, const void *buf, const size_t buflen, const long d_sec, const long d_usec); /* Buffer sizes used for various functions */ @@ -154,6 +163,18 @@ extern int optind; /* *INDENT-OFF* */ } /* *INDENT-ON* */ + +#ifdef WIN32 +/*FIXME*/ +#define LOG_ERR (0) +#define LOG_INFO (1) +#define LOG_DEBUG (2) +#define LOG_NOTICE (3) +#define LOG_ALERT (4) +#define LOG_WARNING (5) +#define LOG_CRIT (5) +#define LOG_PID (6) +#define LOG_DAEMON (7) #endif #endif /* NUT_COMMON_H */ diff --git a/server/Makefile.am b/server/Makefile.am index 8146568a09..61cf8fd71c 100644 --- a/server/Makefile.am +++ b/server/Makefile.am @@ -10,7 +10,7 @@ endif if WITH_SSL AM_CFLAGS += $(LIBSSL_CFLAGS) endif -LDADD = ../common/libcommon.la ../common/libparseconf.la $(NETLIBS) +LDADD = ../common/libcommon.la ../common/libparseconf.la /c/MinGW/lib/libws2_32.a $(NETLIBS) if WITH_WRAP LDADD += $(LIBWRAP_LIBS) endif @@ -23,6 +23,7 @@ EXTRA_PROGRAMS = sockdebug upsd_SOURCES = upsd.c user.c conf.c netssl.c sstate.c desc.c \ netget.c netmisc.c netlist.c netuser.c netset.c netinstcmd.c \ + wincompat.c wincompat.h \ conf.h nut_ctype.h desc.h netcmds.h neterr.h netget.h netinstcmd.h \ netlist.h netmisc.h netset.h netuser.h netssl.h sstate.h stype.h upsd.h \ upstype.h user-data.h user.h diff --git a/server/conf.c b/server/conf.c index aea8220cd7..306205b1a6 100644 --- a/server/conf.c +++ b/server/conf.c @@ -57,6 +57,31 @@ static void ups_create(const char *fn, const char *name, const char *desc) temp->next = firstups; firstups = temp; + temp->last_ping = 0; + temp->last_connfail = 0; + temp->inforoot = NULL; + temp->cmdlist = NULL; +#ifdef WIN32 + memset(&temp->read_overlapped,0,sizeof(temp->read_overlapped)); + memset(temp->buf,0,sizeof(temp->buf)); + temp->read_overlapped.hEvent = CreateEvent(NULL, /*Security*/ + FALSE, /* auto-reset*/ + FALSE, /* initial state = non signaled */ + NULL /* no name */); + if(temp->read_overlapped.hEvent == NULL ) { + upslogx(LOG_ERR, "Can't create event for UPS [%s]", + name); + return; + } +#endif + + if (last == NULL) + firstups = temp; + else + last->next = temp; + + temp->sock_fd = sstate_connect(temp); + num_ups++; } @@ -89,9 +114,13 @@ static void ups_update(const char *fn, const char *name, const char *desc) sstate_infofree(temp); sstate_cmdfree(temp); pconf_finish(&temp->sock_ctx); - +#ifndef WIN32 close(temp->sock_fd); temp->sock_fd = -1; +#else + CloseHandle(temp->sock_fd); + temp->sock_fd = INVALID_HANDLE_VALUE; +#endif temp->dumpdone = 0; /* now redefine the filename and wrap up */ @@ -382,8 +411,13 @@ static void delete_ups(upstype_t *target) else last->next = ptr->next; +#ifndef WIN32 if (ptr->sock_fd != -1) close(ptr->sock_fd); +#else + if (ptr->sock_fd != INVALID_HANDLE_VALUE) + CloseHandle(ptr->sock_fd); +#endif /* release memory */ sstate_infofree(ptr); diff --git a/server/ssl.c b/server/ssl.c new file mode 100644 index 0000000000..aa52a2662a --- /dev/null +++ b/server/ssl.c @@ -0,0 +1,253 @@ +/* ssl.c - Interface to OpenSSL for upsd + + Copyright (C) + 2002 Russell Kroll + 2008 Arjen de Korte + + based on the original implementation: + + Copyright (C) 2002 Technorama Ltd. + + 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 +*/ + +#include +#ifndef WIN32 +#include +#include +#else +#undef DATADIR +#include +#endif + +#include "upsd.h" +#include "neterr.h" +#include "ssl.h" + +char *certfile = NULL; + +static int ssl_initialized = 0; + +#ifndef HAVE_SSL + +/* stubs for non-ssl compiles */ +void net_starttls(ctype_t *client, int numarg, const char **arg) +{ + send_err(client, NUT_ERR_FEATURE_NOT_SUPPORTED); + return; +} + +int ssl_write(ctype_t *client, const char *buf, size_t buflen) +{ + upslogx(LOG_ERR, "ssl_write called but SSL wasn't compiled in"); + return -1; +} + +int ssl_read(ctype_t *client, char *buf, size_t buflen) +{ + upslogx(LOG_ERR, "ssl_read called but SSL wasn't compiled in"); + return -1; +} + +void ssl_init(void) +{ + ssl_initialized = 0; /* keep gcc quiet */ +} + +void ssl_finish(ctype_t *client) +{ + if (client->ssl) { + upslogx(LOG_ERR, "ssl_finish found active SSL connection but SSL wasn't compiled in"); + } +} + +#else + +static SSL_CTX *ssl_ctx = NULL; + +static void ssl_debug(void) +{ + int e; + char errmsg[SMALLBUF]; + + while ((e = ERR_get_error()) != 0) { + ERR_error_string_n(e, errmsg, sizeof(errmsg)); + upsdebugx(1, "ssl_debug: %s", errmsg); + } +} + +void net_starttls(ctype_t *client, int numarg, const char **arg) +{ + if (client->ssl) { + send_err(client, NUT_ERR_ALREADY_SSL_MODE); + return; + } + + if ((!ssl_ctx) || (!certfile) || (!ssl_initialized)) { + send_err(client, NUT_ERR_FEATURE_NOT_CONFIGURED); + return; + } + + if (!sendback(client, "OK STARTTLS\n")) { + return; + } + + client->ssl = SSL_new(ssl_ctx); + + if (!client->ssl) { + upslog_with_errno(LOG_ERR, "SSL_new failed\n"); + ssl_debug(); + return; + } + + if (SSL_set_fd(client->ssl, client->sock_fd) != 1) { + upslog_with_errno(LOG_ERR, "SSL_set_fd failed\n"); + ssl_debug(); + } +} + +void ssl_init(void) +{ + if (!certfile) { + return; + } + + check_perms(certfile); + + SSL_library_init(); + SSL_load_error_strings(); + OpenSSL_add_ssl_algorithms(); + + if ((ssl_ctx = SSL_CTX_new(TLSv1_server_method())) == NULL) { + fatal_with_errno(EXIT_FAILURE, "SSL_CTX_new"); + } + + if (SSL_CTX_use_RSAPrivateKey_file(ssl_ctx, certfile, SSL_FILETYPE_PEM) != 1) { + ssl_debug(); + upslogx(LOG_ERR, "SSL_CTX_use_RSAPrivateKey_file(%s) failed", certfile); + return; + } + + if (SSL_CTX_use_certificate_chain_file(ssl_ctx, certfile) != 1) { + upslogx(LOG_ERR, "SSL_CTX_use_certificate_chain_file(%s) failed", certfile); + return; + } + + if (SSL_CTX_check_private_key(ssl_ctx) != 1) { + upslogx(LOG_ERR, "SSL_CTX_check_private_key(%s) failed", certfile); + return; + } + + SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, NULL); + + if (SSL_CTX_set_cipher_list(ssl_ctx, "HIGH:@STRENGTH") != 1) { + fatalx(EXIT_FAILURE, "SSL_CTX_set_cipher_list"); + } + + ssl_initialized = 1; +} + +static int ssl_error(SSL *ssl, int ret) +{ + int e; + + e = SSL_get_error(ssl, ret); + + switch (e) + { + case SSL_ERROR_WANT_READ: + upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_WANT_READ", ret); + break; + + case SSL_ERROR_WANT_WRITE: + upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_WANT_WRITE", ret); + break; + + case SSL_ERROR_SYSCALL: + if (ret == 0 && ERR_peek_error() == 0) { + upsdebugx(1, "ssl_error() EOF from client"); + } else { + upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_SYSCALL", ret); + } + break; + + default: + upsdebugx(1, "ssl_error() ret=%d SSL_ERROR %d", ret, e); + ssl_debug(); + } + + return -1; +} + +static int ssl_accept(ctype_t *client) +{ + int ret; + + ret = SSL_accept(client->ssl); + + switch (ret) + { + case 1: + client->ssl_connected = 1; + upsdebugx(3, "SSL connected"); + return 0; + + case 0: + case -1: + return ssl_error(client->ssl, ret); + } + + upslog_with_errno(LOG_ERR, "Unknown return value from SSL_accept"); + return -1; +} + +int ssl_read(ctype_t *client, char *buf, size_t buflen) +{ + int ret; + + if (!client->ssl_connected) { + if (ssl_accept(client) != 0) + return -1; + } + + ret = SSL_read(client->ssl, buf, buflen); + + if (ret < 1) { + ssl_error(client->ssl, ret); + return -1; + } + + return ret; +} + +int ssl_write(ctype_t *client, const char *buf, size_t buflen) +{ + int ret; + + ret = SSL_write(client->ssl, buf, buflen); + + upsdebugx(5, "ssl_write ret=%d", ret); + + return ret; +} + +void ssl_finish(ctype_t *client) +{ + if (client->ssl) { + SSL_free(client->ssl); + } +} + +#endif /* HAVE_SSL */ diff --git a/server/sstate.c b/server/sstate.c index 15d2c1412e..b0a791c7d8 100644 --- a/server/sstate.c +++ b/server/sstate.c @@ -32,8 +32,13 @@ #include #include #include +#ifndef WIN32 #include #include +#else +#undef DATADIR +#include +#endif static int parse_args(upstype_t *ups, int numargs, char **arg) { @@ -137,13 +142,32 @@ static void sendping(upstype_t *ups) int ret; const char *cmd = "PING\n"; +#ifndef WIN32 if ((!ups) || (ups->sock_fd < 0)) { +#else + if ((!ups) || (ups->sock_fd == INVALID_HANDLE_VALUE)) { +#endif return; } upsdebugx(3, "Pinging UPS [%s]", ups->name); +#ifndef WIN32 ret = write(ups->sock_fd, cmd, strlen(cmd)); +#else + DWORD bytesWritten = 0; + BOOL result = FALSE; + + result = WriteFile (ups->sock_fd,cmd,strlen(cmd),&bytesWritten,NULL); + if( result == 0 ) { + printf("Write failed\n"); + ret = 0; + } + else { + ret = (int)bytesWritten; + } +#endif + if (ret != (int)strlen(cmd)) { upslog_with_errno(LOG_NOTICE, "Send ping to UPS [%s] failed", ups->name); @@ -156,6 +180,7 @@ static void sendping(upstype_t *ups) /* interface */ +#ifndef WIN32 int sstate_connect(upstype_t *ups) { int ret, fd; @@ -217,6 +242,52 @@ int sstate_connect(upstype_t *ups) return -1; } +#else +HANDLE sstate_connect(upstype_t *ups) +{ + HANDLE fd; + char pipename[SMALLBUF]; + const char *dumpcmd = "DUMPALL\n"; + BOOL result = FALSE; + + snprintf(pipename, sizeof(pipename), "\\\\.\\pipe\\%s", ups->fn); + + printf("Test %s availability\n",pipename); + result = WaitNamedPipe(pipename,NMPWAIT_USE_DEFAULT_WAIT); + + if( result == FALSE ) { + return INVALID_HANDLE_VALUE; + } + + fd = CreateFile( + pipename, // pipe name + GENERIC_READ | // read and write access + GENERIC_WRITE, + 0, // no sharing + NULL, // default security attributes FIXME + OPEN_EXISTING, // opens existing pipe + FILE_FLAG_OVERLAPPED, // enable async IO + NULL); // no template file + + if (fd == INVALID_HANDLE_VALUE) { + upslog_with_errno(LOG_ERR, "Can't connect to UPS [%s] (%s)", ups->name, ups->fn); + return INVALID_HANDLE_VALUE; + } + + /* get a dump started so we have a fresh set of data */ + DWORD bytesWritten = 0; + + result = WriteFile (fd,dumpcmd,strlen(dumpcmd),&bytesWritten,NULL); + if (result == 0 || bytesWritten != strlen(dumpcmd)) { + upslog_with_errno(LOG_ERR, "Initial write to UPS [%s] failed", ups->name); + CloseHandle(fd); + return INVALID_HANDLE_VALUE; + } + + /* Start a read IO so we could wait on the event associated with it */ + ReadFile(fd,ups->buf,sizeof(ups->buf)-1,&(ups->bytesRead),&(ups->read_overlapped)); /*-1 to be sure to have a trailling 0 */ +#endif + pconf_init(&ups->sock_ctx, NULL); ups->dumpdone = 0; @@ -235,7 +306,11 @@ int sstate_connect(upstype_t *ups) void sstate_disconnect(upstype_t *ups) { +#ifndef WIN32 if ((!ups) || (ups->sock_fd < 0)) { +#else + if ((!ups) || (ups->sock_fd == INVALID_HANDLE_VALUE)) { +#endif return; } @@ -244,13 +319,20 @@ void sstate_disconnect(upstype_t *ups) pconf_finish(&ups->sock_ctx); +#ifndef WIN32 close(ups->sock_fd); ups->sock_fd = -1; +#else + CloseHandle(ups->sock_fd); + ups->sock_fd = INVALID_HANDLE_VALUE; +#endif } void sstate_readline(upstype_t *ups) { int i, ret; + +#ifndef WIN32 char buf[SMALLBUF]; if ((!ups) || (ups->sock_fd < 0)) { @@ -272,6 +354,18 @@ void sstate_readline(upstype_t *ups) return; } } +#else + + if ((!ups) || (ups->sock_fd == INVALID_HANDLE_VALUE)) { + return; + } + char *buf = ups->buf; + DWORD bytesRead; + GetOverlappedResult(ups->sock_fd, &ups->read_overlapped, &bytesRead, FALSE); + ret = bytesRead; +#endif + + for (i = 0; i < ret; i++) { @@ -293,6 +387,12 @@ void sstate_readline(upstype_t *ups) return; } } + +#ifdef WIN32 + /* Restart async read */ + memset(ups->buf,0,sizeof(ups->buf)); + ReadFile( ups->sock_fd, ups->buf, sizeof(ups->buf)-1, &(ups->bytesRead), &(ups->read_overlapped)); /* -1 to be sure to have a trailing 0 */ +#endif } const char *sstate_getinfo(const upstype_t *ups, const char *var) @@ -331,7 +431,11 @@ int sstate_dead(upstype_t *ups, int maxage) double elapsed; /* an unconnected ups is always dead */ +#ifndef WIN32 if (ups->sock_fd < 0) { +#else + if (ups->sock_fd == INVALID_HANDLE_VALUE) { +#endif upsdebugx(3, "sstate_dead: connection to driver socket for UPS [%s] lost", ups->name); return 1; /* dead */ } @@ -378,11 +482,29 @@ int sstate_sendline(upstype_t *ups, const char *buf) { int ret; +#ifndef WIN32 if ((!ups) ||(ups->sock_fd < 0)) { +#else + if ((!ups) ||(ups->sock_fd == INVALID_HANDLE_VALUE)) { +#endif return 0; /* failed */ } +#ifndef WIN32 ret = write(ups->sock_fd, buf, strlen(buf)); +#else + DWORD bytesWritten = 0; + BOOL result = FALSE; + + result = WriteFile (ups->sock_fd,buf,strlen(buf),&bytesWritten,NULL); + + if( result == 0 ) { + ret = 0; + } + else { + ret = (int)bytesWritten; + } +#endif if (ret == (int)strlen(buf)) { return 1; diff --git a/server/sstate.h b/server/sstate.h index fe8485ced3..7073000961 100644 --- a/server/sstate.h +++ b/server/sstate.h @@ -35,7 +35,11 @@ extern "C" { /* *INDENT-ON* */ #endif +#ifndef WIN32 int sstate_connect(upstype_t *ups); +#else +HANDLE sstate_connect(upstype_t *ups); +#endif void sstate_disconnect(upstype_t *ups); void sstate_readline(upstype_t *ups); const char *sstate_getinfo(const upstype_t *ups, const char *var); diff --git a/server/stype.h b/server/stype.h index c143018743..a9f5a9eb0d 100644 --- a/server/stype.h +++ b/server/stype.h @@ -21,7 +21,9 @@ #ifndef STYPE_H_SEEN #define STYPE_H_SEEN 1 +#ifndef WIN32 #include +#endif #ifndef NI_MAXHOST #define NI_MAXHOST 1025 @@ -41,6 +43,9 @@ typedef struct stype_s { char *addr; char *port; int sock_fd; +#ifdef WIN32 + HANDLE Event; +#endif struct stype_s *next; } stype_t; diff --git a/server/upsd.c b/server/upsd.c index 2c0d1a1758..5d8ca10f01 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -27,10 +27,19 @@ #include "netcmds.h" #include "upsconf.h" +#ifndef WIN32 #include #include #include #include +#else +#undef DATADIR +#include +#include +/* This override network system calls to adapt to Windows specificity */ +#define W32_NETWORK_CALL_OVERRIDE +#include "wincompat.h" +#endif #include "user.h" #include "nut_ctype.h" @@ -84,8 +93,12 @@ typedef struct { void *data; } handler_t; +#ifndef WIN32 /* pollfd */ static struct pollfd *fds = NULL; +#else +static HANDLE *fds = NULL; +#endif static handler_t *handler = NULL; /* pid file */ @@ -178,6 +191,80 @@ void listen_add(const char *addr, const char *port) /* create a listening socket for tcp connections */ static void setuptcp(stype_t *server) { +#ifdef WIN32 + WSADATA WSAdata; + WSAStartup(2,&WSAdata); + atexit(WSACleanup); +#endif + +#ifndef WIN32 + host = gethostbyname(server->addr); + + if (!host) { + struct in_addr listenaddr; + + if (!inet_aton(server->addr, &listenaddr)) { + fatal_with_errno(EXIT_FAILURE, "inet_aton"); + } + + host = gethostbyaddr(&listenaddr, sizeof(listenaddr), AF_INET); + + if (!host) { + fatal_with_errno(EXIT_FAILURE, "gethostbyaddr"); + } + } +#else + unsigned long numeric_addr; + numeric_addr = inet_addr(server->addr); + if ( numeric_addr == INADDR_NONE ) { + fatal_with_errno(EXIT_FAILURE, "inet_addr"); + } + sockin.sin_addr.s_addr = numeric_addr; + +#endif + if ((server->sock_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { + fatal_with_errno(EXIT_FAILURE, "socket"); + } + + res = setsockopt(server->sock_fd, SOL_SOCKET, SO_REUSEADDR, (void *) &one, sizeof(one)); + + if (res != 0) { + fatal_with_errno(EXIT_FAILURE, "setsockopt(SO_REUSEADDR)"); + } + + memset(&sockin, '\0', sizeof(sockin)); + sockin.sin_family = AF_INET; + sockin.sin_port = htons(atoi(server->port)); + + memcpy(&sockin.sin_addr, host->h_addr, host->h_length); + + if (bind(server->sock_fd, (struct sockaddr *) &sockin, sizeof(sockin)) == -1) { + fatal_with_errno(EXIT_FAILURE, "Can't bind TCP port %s", server->port); + } + +#ifndef WIN32 + if ((res = fcntl(server->sock_fd, F_GETFL, 0)) == -1) { + fatal_with_errno(EXIT_FAILURE, "fcntl(get)"); + } + + if (fcntl(server->sock_fd, F_SETFL, res | O_NDELAY) == -1) { + fatal_with_errno(EXIT_FAILURE, "fcntl(set)"); + } +#else + server->Event = CreateEvent(NULL, /*Security,*/ + FALSE, /*auo-reset */ + FALSE, /*initial state*/ + NULL); /* no name */ + + /* Associate socket event to the socket via its Event object */ + WSAEventSelect( server->sock_fd, server->Event, FD_ACCEPT ); + //WSAEventSelect( server->sock_fd, server->Event, FD_ACCEPT | FD_CLOSE); +#endif + + if (listen(server->sock_fd, 16)) { + fatal_with_errno(EXIT_FAILURE, "listen"); + } +#else struct addrinfo hints, *res, *ai; int v = 0, one = 1; @@ -614,9 +701,17 @@ void driver_free(void) for (ups = firstups; ups; ups = unext) { unext = ups->next; +#ifndef WIN32 if (ups->sock_fd != -1) { close(ups->sock_fd); } +#else + if (ups->sock_fd != INVALID_HANDLE_VALUE) { + DisconnectNamedPipe(ups->sock_fd); + CloseHandle(ups->sock_fd); + ups->sock_fd = INVALID_HANDLE_VALUE; + } +#endif sstate_infofree(ups); sstate_cmdfree(ups); @@ -657,6 +752,7 @@ static void upsd_cleanup(void) void poll_reload(void) { +#ifndef WIN32 int ret; ret = sysconf(_SC_OPEN_MAX); @@ -670,12 +766,20 @@ void poll_reload(void) fds = xrealloc(fds, maxconn * sizeof(*fds)); handler = xrealloc(handler, maxconn * sizeof(*handler)); +#else + fds = xrealloc(fds, MAXIMUM_WAIT_OBJECTS * sizeof(*fds)); + handler = xrealloc(handler, MAXIMUM_WAIT_OBJECTS * sizeof(*handler)); +#endif } /* service requests and check on new data */ static void mainloop(void) { +#ifndef WIN32 int i, ret, nfds = 0; +#else + DWORD ret; +#endif upstype_t *ups; nut_ctype_t *client, *cnext; @@ -690,6 +794,7 @@ static void mainloop(void) reload_flag = 0; } +#ifndef WIN32 /* scan through driver sockets */ for (ups = firstups; ups && (nfds < maxconn); ups = ups->next) { @@ -814,6 +919,107 @@ static void mainloop(void) continue; } } +#else + /* scan through driver sockets */ + for (ups = firstups; ups && (nfds < maxconn); ups = ups->next) { + + /* see if we need to (re)connect to the socket */ + if (ups->sock_fd == INVALID_HANDLE_VALUE) { + ups->sock_fd = sstate_connect(ups); + continue; + } + + /* throw some warnings if it's not feeding us data any more */ + if (sstate_dead(ups, maxage)) { + ups_data_stale(ups); + } else { + ups_data_ok(ups); + } + + if( ups->sock_fd != INVALID_HANDLE_VALUE) { + //fds[nfds] = ups->sock_fd; + fds[nfds] = ups->read_overlapped.hEvent; + + handler[nfds].type = DRIVER; + handler[nfds].data = ups; + + nfds++; + } + } + + /* scan through client sockets */ + for (client = firstclient; client; client = cnext) { + + cnext = client->next; + + if (difftime(now, client->last_heard) > 60) { + /* shed clients after 1 minute of inactivity */ + client_disconnect(client); + continue; + } + + if (nfds >= maxconn) { + /* ignore clients that we are unable to handle */ + continue; + } + + fds[nfds] = (HANDLE)client->sock_fd; + + handler[nfds].type = CLIENT; + handler[nfds].data = client; + + nfds++; + } + + /* scan through server sockets */ + for (server = firstaddr; server && (nfds < maxconn); server = server->next) { + + if (server->sock_fd < 0) { + continue; + } + + fds[nfds] = (HANDLE)server->Event; + + handler[nfds].type = SERVER; + handler[nfds].data = server; + + nfds++; + } + + upsdebugx(2, "%s: wait for %d filedescriptors", __func__, nfds); + + ret = WaitForMultipleObjects(nfds,fds,FALSE,2000); + + printf("WaitForMultipleObjects return %d\n",ret); + + if (ret == WAIT_TIMEOUT) { + upsdebugx(2, "%s: no data available", __func__); + return; + } + + if (ret == WAIT_FAILED) { + DWORD err = GetLastError(); + err =err; /* remove compile time warning */ + upslog_with_errno(LOG_ERR, "%s", __func__); + return; + } + + switch(handler[ret].type) { + case DRIVER: + sstate_readline((upstype_t *)handler[ret].data); + break; + case CLIENT: + client_readline((ctype_t *)handler[ret].data); + break; + case SERVER: + client_connect((stype_t *)handler[ret].data); + break; + default: + upsdebugx(2, "%s: has data available", __func__); + break; + } + +#endif } static void help(const char *progname) @@ -850,6 +1056,7 @@ static void set_exit_flag(int sig) static void setup_signals(void) { +#ifndef WIN32 struct sigaction sa; sigemptyset(&sa.sa_mask); @@ -869,10 +1076,12 @@ static void setup_signals(void) /* handle reloading */ sa.sa_handler = set_reload_flag; sigaction(SIGHUP, &sa, NULL); +#endif } void check_perms(const char *fn) { +#ifndef WIN32 int ret; struct stat st; @@ -886,6 +1095,7 @@ void check_perms(const char *fn) if (st.st_mode & (S_IROTH | S_IXOTH)) { upslogx(LOG_WARNING, "%s is world readable", fn); } +#endif } int main(int argc, char **argv) @@ -899,7 +1109,11 @@ int main(int argc, char **argv) /* yes, xstrdup - the conf handlers call free on this later */ statepath = xstrdup(dflt_statepath()); +#ifndef WIN32 datapath = xstrdup(DATADIR); +#else + datapath = xstrdup("c:"); +#endif /* set up some things for later */ snprintf(pidfn, sizeof(pidfn), "%s/%s.pid", altpidpath(), progname); @@ -928,7 +1142,7 @@ int main(int argc, char **argv) case 'V': /* do nothing - we already printed the banner */ exit(EXIT_SUCCESS); - +#ifndef WIN32 case 'c': if (!strncmp(optarg, "reload", strlen(optarg))) cmd = SIGCMD_RELOAD; @@ -939,7 +1153,7 @@ int main(int argc, char **argv) if (cmd == 0) help(progname); break; - +#endif case 'D': nut_debug_level++; break; @@ -995,8 +1209,12 @@ int main(int argc, char **argv) chroot_start(chroot_path); } +#ifndef WIN32 /* default to system limit (may be overridden in upsd.conf */ maxconn = sysconf(_SC_OPEN_MAX); +#else + maxconn = 64; /*FIXME : silly value just to compile */ +#endif /* handle upsd.conf */ load_upsdconf(0); /* 0 = initial */ @@ -1008,10 +1226,11 @@ int main(int argc, char **argv) ssl_init(); become_user(new_uid); - +#ifndef WIN32 if (chdir(statepath)) { fatal_with_errno(EXIT_FAILURE, "Can't chdir to %s", statepath); } +#endif /* check statepath perms */ check_perms(statepath); diff --git a/server/upsd.h b/server/upsd.h index 2b3a3a74d1..d7ee65cd3e 100644 --- a/server/upsd.h +++ b/server/upsd.h @@ -31,9 +31,14 @@ #include "common.h" +#ifndef WIN32 #include #include #include +#else +#undef DATADIR +#include +#endif #include "timehead.h" diff --git a/server/upstype.h b/server/upstype.h index bbadd500ad..785bfdec90 100644 --- a/server/upstype.h +++ b/server/upstype.h @@ -36,7 +36,14 @@ typedef struct upstype_s { char *fn; char *desc; +#ifndef WIN32 int sock_fd; +#else + HANDLE sock_fd; + char buf[SMALLBUF]; + OVERLAPPED read_overlapped; + DWORD bytesRead; +#endif int stale; int dumpdone; int data_ok; diff --git a/server/user.c b/server/user.c index 8eff8a06b6..f225665aef 100644 --- a/server/user.c +++ b/server/user.c @@ -18,9 +18,14 @@ */ #include +#ifndef WIN32 #include #include #include +#else +#undef DATADIR +#include +#endif #include "common.h" #include "parseconf.h" From c9c402c0149664bb6fed50d6f8853f90df4b9116 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 18 Oct 2010 14:42:14 +0000 Subject: [PATCH 002/218] Set eol-style to native Fossil-ID: SVN r2579 --- clients/wincompat.c | 100 ++++++++++++++++++++++---------------------- clients/wincompat.h | 94 ++++++++++++++++++++--------------------- 2 files changed, 97 insertions(+), 97 deletions(-) diff --git a/clients/wincompat.c b/clients/wincompat.c index f30a8e9add..3179931833 100755 --- a/clients/wincompat.c +++ b/clients/wincompat.c @@ -1,50 +1,50 @@ -/* - - Copyright (C) 1999 Russell Kroll - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include "common.h" -#undef DATADIR -#include - -extern int errno; - - -int sktconnect(int fh, struct sockaddr * name, int len) -{ - int ret = connect(fh,name,len); - errno = WSAGetLastError(); - return ret; -} -int sktread(int fh, char *buf, int size) -{ - int ret = recv(fh,buf,size,0); - errno = WSAGetLastError(); - return ret; -} -int sktwrite(int fh, char *buf, int size) -{ - int ret = send(fh,buf,size,0); - errno = WSAGetLastError(); - return ret; -} -int sktclose(int fh) -{ - int ret = closesocket((SOCKET)fh); - errno = WSAGetLastError(); - return ret; -} +/* + + Copyright (C) 1999 Russell Kroll + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "common.h" +#undef DATADIR +#include + +extern int errno; + + +int sktconnect(int fh, struct sockaddr * name, int len) +{ + int ret = connect(fh,name,len); + errno = WSAGetLastError(); + return ret; +} +int sktread(int fh, char *buf, int size) +{ + int ret = recv(fh,buf,size,0); + errno = WSAGetLastError(); + return ret; +} +int sktwrite(int fh, char *buf, int size) +{ + int ret = send(fh,buf,size,0); + errno = WSAGetLastError(); + return ret; +} +int sktclose(int fh) +{ + int ret = closesocket((SOCKET)fh); + errno = WSAGetLastError(); + return ret; +} diff --git a/clients/wincompat.h b/clients/wincompat.h index 4d08418caa..a9b5216325 100755 --- a/clients/wincompat.h +++ b/clients/wincompat.h @@ -1,47 +1,47 @@ -#ifndef NUT_WINCOMPAT_H -#define NUT_WINCOMPAT_H - -/* - Copyright (C) 2001 Andrew Delpha (delpha@computer.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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - -/* -This header is provided to make the map the windows system calls to be compatable with -the NUT code. Windows defines a lot of system functions with a _(name) like snprintf -Also, the error codes from the networking code are not put into errno as nut expects. -For convience I've provided wrapper functions which do this. -*/ - -/* This is conditional because read/write are generic in unix, and this will make them network specific */ -#ifdef W32_NETWORK_CALL_OVERRIDE -#define close(h) sktclose(h) -#define read(h,b,s) sktread(h,b,s) -#define write(h,b,s) sktwrite( h ,(char *) b , s ) -#define connect(h,n,l) sktconnect(h,n,l) -#endif - -#define strcasecmp(a,b) _stricmp(a,b) -#define snprintf _snprintf -#define vsnprintf _vsnprintf - -int sktconnect(int fh, struct sockaddr * name, int len); -int sktread(int fh, char *buf, int size); -int sktwrite(int fh, char *buf, int size); -int sktclose(int fh); - -#endif +#ifndef NUT_WINCOMPAT_H +#define NUT_WINCOMPAT_H + +/* + Copyright (C) 2001 Andrew Delpha (delpha@computer.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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + + +/* +This header is provided to make the map the windows system calls to be compatable with +the NUT code. Windows defines a lot of system functions with a _(name) like snprintf +Also, the error codes from the networking code are not put into errno as nut expects. +For convience I've provided wrapper functions which do this. +*/ + +/* This is conditional because read/write are generic in unix, and this will make them network specific */ +#ifdef W32_NETWORK_CALL_OVERRIDE +#define close(h) sktclose(h) +#define read(h,b,s) sktread(h,b,s) +#define write(h,b,s) sktwrite( h ,(char *) b , s ) +#define connect(h,n,l) sktconnect(h,n,l) +#endif + +#define strcasecmp(a,b) _stricmp(a,b) +#define snprintf _snprintf +#define vsnprintf _vsnprintf + +int sktconnect(int fh, struct sockaddr * name, int len); +int sktread(int fh, char *buf, int size); +int sktwrite(int fh, char *buf, int size); +int sktclose(int fh); + +#endif From b50052f5f6533bcca97202e7a55ac17a2d4328c5 Mon Sep 17 00:00:00 2001 From: Charles Lepple Date: Wed, 20 Oct 2010 00:45:39 +0000 Subject: [PATCH 003/218] Fix executable bits Fossil-ID: SVN r2583 --- clients/wincompat.c | 0 clients/wincompat.h | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 clients/wincompat.c mode change 100755 => 100644 clients/wincompat.h diff --git a/clients/wincompat.c b/clients/wincompat.c old mode 100755 new mode 100644 diff --git a/clients/wincompat.h b/clients/wincompat.h old mode 100755 new mode 100644 From 52358e605797a7a6d335c74edc0c5d1e79fe930b Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 20 Oct 2010 07:14:19 +0000 Subject: [PATCH 004/218] Move wincompat.[ch] to common Fossil-ID: SVN r2584 --- clients/Makefile.am | 4 +- common/Makefile.am | 2 +- {clients => common}/wincompat.c | 101 ++++++++++++++++--------------- {clients => include}/wincompat.h | 94 ++++++++++++++-------------- server/Makefile.am | 5 +- 5 files changed, 103 insertions(+), 103 deletions(-) rename {clients => common}/wincompat.c (94%) rename {clients => include}/wincompat.h (97%) diff --git a/clients/Makefile.am b/clients/Makefile.am index 592d7bf372..5fdf34b441 100644 --- a/clients/Makefile.am +++ b/clients/Makefile.am @@ -45,8 +45,8 @@ upsstats_cgi_SOURCES = upsstats.c upsclient.h status.h upsstats.h \ upsimagearg.h cgilib.c cgilib.h # not LDADD. -libupsclient_la_SOURCES = upsclient.c upsclient.h wincompat.c wincompat.h -libupsclient_la_LIBADD = ../common/libparseconf.la +libupsclient_la_SOURCES = upsclient.c upsclient.h +libupsclient_la_LIBADD = ../common/libcommon.la ../common/libparseconf.la if WITH_SSL libupsclient_la_LIBADD += $(LIBSSL_LIBS) endif diff --git a/common/Makefile.am b/common/Makefile.am index 6dda04acdd..d9c9c5ab74 100644 --- a/common/Makefile.am +++ b/common/Makefile.am @@ -9,7 +9,7 @@ libparseconf_la_SOURCES = parseconf.c # 'dist', and is only required for actual build, in which case # BUILT_SOURCES (in ../include) will ensure nut_version.h will # be built before anything else -libcommon_la_SOURCES = common.c state.c upsconf.c +libcommon_la_SOURCES = common.c state.c upsconf.c wincompat.c ../include/wincompat.h # ensure inclusion of local implementation of missing systems functions # using LTLIBOBJS. Refer to configure.in -> AC_REPLACE_FUNCS libcommon_la_LIBADD = libparseconf.la @LTLIBOBJS@ diff --git a/clients/wincompat.c b/common/wincompat.c similarity index 94% rename from clients/wincompat.c rename to common/wincompat.c index 3179931833..14f9b20b4d 100644 --- a/clients/wincompat.c +++ b/common/wincompat.c @@ -1,50 +1,51 @@ -/* - - Copyright (C) 1999 Russell Kroll - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include "common.h" -#undef DATADIR -#include - -extern int errno; - - -int sktconnect(int fh, struct sockaddr * name, int len) -{ - int ret = connect(fh,name,len); - errno = WSAGetLastError(); - return ret; -} -int sktread(int fh, char *buf, int size) -{ - int ret = recv(fh,buf,size,0); - errno = WSAGetLastError(); - return ret; -} -int sktwrite(int fh, char *buf, int size) -{ - int ret = send(fh,buf,size,0); - errno = WSAGetLastError(); - return ret; -} -int sktclose(int fh) -{ - int ret = closesocket((SOCKET)fh); - errno = WSAGetLastError(); - return ret; -} +/* + + Copyright (C) 1999 Russell Kroll + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ +#ifdef WIN32 +#include "common.h" +#undef DATADIR +#include + +extern int errno; + + +int sktconnect(int fh, struct sockaddr * name, int len) +{ + int ret = connect(fh,name,len); + errno = WSAGetLastError(); + return ret; +} +int sktread(int fh, char *buf, int size) +{ + int ret = recv(fh,buf,size,0); + errno = WSAGetLastError(); + return ret; +} +int sktwrite(int fh, char *buf, int size) +{ + int ret = send(fh,buf,size,0); + errno = WSAGetLastError(); + return ret; +} +int sktclose(int fh) +{ + int ret = closesocket((SOCKET)fh); + errno = WSAGetLastError(); + return ret; +} +#endif diff --git a/clients/wincompat.h b/include/wincompat.h similarity index 97% rename from clients/wincompat.h rename to include/wincompat.h index a9b5216325..4d08418caa 100644 --- a/clients/wincompat.h +++ b/include/wincompat.h @@ -1,47 +1,47 @@ -#ifndef NUT_WINCOMPAT_H -#define NUT_WINCOMPAT_H - -/* - Copyright (C) 2001 Andrew Delpha (delpha@computer.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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - -/* -This header is provided to make the map the windows system calls to be compatable with -the NUT code. Windows defines a lot of system functions with a _(name) like snprintf -Also, the error codes from the networking code are not put into errno as nut expects. -For convience I've provided wrapper functions which do this. -*/ - -/* This is conditional because read/write are generic in unix, and this will make them network specific */ -#ifdef W32_NETWORK_CALL_OVERRIDE -#define close(h) sktclose(h) -#define read(h,b,s) sktread(h,b,s) -#define write(h,b,s) sktwrite( h ,(char *) b , s ) -#define connect(h,n,l) sktconnect(h,n,l) -#endif - -#define strcasecmp(a,b) _stricmp(a,b) -#define snprintf _snprintf -#define vsnprintf _vsnprintf - -int sktconnect(int fh, struct sockaddr * name, int len); -int sktread(int fh, char *buf, int size); -int sktwrite(int fh, char *buf, int size); -int sktclose(int fh); - -#endif +#ifndef NUT_WINCOMPAT_H +#define NUT_WINCOMPAT_H + +/* + Copyright (C) 2001 Andrew Delpha (delpha@computer.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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + + +/* +This header is provided to make the map the windows system calls to be compatable with +the NUT code. Windows defines a lot of system functions with a _(name) like snprintf +Also, the error codes from the networking code are not put into errno as nut expects. +For convience I've provided wrapper functions which do this. +*/ + +/* This is conditional because read/write are generic in unix, and this will make them network specific */ +#ifdef W32_NETWORK_CALL_OVERRIDE +#define close(h) sktclose(h) +#define read(h,b,s) sktread(h,b,s) +#define write(h,b,s) sktwrite( h ,(char *) b , s ) +#define connect(h,n,l) sktconnect(h,n,l) +#endif + +#define strcasecmp(a,b) _stricmp(a,b) +#define snprintf _snprintf +#define vsnprintf _vsnprintf + +int sktconnect(int fh, struct sockaddr * name, int len); +int sktread(int fh, char *buf, int size); +int sktwrite(int fh, char *buf, int size); +int sktclose(int fh); + +#endif diff --git a/server/Makefile.am b/server/Makefile.am index 61cf8fd71c..3bba1b5a40 100644 --- a/server/Makefile.am +++ b/server/Makefile.am @@ -23,9 +23,8 @@ EXTRA_PROGRAMS = sockdebug upsd_SOURCES = upsd.c user.c conf.c netssl.c sstate.c desc.c \ netget.c netmisc.c netlist.c netuser.c netset.c netinstcmd.c \ - wincompat.c wincompat.h \ - conf.h nut_ctype.h desc.h netcmds.h neterr.h netget.h netinstcmd.h \ - netlist.h netmisc.h netset.h netuser.h netssl.h sstate.h stype.h upsd.h \ + conf.h ctype.h desc.h netcmds.h neterr.h netget.h netinstcmd.h \ + netlist.h netmisc.h netset.h netuser.h ssl.h sstate.h stype.h upsd.h \ upstype.h user-data.h user.h sockdebug_SOURCES = sockdebug.c From ee3fd340ed25268faf278f28ce0747d498507c92 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 20 Oct 2010 07:23:20 +0000 Subject: [PATCH 005/218] Remove hard coded path to libws2_32 Fossil-ID: SVN r2585 --- drivers/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/Makefile.am b/drivers/Makefile.am index 88fc009227..bf08c5d24c 100644 --- a/drivers/Makefile.am +++ b/drivers/Makefile.am @@ -149,7 +149,7 @@ voltronic_ser_LDADD = $(LDADD) -lm # dummy dummy_ups_SOURCES = dummy-ups.c dummy_ups_CFLAGS = $(AM_CFLAGS) -I$(top_srcdir)/clients -dummy_ups_LDADD = $(LDADD_DRIVERS) ../clients/libupsclient.la /c/MinGW/lib/libws2_32.a +dummy_ups_LDADD = $(LDADD_DRIVERS) ../clients/libupsclient.la $(NETLIBS) if WITH_SSL dummy_ups_CFLAGS += $(LIBSSL_CFLAGS) dummy_ups_LDADD += $(LIBSSL_LIBS) From 06a056b914705b033004abf765e325189512bc68 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 20 Oct 2010 07:26:44 +0000 Subject: [PATCH 006/218] Fix errors appeared when merging from regular 2.4.3 to svn trunk Fossil-ID: SVN r2586 --- common/inet_aton.c | 39 +++++++++++++++++++++++++++++++++++++++ drivers/dstate.c | 2 +- include/common.h | 2 ++ server/upsd.c | 10 ++++++++-- 4 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 common/inet_aton.c diff --git a/common/inet_aton.c b/common/inet_aton.c new file mode 100644 index 0000000000..813ed80b93 --- /dev/null +++ b/common/inet_aton.c @@ -0,0 +1,39 @@ +/* inet_aton.c Ben Collver */ +/* This works if inet_addr exists like it does in CYGWIN */ +#include +#include +#ifndef WIN32 +#include +#include +#include +#else +#undef DATADIR +#include +#endif + +#ifndef INADDR_NONE +#define INADDR_NONE ((unsigned long)-1) +#endif + +/* Solaris 5.x defines extern inet_aton() in /usr/include/arpa/inet.h + However, inet_aton is not in the C library!? Solaris has inet_addr() + but does not define INADDR_NONE + */ + +#ifndef INADDR_NONE +#define INADDR_NONE -1 +#endif + +int inet_aton(const char *cp, struct in_addr *addr) +{ + unsigned long retval; + + if (addr == NULL || cp == NULL) + return 0; + retval = inet_addr(cp); + if (retval == INADDR_NONE) { + return 0; + } + addr->s_addr = retval; + return 1; +} diff --git a/drivers/dstate.c b/drivers/dstate.c index 5429efa75e..5e41a4a251 100644 --- a/drivers/dstate.c +++ b/drivers/dstate.c @@ -789,7 +789,7 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) DWORD ret; int maxfd = 0, overrun = 0; HANDLE rfds[32]; - struct conn_t *conn; + conn_t *conn; struct timeval now; /* diff --git a/include/common.h b/include/common.h index f686b3d61a..5ef8d2f732 100644 --- a/include/common.h +++ b/include/common.h @@ -175,6 +175,8 @@ extern int optind; #define LOG_CRIT (5) #define LOG_PID (6) #define LOG_DAEMON (7) + +#define closelog() #endif #endif /* NUT_COMMON_H */ diff --git a/server/upsd.c b/server/upsd.c index 5d8ca10f01..4bcbc6e2e5 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -197,8 +197,14 @@ static void setuptcp(stype_t *server) atexit(WSACleanup); #endif -#ifndef WIN32 +#ifndef HAVE_IPV6 + struct hostent *host; + struct sockaddr_in sockin; + int res, one = 1; + + memset(&sockin, '\0', sizeof(sockin)); host = gethostbyname(server->addr); +#ifndef WIN32 if (!host) { struct in_addr listenaddr; @@ -232,7 +238,6 @@ static void setuptcp(stype_t *server) fatal_with_errno(EXIT_FAILURE, "setsockopt(SO_REUSEADDR)"); } - memset(&sockin, '\0', sizeof(sockin)); sockin.sin_family = AF_INET; sockin.sin_port = htons(atoi(server->port)); @@ -779,6 +784,7 @@ static void mainloop(void) int i, ret, nfds = 0; #else DWORD ret; + int nfds = 0; #endif upstype_t *ups; From 56bae5ab9e40597e5a22180c3057f4d448002f3f Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 20 Oct 2010 07:45:10 +0000 Subject: [PATCH 007/218] Set again eol property to native Fossil-ID: SVN r2587 --- common/wincompat.c | 102 ++++++++++++++++++++++---------------------- include/wincompat.h | 94 ++++++++++++++++++++-------------------- 2 files changed, 98 insertions(+), 98 deletions(-) diff --git a/common/wincompat.c b/common/wincompat.c index 14f9b20b4d..8a0a8178af 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -1,51 +1,51 @@ -/* - - Copyright (C) 1999 Russell Kroll - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ -#ifdef WIN32 -#include "common.h" -#undef DATADIR -#include - -extern int errno; - - -int sktconnect(int fh, struct sockaddr * name, int len) -{ - int ret = connect(fh,name,len); - errno = WSAGetLastError(); - return ret; -} -int sktread(int fh, char *buf, int size) -{ - int ret = recv(fh,buf,size,0); - errno = WSAGetLastError(); - return ret; -} -int sktwrite(int fh, char *buf, int size) -{ - int ret = send(fh,buf,size,0); - errno = WSAGetLastError(); - return ret; -} -int sktclose(int fh) -{ - int ret = closesocket((SOCKET)fh); - errno = WSAGetLastError(); - return ret; -} -#endif +/* + + Copyright (C) 1999 Russell Kroll + + 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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ +#ifdef WIN32 +#include "common.h" +#undef DATADIR +#include + +extern int errno; + + +int sktconnect(int fh, struct sockaddr * name, int len) +{ + int ret = connect(fh,name,len); + errno = WSAGetLastError(); + return ret; +} +int sktread(int fh, char *buf, int size) +{ + int ret = recv(fh,buf,size,0); + errno = WSAGetLastError(); + return ret; +} +int sktwrite(int fh, char *buf, int size) +{ + int ret = send(fh,buf,size,0); + errno = WSAGetLastError(); + return ret; +} +int sktclose(int fh) +{ + int ret = closesocket((SOCKET)fh); + errno = WSAGetLastError(); + return ret; +} +#endif diff --git a/include/wincompat.h b/include/wincompat.h index 4d08418caa..a9b5216325 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -1,47 +1,47 @@ -#ifndef NUT_WINCOMPAT_H -#define NUT_WINCOMPAT_H - -/* - Copyright (C) 2001 Andrew Delpha (delpha@computer.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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - -/* -This header is provided to make the map the windows system calls to be compatable with -the NUT code. Windows defines a lot of system functions with a _(name) like snprintf -Also, the error codes from the networking code are not put into errno as nut expects. -For convience I've provided wrapper functions which do this. -*/ - -/* This is conditional because read/write are generic in unix, and this will make them network specific */ -#ifdef W32_NETWORK_CALL_OVERRIDE -#define close(h) sktclose(h) -#define read(h,b,s) sktread(h,b,s) -#define write(h,b,s) sktwrite( h ,(char *) b , s ) -#define connect(h,n,l) sktconnect(h,n,l) -#endif - -#define strcasecmp(a,b) _stricmp(a,b) -#define snprintf _snprintf -#define vsnprintf _vsnprintf - -int sktconnect(int fh, struct sockaddr * name, int len); -int sktread(int fh, char *buf, int size); -int sktwrite(int fh, char *buf, int size); -int sktclose(int fh); - -#endif +#ifndef NUT_WINCOMPAT_H +#define NUT_WINCOMPAT_H + +/* + Copyright (C) 2001 Andrew Delpha (delpha@computer.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., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + + +/* +This header is provided to make the map the windows system calls to be compatable with +the NUT code. Windows defines a lot of system functions with a _(name) like snprintf +Also, the error codes from the networking code are not put into errno as nut expects. +For convience I've provided wrapper functions which do this. +*/ + +/* This is conditional because read/write are generic in unix, and this will make them network specific */ +#ifdef W32_NETWORK_CALL_OVERRIDE +#define close(h) sktclose(h) +#define read(h,b,s) sktread(h,b,s) +#define write(h,b,s) sktwrite( h ,(char *) b , s ) +#define connect(h,n,l) sktconnect(h,n,l) +#endif + +#define strcasecmp(a,b) _stricmp(a,b) +#define snprintf _snprintf +#define vsnprintf _vsnprintf + +int sktconnect(int fh, struct sockaddr * name, int len); +int sktread(int fh, char *buf, int size); +int sktwrite(int fh, char *buf, int size); +int sktclose(int fh); + +#endif From f4bbae151b59d4a9c0c0e44b4ff588c953c27d68 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 20 Oct 2010 09:13:38 +0000 Subject: [PATCH 008/218] Remove hack from confpath function. You have to declare a NUT_CONFPATH environnement variable in your Windows settings Fossil-ID: SVN r2588 --- common/common.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/common/common.c b/common/common.c index c2023d17aa..16a9038469 100644 --- a/common/common.c +++ b/common/common.c @@ -389,12 +389,7 @@ const char * confpath(void) const char * path; if ((path = getenv("NUT_CONFPATH")) == NULL) -#ifndef WIN32 path = CONFPATH; -#else -/*FIXME*/ - path = "./conf"; -#endif return path; } From 035bcf1f418daf051eb587f4d59db119f972bcef Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 20 Oct 2010 09:25:59 +0000 Subject: [PATCH 009/218] Remove unneeded debug printf Fossil-ID: SVN r2589 --- server/sstate.c | 3 +-- server/upsd.c | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/server/sstate.c b/server/sstate.c index b0a791c7d8..71ce10a3e0 100644 --- a/server/sstate.c +++ b/server/sstate.c @@ -160,7 +160,7 @@ static void sendping(upstype_t *ups) result = WriteFile (ups->sock_fd,cmd,strlen(cmd),&bytesWritten,NULL); if( result == 0 ) { - printf("Write failed\n"); + /* Write failed */ ret = 0; } else { @@ -252,7 +252,6 @@ HANDLE sstate_connect(upstype_t *ups) snprintf(pipename, sizeof(pipename), "\\\\.\\pipe\\%s", ups->fn); - printf("Test %s availability\n",pipename); result = WaitNamedPipe(pipename,NMPWAIT_USE_DEFAULT_WAIT); if( result == FALSE ) { diff --git a/server/upsd.c b/server/upsd.c index 4bcbc6e2e5..6face44ca2 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -996,8 +996,6 @@ static void mainloop(void) ret = WaitForMultipleObjects(nfds,fds,FALSE,2000); - printf("WaitForMultipleObjects return %d\n",ret); - if (ret == WAIT_TIMEOUT) { upsdebugx(2, "%s: no data available", __func__); return; From 8bf7767f0341fa2926570912f90dc38eb883a1bb Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 20 Oct 2010 12:33:19 +0000 Subject: [PATCH 010/218] Better handling of multiple connection on drivers Fossil-ID: SVN r2590 --- drivers/dstate.c | 63 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 16 deletions(-) diff --git a/drivers/dstate.c b/drivers/dstate.c index 5e41a4a251..96b0bf4173 100644 --- a/drivers/dstate.c +++ b/drivers/dstate.c @@ -46,6 +46,7 @@ static HANDLE sockfd = INVALID_HANDLE_VALUE; static int stale = 1, alarm_active = 0; ignorelb = 0; static OVERLAPPED connect_overlapped; + static char *pipename = NULL; #endif static char status_buf[ST_MAX_VALUE_LEN], alarm_buf[ST_MAX_VALUE_LEN]; static st_tree_t *dtree_root = NULL; @@ -185,8 +186,8 @@ static HANDLE sock_open(const char *fn) fatal_with_errno(EXIT_FAILURE, "Can't create event"); } + /* Wait for a connection */ BOOL ret; - ResetEvent(connect_overlapped.hEvent); ret = ConnectNamedPipe(fd,&connect_overlapped); #endif @@ -201,11 +202,11 @@ static void sock_disconnect(conn_t *conn) close(conn->fd); #else /* FIXME not sure if this is the right way to close a connection */ - DisconnectNamedPipe(conn->fd); if( conn->read_overlapped.hEvent != INVALID_HANDLE_VALUE) { CloseHandle(conn->read_overlapped.hEvent); conn->read_overlapped.hEvent = INVALID_HANDLE_VALUE; } + DisconnectNamedPipe(conn->fd); #endif pconf_finish(&conn->ctx); @@ -254,12 +255,11 @@ static void send_to_all(const char *fmt, ...) result = WriteFile (conn->fd,buf,strlen(buf),&bytesWritten,NULL); if( result == 0 ) { - printf("Write failed, disconnecting\n"); + upsdebugx(2, "write failed on %d, disconnecting", (int)conn->fd); sock_disconnect(conn); - return; + continue; } else { - //printf("Write %d bytes successfully\n",(int)bytesWritten); ret = (int)bytesWritten; } @@ -372,10 +372,46 @@ static void sock_connect(HANDLE sock) upsdebugx(3, "new connection on fd %d", fd); #else + /* We have detected a connection on the opened pipe. So we start by saving its handle and cretae a new pipe for future connection */ conn = xcalloc(1, sizeof(*conn)); conn->fd = sock; - /* Start a read operation so we could wait on the event associated to this IO */ + /* sockfd is the handle of the connection pending pipe */ + sockfd = CreateNamedPipe( + pipename, // pipe name + PIPE_ACCESS_DUPLEX | // read/write access + FILE_FLAG_OVERLAPPED, // async IO + PIPE_TYPE_BYTE | + PIPE_READMODE_BYTE | + PIPE_WAIT, + PIPE_UNLIMITED_INSTANCES, // max. instances + ST_SOCK_BUF_LEN, // output buffer size + ST_SOCK_BUF_LEN, // input buffer size + 0, // client time-out + NULL); // FIXME: default security attribute + + if (sockfd == INVALID_HANDLE_VALUE) { + fatal_with_errno(EXIT_FAILURE, "Can't create a state socket (windows named pipe)"); + } + + /* Prepare a new async wait for a connection on the pipe */ + CloseHandle(connect_overlapped.hEvent); + memset(&connect_overlapped,0,sizeof(connect_overlapped)); + connect_overlapped.hEvent = CreateEvent(NULL, /*Security*/ + FALSE, /* auto-reset*/ + FALSE, /* inital state = non signaled*/ + NULL /* no name*/); + if(connect_overlapped.hEvent == NULL ) { + printf("CreateEvent failed.\n"); + fatal_with_errno(EXIT_FAILURE, "Can't create event"); + } + + /* Wait for a connection */ + BOOL ret; + ret = ConnectNamedPipe(sockfd,&connect_overlapped); + + /* A new pipe waiting for new client connection has been created. We could manage the current connection now */ + /* Start a read operation on the newly connected pipe so we could wait on the event associated to this IO */ memset(&conn->read_overlapped,0,sizeof(conn->read_overlapped)); memset(conn->buf,0,sizeof(conn->buf)); conn->read_overlapped.hEvent = CreateEvent(NULL, /*Security*/ @@ -389,11 +425,6 @@ static void sock_connect(HANDLE sock) ReadFile (conn->fd,conn->buf,sizeof(conn->buf)-1,&(conn->bytesRead),&(conn->read_overlapped)); /* -1 to be sure to have a trailling 0 */ - /* Prepare an async wait on a connection on the pipe */ - BOOL ret; - ret = ConnectNamedPipe(sockfd,&connect_overlapped); - - pconf_init(&conn->ctx, NULL); if (connhead) { @@ -688,6 +719,7 @@ void dstate_init(const char *prog, const char *devname) } else { snprintf(sockname, sizeof(sockname), "\\\\.\\pipe\\%s", prog); } + pipename = strdup(sockname); #endif sockfd = sock_open(sockname); @@ -821,14 +853,14 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) rfds[maxfd] = conn->read_overlapped.hEvent; maxfd++; } -/* Add the connect event */ + /* Add the connect event */ rfds[maxfd] = connect_overlapped.hEvent; maxfd++; ret = WaitForMultipleObjects( maxfd, // number of objects in array rfds, // array of objects - FALSE, // FIXME: ?wait for any object? + FALSE, // wait for any object timeout.tv_sec); // five-second wait if (ret == WAIT_TIMEOUT) { @@ -847,14 +879,13 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) } } -/* take care of the signaled object */ + /* the connection event handle has been signaled */ if (rfds[ret] == connect_overlapped.hEvent) { - printf("Connection detected\n"); sock_connect(sockfd); } + /* one of the read event handle has been signaled */ else { if( conn != NULL) { - printf("Pending read on %d\n",(int)rfds[ret-WAIT_OBJECT_0]); sock_read(conn); } } From ca609ba8a15ce023d8761997a468a5a10045b27e Mon Sep 17 00:00:00 2001 From: Arnaud Quette Date: Wed, 20 Oct 2010 15:03:36 +0000 Subject: [PATCH 011/218] Rename DATADIR to NUT_DATADIR to avoid conflict with MinGW objidl.h header Fossil-ID: SVN r2595 --- clients/upsc.c | 1 - clients/upsclient.c | 1 - clients/upscmd.c | 1 - clients/upslog.c | 1 - clients/upsmon.c | 1 - clients/upsrw.c | 1 - clients/upssched.c | 1 - common/common.c | 1 - common/inet_aton.c | 1 - common/wincompat.c | 1 - configure.in | 4 ++-- drivers/dstate.h | 1 - drivers/libusb.c | 3 --- drivers/serial.h | 1 - drivers/usb-common.c | 3 --- include/common.h | 1 - server/ssl.c | 1 - server/sstate.c | 1 - server/upsd.c | 9 ++------- server/upsd.h | 1 - server/user.c | 1 - 21 files changed, 4 insertions(+), 32 deletions(-) diff --git a/clients/upsc.c b/clients/upsc.c index b65814b0d1..6ec622bb2d 100644 --- a/clients/upsc.c +++ b/clients/upsc.c @@ -26,7 +26,6 @@ #include #include #else -#undef DATADIR #include #endif diff --git a/clients/upsclient.c b/clients/upsclient.c index 0e2d38efa2..3713dd63fc 100644 --- a/clients/upsclient.c +++ b/clients/upsclient.c @@ -40,7 +40,6 @@ #include #include #else -#undef DATADIR #include #include #include diff --git a/clients/upscmd.c b/clients/upscmd.c index 097fae7660..e7b5d5e291 100644 --- a/clients/upscmd.c +++ b/clients/upscmd.c @@ -27,7 +27,6 @@ #include #include #else -#undef DATADIR #include #endif diff --git a/clients/upslog.c b/clients/upslog.c index 6778f3134a..57d199ffe2 100644 --- a/clients/upslog.c +++ b/clients/upslog.c @@ -40,7 +40,6 @@ #include "upslog.h" #ifdef WIN32 -#undef DATADIR #include #define sleep(n) Sleep(1000 * n) #endif diff --git a/clients/upsmon.c b/clients/upsmon.c index dc2b7716df..4abd4035d2 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -26,7 +26,6 @@ #include #include #else -#undef DATADIR #include #define sleep(n) Sleep(1000 * n) #endif diff --git a/clients/upsrw.c b/clients/upsrw.c index c374ce71fb..281b77dd7e 100644 --- a/clients/upsrw.c +++ b/clients/upsrw.c @@ -26,7 +26,6 @@ #include #include #else -#undef DATADIR #include #endif diff --git a/clients/upssched.c b/clients/upssched.c index fc026a568d..95f0c95325 100644 --- a/clients/upssched.c +++ b/clients/upssched.c @@ -48,7 +48,6 @@ #include #include #else -#undef DATADIR #include #include #endif diff --git a/common/common.c b/common/common.c index 16a9038469..794ba341e3 100644 --- a/common/common.c +++ b/common/common.c @@ -25,7 +25,6 @@ #include #include #else -#undef DATADIR #include #endif diff --git a/common/inet_aton.c b/common/inet_aton.c index 813ed80b93..196ce1b9ee 100644 --- a/common/inet_aton.c +++ b/common/inet_aton.c @@ -7,7 +7,6 @@ #include #include #else -#undef DATADIR #include #endif diff --git a/common/wincompat.c b/common/wincompat.c index 8a0a8178af..940df84d35 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -18,7 +18,6 @@ */ #ifdef WIN32 #include "common.h" -#undef DATADIR #include extern int errno; diff --git a/configure.in b/configure.in index 2b6934fcf1..5f2780b6a9 100644 --- a/configure.in +++ b/configure.in @@ -1110,8 +1110,8 @@ dnl same for datadir conftemp="${datadir}" eval conftemp=\"${conftemp}\" eval conftemp=\"${conftemp}\" -DATADIR=${conftemp} -AC_DEFINE_UNQUOTED(DATADIR, "${conftemp}", [Default path for data files]) +NUT_DATADIR=${conftemp} +AC_DEFINE_UNQUOTED(NUT_DATADIR, "${conftemp}", [Default path for data files]) dnl same for bindir conftemp="${bindir}" diff --git a/drivers/dstate.h b/drivers/dstate.h index 4c3de5dcc0..ae07cdc9ab 100644 --- a/drivers/dstate.h +++ b/drivers/dstate.h @@ -23,7 +23,6 @@ #define DSTATE_H_SEEN 1 #ifdef WIN32 -#undef DATADIR #include #endif diff --git a/drivers/libusb.c b/drivers/libusb.c index 3d5c920029..9484969759 100644 --- a/drivers/libusb.c +++ b/drivers/libusb.c @@ -30,9 +30,6 @@ #include "config.h" /* for HAVE_USB_DETACH_KERNEL_DRIVER_NP flag */ #include "common.h" /* for xmalloc, upsdebugx prototypes */ -#ifdef WIN32 -#undef DATADIR -#endif #include "usb-common.h" #include "libusb.h" diff --git a/drivers/serial.h b/drivers/serial.h index d020d2256b..b8af5cc889 100644 --- a/drivers/serial.h +++ b/drivers/serial.h @@ -48,7 +48,6 @@ int ser_flush_io(int fd); int ser_close(int fd, const char *port); #else -#undef DATADIR #include HANDLE ser_open(const char *port); int ser_set_speed(HANDLE fd, const char *port, speed_t speed); diff --git a/drivers/usb-common.c b/drivers/usb-common.c index ae10af6846..4fc88b6885 100644 --- a/drivers/usb-common.c +++ b/drivers/usb-common.c @@ -18,9 +18,6 @@ */ #include "common.h" -#ifdef WIN32 -#undef DATADIR -#endif #include "usb-common.h" int is_usb_device_supported(usb_device_id_t *usb_device_id_list, USBDevice_t *device) diff --git a/include/common.h b/include/common.h index 5ef8d2f732..a57c66650c 100644 --- a/include/common.h +++ b/include/common.h @@ -39,7 +39,6 @@ #ifndef WIN32 #include #else -#undef DATADIR #include #endif #include diff --git a/server/ssl.c b/server/ssl.c index aa52a2662a..92c514c738 100644 --- a/server/ssl.c +++ b/server/ssl.c @@ -28,7 +28,6 @@ #include #include #else -#undef DATADIR #include #endif diff --git a/server/sstate.c b/server/sstate.c index 71ce10a3e0..627e8d7c75 100644 --- a/server/sstate.c +++ b/server/sstate.c @@ -36,7 +36,6 @@ #include #include #else -#undef DATADIR #include #endif diff --git a/server/upsd.c b/server/upsd.c index 6face44ca2..1cbcc69ac4 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -33,7 +33,6 @@ #include #include #else -#undef DATADIR #include #include /* This override network system calls to adapt to Windows specificity */ @@ -68,7 +67,7 @@ int deny_severity = LOG_WARNING; /* preloaded to STATEPATH in main, can be overridden via upsd.conf */ char *statepath = NULL; - /* preloaded to DATADIR in main, can be overridden via upsd.conf */ + /* preloaded to NUT_DATADIR in main, can be overridden via upsd.conf */ char *datapath = NULL; /* everything else */ @@ -1113,11 +1112,7 @@ int main(int argc, char **argv) /* yes, xstrdup - the conf handlers call free on this later */ statepath = xstrdup(dflt_statepath()); -#ifndef WIN32 - datapath = xstrdup(DATADIR); -#else - datapath = xstrdup("c:"); -#endif + datapath = xstrdup(NUT_DATADIR); /* set up some things for later */ snprintf(pidfn, sizeof(pidfn), "%s/%s.pid", altpidpath(), progname); diff --git a/server/upsd.h b/server/upsd.h index d7ee65cd3e..46211fc291 100644 --- a/server/upsd.h +++ b/server/upsd.h @@ -36,7 +36,6 @@ #include #include #else -#undef DATADIR #include #endif diff --git a/server/user.c b/server/user.c index f225665aef..e50cf690c6 100644 --- a/server/user.c +++ b/server/user.c @@ -23,7 +23,6 @@ #include #include #else -#undef DATADIR #include #endif From 5b7d7ad04006f1ae257980cadc372df937a1aa7f Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 28 Oct 2010 14:26:31 +0000 Subject: [PATCH 012/218] Map syslog to Windows's event log. Fossil-ID: SVN r2641 --- common/common.c | 19 ++++++++----------- common/wincompat.c | 38 ++++++++++++++++++++++++++++++++++++++ common/winevent.mc | 28 ++++++++++++++++++++++++++++ include/common.h | 20 ++++++++++---------- include/wincompat.h | 1 + 5 files changed, 85 insertions(+), 21 deletions(-) create mode 100644 common/winevent.mc diff --git a/common/common.c b/common/common.c index 794ba341e3..b89e6be2ca 100644 --- a/common/common.c +++ b/common/common.c @@ -26,6 +26,7 @@ #include #else #include +#include #endif /* the reason we define UPS_VERSION as a static string, rather than a @@ -113,8 +114,9 @@ void open_syslog(const char *progname) upslogx(LOG_INFO, "Changing log level threshold not possible"); break; #endif - } -#endif //WIN32 +#else + EventLogName = progname; +#endif } /* close ttys and become a daemon */ @@ -151,8 +153,11 @@ void background(void) #ifdef HAVE_SETSID setsid(); /* make a new session to dodge signals */ #endif -#endif +#else // WIN32 + xbit_set(&upslog_flags, UPSLOG_SYSLOG); + xbit_clear(&upslog_flags, UPSLOG_STDERR); upslogx(LOG_INFO, "Startup successful"); +#endif } /* do this here to keep pwd/grp stuff out of the main files */ @@ -343,12 +348,8 @@ static void vupslog(int priority, const char *fmt, va_list va, int use_strerror) ret = vsnprintf(buf, sizeof(buf), fmt, va); if ((ret < 0) || (ret >= (int) sizeof(buf))) -#ifndef WIN32 syslog(LOG_WARNING, "vupslog: vsnprintf needed more than %d bytes", LARGEBUF); -#else - fprintf(stderr,"vupslog: vsnprintf needed more than %d bytes",LARGEBUF); -#endif if (use_strerror) @@ -375,11 +376,7 @@ static void vupslog(int priority, const char *fmt, va_list va, int use_strerror) if (xbit_test(upslog_flags, UPSLOG_STDERR)) fprintf(stderr, "%s\n", buf); if (xbit_test(upslog_flags, UPSLOG_SYSLOG)) -#ifndef WIN32 syslog(priority, "%s", buf); -#else - fprintf(stderr, "%s\n", buf); -#endif } /* Return the default path for the directory containing configuration files */ diff --git a/common/wincompat.c b/common/wincompat.c index 940df84d35..4dd3ef88d3 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -19,9 +19,12 @@ #ifdef WIN32 #include "common.h" #include +#include +#include "winevent.h" extern int errno; +const char * EventLogName = NULL; int sktconnect(int fh, struct sockaddr * name, int len) { @@ -47,4 +50,39 @@ int sktclose(int fh) errno = WSAGetLastError(); return ret; } + +void syslog(int priority, const char *fmt, ...) +{ + LPCTSTR strings[2]; + char buf[LARGEBUF]; + va_list ap; + HANDLE EventSource; + + if( EventLogName == NULL ) { + return; + } + va_start(ap,fmt); + vsnprintf(buf, sizeof(buf), fmt, ap); + va_end(ap); + + strings[0] = buf; + strings[1] = EventLogName; + + EventSource = RegisterEventSource(NULL, EventLogName); + + if( NULL != EventSource ) { + ReportEvent( EventSource, // event log handle + priority, // event type + 0, // event category + SVC_ERROR, // event identifier + NULL, // no security identifier + 2, // size of string array + 0, // no binary data + strings, // array of string + NULL); // no binary data + + DeregisterEventSource(EventSource); + + } +} #endif diff --git a/common/winevent.mc b/common/winevent.mc new file mode 100644 index 0000000000..90d0c55724 --- /dev/null +++ b/common/winevent.mc @@ -0,0 +1,28 @@ +MessageIdTypedef=DWORD + +SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS + Informational=0x1:STATUS_SEVERITY_INFORMATIONAL + Warning=0x2:STATUS_SEVERITY_WARNING + Error=0x3:STATUS_SEVERITY_ERROR + ) + + +FacilityNames=(System=0x0:FACILITY_SYSTEM + Runtime=0x2:FACILITY_RUNTIME + Stubs=0x3:FACILITY_STUBS + Io=0x4:FACILITY_IO_ERROR_CODE +) + +LanguageNames=(English=0x409:MSG00409) + +; // The following are message definitions. + +MessageId=0x1 +Severity=Error +Facility=Runtime +SymbolicName=SVC_ERROR +Language=English +(%2):(%1). +. + + diff --git a/include/common.h b/include/common.h index a57c66650c..c4e01f418c 100644 --- a/include/common.h +++ b/include/common.h @@ -164,18 +164,18 @@ extern int optind; /* *INDENT-ON* */ #ifdef WIN32 -/*FIXME*/ -#define LOG_ERR (0) -#define LOG_INFO (1) -#define LOG_DEBUG (2) -#define LOG_NOTICE (3) -#define LOG_ALERT (4) -#define LOG_WARNING (5) -#define LOG_CRIT (5) -#define LOG_PID (6) -#define LOG_DAEMON (7) +/* FIXME : this might not be the optimal mapping between syslog ans ReportEvent*/ +#define LOG_ERR EVENTLOG_ERROR_TYPE +#define LOG_INFO EVENTLOG_INFORMATION_TYPE +#define LOG_DEBUG EVENTLOG_WARNING_TYPE +#define LOG_NOTICE EVENTLOG_INFORMATION_TYPE +#define LOG_ALERT EVENTLOG_ERROR_TYPE +#define LOG_WARNING EVENTLOG_WARNING_TYPE +#define LOG_CRIT EVENTLOG_ERROR_TYPE #define closelog() + +#define UPSD_SVCNAME TEXT("NUT data server") #endif #endif /* NUT_COMMON_H */ diff --git a/include/wincompat.h b/include/wincompat.h index a9b5216325..b75f2d9ecd 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -44,4 +44,5 @@ int sktread(int fh, char *buf, int size); int sktwrite(int fh, char *buf, int size); int sktclose(int fh); +extern const char * EventLogName; #endif From 315995fa5fcc7737875c3c9f8a30f6779a6ee3d3 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 28 Oct 2010 14:49:57 +0000 Subject: [PATCH 013/218] Remove C++ style comments Fossil-ID: SVN r2642 --- common/common.c | 2 +- common/wincompat.c | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/common/common.c b/common/common.c index b89e6be2ca..bf5f844d5c 100644 --- a/common/common.c +++ b/common/common.c @@ -153,7 +153,7 @@ void background(void) #ifdef HAVE_SETSID setsid(); /* make a new session to dodge signals */ #endif -#else // WIN32 +#else /* WIN32 */ xbit_set(&upslog_flags, UPSLOG_SYSLOG); xbit_clear(&upslog_flags, UPSLOG_STDERR); upslogx(LOG_INFO, "Startup successful"); diff --git a/common/wincompat.c b/common/wincompat.c index 4dd3ef88d3..89264cca33 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -71,15 +71,15 @@ void syslog(int priority, const char *fmt, ...) EventSource = RegisterEventSource(NULL, EventLogName); if( NULL != EventSource ) { - ReportEvent( EventSource, // event log handle - priority, // event type - 0, // event category - SVC_ERROR, // event identifier - NULL, // no security identifier - 2, // size of string array - 0, // no binary data - strings, // array of string - NULL); // no binary data + ReportEvent( EventSource, /* event log handle */ + priority, /* event type */ + 0, /* event category */ + SVC_ERROR, /* event identifier */ + NULL, /* no security identifier */ + 2, /* size of string array */ + 0, /* no binary data */ + strings, /* array of string */ + NULL); /* no binary data */ DeregisterEventSource(EventSource); From 0572127764b7c5f7e4ab061683c627cd7c451858 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 28 Oct 2010 14:59:06 +0000 Subject: [PATCH 014/218] upsd behaves like a service by default now Fossil-ID: SVN r2644 --- server/upsd.c | 264 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 242 insertions(+), 22 deletions(-) diff --git a/server/upsd.c b/server/upsd.c index 1cbcc69ac4..0b0c169764 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -38,6 +38,9 @@ /* This override network system calls to adapt to Windows specificity */ #define W32_NETWORK_CALL_OVERRIDE #include "wincompat.h" +#include +static int install_flag = 0; +static int noservice_flag = 0; #endif #include "user.h" @@ -97,6 +100,9 @@ typedef struct { static struct pollfd *fds = NULL; #else static HANDLE *fds = NULL; +static HANDLE svc_stop = NULL; +SERVICE_STATUS SvcStatus; +SERVICE_STATUS_HANDLE SvcStatusHandle; #endif static handler_t *handler = NULL; @@ -193,7 +199,7 @@ static void setuptcp(stype_t *server) #ifdef WIN32 WSADATA WSAdata; WSAStartup(2,&WSAdata); - atexit(WSACleanup); + atexit((void(*)(void))WSACleanup); #endif #ifndef HAVE_IPV6 @@ -262,7 +268,6 @@ static void setuptcp(stype_t *server) /* Associate socket event to the socket via its Event object */ WSAEventSelect( server->sock_fd, server->Event, FD_ACCEPT ); - //WSAEventSelect( server->sock_fd, server->Event, FD_ACCEPT | FD_CLOSE); #endif if (listen(server->sock_fd, 16)) { @@ -776,6 +781,15 @@ void poll_reload(void) #endif } +static void set_exit_flag(int sig) +{ + exit_flag = sig; +} +#ifdef WIN32 +void ReportSvcStatus( DWORD CurrentState, + DWORD Win32ExitCode, + DWORD WaitHint); +#endif /* service requests and check on new data */ static void mainloop(void) { @@ -942,7 +956,6 @@ static void mainloop(void) } if( ups->sock_fd != INVALID_HANDLE_VALUE) { - //fds[nfds] = ups->sock_fd; fds[nfds] = ups->read_overlapped.hEvent; handler[nfds].type = DRIVER; @@ -991,6 +1004,12 @@ static void mainloop(void) nfds++; } + /* Add SCM event handler in service mode*/ + if( !noservice_flag ) { + fds[nfds] = svc_stop; + nfds++; + } + upsdebugx(2, "%s: wait for %d filedescriptors", __func__, nfds); ret = WaitForMultipleObjects(nfds,fds,FALSE,2000); @@ -1007,21 +1026,26 @@ static void mainloop(void) return; } - switch(handler[ret].type) { - case DRIVER: - sstate_readline((upstype_t *)handler[ret].data); - break; - case CLIENT: - client_readline((ctype_t *)handler[ret].data); - break; - case SERVER: - client_connect((stype_t *)handler[ret].data); - break; - default: - upsdebugx(2, "%s: has data available", __func__); - break; + if( !noservice_flag && fds[ret] == svc_stop ) { + ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); + set_exit_flag(1); + } + else { + switch(handler[ret].type) { + case DRIVER: + sstate_readline((upstype_t *)handler[ret].data); + break; + case CLIENT: + client_readline((ctype_t *)handler[ret].data); + break; + case SERVER: + client_connect((stype_t *)handler[ret].data); + break; + default: + upsdebugx(2, "%s: has data available", __func__); + break; + } } - #endif } @@ -1043,19 +1067,22 @@ static void help(const char *progname) printf(" -V display the version of this software\n"); printf(" -4 IPv4 only\n"); printf(" -6 IPv6 only\n"); +#endif +#ifdef WIN32 + printf(" -I Install service\n"); + printf(" -N Do not start as a service (for debug purpose)\n"); +#endif exit(EXIT_SUCCESS); } +#ifndef WIN32 static void set_reload_flag(int sig) { reload_flag = 1; } +#endif -static void set_exit_flag(int sig) -{ - exit_flag = sig; -} static void setup_signals(void) { @@ -1101,13 +1128,135 @@ void check_perms(const char *fn) #endif } +#ifdef WIN32 +void SvcInstall() +{ + SC_HANDLE SCManager; + SC_HANDLE Service; + TCHAR Path[MAX_PATH]; + + if( !GetModuleFileName( NULL, Path, MAX_PATH ) ) { + printf("Cannot install service (%d)\n", GetLastError()); + return; + } + + SCManager = OpenSCManager( + NULL, /* local computer */ + NULL, /* ServiceActive database */ + SC_MANAGER_ALL_ACCESS); /* full access rights */ + + if (NULL == SCManager) { + upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); + return; + } + + Service = CreateService( + SCManager, /* SCM database */ + UPSD_SVCNAME, /* name of service */ + UPSD_SVCNAME, /* service name to display */ + SERVICE_ALL_ACCESS, /* desired access */ + SERVICE_WIN32_OWN_PROCESS, /* service type */ + SERVICE_DEMAND_START, /* start type */ + SERVICE_ERROR_NORMAL, /* error control type */ + Path, /* path to service binary */ + NULL, /* no load ordering group */ + NULL, /* no tag identifier */ + NULL, /* no dependencies */ + NULL, /* LocalSystem account */ + NULL); /* no password */ + + if (Service == NULL) { + upslogx(LOG_ERR, "CreateService failed (%d)\n", (int)GetLastError()); + CloseServiceHandle(SCManager); + return; + } + else { + upslogx(LOG_INFO, "Service installed successfully\n"); + } + + CloseServiceHandle(Service); + CloseServiceHandle(SCManager); + +} + +void ReportSvcStatus( DWORD CurrentState, + DWORD Win32ExitCode, + DWORD WaitHint) +{ + static DWORD CheckPoint = 1; + + SvcStatus.dwCurrentState = CurrentState; + SvcStatus.dwWin32ExitCode = Win32ExitCode; + SvcStatus.dwWaitHint = WaitHint; + + if (CurrentState == SERVICE_START_PENDING) + SvcStatus.dwControlsAccepted = 0; + else SvcStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN; + + if ( (CurrentState == SERVICE_RUNNING) || + (CurrentState == SERVICE_STOPPED) ) { + SvcStatus.dwCheckPoint = 0; + } + else { + SvcStatus.dwCheckPoint = CheckPoint++; + } + + /* report the status of the service to the SCM */ + SetServiceStatus( SvcStatusHandle, &SvcStatus ); +} + +void WINAPI SvcCtrlHandler( DWORD Ctrl ) +{ + switch(Ctrl) + { + case SERVICE_CONTROL_STOP: + case SERVICE_CONTROL_SHUTDOWN: + ReportSvcStatus(SERVICE_STOP_PENDING, NO_ERROR, 0); + + /* Signal the service to stop */ + SetEvent(svc_stop); + ReportSvcStatus(SvcStatus.dwCurrentState, NO_ERROR, 0); + + return; + + case SERVICE_CONTROL_INTERROGATE: + break; + + default: + break; + } +} + +void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) +#else /* NOT WIN32 */ int main(int argc, char **argv) +#endif { int i, cmd = 0; char *chroot_path = NULL; const char *user = RUN_AS_USER; struct passwd *new_uid = NULL; +#ifdef WIN32 + if( !noservice_flag) { + /* Register the handler function for the service */ + SvcStatusHandle = RegisterServiceCtrlHandler( + UPSD_SVCNAME, + SvcCtrlHandler); + + if( !SvcStatusHandle ) { + upslogx(LOG_ERR, "RegisterServiceCtrlHandler\n"); + return; + } + + SvcStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS; + SvcStatus.dwServiceSpecificExitCode = 0; + + /* Report initial status to the SCM */ + ReportSvcStatus( SERVICE_START_PENDING, NO_ERROR, 3000 ); + } +#endif + progname = xbasename(argv[0]); /* yes, xstrdup - the conf handlers call free on this later */ @@ -1119,7 +1268,7 @@ int main(int argc, char **argv) printf("Network UPS Tools %s %s\n", progname, UPS_VERSION); - while ((i = getopt(argc, argv, "+h46p:qr:i:fu:Vc:D")) != -1) { + while ((i = getopt(argc, argv, "+h46p:qr:i:fu:Vc:DNI")) != -1) { switch (i) { case 'h': help(progname); @@ -1164,6 +1313,11 @@ int main(int argc, char **argv) case '6': opt_af = AF_INET6; break; +#endif + case 'N': + case 'I': + /* nothing to do, already processed */ + break; default: help(progname); @@ -1256,6 +1410,23 @@ int main(int argc, char **argv) memset(pidfn, 0, sizeof(pidfn)); } +#ifdef WIN32 + if( !noservice_flag) { + svc_stop = CreateEvent( + NULL, /* default security attributes */ + TRUE, /* manual reset event */ + FALSE, /* not signaled */ + NULL); /*no name */ + + if( svc_stop == NULL ) { + ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); + return; + } + + ReportSvcStatus( SERVICE_RUNNING, NO_ERROR, 0); + } +#endif + while (!exit_flag) { mainloop(); } @@ -1263,6 +1434,55 @@ int main(int argc, char **argv) ssl_cleanup(); upslogx(LOG_INFO, "Signal %d: exiting", exit_flag); +#ifndef WIN32 return EXIT_SUCCESS; +#else + return; +#endif } +#ifdef WIN32 + +int main(int argc, char **argv) +{ + int i; + while ((i = getopt(argc, argv, "+h46p:qr:i:fu:Vc:DNI")) != -1) { + switch (i) { + case 'N': + noservice_flag = 1; + break; + case 'I': + install_flag = 1; + break; + default: + break; + } + } + + /* Set optind to 0 not 1 because we use GNU extension '+' in optstring */ + optind = 0; + + if( install_flag ) { + SvcInstall(); + return EXIT_SUCCESS; + } + if( !noservice_flag ) { + SERVICE_TABLE_ENTRY DispatchTable[] = + { + { UPSD_SVCNAME, (LPSERVICE_MAIN_FUNCTION) SvcMain }, + { NULL, NULL } + }; + + /* This call returns when the service has stopped */ + if (!StartServiceCtrlDispatcher( DispatchTable )) + { + upslogx(LOG_ERR, "StartServiceCtrlDispatcher failed (%d): exiting, try -N to avoid starting as a service", (int)GetLastError()); + } + } + else { + SvcMain(argc,argv); + } + + return EXIT_SUCCESS; +} +#endif From 0f955d12526be8f1f8c158ecf195d49953449def Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 29 Oct 2010 12:31:05 +0000 Subject: [PATCH 015/218] Add Uninstall facility to upsd Fossil-ID: SVN r2650 --- server/upsd.c | 64 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 50 insertions(+), 14 deletions(-) diff --git a/server/upsd.c b/server/upsd.c index 0b0c169764..6df3408ddb 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -39,7 +39,6 @@ #define W32_NETWORK_CALL_OVERRIDE #include "wincompat.h" #include -static int install_flag = 0; static int noservice_flag = 0; #endif @@ -1129,7 +1128,7 @@ void check_perms(const char *fn) } #ifdef WIN32 -void SvcInstall() +int SvcInstall() { SC_HANDLE SCManager; SC_HANDLE Service; @@ -1137,7 +1136,7 @@ void SvcInstall() if( !GetModuleFileName( NULL, Path, MAX_PATH ) ) { printf("Cannot install service (%d)\n", GetLastError()); - return; + return EXIT_FAILURE; } SCManager = OpenSCManager( @@ -1147,7 +1146,7 @@ void SvcInstall() if (NULL == SCManager) { upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); - return; + return EXIT_FAILURE; } Service = CreateService( @@ -1168,7 +1167,7 @@ void SvcInstall() if (Service == NULL) { upslogx(LOG_ERR, "CreateService failed (%d)\n", (int)GetLastError()); CloseServiceHandle(SCManager); - return; + return EXIT_FAILURE; } else { upslogx(LOG_INFO, "Service installed successfully\n"); @@ -1176,7 +1175,47 @@ void SvcInstall() CloseServiceHandle(Service); CloseServiceHandle(SCManager); - + + return EXIT_SUCCESS; +} + +int SvcUninstall() +{ + SC_HANDLE SCManager; + SC_HANDLE Service; + + SCManager = OpenSCManager( + NULL, /* local computer */ + NULL, /* ServicesActive database */ + SC_MANAGER_ALL_ACCESS); /* full access rights */ + + if (NULL == SCManager) { + upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); + return EXIT_FAILURE; + } + + Service = OpenService( + SCManager, /* SCM database */ + UPSD_SVCNAME, /* name of service */ + DELETE); /* need delete access */ + + if (Service == NULL) { + upslogx(LOG_ERR, "OpenService failed (%d)\n", (int)GetLastError()); + CloseServiceHandle(SCManager); + return EXIT_FAILURE; + } + + if (! DeleteService(Service) ) { + upslogx(LOG_ERR,"DeleteService failed (%d)\n", (int)GetLastError()); + } + else { + upslogx(LOG_ERR,"Service deleted successfully\n"); + } + + CloseServiceHandle(Service); + CloseServiceHandle(SCManager); + + return EXIT_SUCCESS; } void ReportSvcStatus( DWORD CurrentState, @@ -1268,7 +1307,7 @@ int main(int argc, char **argv) printf("Network UPS Tools %s %s\n", progname, UPS_VERSION); - while ((i = getopt(argc, argv, "+h46p:qr:i:fu:Vc:DNI")) != -1) { + while ((i = getopt(argc, argv, "+h46p:qr:i:fu:Vc:DN")) != -1) { switch (i) { case 'h': help(progname); @@ -1446,14 +1485,15 @@ int main(int argc, char **argv) int main(int argc, char **argv) { int i; - while ((i = getopt(argc, argv, "+h46p:qr:i:fu:Vc:DNI")) != -1) { + while ((i = getopt(argc, argv, "+h46p:qr:i:fu:Vc:DNIU")) != -1) { switch (i) { case 'N': noservice_flag = 1; break; case 'I': - install_flag = 1; - break; + return SvcInstall(); + case 'U': + return SvcUninstall(); default: break; } @@ -1462,10 +1502,6 @@ int main(int argc, char **argv) /* Set optind to 0 not 1 because we use GNU extension '+' in optstring */ optind = 0; - if( install_flag ) { - SvcInstall(); - return EXIT_SUCCESS; - } if( !noservice_flag ) { SERVICE_TABLE_ENTRY DispatchTable[] = { From 36ac62d35fa12cbaa108ae6f6d577f93c810c6b8 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 3 Nov 2010 15:02:07 +0000 Subject: [PATCH 016/218] Factorization of service code Fossil-ID: SVN r2658 --- common/common.c | 146 +++++++++++++++++++++++++++++++++++++++++++++ include/common.h | 12 ++++ server/upsd.c | 152 +---------------------------------------------- 3 files changed, 161 insertions(+), 149 deletions(-) diff --git a/common/common.c b/common/common.c index bf5f844d5c..42c1ea9593 100644 --- a/common/common.c +++ b/common/common.c @@ -41,6 +41,13 @@ const char *UPS_VERSION = NUT_VERSION_MACRO; int nut_log_level = 0; static int upslog_flags = UPSLOG_STDERR; +#ifdef WIN32 + int noservice_flag = 0; + HANDLE svc_stop = NULL; + SERVICE_STATUS SvcStatus; + SERVICE_STATUS_HANDLE SvcStatusHandle; +#endif + static void xbit_set(int *val, int flag) { *val |= flag; @@ -662,3 +669,142 @@ int select_write(const int fd, const void *buf, const size_t buflen, const long return 0; #endif } + +#ifdef WIN32 +int SvcInstall(const char * SvcName) +{ + SC_HANDLE SCManager; + SC_HANDLE Service; + TCHAR Path[MAX_PATH]; + + if( !GetModuleFileName( NULL, Path, MAX_PATH ) ) { + printf("Cannot install service (%d)\n", GetLastError()); + return EXIT_FAILURE; + } + + SCManager = OpenSCManager( + NULL, /* local computer */ + NULL, /* ServiceActive database */ + SC_MANAGER_ALL_ACCESS); /* full access rights */ + + if (NULL == SCManager) { + upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); + return EXIT_FAILURE; + } + + Service = CreateService( + SCManager, /* SCM database */ + SvcName, /* name of service */ + SvcName, /* service name to display */ + SERVICE_ALL_ACCESS, /* desired access */ + SERVICE_WIN32_OWN_PROCESS, /* service type */ + SERVICE_DEMAND_START, /* start type */ + SERVICE_ERROR_NORMAL, /* error control type */ + Path, /* path to service binary */ + NULL, /* no load ordering group */ + NULL, /* no tag identifier */ + NULL, /* no dependencies */ + NULL, /* LocalSystem account */ + NULL); /* no password */ + + if (Service == NULL) { + upslogx(LOG_ERR, "CreateService failed (%d)\n", (int)GetLastError()); + CloseServiceHandle(SCManager); + return EXIT_FAILURE; + } + else { + upslogx(LOG_INFO, "Service installed successfully\n"); + } + + CloseServiceHandle(Service); + CloseServiceHandle(SCManager); + + return EXIT_SUCCESS; +} + +int SvcUninstall(const char * SvcName) +{ + SC_HANDLE SCManager; + SC_HANDLE Service; + + SCManager = OpenSCManager( + NULL, /* local computer */ + NULL, /* ServicesActive database */ + SC_MANAGER_ALL_ACCESS); /* full access rights */ + + if (NULL == SCManager) { + upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); + return EXIT_FAILURE; + } + + Service = OpenService( + SCManager, /* SCM database */ + SvcName, /* name of service */ + DELETE); /* need delete access */ + + if (Service == NULL) { + upslogx(LOG_ERR, "OpenService failed (%d)\n", (int)GetLastError()); + CloseServiceHandle(SCManager); + return EXIT_FAILURE; + } + + if (! DeleteService(Service) ) { + upslogx(LOG_ERR,"DeleteService failed (%d)\n", (int)GetLastError()); + } + else { + upslogx(LOG_ERR,"Service deleted successfully\n"); + } + + CloseServiceHandle(Service); + CloseServiceHandle(SCManager); + + return EXIT_SUCCESS; +} + +void ReportSvcStatus( DWORD CurrentState, + DWORD Win32ExitCode, + DWORD WaitHint) +{ + static DWORD CheckPoint = 1; + + SvcStatus.dwCurrentState = CurrentState; + SvcStatus.dwWin32ExitCode = Win32ExitCode; + SvcStatus.dwWaitHint = WaitHint; + + if (CurrentState == SERVICE_START_PENDING) + SvcStatus.dwControlsAccepted = 0; + else SvcStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN; + + if ( (CurrentState == SERVICE_RUNNING) || + (CurrentState == SERVICE_STOPPED) ) { + SvcStatus.dwCheckPoint = 0; + } + else { + SvcStatus.dwCheckPoint = CheckPoint++; + } + + /* report the status of the service to the SCM */ + SetServiceStatus( SvcStatusHandle, &SvcStatus ); +} +void WINAPI SvcCtrlHandler( DWORD Ctrl ) +{ + switch(Ctrl) + { + case SERVICE_CONTROL_STOP: + case SERVICE_CONTROL_SHUTDOWN: + ReportSvcStatus(SERVICE_STOP_PENDING, NO_ERROR, 0); + + /* Signal the service to stop */ + SetEvent(svc_stop); + ReportSvcStatus(SvcStatus.dwCurrentState, NO_ERROR, 0); + + return; + + case SERVICE_CONTROL_INTERROGATE: + break; + + default: + break; + } +} +#endif diff --git a/include/common.h b/include/common.h index c4e01f418c..459ae12365 100644 --- a/include/common.h +++ b/include/common.h @@ -55,6 +55,12 @@ extern "C" { #endif extern const char *UPS_VERSION; +#ifdef WIN32 +extern int noservice_flag; +extern HANDLE svc_stop; +extern SERVICE_STATUS SvcStatus; +extern SERVICE_STATUS_HANDLE SvcStatusHandle; +#endif /* get the syslog ready for us */ void open_syslog(const char *progname); @@ -130,6 +136,12 @@ int select_read(const int fd, void *buf, const size_t buflen, const long d_sec, int select_read(const HANDLE fd, void *buf, const size_t buflen, const long d_sec, const long d_usec); #endif int select_write(const int fd, const void *buf, const size_t buflen, const long d_sec, const long d_usec); +#ifdef WIN32 +int SvcInstall(const char *); +int SvcUninstall(const char *); +void ReportSvcStatus(DWORD,DWORD,DWORD); +void WINAPI SvcCtrlHandler(DWORD); +#endif /* Buffer sizes used for various functions */ #define SMALLBUF 512 diff --git a/server/upsd.c b/server/upsd.c index 6df3408ddb..6df8c27663 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -39,7 +39,6 @@ #define W32_NETWORK_CALL_OVERRIDE #include "wincompat.h" #include -static int noservice_flag = 0; #endif #include "user.h" @@ -99,9 +98,6 @@ typedef struct { static struct pollfd *fds = NULL; #else static HANDLE *fds = NULL; -static HANDLE svc_stop = NULL; -SERVICE_STATUS SvcStatus; -SERVICE_STATUS_HANDLE SvcStatusHandle; #endif static handler_t *handler = NULL; @@ -784,11 +780,7 @@ static void set_exit_flag(int sig) { exit_flag = sig; } -#ifdef WIN32 -void ReportSvcStatus( DWORD CurrentState, - DWORD Win32ExitCode, - DWORD WaitHint); -#endif + /* service requests and check on new data */ static void mainloop(void) { @@ -1128,144 +1120,6 @@ void check_perms(const char *fn) } #ifdef WIN32 -int SvcInstall() -{ - SC_HANDLE SCManager; - SC_HANDLE Service; - TCHAR Path[MAX_PATH]; - - if( !GetModuleFileName( NULL, Path, MAX_PATH ) ) { - printf("Cannot install service (%d)\n", GetLastError()); - return EXIT_FAILURE; - } - - SCManager = OpenSCManager( - NULL, /* local computer */ - NULL, /* ServiceActive database */ - SC_MANAGER_ALL_ACCESS); /* full access rights */ - - if (NULL == SCManager) { - upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); - return EXIT_FAILURE; - } - - Service = CreateService( - SCManager, /* SCM database */ - UPSD_SVCNAME, /* name of service */ - UPSD_SVCNAME, /* service name to display */ - SERVICE_ALL_ACCESS, /* desired access */ - SERVICE_WIN32_OWN_PROCESS, /* service type */ - SERVICE_DEMAND_START, /* start type */ - SERVICE_ERROR_NORMAL, /* error control type */ - Path, /* path to service binary */ - NULL, /* no load ordering group */ - NULL, /* no tag identifier */ - NULL, /* no dependencies */ - NULL, /* LocalSystem account */ - NULL); /* no password */ - - if (Service == NULL) { - upslogx(LOG_ERR, "CreateService failed (%d)\n", (int)GetLastError()); - CloseServiceHandle(SCManager); - return EXIT_FAILURE; - } - else { - upslogx(LOG_INFO, "Service installed successfully\n"); - } - - CloseServiceHandle(Service); - CloseServiceHandle(SCManager); - - return EXIT_SUCCESS; -} - -int SvcUninstall() -{ - SC_HANDLE SCManager; - SC_HANDLE Service; - - SCManager = OpenSCManager( - NULL, /* local computer */ - NULL, /* ServicesActive database */ - SC_MANAGER_ALL_ACCESS); /* full access rights */ - - if (NULL == SCManager) { - upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); - return EXIT_FAILURE; - } - - Service = OpenService( - SCManager, /* SCM database */ - UPSD_SVCNAME, /* name of service */ - DELETE); /* need delete access */ - - if (Service == NULL) { - upslogx(LOG_ERR, "OpenService failed (%d)\n", (int)GetLastError()); - CloseServiceHandle(SCManager); - return EXIT_FAILURE; - } - - if (! DeleteService(Service) ) { - upslogx(LOG_ERR,"DeleteService failed (%d)\n", (int)GetLastError()); - } - else { - upslogx(LOG_ERR,"Service deleted successfully\n"); - } - - CloseServiceHandle(Service); - CloseServiceHandle(SCManager); - - return EXIT_SUCCESS; -} - -void ReportSvcStatus( DWORD CurrentState, - DWORD Win32ExitCode, - DWORD WaitHint) -{ - static DWORD CheckPoint = 1; - - SvcStatus.dwCurrentState = CurrentState; - SvcStatus.dwWin32ExitCode = Win32ExitCode; - SvcStatus.dwWaitHint = WaitHint; - - if (CurrentState == SERVICE_START_PENDING) - SvcStatus.dwControlsAccepted = 0; - else SvcStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN; - - if ( (CurrentState == SERVICE_RUNNING) || - (CurrentState == SERVICE_STOPPED) ) { - SvcStatus.dwCheckPoint = 0; - } - else { - SvcStatus.dwCheckPoint = CheckPoint++; - } - - /* report the status of the service to the SCM */ - SetServiceStatus( SvcStatusHandle, &SvcStatus ); -} - -void WINAPI SvcCtrlHandler( DWORD Ctrl ) -{ - switch(Ctrl) - { - case SERVICE_CONTROL_STOP: - case SERVICE_CONTROL_SHUTDOWN: - ReportSvcStatus(SERVICE_STOP_PENDING, NO_ERROR, 0); - - /* Signal the service to stop */ - SetEvent(svc_stop); - ReportSvcStatus(SvcStatus.dwCurrentState, NO_ERROR, 0); - - return; - - case SERVICE_CONTROL_INTERROGATE: - break; - - default: - break; - } -} - void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) #else /* NOT WIN32 */ int main(int argc, char **argv) @@ -1491,9 +1345,9 @@ int main(int argc, char **argv) noservice_flag = 1; break; case 'I': - return SvcInstall(); + return SvcInstall(UPSD_SVCNAME); case 'U': - return SvcUninstall(); + return SvcUninstall(UPSD_SVCNAME); default: break; } From 12b4f4bb76bcea923092016cf8a778b43e3a4c03 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 3 Nov 2010 15:04:38 +0000 Subject: [PATCH 017/218] MinGW socklen detection (by Arnaud Quette) Fossil-ID: SVN r2659 --- m4/nut_type_socklen_t.m4 | 104 ++++++++++++++++++++++++++++----------- 1 file changed, 74 insertions(+), 30 deletions(-) diff --git a/m4/nut_type_socklen_t.m4 b/m4/nut_type_socklen_t.m4 index 0cbf4b3e30..d1ae3380b1 100644 --- a/m4/nut_type_socklen_t.m4 +++ b/m4/nut_type_socklen_t.m4 @@ -1,43 +1,87 @@ dnl Check for socklen_t: historically on BSD it is an int, and in dnl POSIX 1g it is a type of its own, but some platforms use different -dnl types for the argument to getsockopt, getpeername, etc. So we -dnl have to test to find something that will work. +dnl types for the argument to getsockopt, getpeername, etc.: +dnl HP-UX 10.20, IRIX 6.5, Interix 3.5, BeOS. +dnl So we have to test to find something that will work. -dnl This code gets around. This instance came from rsync 2.5.6. +dnl Copyright (C) 2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Albert Chin, Windows fixes from Simon Josefsson. + +dnl On mingw32, socklen_t is in ws2tcpip.h ('int'), so we try to find +dnl it there first. That file is included by gnulib sys_socket.in.h, which +dnl all users of this module should include. Cygwin must not include +dnl ws2tcpip.h. + +dnl This code gets around. This instance came from gnulib trunk (21 Oct. 2010). AC_DEFUN([NUT_TYPE_SOCKLEN_T], -[ - AC_CHECK_TYPE([socklen_t], ,[ - AC_MSG_CHECKING([for socklen_t equivalent]) + [ + NUT_PREREQ_SYS_H_SOCKET + AC_CHECK_TYPE([socklen_t], , + [AC_MSG_CHECKING([for socklen_t equivalent]) AC_CACHE_VAL([nut_cv_socklen_t_equiv], - [ - # Systems have either "struct sockaddr *" or + [# Systems have either "struct sockaddr *" or # "void *" as the second argument to getpeername nut_cv_socklen_t_equiv= for arg2 in "struct sockaddr" void; do - for t in int size_t unsigned long "unsigned long"; do - AC_TRY_COMPILE([ -#include -#include + for t in int size_t "unsigned int" "long int" "unsigned long int"; do + AC_COMPILE_IFELSE([AC_LANG_PROGRAM( + [[#include + #ifdef HAVE_SYS_SOCKET_H + #include + #endif + #ifdef HAVE_WS2TCPIP_H + #include + #endif - int getpeername (int, $arg2 *, $t *); - ],[ - $t len; - getpeername(0,0,&len); - ],[ - nut_cv_socklen_t_equiv="$t" - break - ]) - done + int getpeername (int, $arg2 *, $t *);]], + [[$t len; + getpeername (0, 0, &len);]])], + [nut_cv_socklen_t_equiv="$t"]) + test "$nut_cv_socklen_t_equiv" != "" && break + done + test "$nut_cv_socklen_t_equiv" != "" && break done - - if test "x$nut_cv_socklen_t_equiv" = x; then - AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) - fi ]) - AC_MSG_RESULT($nut_cv_socklen_t_equiv) - AC_DEFINE_UNQUOTED(socklen_t, $nut_cv_socklen_t_equiv, - [type to use in place of socklen_t if not defined])], - [#include -#include ]) + if test "$nut_cv_socklen_t_equiv" = ""; then + AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) + fi + AC_MSG_RESULT([$nut_cv_socklen_t_equiv]) + AC_DEFINE_UNQUOTED([socklen_t], [$nut_cv_socklen_t_equiv], + [type to use in place of socklen_t if not defined])], + [#include + #ifdef HAVE_SYS_SOCKET_H + #include + #endif + #ifdef HAVE_WS2TCPIP_H + #include + #endif]) +]) + +AC_DEFUN([NUT_PREREQ_SYS_H_SOCKET], +[ + dnl Check prerequisites of the replacement. + AC_CHECK_HEADERS_ONCE([sys/socket.h]) + if test $ac_cv_header_sys_socket_h = yes; then + HAVE_SYS_SOCKET_H=1 + HAVE_WS2TCPIP_H=0 + else + HAVE_SYS_SOCKET_H=0 + dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make + dnl the check for those headers unconditional; yet cygwin reports + dnl that the headers are present but cannot be compiled (since on + dnl cygwin, all socket information should come from sys/socket.h). + AC_CHECK_HEADERS([ws2tcpip.h]) + if test $ac_cv_header_ws2tcpip_h = yes; then + HAVE_WS2TCPIP_H=1 + else + HAVE_WS2TCPIP_H=0 + fi + fi + AC_SUBST([HAVE_SYS_SOCKET_H]) + AC_SUBST([HAVE_WS2TCPIP_H]) ]) From 0a70267137860e5127a3c466e5beb9819f25b9da Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 3 Nov 2010 15:11:52 +0000 Subject: [PATCH 018/218] Make drivers run as service by default Fossil-ID: SVN r2660 --- drivers/dstate.c | 24 +++++++++---- drivers/main.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 102 insertions(+), 9 deletions(-) diff --git a/drivers/dstate.c b/drivers/dstate.c index 96b0bf4173..46a087fbe0 100644 --- a/drivers/dstate.c +++ b/drivers/dstate.c @@ -43,10 +43,10 @@ static int sockfd = -1, stale = 1, alarm_active = 0, ignorelb = 0; static char *sockfn = NULL; #else - static HANDLE sockfd = INVALID_HANDLE_VALUE; - static int stale = 1, alarm_active = 0; ignorelb = 0; + static HANDLE sockfd = INVALID_HANDLE_VALUE; + static int stale = 1, alarm_active = 0; ignorelb = 0; static OVERLAPPED connect_overlapped; - static char *pipename = NULL; + static char *pipename = NULL; #endif static char status_buf[ST_MAX_VALUE_LEN], alarm_buf[ST_MAX_VALUE_LEN]; static st_tree_t *dtree_root = NULL; @@ -265,7 +265,7 @@ static void send_to_all(const char *fmt, ...) #endif if (ret != (int)strlen(buf)) { - upsdebugx(2, "write %d bytes to socket %d failed", (int)strlen(buf), conn->fd); + upsdebugx(2, "write %d bytes to socket %d failed", (int)strlen(buf), (int)conn->fd); sock_disconnect(conn); } } @@ -306,7 +306,7 @@ static int send_to_one(conn_t *conn, const char *fmt, ...) #endif if (ret != (int)strlen(buf)) { - upsdebugx(2, "write %d bytes to socket %d failed", (int)strlen(buf), conn->fd); + upsdebugx(2, "write %d bytes to socket %d failed", (int)strlen(buf), (int)conn->fd); sock_disconnect(conn); return 0; /* failed */ } @@ -724,7 +724,7 @@ void dstate_init(const char *prog, const char *devname) sockfd = sock_open(sockname); - upsdebugx(2, "dstate_init: sock %s open on fd %d", sockname, sockfd); + upsdebugx(2, "dstate_init: sock %s open on fd %d", sockname, (int)sockfd); } #ifndef WIN32 @@ -857,6 +857,12 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) rfds[maxfd] = connect_overlapped.hEvent; maxfd++; + /* Add SCM event handler in service mode*/ + if( !noservice_flag ) { + rfds[maxfd] = svc_stop; + maxfd++; + } + ret = WaitForMultipleObjects( maxfd, // number of objects in array rfds, // array of objects @@ -872,6 +878,12 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) return overrun; } + /* Service stop requested */ + if( !noservice_flag && rfds[ret] == svc_stop ) { + ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); + return -1; + } + /* Retrieve the signaled connection */ for(conn = connhead; conn != NULL; conn = conn->next) { if( conn->read_overlapped.hEvent == rfds[ret-WAIT_OBJECT_0]) { diff --git a/drivers/main.c b/drivers/main.c index a2a2d36fb3..7750682518 100644 --- a/drivers/main.c +++ b/drivers/main.c @@ -33,7 +33,7 @@ #ifndef WIN32 int extrafd = -1; #else - HANDLE extrafd = INVALID_HANDLE_VALUE; + HANDLE extrafd = INVALID_HANDLE_VALUE; #endif /* for ser_open */ @@ -451,14 +451,17 @@ static void exit_cleanup(void) vartab_free(); } +#ifndef WIN32 static void set_exit_flag(int sig) { exit_flag = sig; } +#endif +/*FIXME Check if we need equivalent of these signals in WIN32 ? */ static void setup_signals(void) { -#ifndef WIN32 // FIXME +#ifndef WIN32 struct sigaction sa; sigemptyset(&sa.sa_mask); @@ -475,7 +478,11 @@ static void setup_signals(void) #endif } +#ifdef WIN32 +void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) +#else /* NOT WIN32 */ int main(int argc, char **argv) +#endif { struct passwd *new_uid = NULL; int i, do_forceshutdown = 0; @@ -506,7 +513,7 @@ int main(int argc, char **argv) /* build the driver's extra (-x) variable table */ upsdrv_makevartable(); - while ((i = getopt(argc, argv, "+a:kDhx:Lqr:u:Vi:")) != -1) { + while ((i = getopt(argc, argv, "+a:kDhx:Lqr:u:Vi:N")) != -1) { switch (i) { case 'a': upsname = optarg; @@ -548,6 +555,11 @@ int main(int argc, char **argv) case 'h': help_msg(); exit(EXIT_SUCCESS); +#ifdef WIN32 + case 'N': + /* Nothing to do noservice_flag already processed */ + break; +#endif default: fatalx(EXIT_FAILURE, "Error: unknown option -%c. Try -h for help.", i); @@ -703,6 +715,21 @@ int main(int argc, char **argv) upsdrv_updateinfo(); +#ifdef WIN32 + if( !noservice_flag) { + svc_stop = CreateEvent( + NULL, /* default security attributes */ + TRUE, /* manual reset event */ + FALSE, /* not signaled */ + NULL); /*no name */ + + if( svc_stop == NULL ) { + ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); + return; + } + ReportSvcStatus( SERVICE_RUNNING, NO_ERROR, 0); + } +#endif while (!dstate_poll_fds(timeout, extrafd) && !exit_flag) { /* repeat until time is up or extrafd has data */ } @@ -713,3 +740,57 @@ int main(int argc, char **argv) exit(EXIT_SUCCESS); } + +#ifdef WIN32 +int main(int argc, char **argv) +{ + const char * drv_name = NULL; + int i; + + drv_name = xbasename(argv[0]); + // remove trailing .exe + if(strcasecmp( strrchr(drv_name,'.'), ".exe") == 0 ) { + drv_name = strdup(drv_name); + char * t = strrchr(drv_name,'.'); + *t = 0; + } + + while ((i = getopt(argc, argv, "+a:kDhx:Lqr:u:Vi:NIU")) != -1) { + switch (i) { + case 'N': + noservice_flag = 1; + break; + case 'I': + return SvcInstall(drv_name); + case 'U': + return SvcUninstall(drv_name); + default: + break; + } + } + + /* Set optind to 0 not 1 because we use GNU extension '+' in optstring */ + optind = 0; + + if( !noservice_flag ) { + + + SERVICE_TABLE_ENTRY DispatchTable[] = + { + { (char *)drv_name, (LPSERVICE_MAIN_FUNCTION) SvcMain }, + { NULL, NULL } + }; + + /* This call returns when the service has stopped */ + if (!StartServiceCtrlDispatcher( DispatchTable )) + { + upslogx(LOG_ERR, "StartServiceCtrlDispatcher failed (%d): exiting, try -N to avoid starting as a service", (int)GetLastError()); + } + } + else { + SvcMain(argc,argv); + } + + return EXIT_SUCCESS; +} +#endif From a6dd8a6cf6b34055fbf960d44dc7db4d8ed78fed Mon Sep 17 00:00:00 2001 From: Arnaud Quette Date: Thu, 4 Nov 2010 15:40:13 +0000 Subject: [PATCH 019/218] Add regex library check and flags Fossil-ID: SVN r2667 --- configure.in | 9 ++++++++- drivers/Makefile.am | 12 ++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/configure.in b/configure.in index 5f2780b6a9..d59e865640 100644 --- a/configure.in +++ b/configure.in @@ -191,7 +191,7 @@ AC_CHECK_DECLS(__func__, [], [ AC_DEFINE(__func__, __LINE__, [Replace missing __func__ declaration]) ], [AC_INCLUDES_DEFAULT]) ], [AC_INCLUDES_DEFAULT]) - + dnl Solaris compatibility - check for -lnsl and -lsocket AC_SEARCH_LIBS(gethostbyname, nsl) AC_SEARCH_LIBS(connect, socket) @@ -293,6 +293,13 @@ if test "${nut_with_serial}" != "no"; then nut_with_serial="yes" fi +dnl ---------------------------------------------------------------------- +dnl additional regex checks +AC_SEARCH_LIBS([regcomp], [regex], [AC_SUBST([LIBREGEX],["-lregex"])]) + +dnl ---------------------------------------------------------------------- +dnl Check for --with-ssl + NUT_REPORT_FEATURE([build serial drivers], [${nut_with_serial}], [], [WITH_SERIAL], [Define to enable serial support]) diff --git a/drivers/Makefile.am b/drivers/Makefile.am index bf08c5d24c..f5377222ca 100644 --- a/drivers/Makefile.am +++ b/drivers/Makefile.am @@ -170,19 +170,23 @@ USBHID_UPS_SUBDRIVERS = apc-hid.c belkin-hid.c cps-hid.c explore-hid.c \ openups-hid.c usbhid_ups_SOURCES = usbhid-ups.c libhid.c libusb.c hidparser.c \ usb-common.c $(USBHID_UPS_SUBDRIVERS) -usbhid_ups_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) +usbhid_ups_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) tripplite_usb_SOURCES = tripplite_usb.c libusb.c usb-common.c -tripplite_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) -lm +tripplite_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) -lm bcmxcp_usb_SOURCES = bcmxcp_usb.c bcmxcp.c usb-common.c -bcmxcp_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) +bcmxcp_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) + +megatec_usb_SOURCES = megatec.c megatec_usb.c libusb.c usb-common.c +megatec_usb_CFLAGS = $(AM_CFLAGS) -DMEGATEC_SUBDRV +megatec_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) blazer_usb_SOURCES = blazer.c blazer_usb.c libusb.c usb-common.c blazer_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) -lm richcomm_usb_SOURCES = richcomm_usb.c usb-common.c -richcomm_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) +richcomm_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) riello_usb_SOURCES = riello.c riello_usb.c libusb.c usb-common.c riello_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) -lm From 526a248f860274292246d8bec6c286c8e13131cf Mon Sep 17 00:00:00 2001 From: Arjen de Korte Date: Thu, 4 Nov 2010 20:00:25 +0000 Subject: [PATCH 020/218] Checking whether or not we should use the 'regex' library... ...should be done for all USB connected devices (since we use this in the matcher function). In that case it is much cleaner to add this check in nut_check_libusb.m4. This also fixes the wrong use of AC_SEARCH_LIBS, that already adds '-lregex' to LIBS (which means all binaries are linked against this library). Fossil-ID: SVN r2668 --- configure.in | 6 +----- drivers/Makefile.am | 10 +++++----- m4/nut_check_libusb.m4 | 11 +++++++++-- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/configure.in b/configure.in index d59e865640..33752eb3e3 100644 --- a/configure.in +++ b/configure.in @@ -191,7 +191,7 @@ AC_CHECK_DECLS(__func__, [], [ AC_DEFINE(__func__, __LINE__, [Replace missing __func__ declaration]) ], [AC_INCLUDES_DEFAULT]) ], [AC_INCLUDES_DEFAULT]) - + dnl Solaris compatibility - check for -lnsl and -lsocket AC_SEARCH_LIBS(gethostbyname, nsl) AC_SEARCH_LIBS(connect, socket) @@ -293,10 +293,6 @@ if test "${nut_with_serial}" != "no"; then nut_with_serial="yes" fi -dnl ---------------------------------------------------------------------- -dnl additional regex checks -AC_SEARCH_LIBS([regcomp], [regex], [AC_SUBST([LIBREGEX],["-lregex"])]) - dnl ---------------------------------------------------------------------- dnl Check for --with-ssl diff --git a/drivers/Makefile.am b/drivers/Makefile.am index f5377222ca..862d2808c6 100644 --- a/drivers/Makefile.am +++ b/drivers/Makefile.am @@ -170,23 +170,23 @@ USBHID_UPS_SUBDRIVERS = apc-hid.c belkin-hid.c cps-hid.c explore-hid.c \ openups-hid.c usbhid_ups_SOURCES = usbhid-ups.c libhid.c libusb.c hidparser.c \ usb-common.c $(USBHID_UPS_SUBDRIVERS) -usbhid_ups_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) +usbhid_ups_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) tripplite_usb_SOURCES = tripplite_usb.c libusb.c usb-common.c -tripplite_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) -lm +tripplite_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) -lm bcmxcp_usb_SOURCES = bcmxcp_usb.c bcmxcp.c usb-common.c -bcmxcp_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) +bcmxcp_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) megatec_usb_SOURCES = megatec.c megatec_usb.c libusb.c usb-common.c megatec_usb_CFLAGS = $(AM_CFLAGS) -DMEGATEC_SUBDRV -megatec_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) +megatec_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) blazer_usb_SOURCES = blazer.c blazer_usb.c libusb.c usb-common.c blazer_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) -lm richcomm_usb_SOURCES = richcomm_usb.c usb-common.c -richcomm_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) +richcomm_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) riello_usb_SOURCES = riello.c riello_usb.c libusb.c usb-common.c riello_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) -lm diff --git a/m4/nut_check_libusb.m4 b/m4/nut_check_libusb.m4 index b2bb0abd00..469c2f3799 100644 --- a/m4/nut_check_libusb.m4 +++ b/m4/nut_check_libusb.m4 @@ -8,24 +8,28 @@ AC_DEFUN([NUT_CHECK_LIBUSB], if test -z "${nut_have_libusb_seen}"; then nut_have_libusb_seen=yes - dnl save CFLAGS and LIBS + dnl save CFLAGS, LDFLAGS and LIBS CFLAGS_ORIG="${CFLAGS}" + LDFLAGS_ORIG="${LDFLAGS}" LIBS_ORIG="${LIBS}" AC_MSG_CHECKING(for libusb version via pkg-config) LIBUSB_VERSION="`pkg-config --silence-errors --modversion libusb 2>/dev/null`" if test "$?" = "0" -a -n "${LIBUSB_VERSION}"; then CFLAGS="`pkg-config --silence-errors --cflags libusb 2>/dev/null`" + LDFLAGS="" LIBS="`pkg-config --silence-errors --libs libusb 2>/dev/null`" else AC_MSG_CHECKING(via libusb-config) LIBUSB_VERSION="`libusb-config --version 2>/dev/null`" if test "$?" = "0" -a -n "${LIBUSB_VERSION}"; then CFLAGS="`libusb-config --cflags 2>/dev/null`" + LDFLAGS="" LIBS="`libusb-config --libs 2>/dev/null`" else LIBUSB_VERSION="none" CFLAGS="" + LDFLAGS="" LIBS="-lusb" fi fi @@ -61,6 +65,8 @@ if test -z "${nut_have_libusb_seen}"; then ], []) AC_MSG_RESULT([${LIBS}]) + AC_SEARCH_LIBS(regcomp, regex) + dnl check if libusb is usable AC_CHECK_HEADERS(usb.h, [nut_have_libusb=yes], [nut_have_libusb=no], [AC_INCLUDES_DEFAULT]) AC_CHECK_FUNCS(usb_init, [], [nut_have_libusb=no]) @@ -69,11 +75,12 @@ if test -z "${nut_have_libusb_seen}"; then dnl Check for libusb "force driver unbind" availability AC_CHECK_FUNCS(usb_detach_kernel_driver_np) LIBUSB_CFLAGS="${CFLAGS}" - LIBUSB_LIBS="${LIBS}" + LIBUSB_LDFLAGS="${LDFLAGS} ${LIBS}" fi dnl restore original CFLAGS and LIBS CFLAGS="${CFLAGS_ORIG}" + LDFLAGS="${LDFLAGS_ORIG}" LIBS="${LIBS_ORIG}" fi ]) From 43b986d2d51ae382f36adbe24a422c5d53b31a96 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 5 Nov 2010 09:24:42 +0000 Subject: [PATCH 021/218] Correct integration of WinSock library (by Arnaud Quette) Fossil-ID: SVN r2675 --- clients/Makefile.am | 4 +- common/Makefile.am | 2 +- configure.in | 6 +- m4/nut_check_socketlib.m4 | 174 ++++++++++++++++++++++++++++++++++++++ m4/nut_type_socklen_t.m4 | 7 ++ 5 files changed, 189 insertions(+), 4 deletions(-) create mode 100644 m4/nut_check_socketlib.m4 diff --git a/clients/Makefile.am b/clients/Makefile.am index 5fdf34b441..d1fc994a8a 100644 --- a/clients/Makefile.am +++ b/clients/Makefile.am @@ -1,7 +1,7 @@ # Network UPS Tools: clients # by default, link programs in this directory with libcommon.a -LDADD = ../common/libcommon.la libupsclient.la /c/MinGW/lib/libws2_32.a $(NETLIBS) +LDADD = ../common/libcommon.la libupsclient.la $(NETLIBS) if WITH_SSL LDADD += $(LIBSSL_LIBS) endif @@ -35,7 +35,7 @@ upslog_SOURCES = upslog.c upsclient.h upslog.h upsmon_SOURCES = upsmon.c upsmon.h upsclient.h upssched_SOURCES = upssched.c upssched.h -upssched_LDADD = ../common/libcommon.la ../common/libparseconf.la /c/MinGW/lib/libws2_32.a $(NETLIBS) +upssched_LDADD = ../common/libcommon.la ../common/libparseconf.la $(NETLIBS) upsimage_cgi_SOURCES = upsimage.c upsclient.h upsimagearg.h cgilib.c cgilib.h upsimage_cgi_LDADD = $(LDADD) $(LIBGD_LDFLAGS) diff --git a/common/Makefile.am b/common/Makefile.am index d9c9c5ab74..11532acc1d 100644 --- a/common/Makefile.am +++ b/common/Makefile.am @@ -12,4 +12,4 @@ libparseconf_la_SOURCES = parseconf.c libcommon_la_SOURCES = common.c state.c upsconf.c wincompat.c ../include/wincompat.h # ensure inclusion of local implementation of missing systems functions # using LTLIBOBJS. Refer to configure.in -> AC_REPLACE_FUNCS -libcommon_la_LIBADD = libparseconf.la @LTLIBOBJS@ +libcommon_la_LIBADD = libparseconf.la @LTLIBOBJS@ @NETLIBS@ diff --git a/configure.in b/configure.in index 33752eb3e3..e97f55ec94 100644 --- a/configure.in +++ b/configure.in @@ -196,6 +196,10 @@ dnl Solaris compatibility - check for -lnsl and -lsocket AC_SEARCH_LIBS(gethostbyname, nsl) AC_SEARCH_LIBS(connect, socket) +dnl Solaris compatibility - check for -lnsl and -lsocket +AC_SEARCH_LIBS(gethostbyname, nsl) +AC_SEARCH_LIBS(connect, socket) + AC_HEADER_TIME AC_CHECK_HEADERS(sys/modem.h stdarg.h varargs.h sys/termios.h sys/time.h, [], [], [AC_INCLUDES_DEFAULT]) @@ -207,6 +211,7 @@ AC_SEARCH_LIBS([pthread_create], [pthread], dnl ---------------------------------------------------------------------- dnl Check for types and define possible replacements NUT_TYPE_SOCKLEN_T +NUT_CHECK_SOCKETLIB dnl ---------------------------------------------------------------------- dnl check for --with-all (or --without-all, or --with-all=auto) flag @@ -1163,7 +1168,6 @@ AC_SUBST(LIBHAL_LIBS) AC_SUBST(DRIVER_BUILD_LIST) AC_SUBST(DRIVER_MAN_LIST) AC_SUBST(DRIVER_INSTALL_TARGET) -AC_SUBST(NETLIBS) AC_SUBST(SERLIBS) AC_SUBST(PIDPATH) AC_SUBST(STATEPATH) diff --git a/m4/nut_check_socketlib.m4 b/m4/nut_check_socketlib.m4 new file mode 100644 index 0000000000..144c00a593 --- /dev/null +++ b/m4/nut_check_socketlib.m4 @@ -0,0 +1,174 @@ +dnl Copyright (C) 2008-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl NUT_CHECK_SOCKETLIB +dnl Determines the library to use for socket functions. +dnl Sets and AC_SUBSTs NETLIBS. + +dnl This code comes from gnulib trunk (4 Nov. 2010). + +AC_DEFUN([NUT_CHECK_SOCKETLIB], +[ + NUT_PREREQ_SYS_H_SOCKET dnl for HAVE_WINSOCK2_H + NETLIBS= + if test $HAVE_WINSOCK2_H = 1; then + dnl Native Windows API (not Cygwin). + AC_CACHE_CHECK([if we need to call WSAStartup in winsock2.h and -lws2_32], + [nut_cv_func_wsastartup], [ + nut_save_LIBS="$LIBS" + LIBS="$LIBS -lws2_32" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +#ifdef HAVE_WINSOCK2_H +# include +#endif]], [[ + WORD wVersionRequested = MAKEWORD(1, 1); + WSADATA wsaData; + int err = WSAStartup(wVersionRequested, &wsaData); + WSACleanup ();]])], + nut_cv_func_wsastartup=yes, nut_cv_func_wsastartup=no) + LIBS="$nut_save_LIBS" + ]) + if test "$nut_cv_func_wsastartup" = "yes"; then + AC_DEFINE([WINDOWS_SOCKETS], [1], [Define if WSAStartup is needed.]) + NETLIBS='-lws2_32' + fi + else + dnl Unix API. + dnl Solaris has most socket functions in libsocket and libnsl. + dnl Haiku has most socket functions in libnetwork. + dnl BeOS has most socket functions in libnet. + AC_CACHE_CHECK([for library containing setsockopt], [nut_cv_lib_socket], [ + nut_cv_lib_socket= + AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern +#ifdef __cplusplus +"C" +#endif +char setsockopt();]], [[setsockopt();]])], + [], + [nut_save_LIBS="$LIBS" + LIBS="$nut_save_LIBS -lsocket" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern +#ifdef __cplusplus +"C" +#endif +char setsockopt();]], [[setsockopt();]])], + [nut_cv_lib_socket="-lsocket -lnsl"]) + if test -z "$nut_cv_lib_socket"; then + LIBS="$nut_save_LIBS -lnetwork" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern +#ifdef __cplusplus +"C" +#endif +char setsockopt();]], [[setsockopt();]])], + [nut_cv_lib_socket="-lnetwork"]) + if test -z "$nut_cv_lib_socket"; then + LIBS="$nut_save_LIBS -lnet" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern +#ifdef __cplusplus +"C" +#endif +char setsockopt();]], [[setsockopt();]])], + [nut_cv_lib_socket="-lnet"]) + fi + fi + LIBS="$nut_save_LIBS" + ]) + if test -z "$nut_cv_lib_socket"; then + nut_cv_lib_socket="none needed" + fi + ]) + if test "$nut_cv_lib_socket" != "none needed"; then + NETLIBS="$nut_cv_lib_socket" + fi + fi + AC_SUBST([NETLIBS]) +]) +dnl Copyright (C) 2008-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl NUT_CHECK_SOCKETLIB +dnl Determines the library to use for socket functions. +dnl Sets and AC_SUBSTs NETLIBS. + +dnl This code comes from gnulib trunk (4 Nov. 2010). + +AC_DEFUN([NUT_CHECK_SOCKETLIB], +[ + NUT_PREREQ_SYS_H_SOCKET dnl for HAVE_WINSOCK2_H + NETLIBS= + if test $HAVE_WINSOCK2_H = 1; then + dnl Native Windows API (not Cygwin). + AC_CACHE_CHECK([if we need to call WSAStartup in winsock2.h and -lws2_32], + [nut_cv_func_wsastartup], [ + nut_save_LIBS="$LIBS" + LIBS="$LIBS -lws2_32" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +#ifdef HAVE_WINSOCK2_H +# include +#endif]], [[ + WORD wVersionRequested = MAKEWORD(1, 1); + WSADATA wsaData; + int err = WSAStartup(wVersionRequested, &wsaData); + WSACleanup ();]])], + nut_cv_func_wsastartup=yes, nut_cv_func_wsastartup=no) + LIBS="$nut_save_LIBS" + ]) + if test "$nut_cv_func_wsastartup" = "yes"; then + AC_DEFINE([WINDOWS_SOCKETS], [1], [Define if WSAStartup is needed.]) + NETLIBS='-lws2_32' + fi + else + dnl Unix API. + dnl Solaris has most socket functions in libsocket and libnsl. + dnl Haiku has most socket functions in libnetwork. + dnl BeOS has most socket functions in libnet. + AC_CACHE_CHECK([for library containing setsockopt], [nut_cv_lib_socket], [ + nut_cv_lib_socket= + AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern +#ifdef __cplusplus +"C" +#endif +char setsockopt();]], [[setsockopt();]])], + [], + [nut_save_LIBS="$LIBS" + LIBS="$nut_save_LIBS -lsocket" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern +#ifdef __cplusplus +"C" +#endif +char setsockopt();]], [[setsockopt();]])], + [nut_cv_lib_socket="-lsocket -lnsl"]) + if test -z "$nut_cv_lib_socket"; then + LIBS="$nut_save_LIBS -lnetwork" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern +#ifdef __cplusplus +"C" +#endif +char setsockopt();]], [[setsockopt();]])], + [nut_cv_lib_socket="-lnetwork"]) + if test -z "$nut_cv_lib_socket"; then + LIBS="$nut_save_LIBS -lnet" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern +#ifdef __cplusplus +"C" +#endif +char setsockopt();]], [[setsockopt();]])], + [nut_cv_lib_socket="-lnet"]) + fi + fi + LIBS="$nut_save_LIBS" + ]) + if test -z "$nut_cv_lib_socket"; then + nut_cv_lib_socket="none needed" + fi + ]) + if test "$nut_cv_lib_socket" != "none needed"; then + NETLIBS="$nut_cv_lib_socket" + fi + fi + AC_SUBST([NETLIBS]) +]) diff --git a/m4/nut_type_socklen_t.m4 b/m4/nut_type_socklen_t.m4 index d1ae3380b1..4012d302a8 100644 --- a/m4/nut_type_socklen_t.m4 +++ b/m4/nut_type_socklen_t.m4 @@ -81,6 +81,13 @@ AC_DEFUN([NUT_PREREQ_SYS_H_SOCKET], else HAVE_WS2TCPIP_H=0 fi + AC_CHECK_HEADERS([winsock2.h]) + if test "$ac_cv_header_winsock2_h" = yes; then + HAVE_WINSOCK2_H=1 + else + HAVE_WINSOCK2_H=0 + fi + AC_SUBST([HAVE_WINSOCK2_H]) fi AC_SUBST([HAVE_SYS_SOCKET_H]) AC_SUBST([HAVE_WS2TCPIP_H]) From d592a683f5634cc9053543740625b637bdecdaae Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 5 Nov 2010 09:44:29 +0000 Subject: [PATCH 022/218] This 3 lines has been duplicated instead of being removed. Fossil-ID: SVN r2676 --- configure.in | 8 -------- 1 file changed, 8 deletions(-) diff --git a/configure.in b/configure.in index e97f55ec94..b6820fb708 100644 --- a/configure.in +++ b/configure.in @@ -192,14 +192,6 @@ AC_CHECK_DECLS(__func__, [], [ ], [AC_INCLUDES_DEFAULT]) ], [AC_INCLUDES_DEFAULT]) -dnl Solaris compatibility - check for -lnsl and -lsocket -AC_SEARCH_LIBS(gethostbyname, nsl) -AC_SEARCH_LIBS(connect, socket) - -dnl Solaris compatibility - check for -lnsl and -lsocket -AC_SEARCH_LIBS(gethostbyname, nsl) -AC_SEARCH_LIBS(connect, socket) - AC_HEADER_TIME AC_CHECK_HEADERS(sys/modem.h stdarg.h varargs.h sys/termios.h sys/time.h, [], [], [AC_INCLUDES_DEFAULT]) From 6dcd4542dfb55626b75cfefd822b33a6c60b1e6d Mon Sep 17 00:00:00 2001 From: Charles Lepple Date: Fri, 5 Nov 2010 12:32:49 +0000 Subject: [PATCH 023/218] Finish removing hard-coded paths to winsock2 library (as in [[SVN:2674]]) [[SVN:2674]] = 2010-11-05T09:10:19Z!adkorte-guest@alioth.debian.org Fossil-ID: SVN r2677 --- server/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/Makefile.am b/server/Makefile.am index 3bba1b5a40..1006717f25 100644 --- a/server/Makefile.am +++ b/server/Makefile.am @@ -10,7 +10,7 @@ endif if WITH_SSL AM_CFLAGS += $(LIBSSL_CFLAGS) endif -LDADD = ../common/libcommon.la ../common/libparseconf.la /c/MinGW/lib/libws2_32.a $(NETLIBS) +LDADD = ../common/libcommon.la ../common/libparseconf.la $(NETLIBS) if WITH_WRAP LDADD += $(LIBWRAP_LIBS) endif From d8ae3f546b8c6659f909174bd0e4c0f45d02715d Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 5 Nov 2010 13:12:45 +0000 Subject: [PATCH 024/218] More factorization and fix a bug in drivers services stop Fossil-ID: SVN r2678 --- common/common.c | 46 ++++++++++++++++++++++++++++++++---- drivers/dstate.c | 6 ++--- drivers/main.c | 61 ++++++++++++++++++++++++------------------------ include/common.h | 4 ++-- server/upsd.c | 34 ++------------------------- 5 files changed, 80 insertions(+), 71 deletions(-) diff --git a/common/common.c b/common/common.c index 42c1ea9593..046ab16edf 100644 --- a/common/common.c +++ b/common/common.c @@ -42,10 +42,10 @@ const char *UPS_VERSION = NUT_VERSION_MACRO; static int upslog_flags = UPSLOG_STDERR; #ifdef WIN32 - int noservice_flag = 0; - HANDLE svc_stop = NULL; - SERVICE_STATUS SvcStatus; - SERVICE_STATUS_HANDLE SvcStatusHandle; + int noservice_flag = 0; + HANDLE svc_stop = NULL; + static SERVICE_STATUS SvcStatus; + static SERVICE_STATUS_HANDLE SvcStatusHandle; #endif static void xbit_set(int *val, int flag) @@ -807,4 +807,42 @@ void WINAPI SvcCtrlHandler( DWORD Ctrl ) break; } } + +void SvcStart(char * SvcName) +{ + if( !noservice_flag) { + /* Register the handler function for the service */ + SvcStatusHandle = RegisterServiceCtrlHandler( + SvcName, + SvcCtrlHandler); + + if( !SvcStatusHandle ) { + upslogx(LOG_ERR, "RegisterServiceCtrlHandler\n"); + return; + } + + SvcStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS; + SvcStatus.dwServiceSpecificExitCode = 0; + + /* Report initial status to the SCM */ + ReportSvcStatus( SERVICE_START_PENDING, NO_ERROR, 3000 ); + } +} + +void SvcReady(void) +{ + if( !noservice_flag) { + svc_stop = CreateEvent( + NULL, /* default security attributes */ + TRUE, /* manual reset event */ + FALSE, /* not signaled */ + NULL); /*no name */ + + if( svc_stop == NULL ) { + ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); + return; + } + ReportSvcStatus( SERVICE_RUNNING, NO_ERROR, 0); + } +} #endif diff --git a/drivers/dstate.c b/drivers/dstate.c index 46a087fbe0..6b70e9c7d7 100644 --- a/drivers/dstate.c +++ b/drivers/dstate.c @@ -879,9 +879,9 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) } /* Service stop requested */ - if( !noservice_flag && rfds[ret] == svc_stop ) { - ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); - return -1; + if( !noservice_flag && (rfds[ret] == svc_stop) ) { + ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); + return 0; } /* Retrieve the signaled connection */ diff --git a/drivers/main.c b/drivers/main.c index 7750682518..cae9f8ce10 100644 --- a/drivers/main.c +++ b/drivers/main.c @@ -451,12 +451,10 @@ static void exit_cleanup(void) vartab_free(); } -#ifndef WIN32 static void set_exit_flag(int sig) { exit_flag = sig; } -#endif /*FIXME Check if we need equivalent of these signals in WIN32 ? */ static void setup_signals(void) @@ -493,16 +491,23 @@ int main(int argc, char **argv) user = xstrdup(RUN_AS_USER); /* xstrdup: this gets freed at exit */ progname = xbasename(argv[0]); + #ifdef WIN32 - // remove trailing .exe - if(strcasecmp( strrchr(progname,'.'), ".exe") == 0 ) { - progname = strdup(progname); - char * t = strrchr(progname,'.'); - *t = 0; + /* remove trailing .exe */ + char * name = strrchr(progname,'.'); + if( name != NULL ) { + if(strcasecmp(name, ".exe") == 0 ) { + progname = strdup(progname); + char * t = strrchr(progname,'.'); + *t = 0; + } } #endif open_syslog(progname); +#ifdef WIN32 + SvcStart(progname); +#endif upsdrv_banner(); if (upsdrv_info.status == DRV_EXPERIMENTAL) { @@ -706,6 +711,10 @@ int main(int argc, char **argv) writepid(pidfn); /* PID changes when backgrounding */ } +#ifdef WIN32 + SvcReady(); +#endif + while (!exit_flag) { struct timeval timeout; @@ -715,30 +724,19 @@ int main(int argc, char **argv) upsdrv_updateinfo(); -#ifdef WIN32 - if( !noservice_flag) { - svc_stop = CreateEvent( - NULL, /* default security attributes */ - TRUE, /* manual reset event */ - FALSE, /* not signaled */ - NULL); /*no name */ - - if( svc_stop == NULL ) { - ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); - return; - } - ReportSvcStatus( SERVICE_RUNNING, NO_ERROR, 0); - } -#endif while (!dstate_poll_fds(timeout, extrafd) && !exit_flag) { /* repeat until time is up or extrafd has data */ + if( WaitForSingleObject(svc_stop,0) == WAIT_OBJECT_0 ) { + set_exit_flag(1); + } + } + + if( WaitForSingleObject(svc_stop,0) == WAIT_OBJECT_0 ) { + set_exit_flag(1); } } /* if we get here, the exit flag was set by a signal handler */ - upslogx(LOG_INFO, "Signal %d: exiting", exit_flag); - - exit(EXIT_SUCCESS); } #ifdef WIN32 @@ -748,11 +746,14 @@ int main(int argc, char **argv) int i; drv_name = xbasename(argv[0]); - // remove trailing .exe - if(strcasecmp( strrchr(drv_name,'.'), ".exe") == 0 ) { - drv_name = strdup(drv_name); - char * t = strrchr(drv_name,'.'); - *t = 0; + /* remove trailing .exe */ + char * name = strrchr(drv_name,'.'); + if( name != NULL ) { + if(strcasecmp(name, ".exe") == 0 ) { + drv_name = strdup(drv_name); + char * t = strrchr(drv_name,'.'); + *t = 0; + } } while ((i = getopt(argc, argv, "+a:kDhx:Lqr:u:Vi:NIU")) != -1) { diff --git a/include/common.h b/include/common.h index 459ae12365..26fc9c9dd6 100644 --- a/include/common.h +++ b/include/common.h @@ -58,8 +58,6 @@ extern const char *UPS_VERSION; #ifdef WIN32 extern int noservice_flag; extern HANDLE svc_stop; -extern SERVICE_STATUS SvcStatus; -extern SERVICE_STATUS_HANDLE SvcStatusHandle; #endif /* get the syslog ready for us */ @@ -141,6 +139,8 @@ int SvcInstall(const char *); int SvcUninstall(const char *); void ReportSvcStatus(DWORD,DWORD,DWORD); void WINAPI SvcCtrlHandler(DWORD); +void SvcStart(char *); +void SvcReady(void); #endif /* Buffer sizes used for various functions */ diff --git a/server/upsd.c b/server/upsd.c index 6df8c27663..9167b52d8a 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -1129,25 +1129,8 @@ int main(int argc, char **argv) char *chroot_path = NULL; const char *user = RUN_AS_USER; struct passwd *new_uid = NULL; - #ifdef WIN32 - if( !noservice_flag) { - /* Register the handler function for the service */ - SvcStatusHandle = RegisterServiceCtrlHandler( - UPSD_SVCNAME, - SvcCtrlHandler); - - if( !SvcStatusHandle ) { - upslogx(LOG_ERR, "RegisterServiceCtrlHandler\n"); - return; - } - - SvcStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS; - SvcStatus.dwServiceSpecificExitCode = 0; - - /* Report initial status to the SCM */ - ReportSvcStatus( SERVICE_START_PENDING, NO_ERROR, 3000 ); - } + SvcStart(UPSD_SVCNAME); #endif progname = xbasename(argv[0]); @@ -1304,20 +1287,7 @@ int main(int argc, char **argv) } #ifdef WIN32 - if( !noservice_flag) { - svc_stop = CreateEvent( - NULL, /* default security attributes */ - TRUE, /* manual reset event */ - FALSE, /* not signaled */ - NULL); /*no name */ - - if( svc_stop == NULL ) { - ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); - return; - } - - ReportSvcStatus( SERVICE_RUNNING, NO_ERROR, 0); - } + SvcReady(); #endif while (!exit_flag) { From 10f11d3e39184d543cbd50fced83442e1cbe7f98 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 16 Nov 2010 12:46:35 +0000 Subject: [PATCH 025/218] We need to register one driver service per ups in upsd.conf. So these drivers need to have different names and command line arguments. Fossil-ID: SVN r2691 --- common/common.c | 7 ++++- drivers/main.c | 70 +++++++++++++++++++++++++++++++++++------------- include/common.h | 5 ++-- server/upsd.c | 2 +- 4 files changed, 61 insertions(+), 23 deletions(-) diff --git a/common/common.c b/common/common.c index 046ab16edf..2a27c6c7fc 100644 --- a/common/common.c +++ b/common/common.c @@ -671,7 +671,7 @@ int select_write(const int fd, const void *buf, const size_t buflen, const long } #ifdef WIN32 -int SvcInstall(const char * SvcName) +int SvcInstall(const char * SvcName, const char * args) { SC_HANDLE SCManager; SC_HANDLE Service; @@ -682,6 +682,11 @@ int SvcInstall(const char * SvcName) return EXIT_FAILURE; } + if( args != NULL ) { + strcat(Path," "); + strcat(Path,args); + } + SCManager = OpenSCManager( NULL, /* local computer */ NULL, /* ServiceActive database */ diff --git a/drivers/main.c b/drivers/main.c index cae9f8ce10..0602670bf9 100644 --- a/drivers/main.c +++ b/drivers/main.c @@ -28,12 +28,14 @@ #endif char *device_path = NULL; const char *progname = NULL, *upsname = NULL, *device_name = NULL; + char *service_name = NULL; /* may be set by the driver to wake up while in dstate_poll_fds */ #ifndef WIN32 int extrafd = -1; #else HANDLE extrafd = INVALID_HANDLE_VALUE; + #define UPS_ARGS "-a " #endif /* for ser_open */ @@ -492,21 +494,11 @@ int main(int argc, char **argv) progname = xbasename(argv[0]); -#ifdef WIN32 - /* remove trailing .exe */ - char * name = strrchr(progname,'.'); - if( name != NULL ) { - if(strcasecmp(name, ".exe") == 0 ) { - progname = strdup(progname); - char * t = strrchr(progname,'.'); - *t = 0; - } - } -#endif +#ifndef WIN32 open_syslog(progname); - -#ifdef WIN32 - SvcStart(progname); +#else + open_syslog(service_name); + SvcStart(service_name); #endif upsdrv_banner(); @@ -744,17 +736,23 @@ int main(int argc, char **argv) { const char * drv_name = NULL; int i; + int install_flag =0; + int uninstall_flag =0; drv_name = xbasename(argv[0]); /* remove trailing .exe */ char * name = strrchr(drv_name,'.'); if( name != NULL ) { if(strcasecmp(name, ".exe") == 0 ) { - drv_name = strdup(drv_name); - char * t = strrchr(drv_name,'.'); + progname = strdup(drv_name); + char * t = strrchr(progname,'.'); *t = 0; + free(drv_name); } } + else { + progname = drv_name; + } while ((i = getopt(argc, argv, "+a:kDhx:Lqr:u:Vi:NIU")) != -1) { switch (i) { @@ -762,14 +760,48 @@ int main(int argc, char **argv) noservice_flag = 1; break; case 'I': - return SvcInstall(drv_name); + install_flag = 1; + break; case 'U': - return SvcUninstall(drv_name); + uninstall_flag = 1; + break; + case 'a': + upsname = optarg; + + read_upsconf(); + + if (!upsname_found) + fatalx(EXIT_FAILURE, "Error: Section %s not found in ups.conf", optarg); + break; default: break; } } + if (!upsname_found) { + fatalx(EXIT_FAILURE, + "Error: specifying '-a id' is now mandatory. Try -h for help."); + } + + service_name = malloc(strlen(SERVICE_PREFIX) + +strlen(progname) + strlen(upsname) + 1); + strcpy(service_name,SERVICE_PREFIX); + strcat(service_name,progname); + strcat(service_name," - "); + strcat(service_name,upsname); + + + if( install_flag ) { + char * args; + args = malloc(strlen(upsname) + strlen(UPS_ARGS) + 1 ); + strcpy(args,UPS_ARGS); + strcat(args,upsname); + return SvcInstall(service_name,args); + } + + if( uninstall_flag ) { + return SvcUninstall(service_name); + } + /* Set optind to 0 not 1 because we use GNU extension '+' in optstring */ optind = 0; @@ -778,7 +810,7 @@ int main(int argc, char **argv) SERVICE_TABLE_ENTRY DispatchTable[] = { - { (char *)drv_name, (LPSERVICE_MAIN_FUNCTION) SvcMain }, + { service_name, (LPSERVICE_MAIN_FUNCTION) SvcMain }, { NULL, NULL } }; diff --git a/include/common.h b/include/common.h index 26fc9c9dd6..c0109f6af7 100644 --- a/include/common.h +++ b/include/common.h @@ -135,7 +135,7 @@ int select_read(const HANDLE fd, void *buf, const size_t buflen, const long d_se #endif int select_write(const int fd, const void *buf, const size_t buflen, const long d_sec, const long d_usec); #ifdef WIN32 -int SvcInstall(const char *); +int SvcInstall(const char *,const char *); int SvcUninstall(const char *); void ReportSvcStatus(DWORD,DWORD,DWORD); void WINAPI SvcCtrlHandler(DWORD); @@ -187,7 +187,8 @@ extern int optind; #define closelog() -#define UPSD_SVCNAME TEXT("NUT data server") +#define UPSD_SVCNAME TEXT("NUT - data server") +#define SERVICE_PREFIX TEXT("NUT - ") #endif #endif /* NUT_COMMON_H */ diff --git a/server/upsd.c b/server/upsd.c index 9167b52d8a..f86784a2a6 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -1315,7 +1315,7 @@ int main(int argc, char **argv) noservice_flag = 1; break; case 'I': - return SvcInstall(UPSD_SVCNAME); + return SvcInstall(UPSD_SVCNAME,NULL); case 'U': return SvcUninstall(UPSD_SVCNAME); default: From 09bf7cdb3fb33d4c5024658def1446d5fddae595 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 16 Nov 2010 13:48:47 +0000 Subject: [PATCH 026/218] Better use of NUT framework for previous commit Fossil-ID: SVN r2692 --- common/common.c | 3 +-- drivers/main.c | 16 ++++++---------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/common/common.c b/common/common.c index 2a27c6c7fc..44afb369c6 100644 --- a/common/common.c +++ b/common/common.c @@ -683,8 +683,7 @@ int SvcInstall(const char * SvcName, const char * args) } if( args != NULL ) { - strcat(Path," "); - strcat(Path,args); + snprintfcat(Path, sizeof(Path), " %s", args); } SCManager = OpenSCManager( diff --git a/drivers/main.c b/drivers/main.c index 0602670bf9..f946215218 100644 --- a/drivers/main.c +++ b/drivers/main.c @@ -747,7 +747,6 @@ int main(int argc, char **argv) progname = strdup(drv_name); char * t = strrchr(progname,'.'); *t = 0; - free(drv_name); } } else { @@ -783,18 +782,15 @@ int main(int argc, char **argv) "Error: specifying '-a id' is now mandatory. Try -h for help."); } - service_name = malloc(strlen(SERVICE_PREFIX) + +strlen(progname) + strlen(upsname) + 1); - strcpy(service_name,SERVICE_PREFIX); - strcat(service_name,progname); - strcat(service_name," - "); - strcat(service_name,upsname); - + int size = strlen(SERVICE_PREFIX) + +strlen(progname) + strlen(upsname) + 1 + 3; /* +1 is terminal 0, +3 is " - "*/ + service_name = xmalloc(size); + snprintf(service_name, size, "%s%s - %s", SERVICE_PREFIX,progname,upsname); if( install_flag ) { char * args; - args = malloc(strlen(upsname) + strlen(UPS_ARGS) + 1 ); - strcpy(args,UPS_ARGS); - strcat(args,upsname); + size = strlen(upsname) + strlen(UPS_ARGS) + 1 ; + args = xmalloc(size); + snprintf(args,size, "%s%s", UPS_ARGS,upsname); return SvcInstall(service_name,args); } From dafcbcdc22644f182c4862395238ccb5d2b66b21 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 19 Nov 2010 09:14:48 +0000 Subject: [PATCH 027/218] Remove useless header Fossil-ID: SVN r2693 --- clients/upsclient.c | 1 - 1 file changed, 1 deletion(-) diff --git a/clients/upsclient.c b/clients/upsclient.c index 3713dd63fc..27307e58b6 100644 --- a/clients/upsclient.c +++ b/clients/upsclient.c @@ -42,7 +42,6 @@ #else #include #include -#include /* This override network system calls to adapt to Windows specificity */ #define W32_NETWORK_CALL_OVERRIDE #include "wincompat.h" From d65907b78cd76571d217fdd2e98788216cde7bbd Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 26 Nov 2010 13:28:46 +0000 Subject: [PATCH 028/218] Change the "full services" approach to a more POSIX one. We now have only one Windows service in charge of starting/stopping the relevant NUT processes. It's a Windows replacement for the init script. This service is also a proxy for processes to write to Windows event log. So only one service has to be registered to be able to log event. Fossil-ID: SVN r2704 --- common/common.c | 209 +------- common/wincompat.c | 58 ++- configure.in | 2 + drivers/dstate.c | 18 +- drivers/dstate.h | 1 - drivers/main.c | 155 ++---- drivers/upsdrvctl.c | 35 ++ include/common.h | 18 +- include/wincompat.h | 2 + scripts/Makefile.am | 2 +- scripts/Windows/Makefile.am | 14 + {common => scripts/Windows}/winevent.mc | 20 +- scripts/Windows/wininit.c | 636 ++++++++++++++++++++++++ server/sstate.c | 4 +- server/upsd.c | 136 ++--- server/upstype.h | 1 - 16 files changed, 841 insertions(+), 470 deletions(-) create mode 100644 scripts/Windows/Makefile.am rename {common => scripts/Windows}/winevent.mc (50%) create mode 100644 scripts/Windows/wininit.c diff --git a/common/common.c b/common/common.c index 44afb369c6..01c9f48037 100644 --- a/common/common.c +++ b/common/common.c @@ -41,13 +41,6 @@ const char *UPS_VERSION = NUT_VERSION_MACRO; int nut_log_level = 0; static int upslog_flags = UPSLOG_STDERR; -#ifdef WIN32 - int noservice_flag = 0; - HANDLE svc_stop = NULL; - static SERVICE_STATUS SvcStatus; - static SERVICE_STATUS_HANDLE SvcStatusHandle; -#endif - static void xbit_set(int *val, int flag) { *val |= flag; @@ -233,7 +226,11 @@ void writepid(const char *name) int mask; /* use full path if present, else build filename in PIDPATH */ +#ifndef WIN32 if (*name == '/') +#else + if(name[1] == ':') +#endif snprintf(fn, sizeof(fn), "%s", name); else snprintf(fn, sizeof(fn), "%s/%s.pid", PIDPATH, name); @@ -254,10 +251,14 @@ void writepid(const char *name) /* open pidfn, get the pid, then send it sig */ int sendsignalfn(const char *pidfn, int sig) { -#ifndef WIN32 char buf[SMALLBUF]; FILE *pidf; - int pid, ret; + int pid; +#ifndef WIN32 + int ret; +#else + BOOL ret; +#endif pidf = fopen(pidfn, "r"); if (!pidf) { @@ -279,6 +280,7 @@ int sendsignalfn(const char *pidfn, int sig) return -1; } +#ifndef WIN32 /* see if this is going to work first */ ret = kill(pid, 0); @@ -298,6 +300,12 @@ int sendsignalfn(const char *pidfn, int sig) } fclose(pidf); +#else + ret = GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,pid); + if (ret == 0) { + upslogx(LOG_ERR, "GenerateConsoleCtrlEvent error : %d", (int)GetLastError()); + return -1; + } #endif return 0; } @@ -628,7 +636,7 @@ int select_read(const HANDLE fd, void *buf, const size_t buflen, const long d_se if(overlapped.hEvent == NULL ) { return 0; } - ReadFile(fd,buf,buflen,&bytesread,&overlapped); + ReadFile(fd,buf,buflen,NULL,&overlapped); ret = WaitForSingleObject(overlapped.hEvent, d_sec * 1000 + d_usec / 1000); GetOverlappedResult(fd, &overlapped, &bytesread, FALSE); @@ -669,184 +677,3 @@ int select_write(const int fd, const void *buf, const size_t buflen, const long return 0; #endif } - -#ifdef WIN32 -int SvcInstall(const char * SvcName, const char * args) -{ - SC_HANDLE SCManager; - SC_HANDLE Service; - TCHAR Path[MAX_PATH]; - - if( !GetModuleFileName( NULL, Path, MAX_PATH ) ) { - printf("Cannot install service (%d)\n", GetLastError()); - return EXIT_FAILURE; - } - - if( args != NULL ) { - snprintfcat(Path, sizeof(Path), " %s", args); - } - - SCManager = OpenSCManager( - NULL, /* local computer */ - NULL, /* ServiceActive database */ - SC_MANAGER_ALL_ACCESS); /* full access rights */ - - if (NULL == SCManager) { - upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); - return EXIT_FAILURE; - } - - Service = CreateService( - SCManager, /* SCM database */ - SvcName, /* name of service */ - SvcName, /* service name to display */ - SERVICE_ALL_ACCESS, /* desired access */ - SERVICE_WIN32_OWN_PROCESS, /* service type */ - SERVICE_DEMAND_START, /* start type */ - SERVICE_ERROR_NORMAL, /* error control type */ - Path, /* path to service binary */ - NULL, /* no load ordering group */ - NULL, /* no tag identifier */ - NULL, /* no dependencies */ - NULL, /* LocalSystem account */ - NULL); /* no password */ - - if (Service == NULL) { - upslogx(LOG_ERR, "CreateService failed (%d)\n", (int)GetLastError()); - CloseServiceHandle(SCManager); - return EXIT_FAILURE; - } - else { - upslogx(LOG_INFO, "Service installed successfully\n"); - } - - CloseServiceHandle(Service); - CloseServiceHandle(SCManager); - - return EXIT_SUCCESS; -} - -int SvcUninstall(const char * SvcName) -{ - SC_HANDLE SCManager; - SC_HANDLE Service; - - SCManager = OpenSCManager( - NULL, /* local computer */ - NULL, /* ServicesActive database */ - SC_MANAGER_ALL_ACCESS); /* full access rights */ - - if (NULL == SCManager) { - upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); - return EXIT_FAILURE; - } - - Service = OpenService( - SCManager, /* SCM database */ - SvcName, /* name of service */ - DELETE); /* need delete access */ - - if (Service == NULL) { - upslogx(LOG_ERR, "OpenService failed (%d)\n", (int)GetLastError()); - CloseServiceHandle(SCManager); - return EXIT_FAILURE; - } - - if (! DeleteService(Service) ) { - upslogx(LOG_ERR,"DeleteService failed (%d)\n", (int)GetLastError()); - } - else { - upslogx(LOG_ERR,"Service deleted successfully\n"); - } - - CloseServiceHandle(Service); - CloseServiceHandle(SCManager); - - return EXIT_SUCCESS; -} - -void ReportSvcStatus( DWORD CurrentState, - DWORD Win32ExitCode, - DWORD WaitHint) -{ - static DWORD CheckPoint = 1; - - SvcStatus.dwCurrentState = CurrentState; - SvcStatus.dwWin32ExitCode = Win32ExitCode; - SvcStatus.dwWaitHint = WaitHint; - - if (CurrentState == SERVICE_START_PENDING) - SvcStatus.dwControlsAccepted = 0; - else SvcStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN; - - if ( (CurrentState == SERVICE_RUNNING) || - (CurrentState == SERVICE_STOPPED) ) { - SvcStatus.dwCheckPoint = 0; - } - else { - SvcStatus.dwCheckPoint = CheckPoint++; - } - - /* report the status of the service to the SCM */ - SetServiceStatus( SvcStatusHandle, &SvcStatus ); -} -void WINAPI SvcCtrlHandler( DWORD Ctrl ) -{ - switch(Ctrl) - { - case SERVICE_CONTROL_STOP: - case SERVICE_CONTROL_SHUTDOWN: - ReportSvcStatus(SERVICE_STOP_PENDING, NO_ERROR, 0); - - /* Signal the service to stop */ - SetEvent(svc_stop); - ReportSvcStatus(SvcStatus.dwCurrentState, NO_ERROR, 0); - - return; - - case SERVICE_CONTROL_INTERROGATE: - break; - - default: - break; - } -} - -void SvcStart(char * SvcName) -{ - if( !noservice_flag) { - /* Register the handler function for the service */ - SvcStatusHandle = RegisterServiceCtrlHandler( - SvcName, - SvcCtrlHandler); - - if( !SvcStatusHandle ) { - upslogx(LOG_ERR, "RegisterServiceCtrlHandler\n"); - return; - } - - SvcStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS; - SvcStatus.dwServiceSpecificExitCode = 0; - - /* Report initial status to the SCM */ - ReportSvcStatus( SERVICE_START_PENDING, NO_ERROR, 3000 ); - } -} - -void SvcReady(void) -{ - if( !noservice_flag) { - svc_stop = CreateEvent( - NULL, /* default security attributes */ - TRUE, /* manual reset event */ - FALSE, /* not signaled */ - NULL); /*no name */ - - if( svc_stop == NULL ) { - ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); - return; - } - ReportSvcStatus( SERVICE_RUNNING, NO_ERROR, 0); - } -} -#endif diff --git a/common/wincompat.c b/common/wincompat.c index 89264cca33..e039644401 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -20,7 +20,6 @@ #include "common.h" #include #include -#include "winevent.h" extern int errno; @@ -51,38 +50,59 @@ int sktclose(int fh) return ret; } +/* syslog sends a message through a pipe to the wininit service. Which is +in charge of adding an event in the Windows event logger. +The message is made of 4 bytes containing the priority followed by an array +of chars containing the message to display (no terminal 0 required here) */ void syslog(int priority, const char *fmt, ...) { - LPCTSTR strings[2]; - char buf[LARGEBUF]; + char buf1[LARGEBUF]; + char buf2[LARGEBUF]; va_list ap; - HANDLE EventSource; + HANDLE pipe; + BOOL result = FALSE; + DWORD bytesWritten = 0; if( EventLogName == NULL ) { return; } + + /* Format message */ va_start(ap,fmt); - vsnprintf(buf, sizeof(buf), fmt, ap); + vsnprintf(buf1, sizeof(buf1), fmt, ap); va_end(ap); - strings[0] = buf; - strings[1] = EventLogName; + /* Add progname */ + snprintf(buf2,sizeof(buf2),"%s - %s",EventLogName,buf1); + + /* Add priority to create the whole frame */ + *((DWORD *)buf1) = (DWORD)priority; + memcpy(buf1+sizeof(DWORD),buf2,sizeof(buf2)); + + pipe = CreateFile( + EVENTLOG_PIPE_NAME, /* pipe name */ + GENERIC_WRITE, + 0, /* no sharing */ + NULL, /* default security attributes FIXME */ + OPEN_EXISTING, /* opens existing pipe */ + FILE_FLAG_OVERLAPPED, /* enable async IO */ + NULL); /* no template file */ - EventSource = RegisterEventSource(NULL, EventLogName); - if( NULL != EventSource ) { - ReportEvent( EventSource, /* event log handle */ - priority, /* event type */ - 0, /* event category */ - SVC_ERROR, /* event identifier */ - NULL, /* no security identifier */ - 2, /* size of string array */ - 0, /* no binary data */ - strings, /* array of string */ - NULL); /* no binary data */ + if (pipe == INVALID_HANDLE_VALUE) { + return; + } - DeregisterEventSource(EventSource); + result = WriteFile (pipe,buf1,strlen(buf2)+sizeof(DWORD),&bytesWritten,NULL); + /* testing result is useless. If we have an error and try to report it, + this will probably lead to a call to this function and an infinite + loop */ + /* + if (result == 0 || bytesWritten != strlen(buf2)+sizeof(DWORD) ) { + return;; } + */ + CloseHandle(pipe); } #endif diff --git a/configure.in b/configure.in index b6820fb708..6cff5bb647 100644 --- a/configure.in +++ b/configure.in @@ -1211,6 +1211,8 @@ AC_OUTPUT([ scripts/augeas/nuthostsconf.aug scripts/augeas/nutupssetconf.aug scripts/avahi/nut.service + man/Makefile + scripts/Windows/Makefile scripts/hal/Makefile scripts/hal/ups-nut-device.fdi scripts/hotplug/Makefile diff --git a/drivers/dstate.c b/drivers/dstate.c index 6b70e9c7d7..2a0d2b0182 100644 --- a/drivers/dstate.c +++ b/drivers/dstate.c @@ -402,7 +402,6 @@ static void sock_connect(HANDLE sock) FALSE, /* inital state = non signaled*/ NULL /* no name*/); if(connect_overlapped.hEvent == NULL ) { - printf("CreateEvent failed.\n"); fatal_with_errno(EXIT_FAILURE, "Can't create event"); } @@ -419,11 +418,10 @@ static void sock_connect(HANDLE sock) FALSE, /* inital state = non signaled*/ NULL /* no name*/); if(conn->read_overlapped.hEvent == NULL ) { - printf("CreateEvent failed.\n"); fatal_with_errno(EXIT_FAILURE, "Can't create event"); } - ReadFile (conn->fd,conn->buf,sizeof(conn->buf)-1,&(conn->bytesRead),&(conn->read_overlapped)); /* -1 to be sure to have a trailling 0 */ + ReadFile (conn->fd,conn->buf,sizeof(conn->buf)-1,NULL,&(conn->read_overlapped)); /* -1 to be sure to have a trailling 0 */ pconf_init(&conn->ctx, NULL); @@ -660,7 +658,7 @@ static void sock_read(conn_t *conn) #ifdef WIN32 /* Restart async read */ memset(conn->buf,0,sizeof(conn->buf)); - ReadFile(conn->fd,conn->buf,sizeof(conn->buf)-1,&(conn->bytesRead),&(conn->read_overlapped)); /* -1 to be sure to have a trailling 0 */ + ReadFile(conn->fd,conn->buf,sizeof(conn->buf)-1,NULL,&(conn->read_overlapped)); /* -1 to be sure to have a trailling 0 */ #endif } @@ -857,12 +855,6 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) rfds[maxfd] = connect_overlapped.hEvent; maxfd++; - /* Add SCM event handler in service mode*/ - if( !noservice_flag ) { - rfds[maxfd] = svc_stop; - maxfd++; - } - ret = WaitForMultipleObjects( maxfd, // number of objects in array rfds, // array of objects @@ -878,12 +870,6 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) return overrun; } - /* Service stop requested */ - if( !noservice_flag && (rfds[ret] == svc_stop) ) { - ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); - return 0; - } - /* Retrieve the signaled connection */ for(conn = connhead; conn != NULL; conn = conn->next) { if( conn->read_overlapped.hEvent == rfds[ret-WAIT_OBJECT_0]) { diff --git a/drivers/dstate.h b/drivers/dstate.h index ae07cdc9ab..b9143d26e8 100644 --- a/drivers/dstate.h +++ b/drivers/dstate.h @@ -41,7 +41,6 @@ typedef struct conn_s { HANDLE fd; char buf[LARGEBUF]; OVERLAPPED read_overlapped; - DWORD bytesRead; #else int fd; #endif diff --git a/drivers/main.c b/drivers/main.c index f946215218..4df2b85a47 100644 --- a/drivers/main.c +++ b/drivers/main.c @@ -28,14 +28,12 @@ #endif char *device_path = NULL; const char *progname = NULL, *upsname = NULL, *device_name = NULL; - char *service_name = NULL; /* may be set by the driver to wake up while in dstate_poll_fds */ #ifndef WIN32 int extrafd = -1; #else HANDLE extrafd = INVALID_HANDLE_VALUE; - #define UPS_ARGS "-a " #endif /* for ser_open */ @@ -458,7 +456,18 @@ static void set_exit_flag(int sig) exit_flag = sig; } -/*FIXME Check if we need equivalent of these signals in WIN32 ? */ +#ifdef WIN32 +BOOL WINAPI CtrlEvent( DWORD dwCtrlType ) +{ + if( dwCtrlType == CTRL_BREAK_EVENT || dwCtrlType == CTRL_C_EVENT ) { + set_exit_flag(1); + return TRUE; + } + + return FALSE; +} +#endif + static void setup_signals(void) { #ifndef WIN32 @@ -475,14 +484,12 @@ static void setup_signals(void) sa.sa_handler = SIG_IGN; sigaction(SIGHUP, &sa, NULL); sigaction(SIGPIPE, &sa, NULL); +#else + SetConsoleCtrlHandler(CtrlEvent,TRUE); #endif } -#ifdef WIN32 -void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) -#else /* NOT WIN32 */ int main(int argc, char **argv) -#endif { struct passwd *new_uid = NULL; int i, do_forceshutdown = 0; @@ -494,12 +501,25 @@ int main(int argc, char **argv) progname = xbasename(argv[0]); -#ifndef WIN32 - open_syslog(progname); -#else - open_syslog(service_name); - SvcStart(service_name); +#ifdef WIN32 + char * drv_name; + drv_name = xbasename(argv[0]); + /* remove trailing .exe */ + char * name = strrchr(drv_name,'.'); + if( name != NULL ) { + if(strcasecmp(name, ".exe") == 0 ) { + progname = strdup(drv_name); + char * t = strrchr(progname,'.'); + *t = 0; + } + } + else { + progname = drv_name; + } #endif + + open_syslog(progname); + upsdrv_banner(); if (upsdrv_info.status == DRV_EXPERIMENTAL) { @@ -510,7 +530,7 @@ int main(int argc, char **argv) /* build the driver's extra (-x) variable table */ upsdrv_makevartable(); - while ((i = getopt(argc, argv, "+a:kDhx:Lqr:u:Vi:N")) != -1) { + while ((i = getopt(argc, argv, "+a:kDhx:Lqr:u:Vi:")) != -1) { switch (i) { case 'a': upsname = optarg; @@ -552,11 +572,6 @@ int main(int argc, char **argv) case 'h': help_msg(); exit(EXIT_SUCCESS); -#ifdef WIN32 - case 'N': - /* Nothing to do noservice_flag already processed */ - break; -#endif default: fatalx(EXIT_FAILURE, "Error: unknown option -%c. Try -h for help.", i); @@ -703,10 +718,6 @@ int main(int argc, char **argv) writepid(pidfn); /* PID changes when backgrounding */ } -#ifdef WIN32 - SvcReady(); -#endif - while (!exit_flag) { struct timeval timeout; @@ -718,108 +729,8 @@ int main(int argc, char **argv) while (!dstate_poll_fds(timeout, extrafd) && !exit_flag) { /* repeat until time is up or extrafd has data */ - if( WaitForSingleObject(svc_stop,0) == WAIT_OBJECT_0 ) { - set_exit_flag(1); - } - } - - if( WaitForSingleObject(svc_stop,0) == WAIT_OBJECT_0 ) { - set_exit_flag(1); } } /* if we get here, the exit flag was set by a signal handler */ } - -#ifdef WIN32 -int main(int argc, char **argv) -{ - const char * drv_name = NULL; - int i; - int install_flag =0; - int uninstall_flag =0; - - drv_name = xbasename(argv[0]); - /* remove trailing .exe */ - char * name = strrchr(drv_name,'.'); - if( name != NULL ) { - if(strcasecmp(name, ".exe") == 0 ) { - progname = strdup(drv_name); - char * t = strrchr(progname,'.'); - *t = 0; - } - } - else { - progname = drv_name; - } - - while ((i = getopt(argc, argv, "+a:kDhx:Lqr:u:Vi:NIU")) != -1) { - switch (i) { - case 'N': - noservice_flag = 1; - break; - case 'I': - install_flag = 1; - break; - case 'U': - uninstall_flag = 1; - break; - case 'a': - upsname = optarg; - - read_upsconf(); - - if (!upsname_found) - fatalx(EXIT_FAILURE, "Error: Section %s not found in ups.conf", optarg); - break; - default: - break; - } - } - - if (!upsname_found) { - fatalx(EXIT_FAILURE, - "Error: specifying '-a id' is now mandatory. Try -h for help."); - } - - int size = strlen(SERVICE_PREFIX) + +strlen(progname) + strlen(upsname) + 1 + 3; /* +1 is terminal 0, +3 is " - "*/ - service_name = xmalloc(size); - snprintf(service_name, size, "%s%s - %s", SERVICE_PREFIX,progname,upsname); - - if( install_flag ) { - char * args; - size = strlen(upsname) + strlen(UPS_ARGS) + 1 ; - args = xmalloc(size); - snprintf(args,size, "%s%s", UPS_ARGS,upsname); - return SvcInstall(service_name,args); - } - - if( uninstall_flag ) { - return SvcUninstall(service_name); - } - - /* Set optind to 0 not 1 because we use GNU extension '+' in optstring */ - optind = 0; - - if( !noservice_flag ) { - - - SERVICE_TABLE_ENTRY DispatchTable[] = - { - { service_name, (LPSERVICE_MAIN_FUNCTION) SvcMain }, - { NULL, NULL } - }; - - /* This call returns when the service has stopped */ - if (!StartServiceCtrlDispatcher( DispatchTable )) - { - upslogx(LOG_ERR, "StartServiceCtrlDispatcher failed (%d): exiting, try -N to avoid starting as a service", (int)GetLastError()); - } - } - else { - SvcMain(argc,argv); - } - - return EXIT_SUCCESS; -} -#endif diff --git a/drivers/upsdrvctl.c b/drivers/upsdrvctl.c index d0da873e62..586f12effa 100644 --- a/drivers/upsdrvctl.c +++ b/drivers/upsdrvctl.c @@ -244,6 +244,37 @@ static void forkexec(char *const argv[], const ups_t *ups) /* shouldn't get here */ fatal_with_errno(EXIT_FAILURE, "execv"); +#else + BOOL ret; + char commandline[SMALLBUF]; + STARTUPINFO StartupInfo; + PROCESS_INFORMATION ProcessInformation; + int i = 1; + + memset(&StartupInfo,0,sizeof(STARTUPINFO)); + + /* the command line is made of the driver name followed by args */ + snprintf(commandline,sizeof(commandline),"%s", ups->driver); + while( argv[i] != NULL ) { + snprintfcat(commandline, sizeof(commandline), " %s", argv[i]); + i++; + } + ret = CreateProcess( + prog, + commandline, + NULL, + NULL, + FALSE, + CREATE_NEW_PROCESS_GROUP, + NULL, + NULL, + &StartupInfo, + &ProcessInformation + ); + + if( ret == 0 ) { + fatal_with_errno(EXIT_FAILURE, "execv"); + } #endif } @@ -256,7 +287,11 @@ static void start_driver(const ups_t *ups) upsdebugx(1, "Starting UPS: %s", ups->upsname); +#ifndef WIN32 snprintf(dfn, sizeof(dfn), "%s/%s", driverpath, ups->driver); +#else + snprintf(dfn, sizeof(dfn), "%s/%s.exe", driverpath, ups->driver); +#endif ret = stat(dfn, &fs); if (ret < 0) diff --git a/include/common.h b/include/common.h index c0109f6af7..41b40c1091 100644 --- a/include/common.h +++ b/include/common.h @@ -55,10 +55,6 @@ extern "C" { #endif extern const char *UPS_VERSION; -#ifdef WIN32 -extern int noservice_flag; -extern HANDLE svc_stop; -#endif /* get the syslog ready for us */ void open_syslog(const char *progname); @@ -134,14 +130,6 @@ int select_read(const int fd, void *buf, const size_t buflen, const long d_sec, int select_read(const HANDLE fd, void *buf, const size_t buflen, const long d_sec, const long d_usec); #endif int select_write(const int fd, const void *buf, const size_t buflen, const long d_sec, const long d_usec); -#ifdef WIN32 -int SvcInstall(const char *,const char *); -int SvcUninstall(const char *); -void ReportSvcStatus(DWORD,DWORD,DWORD); -void WINAPI SvcCtrlHandler(DWORD); -void SvcStart(char *); -void SvcReady(void); -#endif /* Buffer sizes used for various functions */ #define SMALLBUF 512 @@ -176,7 +164,7 @@ extern int optind; /* *INDENT-ON* */ #ifdef WIN32 -/* FIXME : this might not be the optimal mapping between syslog ans ReportEvent*/ +/* FIXME : this might not be the optimal mapping between syslog and ReportEvent*/ #define LOG_ERR EVENTLOG_ERROR_TYPE #define LOG_INFO EVENTLOG_INFORMATION_TYPE #define LOG_DEBUG EVENTLOG_WARNING_TYPE @@ -187,8 +175,8 @@ extern int optind; #define closelog() -#define UPSD_SVCNAME TEXT("NUT - data server") -#define SERVICE_PREFIX TEXT("NUT - ") +#define SVCNAME TEXT("Network UPS Tools") +#define EVENTLOG_PIPE_NAME TEXT("\\\\.\\pipe\\nut") #endif #endif /* NUT_COMMON_H */ diff --git a/include/wincompat.h b/include/wincompat.h index b75f2d9ecd..dd4c3e16d4 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -44,5 +44,7 @@ int sktread(int fh, char *buf, int size); int sktwrite(int fh, char *buf, int size); int sktclose(int fh); +void syslog(int priority, const char *fmt, ...); + extern const char * EventLogName; #endif diff --git a/scripts/Makefile.am b/scripts/Makefile.am index b6dde246f0..a59e89d674 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -24,4 +24,4 @@ upower/95-upower-hid.rules \ Windows/halt.c \ Windows/Makefile -SUBDIRS = augeas hal hotplug python systemd udev Solaris +SUBDIRS = augeas hal hotplug python systemd udev Solaris Windows diff --git a/scripts/Windows/Makefile.am b/scripts/Windows/Makefile.am new file mode 100644 index 0000000000..c8bd92661b --- /dev/null +++ b/scripts/Windows/Makefile.am @@ -0,0 +1,14 @@ +# Network UPS Tools: script/Windows + +AM_CFLAGS = -I$(top_srcdir)/include + +../include/nut_version.h: FORCE + (cd ../include/ && $(MAKE) $(AM_MAKEFLAGS) nut_version.h) + +FORCE: + +LDADD = ../../common/libcommon.la + +bin_PROGRAMS = nut + +nut_SOURCES = wininit.c diff --git a/common/winevent.mc b/scripts/Windows/winevent.mc similarity index 50% rename from common/winevent.mc rename to scripts/Windows/winevent.mc index 90d0c55724..2bd2545ca0 100644 --- a/common/winevent.mc +++ b/scripts/Windows/winevent.mc @@ -1,17 +1,17 @@ MessageIdTypedef=DWORD SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS - Informational=0x1:STATUS_SEVERITY_INFORMATIONAL - Warning=0x2:STATUS_SEVERITY_WARNING - Error=0x3:STATUS_SEVERITY_ERROR - ) + Informational=0x1:STATUS_SEVERITY_INFORMATIONAL + Warning=0x2:STATUS_SEVERITY_WARNING + Error=0x3:STATUS_SEVERITY_ERROR + ) FacilityNames=(System=0x0:FACILITY_SYSTEM - Runtime=0x2:FACILITY_RUNTIME - Stubs=0x3:FACILITY_STUBS - Io=0x4:FACILITY_IO_ERROR_CODE -) + Runtime=0x2:FACILITY_RUNTIME + Stubs=0x3:FACILITY_STUBS + Io=0x4:FACILITY_IO_ERROR_CODE + ) LanguageNames=(English=0x409:MSG00409) @@ -20,9 +20,9 @@ LanguageNames=(English=0x409:MSG00409) MessageId=0x1 Severity=Error Facility=Runtime -SymbolicName=SVC_ERROR +SymbolicName=SVC_EVENT Language=English -(%2):(%1). +%1. . diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c new file mode 100644 index 0000000000..43d7b99549 --- /dev/null +++ b/scripts/Windows/wininit.c @@ -0,0 +1,636 @@ +/* wininit.c - MS Windows service which replace the init script + + Copyright (C) + 2010 Frederic Bohe + + 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 +*/ +#ifdef WIN32 + +#include +#include "common.h" +#include "config.h" +#include "winevent.h" + +#define NUT_START TRUE +#define NUT_STOP FALSE + +typedef struct conn_s { + HANDLE handle; + OVERLAPPED overlapped; + char buf[LARGEBUF]; + struct conn_s *prev; + struct conn_s *next; +} conn_t; + +static DWORD upsd_pid = 0; +static DWORD upsmon_pid = 0; +static HANDLE pipe_connection_handle; +static OVERLAPPED pipe_connection_overlapped; +static conn_t *connhead = NULL; +static BOOL service_flag = TRUE; +HANDLE svc_stop = NULL; +static SERVICE_STATUS SvcStatus; +static SERVICE_STATUS_HANDLE SvcStatusHandle; + +static void print_event(DWORD priority, const char * string) +{ + HANDLE EventSource; + + EventSource = RegisterEventSource(NULL, SVCNAME); + + if( NULL != EventSource ) { + ReportEvent( EventSource, /* event log handle */ + priority, /* event type */ + 0, /* event category */ + SVC_EVENT, /* event identifier */ + NULL, /* no security identifier*/ + 1, /* size of string array */ + 0, /* no binary data */ + &string, /* array of string */ + NULL); /* no binary data */ + + DeregisterEventSource(EventSource); + + } + +} + +static void pipe_create() +{ + BOOL ret; + + if( pipe_connection_overlapped.hEvent != 0 ) { + CloseHandle(pipe_connection_overlapped.hEvent); + } + memset(&pipe_connection_overlapped,0,sizeof(pipe_connection_overlapped)); + pipe_connection_handle = CreateNamedPipe( + EVENTLOG_PIPE_NAME, /* pipe name */ + PIPE_ACCESS_INBOUND | /* to server only */ + FILE_FLAG_OVERLAPPED, /* async IO */ + PIPE_TYPE_MESSAGE | + PIPE_READMODE_MESSAGE | + PIPE_WAIT, + PIPE_UNLIMITED_INSTANCES, /* max. instances */ + LARGEBUF, /* output buffer size */ + LARGEBUF, /* input buffer size */ + 0, /* client time-out */ + NULL); /* FIXME: default security attribute */ + + if (pipe_connection_handle == INVALID_HANDLE_VALUE) { + print_event(LOG_ERR,"Error creating named pipe"); + fatal_with_errno(EXIT_FAILURE, "Can't create a state socket (windows named pipe)"); + } + + /* Prepare an async wait on a connection on the pipe */ + pipe_connection_overlapped.hEvent = CreateEvent(NULL, /*Security*/ + FALSE, /* auto-reset*/ + FALSE, /* inital state = non signaled*/ + NULL /* no name*/); + if(pipe_connection_overlapped.hEvent == NULL ) { + print_event(LOG_ERR,"Error creating event"); + fatal_with_errno(EXIT_FAILURE, "Can't create event"); + } + + /* Wait for a connection */ + ret = ConnectNamedPipe(pipe_connection_handle,&pipe_connection_overlapped); + if(ret == 0 && GetLastError() != ERROR_IO_PENDING ) { + print_event(LOG_ERR,"ConnectNamedPipe error"); + } +} + +static void pipe_connect() +{ + /* We have detected a connection on the opened pipe. So we start by saving its handle and create a new pipe for future connections */ + conn_t *conn; + + conn = xcalloc(1,sizeof(*conn)); + conn->handle = pipe_connection_handle; + + /* restart a new listening pipe */ + pipe_create(); + + /* A new pipe waiting for new client connection has been created. We could manage the current connection now */ + /* Start a read operation on the newly connected pipe so we could wait on the event associated to this IO */ + memset(&conn->overlapped,0,sizeof(conn->overlapped)); + memset(conn->buf,0,sizeof(conn->buf)); + conn->overlapped.hEvent = CreateEvent(NULL, /*Security*/ + FALSE, /* auto-reset*/ + FALSE, /* inital state = non signaled*/ + NULL /* no name*/); + if(conn->overlapped.hEvent == NULL ) { + print_event(LOG_ERR,"Can't create event for reading event log"); + return; + } + + ReadFile (conn->handle,conn->buf,sizeof(conn->buf)-1,NULL,&(conn->overlapped)); /* -1 to be sure to have a trailling 0 */ + + if (connhead) { + conn->next = connhead; + connhead->prev = conn; + } + + connhead = conn; +} + +static void pipe_disconnect(conn_t *conn) +{ + if( conn->overlapped.hEvent != INVALID_HANDLE_VALUE) { + CloseHandle(conn->overlapped.hEvent); + conn->overlapped.hEvent = INVALID_HANDLE_VALUE; + } + if ( DisconnectNamedPipe(conn->handle) == 0 ) { + print_event(LOG_ERR,"DisconnectNamedPipe"); + } + + if (conn->prev) { + conn->prev->next = conn->next; + } else { + connhead = conn->next; + } + + if (conn->next) { + conn->next->prev = conn->prev; + } else { + /* conntail = conn->prev; */ + } + + free(conn); +} + +static void pipe_read(conn_t *conn) +{ + DWORD bytesRead; + BOOL res; + char *buf = conn->buf; + DWORD priority; + + res = GetOverlappedResult(conn->handle, &conn->overlapped, &bytesRead, FALSE); + if( res == 0 ) { + print_event(LOG_ERR, "Read error"); + pipe_disconnect(conn); + return; + } + + /* a frame is a DWORD indicating priority followed by an array of char (not necessarily followed by a terminal 0 */ + priority =*((DWORD *)buf); + buf = buf + sizeof(DWORD); + print_event(priority,buf); + + pipe_disconnect(conn); +} + +/* returns PID of the newly created process or 0 on failure */ +static DWORD create_process(char * application, char * command) +{ + STARTUPINFO StartupInfo; + PROCESS_INFORMATION ProcessInformation; + BOOL res; + + memset(&StartupInfo,0,sizeof(STARTUPINFO)); + + res = CreateProcess( + application, + command, + NULL, + NULL, + FALSE, + CREATE_NEW_PROCESS_GROUP, + NULL, + NULL, + &StartupInfo, + &ProcessInformation + ); + + if( res == 0 ) { + print_event(LOG_ERR, "Can't create process"); + return 0; + } + + return ProcessInformation.dwProcessId; +} + +/* return PID of created process or 0 on failure */ +static DWORD run_drivers() +{ + char application[MAX_PATH]; + char command[MAX_PATH]; + + snprintf(application,sizeof(application),"%s/upsdrvctl.exe",BINDIR); + snprintf(command,sizeof(command),"upsdrvctl.exe start"); + return create_process(application,command); +} + +/* return PID of created process or 0 on failure */ +static DWORD stop_drivers() +{ + char application[MAX_PATH]; + char command[MAX_PATH]; + + snprintf(application,sizeof(application),"%s/upsdrvctl.exe",BINDIR); + snprintf(command,sizeof(command),"upsdrvctl.exe stop"); + return create_process(application,command); +} + +/* return PID of created process or 0 on failure */ +static void run_upsd() +{ + char application[MAX_PATH]; + char command[MAX_PATH]; + snprintf(application,sizeof(application),"%s/upsd.exe",SBINDIR); + snprintf(command,sizeof(command),"upsd.exe"); + upsd_pid = create_process(application,command); +} + +static void stop_upsd() +{ + if ( GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,upsd_pid) == 0 ) { + print_event(LOG_ERR, "Error sendind CTRL_BREAK to upsd"); + } +} + +/* return PID of created process or 0 on failure */ +static void run_upsmon() +{ + char application[MAX_PATH]; + char command[MAX_PATH]; + snprintf(application,sizeof(application),"%s/upsmon.exe",SBINDIR); + snprintf(command,sizeof(command),"upsmon.exe"); + upsmon_pid = create_process(application,command); +} + +static void stop_upsmon() +{ + if ( GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,upsmon_pid) == 0 ) { + print_event(LOG_ERR, "Error sendind CTRL_BREAK to upsmon"); + } +} + +/* return 0 on failure */ +static int parse_nutconf(BOOL start_flag) +{ + char fn[SMALLBUF]; + FILE *nutf; + char buf[SMALLBUF]; + + snprintf(fn,sizeof(fn),"%s/nut.conf",CONFPATH); + + nutf = fopen(fn, "r"); + if(nutf == NULL) { + snprintf(buf,sizeof(buf),"Error opening %s",fn); + print_event(LOG_ERR,buf); + return 0; + } + + while( fgets(buf,sizeof(buf),nutf) != NULL ) { + if(buf[0] != '#') { + if( strstr(buf,"none") != NULL ) { + return 1; + + } + if( strstr(buf,"standalone") != NULL || + strstr(buf,"netserver") != NULL ) { + if( start_flag == TRUE ) { + run_drivers(); + run_upsd(); + run_upsmon(); + return 1; + } + else { + stop_upsd(); + stop_drivers(); + stop_upsmon(); + return 1; + } + } + if( strstr(buf,"netclient") != NULL ) { + if( start_flag == TRUE ) { + run_upsmon(); + return 1; + } + else { + stop_upsmon(); + return 1; + } + } + } + } + + print_event(LOG_ERR,"No valid MODE in nut.conf"); + return 0; +} + +static int SvcInstall(const char * SvcName, const char * args) +{ + SC_HANDLE SCManager; + SC_HANDLE Service; + TCHAR Path[MAX_PATH]; + + if( !GetModuleFileName( NULL, Path, MAX_PATH ) ) { + printf("Cannot install service (%d)\n", (int)GetLastError()); + return EXIT_FAILURE; + } + + if( args != NULL ) { + snprintfcat(Path, sizeof(Path), " %s", args); + } + + SCManager = OpenSCManager( + NULL, /* local computer */ + NULL, /* ServiceActive database */ + SC_MANAGER_ALL_ACCESS); /* full access rights */ + + if (NULL == SCManager) { + upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); + return EXIT_FAILURE; + } + + Service = CreateService( + SCManager, /* SCM database */ + SvcName, /* name of service */ + SvcName, /* service name to display */ + SERVICE_ALL_ACCESS, /* desired access */ + SERVICE_WIN32_OWN_PROCESS, /* service type */ + SERVICE_DEMAND_START, /* start type */ + SERVICE_ERROR_NORMAL, /* error control type */ + Path, /* path to service binary */ + NULL, /* no load ordering group */ + NULL, /* no tag identifier */ + NULL, /* no dependencies */ + NULL, /* LocalSystem account */ + NULL); /* no password */ + + if (Service == NULL) { + upslogx(LOG_ERR, "CreateService failed (%d)\n", (int)GetLastError()); + CloseServiceHandle(SCManager); + return EXIT_FAILURE; + } + else { + upslogx(LOG_INFO, "Service installed successfully\n"); + } + + CloseServiceHandle(Service); + CloseServiceHandle(SCManager); + + return EXIT_SUCCESS; +} + +static int SvcUninstall(const char * SvcName) +{ + SC_HANDLE SCManager; + SC_HANDLE Service; + + SCManager = OpenSCManager( + NULL, /* local computer */ + NULL, /* ServicesActive database */ + SC_MANAGER_ALL_ACCESS); /* full access rights */ + + if (NULL == SCManager) { + upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); + return EXIT_FAILURE; + } + + Service = OpenService( + SCManager, /* SCM database */ + SvcName, /* name of service */ + DELETE); /* need delete access */ + + if (Service == NULL) { + upslogx(LOG_ERR, "OpenService failed (%d)\n", (int)GetLastError()); + CloseServiceHandle(SCManager); + return EXIT_FAILURE; + } + + if (! DeleteService(Service) ) { + upslogx(LOG_ERR,"DeleteService failed (%d)\n", (int)GetLastError()); + } + else { + upslogx(LOG_ERR,"Service deleted successfully\n"); + } + + CloseServiceHandle(Service); + CloseServiceHandle(SCManager); + + return EXIT_SUCCESS; +} + +static void ReportSvcStatus( DWORD CurrentState, + DWORD Win32ExitCode, + DWORD WaitHint) +{ + static DWORD CheckPoint = 1; + + SvcStatus.dwCurrentState = CurrentState; + SvcStatus.dwWin32ExitCode = Win32ExitCode; + SvcStatus.dwWaitHint = WaitHint; + + if (CurrentState == SERVICE_START_PENDING) + SvcStatus.dwControlsAccepted = 0; + else SvcStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN; + + if ( (CurrentState == SERVICE_RUNNING) || + (CurrentState == SERVICE_STOPPED) ) { + SvcStatus.dwCheckPoint = 0; + } + else { + SvcStatus.dwCheckPoint = CheckPoint++; + } + + /* report the status of the service to the SCM */ + SetServiceStatus( SvcStatusHandle, &SvcStatus ); +} + +static void WINAPI SvcCtrlHandler( DWORD Ctrl ) +{ + switch(Ctrl) + { + case SERVICE_CONTROL_STOP: + case SERVICE_CONTROL_SHUTDOWN: + ReportSvcStatus(SERVICE_STOP_PENDING, NO_ERROR, 0); + + /* Signal the service to stop */ + SetEvent(svc_stop); + ReportSvcStatus(SvcStatus.dwCurrentState, NO_ERROR, 0); + + return; + + case SERVICE_CONTROL_INTERROGATE: + break; + + default: + break; + } +} + +static void SvcStart(char * SvcName) +{ + /* Register the handler function for the service */ + SvcStatusHandle = RegisterServiceCtrlHandler( + SvcName, + SvcCtrlHandler); + + if( !SvcStatusHandle ) { + upslogx(LOG_ERR, "RegisterServiceCtrlHandler\n"); + return; + } + + SvcStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS; + SvcStatus.dwServiceSpecificExitCode = 0; + + /* Report initial status to the SCM */ + ReportSvcStatus( SERVICE_START_PENDING, NO_ERROR, 3000 ); +} + +static void SvcReady(void) +{ + svc_stop = CreateEvent( + NULL, /* default security attributes */ + TRUE, /* manual reset event */ + FALSE, /* not signaled */ + NULL); /* no name */ + + if( svc_stop == NULL ) { + ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); + return; + } + ReportSvcStatus( SERVICE_RUNNING, NO_ERROR, 0); +} + +static void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) +{ + + DWORD ret; + HANDLE handles[MAXIMUM_WAIT_OBJECTS]; + int maxhandle = 0; + conn_t *conn; + + if(service_flag) { + SvcStart(SVCNAME); + } + + /* A service has no console, so do has its child. */ + /* So if we want to be able to send CTRL+BREAK signal we must */ + /* create a console which will be inheritated by childs */ + AllocConsole(); + + print_event(LOG_INFO,"Starting"); + + /* pipe for event log proxy */ + pipe_create(); + + /* parse nut.conf and start relevant processes */ + if ( parse_nutconf(NUT_START) == 0 ) { + print_event(LOG_INFO, "exiting"); + ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); + return; + } + + if(service_flag) { + SvcReady(); + } + + while (1) { + maxhandle = 0; + memset(&handles,0,sizeof(handles)); + + /* Wait on the read IO of each connections */ + for (conn = connhead; conn; conn = conn->next) { + handles[maxhandle] = conn->overlapped.hEvent; + maxhandle++; + } + /* Add the new pipe connected event */ + handles[maxhandle] = pipe_connection_overlapped.hEvent; + maxhandle++; + + /* Add SCM event handler in service mode*/ + if(service_flag) { + handles[maxhandle] = svc_stop; + maxhandle++; + } + + ret = WaitForMultipleObjects(maxhandle,handles,FALSE,INFINITE); + + if (ret == WAIT_FAILED) { + print_event(LOG_ERR, "Wait failed"); + return; + } + + if( handles[ret] == svc_stop && service_flag ) { + parse_nutconf(NUT_STOP); + + if(service_flag) { + print_event(LOG_INFO, "exiting"); + ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); + } + return; + } + + /* Retrieve the signaled connection */ + for(conn = connhead; conn != NULL; conn = conn->next) { + if( conn->overlapped.hEvent == handles[ret-WAIT_OBJECT_0]) { + break; + } + } + /* a new pipe connection has been signaled */ + if (handles[ret] == pipe_connection_overlapped.hEvent) { + pipe_connect(); + } + /* one of the read event handle has been signaled */ + else { + if( conn != NULL) { + pipe_read(conn); + } + } + } +} + +int main(int argc, char **argv) +{ + int i; + while ((i = getopt(argc, argv, "+IUN")) != -1) { + switch (i) { + case 'I': + return SvcInstall(SVCNAME,NULL); + case 'U': + return SvcUninstall(SVCNAME); + case 'N': + service_flag = FALSE; + break; + default: + break; + } + } + + optind = 0; + + SERVICE_TABLE_ENTRY DispatchTable[] = + { + { SVCNAME, (LPSERVICE_MAIN_FUNCTION) SvcMain }, + { NULL, NULL } + }; + /* This call returns when the service has stopped */ + if(service_flag ) { + if (!StartServiceCtrlDispatcher( DispatchTable )) + { + print_event(LOG_ERR, "StartServiceCtrlDispatcher failed : exiting, this is a Windows service which can't be run as a regular application by default. Try -N to start it as a regular application"); + } + } + else { + SvcMain(argc,argv); + } + + return EXIT_SUCCESS; +} +#endif /* WIN32 */ diff --git a/server/sstate.c b/server/sstate.c index 627e8d7c75..0aae8ddcb6 100644 --- a/server/sstate.c +++ b/server/sstate.c @@ -283,7 +283,7 @@ HANDLE sstate_connect(upstype_t *ups) } /* Start a read IO so we could wait on the event associated with it */ - ReadFile(fd,ups->buf,sizeof(ups->buf)-1,&(ups->bytesRead),&(ups->read_overlapped)); /*-1 to be sure to have a trailling 0 */ + ReadFile(fd,ups->buf,sizeof(ups->buf)-1,NULL,&(ups->read_overlapped)); /*-1 to be sure to have a trailling 0 */ #endif pconf_init(&ups->sock_ctx, NULL); @@ -389,7 +389,7 @@ void sstate_readline(upstype_t *ups) #ifdef WIN32 /* Restart async read */ memset(ups->buf,0,sizeof(ups->buf)); - ReadFile( ups->sock_fd, ups->buf, sizeof(ups->buf)-1, &(ups->bytesRead), &(ups->read_overlapped)); /* -1 to be sure to have a trailing 0 */ + ReadFile( ups->sock_fd, ups->buf, sizeof(ups->buf)-1,NULL, &(ups->read_overlapped)); /* -1 to be sure to have a trailing 0 */ #endif } diff --git a/server/upsd.c b/server/upsd.c index f86784a2a6..043cfd332c 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -98,6 +98,7 @@ typedef struct { static struct pollfd *fds = NULL; #else static HANDLE *fds = NULL; +static HANDLE stop_event; #endif static handler_t *handler = NULL; @@ -995,11 +996,9 @@ static void mainloop(void) nfds++; } - /* Add SCM event handler in service mode*/ - if( !noservice_flag ) { - fds[nfds] = svc_stop; - nfds++; - } + /* Add asynchronous exit request (CTRL+C) */ + fds[nfds] = stop_event; + nfds++; upsdebugx(2, "%s: wait for %d filedescriptors", __func__, nfds); @@ -1017,25 +1016,23 @@ static void mainloop(void) return; } - if( !noservice_flag && fds[ret] == svc_stop ) { - ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); - set_exit_flag(1); - } - else { - switch(handler[ret].type) { - case DRIVER: - sstate_readline((upstype_t *)handler[ret].data); - break; - case CLIENT: - client_readline((ctype_t *)handler[ret].data); - break; - case SERVER: - client_connect((stype_t *)handler[ret].data); - break; - default: - upsdebugx(2, "%s: has data available", __func__); - break; - } + if( fds[ret] == stop_event ) { + return; + } + + switch(handler[ret].type) { + case DRIVER: + sstate_readline((upstype_t *)handler[ret].data); + break; + case CLIENT: + client_readline((ctype_t *)handler[ret].data); + break; + case SERVER: + client_connect((stype_t *)handler[ret].data); + break; + default: + upsdebugx(2, "%s: has data available", __func__); + break; } #endif } @@ -1059,11 +1056,6 @@ static void help(const char *progname) printf(" -4 IPv4 only\n"); printf(" -6 IPv6 only\n"); #endif -#ifdef WIN32 - printf(" -I Install service\n"); - printf(" -N Do not start as a service (for debug purpose)\n"); -#endif - exit(EXIT_SUCCESS); } @@ -1074,6 +1066,22 @@ static void set_reload_flag(int sig) } #endif +#ifdef WIN32 +BOOL WINAPI CtrlEvent( DWORD dwCtrlType ) +{ +printf("CtrlEvent %d\n",dwCtrlType); + if( dwCtrlType == CTRL_BREAK_EVENT || dwCtrlType == CTRL_C_EVENT ) { +printf("SetEvent\n"); + set_exit_flag(1); + SetEvent(stop_event); + /* Wait for the mainloop to exit */ + while(1) {}; + return TRUE; + } + + return FALSE; +} +#endif static void setup_signals(void) { @@ -1097,6 +1105,12 @@ static void setup_signals(void) /* handle reloading */ sa.sa_handler = set_reload_flag; sigaction(SIGHUP, &sa, NULL); +#else + stop_event = CreateEvent(NULL, /* security */ + FALSE, /* auto-reset */ + FALSE, /* initial test = non signaled */ + NULL /*no name */); + SetConsoleCtrlHandler(CtrlEvent,TRUE); #endif } @@ -1119,19 +1133,12 @@ void check_perms(const char *fn) #endif } -#ifdef WIN32 -void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) -#else /* NOT WIN32 */ int main(int argc, char **argv) -#endif { int i, cmd = 0; char *chroot_path = NULL; const char *user = RUN_AS_USER; struct passwd *new_uid = NULL; -#ifdef WIN32 - SvcStart(UPSD_SVCNAME); -#endif progname = xbasename(argv[0]); @@ -1144,7 +1151,7 @@ int main(int argc, char **argv) printf("Network UPS Tools %s %s\n", progname, UPS_VERSION); - while ((i = getopt(argc, argv, "+h46p:qr:i:fu:Vc:DN")) != -1) { + while ((i = getopt(argc, argv, "+h46p:qr:i:fu:Vc:D")) != -1) { switch (i) { case 'h': help(progname); @@ -1190,11 +1197,6 @@ int main(int argc, char **argv) opt_af = AF_INET6; break; #endif - case 'N': - case 'I': - /* nothing to do, already processed */ - break; - default: help(progname); break; @@ -1286,10 +1288,6 @@ int main(int argc, char **argv) memset(pidfn, 0, sizeof(pidfn)); } -#ifdef WIN32 - SvcReady(); -#endif - while (!exit_flag) { mainloop(); } @@ -1297,52 +1295,6 @@ int main(int argc, char **argv) ssl_cleanup(); upslogx(LOG_INFO, "Signal %d: exiting", exit_flag); -#ifndef WIN32 return EXIT_SUCCESS; -#else - return; -#endif } -#ifdef WIN32 - -int main(int argc, char **argv) -{ - int i; - while ((i = getopt(argc, argv, "+h46p:qr:i:fu:Vc:DNIU")) != -1) { - switch (i) { - case 'N': - noservice_flag = 1; - break; - case 'I': - return SvcInstall(UPSD_SVCNAME,NULL); - case 'U': - return SvcUninstall(UPSD_SVCNAME); - default: - break; - } - } - - /* Set optind to 0 not 1 because we use GNU extension '+' in optstring */ - optind = 0; - - if( !noservice_flag ) { - SERVICE_TABLE_ENTRY DispatchTable[] = - { - { UPSD_SVCNAME, (LPSERVICE_MAIN_FUNCTION) SvcMain }, - { NULL, NULL } - }; - - /* This call returns when the service has stopped */ - if (!StartServiceCtrlDispatcher( DispatchTable )) - { - upslogx(LOG_ERR, "StartServiceCtrlDispatcher failed (%d): exiting, try -N to avoid starting as a service", (int)GetLastError()); - } - } - else { - SvcMain(argc,argv); - } - - return EXIT_SUCCESS; -} -#endif diff --git a/server/upstype.h b/server/upstype.h index 785bfdec90..5342e98558 100644 --- a/server/upstype.h +++ b/server/upstype.h @@ -42,7 +42,6 @@ typedef struct upstype_s { HANDLE sock_fd; char buf[SMALLBUF]; OVERLAPPED read_overlapped; - DWORD bytesRead; #endif int stale; int dumpdone; From 9d9c732b9d74ec0b93fe17db5be9b32d8b036555 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 26 Nov 2010 14:01:35 +0000 Subject: [PATCH 029/218] Add regex library for drivers (by Arnaud Quette) Fossil-ID: SVN r2705 --- drivers/Makefile.am | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/Makefile.am b/drivers/Makefile.am index 862d2808c6..f5377222ca 100644 --- a/drivers/Makefile.am +++ b/drivers/Makefile.am @@ -170,23 +170,23 @@ USBHID_UPS_SUBDRIVERS = apc-hid.c belkin-hid.c cps-hid.c explore-hid.c \ openups-hid.c usbhid_ups_SOURCES = usbhid-ups.c libhid.c libusb.c hidparser.c \ usb-common.c $(USBHID_UPS_SUBDRIVERS) -usbhid_ups_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) +usbhid_ups_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) tripplite_usb_SOURCES = tripplite_usb.c libusb.c usb-common.c -tripplite_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) -lm +tripplite_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) -lm bcmxcp_usb_SOURCES = bcmxcp_usb.c bcmxcp.c usb-common.c -bcmxcp_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) +bcmxcp_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) megatec_usb_SOURCES = megatec.c megatec_usb.c libusb.c usb-common.c megatec_usb_CFLAGS = $(AM_CFLAGS) -DMEGATEC_SUBDRV -megatec_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) +megatec_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) blazer_usb_SOURCES = blazer.c blazer_usb.c libusb.c usb-common.c blazer_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) -lm richcomm_usb_SOURCES = richcomm_usb.c usb-common.c -richcomm_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) +richcomm_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) riello_usb_SOURCES = riello.c riello_usb.c libusb.c usb-common.c riello_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) -lm From 06af1b86103280bd4cc62ff8a75e893d7c1d3336 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 29 Nov 2010 09:06:29 +0000 Subject: [PATCH 030/218] Reverting useless previous commit: [[SVN:2705]] [[SVN:2705]] = 2010-11-26T14:01:35Z!fbohe-guest@alioth.debian.org Fossil-ID: SVN r2709 --- drivers/Makefile.am | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/Makefile.am b/drivers/Makefile.am index f5377222ca..862d2808c6 100644 --- a/drivers/Makefile.am +++ b/drivers/Makefile.am @@ -170,23 +170,23 @@ USBHID_UPS_SUBDRIVERS = apc-hid.c belkin-hid.c cps-hid.c explore-hid.c \ openups-hid.c usbhid_ups_SOURCES = usbhid-ups.c libhid.c libusb.c hidparser.c \ usb-common.c $(USBHID_UPS_SUBDRIVERS) -usbhid_ups_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) +usbhid_ups_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) tripplite_usb_SOURCES = tripplite_usb.c libusb.c usb-common.c -tripplite_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) -lm +tripplite_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) -lm bcmxcp_usb_SOURCES = bcmxcp_usb.c bcmxcp.c usb-common.c -bcmxcp_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) +bcmxcp_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) megatec_usb_SOURCES = megatec.c megatec_usb.c libusb.c usb-common.c megatec_usb_CFLAGS = $(AM_CFLAGS) -DMEGATEC_SUBDRV -megatec_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) +megatec_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) blazer_usb_SOURCES = blazer.c blazer_usb.c libusb.c usb-common.c blazer_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) -lm richcomm_usb_SOURCES = richcomm_usb.c usb-common.c -richcomm_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) $(LIBREGEX) +richcomm_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) riello_usb_SOURCES = riello.c riello_usb.c libusb.c usb-common.c riello_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) -lm From 97f9667a90e1d59c1e990a800e9cd39d6e70cf22 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 1 Dec 2010 13:09:10 +0000 Subject: [PATCH 031/218] Fix upsd clients read Fossil-ID: SVN r2714 --- server/nut_ctype.h | 3 +++ server/upsd.c | 19 +++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/server/nut_ctype.h b/server/nut_ctype.h index c2302aadb8..545cca978f 100644 --- a/server/nut_ctype.h +++ b/server/nut_ctype.h @@ -60,6 +60,9 @@ typedef struct nut_ctype_s { /* doubly linked list */ struct nut_ctype_s *prev; struct nut_ctype_s *next; +#ifdef WIN32 + HANDLE Event; +#endif } nut_ctype_t; #endif /* NUT_CTYPE_H_SEEN */ diff --git a/server/upsd.c b/server/upsd.c index 043cfd332c..2dbb03fccd 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -369,6 +369,10 @@ static void client_disconnect(nut_ctype_t *client) shutdown(client->sock_fd, 2); close(client->sock_fd); +#ifdef WIN32 + CloseHandle(client->Event); +#endif + if (client->loginups) { declogins(client->loginups); } @@ -572,6 +576,15 @@ static void client_connect(stype_t *server) client->addr = xstrdup(inet_ntopW(&csock)); +#ifdef WIN32 + client->Event = CreateEvent(NULL, /*Security,*/ + FALSE, /*auo-reset */ + FALSE, /*initial state*/ + NULL); /* no name */ + + /* Associate socket event to the socket via its Event object */ + WSAEventSelect( client->sock_fd, client->Event, FD_READ ); +#endif pconf_init(&client->ctx, NULL); if (firstclient) { @@ -973,7 +986,7 @@ static void mainloop(void) continue; } - fds[nfds] = (HANDLE)client->sock_fd; + fds[nfds] = client->Event; handler[nfds].type = CLIENT; handler[nfds].data = client; @@ -988,7 +1001,7 @@ static void mainloop(void) continue; } - fds[nfds] = (HANDLE)server->Event; + fds[nfds] = server->Event; handler[nfds].type = SERVER; handler[nfds].data = server; @@ -1069,9 +1082,7 @@ static void set_reload_flag(int sig) #ifdef WIN32 BOOL WINAPI CtrlEvent( DWORD dwCtrlType ) { -printf("CtrlEvent %d\n",dwCtrlType); if( dwCtrlType == CTRL_BREAK_EVENT || dwCtrlType == CTRL_C_EVENT ) { -printf("SetEvent\n"); set_exit_flag(1); SetEvent(stop_event); /* Wait for the mainloop to exit */ From 0827701af0aa24ece23cd2656e9e8923689335a6 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 1 Dec 2010 13:14:00 +0000 Subject: [PATCH 032/218] upsmon uses a message box instead of wall Fossil-ID: SVN r2715 --- clients/upsmon.c | 81 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 1 deletion(-) diff --git a/clients/upsmon.c b/clients/upsmon.c index 4abd4035d2..6ef34e63b3 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -107,6 +107,7 @@ static int flag_isset(int num, int flag) static void wall(const char *text) { +#ifndef WIN32 FILE *wf; wf = popen("wall", "w"); @@ -118,13 +119,57 @@ static void wall(const char *text) fprintf(wf, "%s\n", text); pclose(wf); +#else + MessageBox(NULL,text,SVCNAME,MB_OK|MB_ICONEXCLAMATION|MB_SERVICE_NOTIFICATION); +#endif } +#ifdef WIN32 +typedef struct async_notify_s { + const char *notice; + int flags; + const char *ntype; + const char *upsname; } async_notify_t; + +static unsigned __stdcall async_notify(LPVOID param) +{ + char exec[LARGEBUF]; + + /* the following code is a copy of the content of the NOT WIN32 part of + "notify" function below */ + + async_notify_t *data = (async_notify_t *)param; + + if (flag_isset(data->flags, NOTIFY_WALL)) + wall(data->notice); + + if (flag_isset(data->flags, NOTIFY_EXEC)) { + if (notifycmd != NULL) { + snprintf(exec, sizeof(exec), "%s \"%s\"", notifycmd, data->notice); + + if (data->upsname) + setenv("UPSNAME", data->upsname, 1); + else + setenv("UPSNAME", "", 1); + + setenv("NOTIFYTYPE", data->ntype, 1); + if (system(exec) == -1) { + upslog_with_errno(LOG_ERR, "%s", __func__); + } + } + } + + return 1; +} +#endif + static void notify(const char *notice, int flags, const char *ntype, const char *upsname) { +#ifndef WIN32 char exec[LARGEBUF]; int ret; +#endif if (flag_isset(flags, NOTIFY_IGNORE)) return; @@ -142,7 +187,6 @@ static void notify(const char *notice, int flags, const char *ntype, if (ret != 0) /* parent */ return; -#endif /* child continues and does all the work */ if (flag_isset(flags, NOTIFY_WALL)) @@ -165,6 +209,23 @@ static void notify(const char *notice, int flags, const char *ntype, } exit(EXIT_SUCCESS); +#else + async_notify_t data; + + data.notice = notice; + data.flags = flags; + data.ntype = ntype; + data.upsname = upsname; + + _beginthreadex( + NULL, /* security FIXME */ + 0, /* stack size */ + async_notify, + (void *)&data, + 0, /* Creation flags */ + NULL /* thread id */ + ); +#endif } static void do_notify(const utype_t *ups, int ntype) @@ -1877,6 +1938,24 @@ static void check_parent(void) int main(int argc, char *argv[]) { const char *prog = xbasename(argv[0]); + +#ifdef WIN32 + /* remove trailing .exe */ + char * drv_name; + drv_name = (char *)xbasename(argv[0]); + char * name = strrchr(drv_name,'.'); + if( name != NULL ) { + if(strcasecmp(name, ".exe") == 0 ) { + prog = strdup(drv_name); + char * t = strrchr(prog,'.'); + *t = 0; + } + } + else { + prog = drv_name; + } +#endif + int i, cmd = 0, checking_flag = 0; printf("Network UPS Tools %s %s\n", prog, UPS_VERSION); From b16539e93c69afb6abfa975177a0fe7154d83777 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 1 Dec 2010 13:15:58 +0000 Subject: [PATCH 033/218] Start upsmon as a single process. Fossil-ID: SVN r2716 --- scripts/Windows/wininit.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index 43d7b99549..b4f136cc66 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -267,7 +267,9 @@ static void run_upsmon() char application[MAX_PATH]; char command[MAX_PATH]; snprintf(application,sizeof(application),"%s/upsmon.exe",SBINDIR); - snprintf(command,sizeof(command),"upsmon.exe"); + /* FIXME "-p" is to prevent the fork of upsmon. + Maybe this will need more investigation to avoid security breach ?? */ + snprintf(command,sizeof(command),"upsmon.exe -p"); upsmon_pid = create_process(application,command); } From 750959936393ab076169eb4aa63297937fb663d5 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 9 Dec 2010 14:01:07 +0000 Subject: [PATCH 034/218] More work on serial drivers. Still some TODOs to address but all drivers are compiling now. Successfully tested mge-shut driver. Fossil-ID: SVN r2726 --- common/common.c | 42 +++++------ drivers/belkinunv.c | 163 +++++++++++++++++++++++++++++++++++++++-- drivers/bestfcom.c | 24 ++++++ drivers/bestfortress.c | 7 ++ drivers/bestuferrups.c | 23 ++++++ drivers/blazer_ser.c | 6 ++ drivers/clone-outlet.c | 144 +++++++++++++++++++++++++++++------- drivers/clone.c | 107 ++++++++++++++++++++++++--- drivers/dummy-ups.c | 8 ++ drivers/genericups.c | 13 ++++ drivers/genericups.h | 4 +- drivers/ivtscd.c | 4 + drivers/mge-shut.c | 42 ++++++++++- drivers/mge-utalk.c | 37 +++++++++- drivers/microdowell.c | 2 + drivers/powercom.c | 10 +++ drivers/powercom.h | 2 + drivers/safenet.c | 8 ++ drivers/serial.c | 69 +++++++++++++++-- drivers/serial.h | 45 ++++++++++++ drivers/upscode2.c | 4 + include/common.h | 1 + 22 files changed, 687 insertions(+), 78 deletions(-) diff --git a/common/common.c b/common/common.c index 01c9f48037..2fde1aefde 100644 --- a/common/common.c +++ b/common/common.c @@ -623,30 +623,28 @@ int select_read(const int fd, void *buf, const size_t buflen, const long d_sec, #else int select_read(const HANDLE fd, void *buf, const size_t buflen, const long d_sec, const long d_usec) { -/* This function is only called by serial drivers right now */ - OVERLAPPED overlapped; - DWORD bytesread = 0; - DWORD ret; - - memset(&overlapped,0,sizeof(OVERLAPPED)); - overlapped.hEvent = CreateEvent(NULL, /*security*/ - FALSE, /*auto-reset*/ - FALSE, /*initally non signaled*/ - NULL ); /*no name*/ - if(overlapped.hEvent == NULL ) { - return 0; - } - ReadFile(fd,buf,buflen,NULL,&overlapped); - - ret = WaitForSingleObject(overlapped.hEvent, d_sec * 1000 + d_usec / 1000); - GetOverlappedResult(fd, &overlapped, &bytesread, FALSE); - CancelIo(overlapped.hEvent); - CloseHandle(overlapped.hEvent); - if( ret != WAIT_OBJECT_0 ) { - return 0; + /* This function is only called by serial drivers right now */ + DWORD bytes_read; + BOOL res; + DWORD timeout; + COMMTIMEOUTS TOut; + + GetCommTimeouts(fd,&TOut); + + timeout = d_sec * 1000 + d_usec / 1000 + ((d_usec % 1000)!=0)?1:0; + + TOut.ReadIntervalTimeout = MAXDWORD; + TOut.ReadTotalTimeoutMultiplier = 0; + TOut.ReadTotalTimeoutConstant = timeout; + SetCommTimeouts(fd,&TOut); + + res = ReadFile(fd,buf,buflen,&bytes_read,NULL); + + if( res == 0 ) { + return -1; } - return bytesread; + return bytes_read; } #endif diff --git a/drivers/belkinunv.c b/drivers/belkinunv.c index c5abda2fe7..08bd6e6344 100644 --- a/drivers/belkinunv.c +++ b/drivers/belkinunv.c @@ -196,6 +196,14 @@ static const char *status[] = { #define ESC "\033" #define COL0 ESC "[G" ESC "[K" /* terminal control: clear line */ +/* porting stuff for WIN32 */ +#ifndef WIN32 +#define ERROR_FD (-1) +#else +#define ERROR_FD (INVALID_HANDLE_VALUE) +#define close(a) CloseHandle(a) +#endif + static int minutil = -1; static int maxutil = -1; @@ -440,6 +448,7 @@ static int belkin_nut_write_int(int reg, int val) { will be discarded. After this call, the device is ready for reading and writing via read(2) and write(2). Return a valid file descriptor on success, or else -1 with errno set. */ +#ifndef WIN32 static int belkin_std_open_tty(const char *device) { int fd; struct termios tios; @@ -514,8 +523,83 @@ static int belkin_std_open_tty(const char *device) { return fd; } +#else +static HANDLE belkin_std_open_tty(const char *device) { + HANDLE fd; + COMMTIMEOUTS TOut; + DCB dcb; + char buf[128]; + int ret; + + /* open the device */ + fd = CreateFile(device, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + + if (fd == INVALID_HANDLE_VALUE) { + return fd; + } + + /* set communications parameters: 2400 baud, 8 bits, 1 stop bit, no + parity, enable reading, hang up when done (??TODO??), ignore modem control + lines. */ + GetCommTimeouts(fd,&TOut); + TOut.ReadIntervalTimeout = 0; + TOut.ReadTotalTimeoutMultiplier = 0; + TOut.ReadTotalTimeoutConstant = 0; + SetCommTimeouts(fd,&TOut); + + GetCommState(fd, &dcb); + dcb.fOutxCtsFlow = FALSE; + dcb.fOutxDsrFlow = FALSE; + dcb.fRtsControl = RTS_CONTROL_DISABLE; + dcb.fDtrControl = DTR_CONTROL_DISABLE; + dcb.ByteSize = 8; + dcb.Parity = NOPARITY; + dcb.StopBits = ONESTOPBIT; + dcb.BaudRate = B2400; + + SetCommState(fd,&dcb); + + /* signal the UPS to enter "smart" mode. This is done by setting RTS + and dropping DTR for at least 0.25 seconds. RTS and DTR refer to + two specific pins in the 9-pin serial connector. Note: this must + be done for at least 0.25 seconds for the UPS to react. Ignore + any errors, as this probably means we are not on a "real" serial + port. */ + ser_set_dtr(upsfd, 0); + ser_set_rts(upsfd, 1); + + /* flush both directions of serial port: throw away all data in + transit */ + ret = ser_flush_io(fd); + if (ret == -1) { + CloseHandle(fd); + return INVALID_HANDLE_VALUE; + } + + /* sleep at least 0.25 seconds for the UPS to wake up. Belkin's own + software sleeps 1 second, so that's what we do, too. */ + usleep(1000000); + + /* flush incoming data again, and read any remaining garbage + bytes. There should not be any. */ + ret = ser_flush_io(fd); + if (ret == -1) { + CloseHandle(fd); + return INVALID_HANDLE_VALUE; + } + + ret = select_read(fd, buf, 127,0,0); + if (ret == -1) { + CloseHandle(fd); + return INVALID_HANDLE_VALUE; + } + + return fd; +} +#endif /* blocking read with 1-second timeout (use non-blocking i/o) */ +#ifndef WIN32 static int belkin_std_upsread(int fd, unsigned char *buf, int n) { int count = 0; int r; @@ -538,8 +622,33 @@ static int belkin_std_upsread(int fd, unsigned char *buf, int n) { } return count; } +#else +static int belkin_std_upsread(HANDLE fd, unsigned char *buf, int n) { + int count = 0; + int r; + int tries = 0; + + while (count < n) { + r = select_read(fd, &buf[count], n-count,0,0); + if (r==0) { + /* non-blocking i/o, no data available */ + usleep(100000); + tries++; + } else if (r == -1) { + return -1; + } else { + count += r; + } + if (tries > 10) { + return -1; + } + } + return count; +} +#endif /* blocking write with 1-second timeout (use non-blocking i/o) */ +#ifndef WIN32 static int belkin_std_upswrite(int fd, unsigned char *buf, int n) { int count = 0; int r; @@ -562,11 +671,40 @@ static int belkin_std_upswrite(int fd, unsigned char *buf, int n) { } return count; } +#else +static int belkin_std_upswrite(HANDLE fd, unsigned char *buf, int n) { + int count = 0; + int r; + int tries = 0; + DWORD sent; + + while (count < n) { + r = WriteFile(fd, &buf[count], n-count,&sent,NULL); + if (r==0) { + /* non-blocking i/o, no data available */ + usleep(100000); + tries++; + } else if (r == -1) { + return -1; + } else { + count += r; + } + if (tries > 10) { + return -1; + } + } + return count; +} +#endif /* receive Belkin message from UPS, check for well-formedness (leading byte, checksum). Return length of message, or -1 if not well-formed */ +#ifndef WIN32 static int belkin_std_receive(int fd, unsigned char *buf, int bufsize) { +#else +static int belkin_std_receive(HANDLE fd, unsigned char *buf, int bufsize) { +#endif int r; int n=0; int len; @@ -612,7 +750,11 @@ static int belkin_std_receive(int fd, unsigned char *buf, int bufsize) { /* read the value of an integer register from UPS. Return -1 on failure. */ +#ifndef WIN32 static int belkin_std_read_int(int fd, int reg) { +#else +static int belkin_std_read_int(HANDLE fd, int reg) { +#endif unsigned char buf[MAXMSGSIZE]; int len, r; @@ -654,7 +796,11 @@ static int belkin_std_read_int(int fd, int reg) { /* write the value of an integer register to UPS. Return -1 on failure, else 0 */ +#ifndef WIN32 static int belkin_std_write_int(int fd, int reg, int val) { +#else +static int belkin_std_write_int(HANDLE fd, int reg, int val) { +#endif unsigned char buf[MAXMSGSIZE]; int r; @@ -747,7 +893,11 @@ static int belkin_wait(void) char *val; int failcount = 0; /* count consecutive failed connection attempts */ int failerrno = 0; +#ifndef WIN32 int fd; +#else + HANDLE fd; +#endif int r; int bs, ov, bl, st; @@ -773,7 +923,7 @@ static int belkin_wait(void) updatestatus(smode, "Connecting to UPS..."); failcount = 0; - fd = -1; + fd = ERROR_FD; while (1) { if (failcount >= 3 && nohang) { @@ -783,10 +933,11 @@ static int belkin_wait(void) } else if (failcount >= 3) { updatestatus(smode, "UPS is not responding, will keep trying: %s", strerror(failerrno)); } - if (fd == -1) { + if (fd == ERROR_FD) { fd = belkin_std_open_tty(device_path); } - if (fd == -1) { + + if (fd == ERROR_FD) { failcount++; failerrno = errno; sleep(1); @@ -800,7 +951,7 @@ static int belkin_wait(void) failcount++; failerrno = errno; close(fd); - fd = -1; + fd = ERROR_FD; sleep(1); continue; } @@ -809,7 +960,7 @@ static int belkin_wait(void) failcount++; failerrno = errno; close(fd); - fd = -1; + fd = ERROR_FD; sleep(1); continue; } @@ -818,7 +969,7 @@ static int belkin_wait(void) failcount++; failerrno = errno; close(fd); - fd = -1; + fd = ERROR_FD; sleep(1); continue; } diff --git a/drivers/bestfcom.c b/drivers/bestfcom.c index 54ea93ec2f..cd38ef14a5 100644 --- a/drivers/bestfcom.c +++ b/drivers/bestfcom.c @@ -473,6 +473,7 @@ static void sync_serial(void) { } } +#ifndef WIN32 /* Begin code stolen from bestups.c */ static void setup_serial(void) { @@ -501,6 +502,29 @@ static void setup_serial(void) sync_serial(); } +#else +/* same code as in bestuferrups.c */ +static void setup_serial(void) +{ + DCB dcb; + + GetCommState(upsfd, &dcb); + dcb.fOutxCtsFlow = FALSE; + dcb.fOutxDsrFlow = FALSE; + dcb.fRtsControl = RTS_CONTROL_DISABLE; + dcb.ByteSize = 8; + dcb.Parity = NOPARITY; + dcb.StopBits = ONESTOPBIT; + dcb.BaudRate = B1200; + dcb.fOutX = TRUE; + dcb.fInX = TRUE; + + SetCommState(upsfd,&dcb); + + sync_serial(); +} +/* end of same code as in bestuferrups.c */ +#endif /* These models don't support the formatconfig (fc) command so use diff --git a/drivers/bestfortress.c b/drivers/bestfortress.c index b12dd15975..c89cfcb34d 100644 --- a/drivers/bestfortress.c +++ b/drivers/bestfortress.c @@ -172,7 +172,14 @@ static int upssend(const char *fmt,...) { upslogx(LOG_WARNING, "ser_send_pace: vsnprintf needed more " "than %d bytes", (int)sizeof(buf)); for (p = buf; *p; p++) { +#ifndef WIN32 if (write(upsfd, p, 1) != 1) +#else + DWORD bytes_written; + BOOL res; + res = WriteFile(upsfd, p, 1, &bytes_written,NULL); + if (res == 0 || bytes_written == 0) +#endif return -1; if (d_usec) diff --git a/drivers/bestuferrups.c b/drivers/bestuferrups.c index d60cb027d6..c38eba005a 100644 --- a/drivers/bestuferrups.c +++ b/drivers/bestuferrups.c @@ -367,6 +367,7 @@ static void sync_serial(void) { } } +#ifndef WIN32 /* Begin code stolen from bestups.c */ static void setup_serial(void) { @@ -395,7 +396,29 @@ static void setup_serial(void) sync_serial(); } +#else /*WIN32*/ +/* same code as in bestfcom.c */ +static void setup_serial(void) +{ + DCB dcb; + + GetCommState(upsfd, &dcb); + dcb.fOutxCtsFlow = FALSE; + dcb.fOutxDsrFlow = FALSE; + dcb.fRtsControl = RTS_CONTROL_DISABLE; + dcb.ByteSize = 8; + dcb.Parity = NOPARITY; + dcb.StopBits = ONESTOPBIT; + dcb.BaudRate = B1200; + dcb.fOutX = TRUE; + dcb.fInX = TRUE; + + SetCommState(upsfd,&dcb); + sync_serial(); +} +/* end of same code as in bestfcom.c */ +#endif void upsdrv_initups () { diff --git a/drivers/blazer_ser.c b/drivers/blazer_ser.c index 5c757261e0..6326de10fd 100644 --- a/drivers/blazer_ser.c +++ b/drivers/blazer_ser.c @@ -130,7 +130,12 @@ void upsdrv_initups(void) int i; const char *val; +<<<<<<< HEAD +======= +#ifndef TESTING +#ifndef WIN32 /* TODO : Correctly set the port parameters for WIN32 */ +>>>>>>> caf5d58... More work on serial drivers. struct termios tio; /* @@ -161,6 +166,7 @@ void upsdrv_initups(void) if (tcsetattr(upsfd, TCSANOW, &tio)) { fatal_with_errno(EXIT_FAILURE, "tcsetattr"); } +#endif /* WIN32 */ val = getval("cablepower"); for (i = 0; val && cablepower[i].val; i++) { diff --git a/drivers/clone-outlet.c b/drivers/clone-outlet.c index 99d150cf12..f40db52b2f 100644 --- a/drivers/clone-outlet.c +++ b/drivers/clone-outlet.c @@ -22,8 +22,10 @@ #include "parseconf.h" #include +#ifndef WIN32 #include #include +#endif #define DRIVER_NAME "clone outlet UPS Driver" #define DRIVER_VERSION "0.01" @@ -66,6 +68,11 @@ static int dumpdone = 0; static PCONF_CTX_t sock_ctx; static time_t last_heard = 0, last_ping = 0, last_connfail = 0; +#ifdef WIN32 +static char read_buf[SMALLBUF]; +static OVERLAPPED read_overlapped; +#endif + static int parse_args(int numargs, char **arg) { if (numargs < 1) { @@ -139,7 +146,7 @@ static int parse_args(int numargs, char **arg) return 0; } - +#ifndef WIN32 static int sstate_connect(void) { int ret, fd; @@ -202,30 +209,83 @@ static int sstate_connect(void) return -1; } - pconf_init(&sock_ctx, NULL); +#else +HANDLE sstate_connect(void) +{ + HANDLE fd; + char pipename[SMALLBUF]; + const char *dumpcmd = "DUMPALL\n"; + BOOL result = FALSE; - time(&last_heard); + snprintf(pipename, sizeof(pipename), "\\\\.\\pipe\\%s/%s", dflt_statepath(), device_path); - dumpdone = 0; + result = WaitNamedPipe(pipename,NMPWAIT_USE_DEFAULT_WAIT); - /* set ups.status to "WAIT" while waiting for the driver response to dumpcmd */ - dstate_setinfo("ups.status", "WAIT"); + if( result == FALSE ) { + return INVALID_HANDLE_VALUE; + } - upslogx(LOG_INFO, "Connected to UPS [%s]", device_path); - return fd; -} + fd = CreateFile( + pipename, /* pipe name */ + GENERIC_READ | /* read and write access */ + GENERIC_WRITE, + 0, /* no sharing */ + NULL, /* default security attributes FIXME */ + OPEN_EXISTING, /* opens existing pipe */ + FILE_FLAG_OVERLAPPED, /* enable async IO */ + NULL); /* no template file */ + + if (fd == INVALID_HANDLE_VALUE) { + upslog_with_errno(LOG_ERR, "Can't connect to UPS [%s]", device_path); + return INVALID_HANDLE_VALUE; + } + + /* get a dump started so we have a fresh set of data */ + DWORD bytesWritten = 0; + + result = WriteFile (fd,dumpcmd,strlen(dumpcmd),&bytesWritten,NULL); + if (result == 0 || bytesWritten != strlen(dumpcmd)) { + upslog_with_errno(LOG_ERR, "Initial write to UPS [%s] failed", device_path); + CloseHandle(fd); + return INVALID_HANDLE_VALUE; + } + + /* Start a read IO so we could wait on the event associated with it */ + ReadFile(fd,read_buf,sizeof(read_buf)-1,NULL,&(read_overlapped)); /*-1 to be sure to have a trailling 0 */ +#endif + pconf_init(&sock_ctx, NULL); + + time(&last_heard); + + dumpdone = 0; + + /* set ups.status to "WAIT" while waiting for the driver response to dumpcmd */ + dstate_setinfo("ups.status", "WAIT"); + + upslogx(LOG_INFO, "Connected to UPS [%s]", device_path); + return fd; + } static void sstate_disconnect(void) { +#ifndef WIN32 if (upsfd < 0) { +#else + if (upsfd == INVALID_HANDLE_VALUE) { +#endif return; } pconf_finish(&sock_ctx); +#ifndef WIN32 close(upsfd); upsfd = -1; +#else + CloseHandle(upsfd); + upsfd = INVALID_HANDLE_VALUE; +#endif } @@ -233,11 +293,29 @@ static int sstate_sendline(const char *buf) { int ret; +#ifndef WIN32 if (upsfd < 0) { +#else + if (upsfd == INVALID_HANDLE_VALUE) { +#endif return -1; /* failed */ } +#ifndef WIN32 ret = write(upsfd, buf, strlen(buf)); +#else + DWORD bytesWritten = 0; + BOOL result = FALSE; + + result = WriteFile (upsfd,buf,strlen(buf),&bytesWritten,NULL); + + if( result == 0 ) { + ret = 0; + } + else { + ret = (int)bytesWritten; + } +#endif if (ret == (int)strlen(buf)) { return 0; @@ -251,6 +329,7 @@ static int sstate_sendline(const char *buf) static int sstate_readline(void) { int i, ret; +#ifndef WIN32 char buf[SMALLBUF]; if (upsfd < 0) { @@ -262,33 +341,42 @@ static int sstate_readline(void) if (ret < 0) { switch(errno) { - case EINTR: - case EAGAIN: - return 0; + case EINTR: + case EAGAIN: + return 0; - default: - upslog_with_errno(LOG_WARNING, "Read from UPS [%s] failed", device_path); - return -1; + default: + upslog_with_errno(LOG_WARNING, "Read from UPS [%s] failed", device_path); + return -1; } } +#else + if (upsfd == INVALID_HANDLE_VALUE) { + return -1; + } + char *buf = read_buf; + DWORD bytesRead; + GetOverlappedResult(upsfd, &read_overlapped, &bytesRead, FALSE); + ret = bytesRead; +#endif for (i = 0; i < ret; i++) { switch (pconf_char(&sock_ctx, buf[i])) { - case 1: - if (parse_args(sock_ctx.numargs, sock_ctx.arglist)) { - time(&last_heard); - } - continue; - - case 0: - continue; /* haven't gotten a line yet */ - - default: - /* parse error */ - upslogx(LOG_NOTICE, "Parse error on sock: %s", sock_ctx.errmsg); - return -1; + case 1: + if (parse_args(sock_ctx.numargs, sock_ctx.arglist)) { + time(&last_heard); + } + continue; + + case 0: + continue; /* haven't gotten a line yet */ + + default: + /* parse error */ + upslogx(LOG_NOTICE, "Parse error on sock: %s", sock_ctx.errmsg); + return -1; } } diff --git a/drivers/clone.c b/drivers/clone.c index c8beb830dc..db011d716f 100644 --- a/drivers/clone.c +++ b/drivers/clone.c @@ -22,8 +22,10 @@ #include "parseconf.h" #include +#ifndef WIN32 #include #include +#endif #define DRIVER_NAME "Clone UPS driver" #define DRIVER_VERSION "0.02" @@ -63,6 +65,11 @@ static PCONF_CTX_t sock_ctx; static time_t last_poll = 0, last_heard = 0, last_ping = 0, last_connfail = 0; +#ifdef WIN32 +static char read_buf[SMALLBUF]; +static OVERLAPPED read_overlapped; +#endif + static int instcmd(const char *cmdname, const char *extra); @@ -153,7 +160,7 @@ static int parse_args(int numargs, char **arg) return 0; } - +#ifndef WIN32 static int sstate_connect(void) { int ret, fd; @@ -216,30 +223,84 @@ static int sstate_connect(void) return -1; } - pconf_init(&sock_ctx, NULL); +#else +HANDLE sstate_connect(void) +{ + HANDLE fd; + char pipename[SMALLBUF]; + const char *dumpcmd = "DUMPALL\n"; + BOOL result = FALSE; - time(&last_heard); + snprintf(pipename, sizeof(pipename), "\\\\.\\pipe\\%s/%s", dflt_statepath(), device_path); - dumpdone = 0; + result = WaitNamedPipe(pipename,NMPWAIT_USE_DEFAULT_WAIT); - /* set ups.status to "WAIT" while waiting for the driver response to dumpcmd */ - dstate_setinfo("ups.status", "WAIT"); + if( result == FALSE ) { + return INVALID_HANDLE_VALUE; + } - upslogx(LOG_INFO, "Connected to UPS [%s]", device_path); - return fd; -} + fd = CreateFile( + pipename, /* pipe name */ + GENERIC_READ | /* read and write access */ + GENERIC_WRITE, + 0, /* no sharing */ + NULL, /* default security attributes FIXME */ + OPEN_EXISTING, /* opens existing pipe */ + FILE_FLAG_OVERLAPPED, /* enable async IO */ + NULL); /* no template file */ + + if (fd == INVALID_HANDLE_VALUE) { + upslog_with_errno(LOG_ERR, "Can't connect to UPS [%s]", device_path); + return INVALID_HANDLE_VALUE; + } + + /* get a dump started so we have a fresh set of data */ + DWORD bytesWritten = 0; + + result = WriteFile (fd,dumpcmd,strlen(dumpcmd),&bytesWritten,NULL); + if (result == 0 || bytesWritten != strlen(dumpcmd)) { + upslog_with_errno(LOG_ERR, "Initial write to UPS [%s] failed", device_path); + CloseHandle(fd); + return INVALID_HANDLE_VALUE; + } + + /* Start a read IO so we could wait on the event associated with it */ + ReadFile(fd,read_buf,sizeof(read_buf)-1,NULL,&(read_overlapped)); /*-1 to be sure to have a trailling 0 */ +#endif + + pconf_init(&sock_ctx, NULL); + + time(&last_heard); + + dumpdone = 0; + + /* set ups.status to "WAIT" while waiting for the driver response to dumpcmd */ + dstate_setinfo("ups.status", "WAIT"); + + upslogx(LOG_INFO, "Connected to UPS [%s]", device_path); + return fd; + } static void sstate_disconnect(void) { +#ifndef WIN32 if (upsfd < 0) { +#else + if (upsfd == INVALID_HANDLE_VALUE) { +#endif return; } pconf_finish(&sock_ctx); +#ifndef WIN32 close(upsfd); upsfd = -1; +#else + CloseHandle(upsfd); + upsfd = INVALID_HANDLE_VALUE; +#endif } @@ -247,11 +308,29 @@ static int sstate_sendline(const char *buf) { int ret; +#ifndef WIN32 if (upsfd < 0) { +#else + if (upsfd == INVALID_HANDLE_VALUE) { +#endif return -1; /* failed */ } +#ifndef WIN32 ret = write(upsfd, buf, strlen(buf)); +#else + DWORD bytesWritten = 0; + BOOL result = FALSE; + + result = WriteFile (upsfd,buf,strlen(buf),&bytesWritten,NULL); + + if( result == 0 ) { + ret = 0; + } + else { + ret = (int)bytesWritten; + } +#endif if (ret == (int)strlen(buf)) { return 0; @@ -265,6 +344,7 @@ static int sstate_sendline(const char *buf) static int sstate_readline(void) { int i, ret; +#ifndef WIN32 char buf[SMALLBUF]; if (upsfd < 0) { @@ -285,6 +365,15 @@ static int sstate_readline(void) return -1; } } +#else + if (upsfd == INVALID_HANDLE_VALUE) { + return -1; + } + char *buf = read_buf; + DWORD bytesRead; + GetOverlappedResult(upsfd, &read_overlapped, &bytesRead, FALSE); + ret = bytesRead; +#endif for (i = 0; i < ret; i++) { diff --git a/drivers/dummy-ups.c b/drivers/dummy-ups.c index 504fd92ac8..508e58054d 100644 --- a/drivers/dummy-ups.c +++ b/drivers/dummy-ups.c @@ -70,7 +70,11 @@ time_t next_update = -1; static int setvar(const char *varname, const char *val); static int instcmd(const char *cmdname, const char *extra); +#ifndef WIN32 static int parse_data_file(int upsfd); +#else +static int parse_data_file(HANDLE upsfd); +#endif static dummy_info_t *find_info(const char *varname); static int is_valid_data(const char* varname); static int is_valid_value(const char* varname, const char *value); @@ -421,7 +425,11 @@ static void upsconf_err(const char *errmsg) /* for dummy mode * parse the definition file and process its content */ +#ifndef WIN32 static int parse_data_file(int upsfd) +#else +static int parse_data_file(HANDLE upsfd) +#endif { char fn[SMALLBUF]; char *ptr, var_value[MAX_STRING_SIZE]; diff --git a/drivers/genericups.c b/drivers/genericups.c index bc8ddc43d6..36edb34546 100644 --- a/drivers/genericups.c +++ b/drivers/genericups.c @@ -17,7 +17,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#ifndef WIN32 #include +#endif #include "main.h" #include "serial.h" @@ -35,6 +37,8 @@ upsdrv_info_t upsdrv_info = { { NULL } }; +/* TODO : port this to WIN32 */ +#ifndef WIN32 static int upstype = -1; static void parse_output_signals(const char *value, int *line) @@ -336,3 +340,12 @@ void upsdrv_cleanup(void) ser_close(upsfd, device_path); } +#else /*WIN32 TODO just stubs for the moment, to be ported*/ +void upsdrv_makevartable(void) {}; +void upsdrv_shutdown(void) {}; +void upsdrv_help(void) {}; +void upsdrv_initups(void) {}; +void upsdrv_cleanup(void) {}; +void upsdrv_initinfo(void) {}; +void upsdrv_updateinfo(void) {}; +#endif diff --git a/drivers/genericups.h b/drivers/genericups.h index eb1977e0b5..0bf0ec5a9a 100644 --- a/drivers/genericups.h +++ b/drivers/genericups.h @@ -16,7 +16,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +/* TODO : port this to WIN32 */ +#ifndef WIN32 struct { const char *mfr; /* value for INFO_MFR */ const char *model; /* value for INFO_MODEL */ @@ -270,3 +271,4 @@ struct { 0 } }; +#endif /* WIN32 */ diff --git a/drivers/ivtscd.c b/drivers/ivtscd.c index d8ae507dfe..c0025e8aca 100644 --- a/drivers/ivtscd.c +++ b/drivers/ivtscd.c @@ -203,12 +203,15 @@ void upsdrv_makevartable(void) void upsdrv_initups(void) { +#ifndef WIN32 struct termios tio; +#endif const char *val; upsfd = ser_open(device_path); ser_set_speed(upsfd, device_path, B1200); +#ifndef WIN32 /* TODO : Correctly set the port parameters for WIN32 */ if (tcgetattr(upsfd, &tio)) { fatal_with_errno(EXIT_FAILURE, "tcgetattr"); } @@ -234,6 +237,7 @@ void upsdrv_initups(void) if (tcsetattr(upsfd, TCSANOW, &tio)) { fatal_with_errno(EXIT_FAILURE, "tcsetattr"); } +#endif /* * Set DTR and clear RTS to provide power for the serial interface. diff --git a/drivers/mge-shut.c b/drivers/mge-shut.c index 80ec779cb7..5ab6b46c86 100644 --- a/drivers/mge-shut.c +++ b/drivers/mge-shut.c @@ -546,6 +546,7 @@ int shut_wait_ack (void) *********************************************************************/ static int char_read (char *bytes, int size, int read_timeout) { +#ifndef WIN32 struct timeval serial_timeout; fd_set readfs; int readen = 0; @@ -576,6 +577,26 @@ static int char_read (char *bytes, int size, int read_timeout) return -1; } return readen; +#else + DWORD ret; + BOOL res; + DWORD bytes_read; + + COMMTIMEOUTS TOut; + GetCommTimeouts(upsfd,&TOut); + TOut.ReadIntervalTimeout = MAXDWORD; + TOut.ReadTotalTimeoutMultiplier = 0; + TOut.ReadTotalTimeoutConstant = read_timeout; + SetCommTimeouts(upsfd,&TOut); + + res = ReadFile(upsfd,bytes,size,&bytes_read,NULL); +/* FIXME don't know how to detect a timeout... */ + if(res == FALSE ) { + return -1; + } + + return bytes_read; +#endif } /********************************************************************** @@ -635,11 +656,24 @@ int serial_send (u_char *buf, int len) { #ifndef WIN32 tcflush (upsfd, TCIFLUSH); + upsdebug_hex (3, "sent", (u_char *)buf, len); + return write (upsfd, buf, len); #else + DWORD ret; + BOOL res; + DWORD bytes_written; + FlushFileBuffers(upsfd); -#endif upsdebug_hex (3, "sent", (u_char *)buf, len); - return write (upsfd, buf, len); + + res = WriteFile(upsfd,buf,len,&bytes_written,NULL); + + if(res == 0) { + return -1; + } + + return bytes_written; +#endif } /* @@ -1141,9 +1175,9 @@ int hid_init_device() } /* translate HID string path to numeric path and return path depth */ -ushort lookup_path(const char *HIDpath, HIDData_t *data) +unsigned short lookup_path(const char *HIDpath, HIDData_t *data) { - ushort i = 0, cond = 1; + unsigned short i = 0, cond = 1; int cur_usage; char buf[MAX_STRING]; char *start, *end; diff --git a/drivers/mge-utalk.c b/drivers/mge-utalk.c index 2935e91d68..c5c7a81a50 100644 --- a/drivers/mge-utalk.c +++ b/drivers/mge-utalk.c @@ -53,7 +53,9 @@ */ #include +#ifndef WIN32 #include +#endif #include "timehead.h" #include "main.h" #include "serial.h" @@ -162,17 +164,28 @@ void upsdrv_makevartable(void) void upsdrv_initups(void) { char buf[BUFFLEN]; +#ifndef WIN32 int RTS = TIOCM_RTS; +#endif upsfd = ser_open(device_path); ser_set_speed(upsfd, device_path, B2400); /* read command line/conf variable that affect comm. */ +#ifndef WIN32 if (testvar ("oldmac")) RTS = ~TIOCM_RTS; /* Init serial line */ ioctl(upsfd, TIOCMBIC, &RTS); +#else + if (testvar ("oldmac")) { + EscapeCommFunction(upsfd,CLRRTS); + } + else { + EscapeCommFunction(upsfd,SETRTS); + } +#endif enable_ups_comm(); /* Try to set "Low Battery Level" (if supported and given) */ @@ -878,8 +891,12 @@ static int mge_command(char *reply, int replylen, const char *fmt, ...) * http://old.networkupstools.org/protocols/mge/9261zwfa.pdf § 6.1. Timings */ usleep(500000); +#ifndef WIN32 /* flush received, unread data */ tcflush(upsfd, TCIFLUSH); +#else + ser_flush_io(upsfd); +#endif /* send command */ for (p = command; *p; p++) { @@ -888,9 +905,18 @@ static int mge_command(char *reply, int replylen, const char *fmt, ...) else upsdebugx(4, "mge_command: sending [%02X]", *p); +#ifndef WIN32 if (write(upsfd, p, 1) != 1) return -1; - +#else + DWORD bytes_written; + BOOL res; + res = WriteFile(upsfd, p, 1, &bytes_written,NULL); + if (res == 0 || bytes_written == 0) { + return -1; + } +#endif + bytes_sent++; usleep(MGE_CHAR_DELAY); } @@ -903,8 +929,17 @@ static int mge_command(char *reply, int replylen, const char *fmt, ...) else upsdebugx(4, "mge_command: sending [%02X]", *p); +#ifndef WIN32 if (write(upsfd, p, 1) != 1) return -1; +#else + DWORD bytes_written; + BOOL res; + res = WriteFile(upsfd, p, 1, &bytes_written,NULL); + if (res == 0 || bytes_written == 0) { + return -1; + } +#endif bytes_sent++; usleep(MGE_CHAR_DELAY); diff --git a/drivers/microdowell.c b/drivers/microdowell.c index a1d6605312..28b901d182 100644 --- a/drivers/microdowell.c +++ b/drivers/microdowell.c @@ -32,7 +32,9 @@ #include "main.h" #include "serial.h" +#ifndef WIN32 #include +#endif #include "timehead.h" diff --git a/drivers/powercom.c b/drivers/powercom.c index 82e4898eae..6ef922c45f 100644 --- a/drivers/powercom.c +++ b/drivers/powercom.c @@ -309,6 +309,7 @@ static void dtr0rts1 (void) /* clear any flow control */ static void no_flow_control (void) { +#ifndef WIN32 struct termios tio; tcgetattr (upsfd, &tio); @@ -321,6 +322,15 @@ static void no_flow_control (void) /* disable any flow control */ tcsetattr(upsfd, TCSANOW, &tio); +#else + DCB dcb; + + GetCommState(upsfd, &dcb); + dcb.fOutX = TRUE; + dcb.fInX = TRUE; + + SetCommState(upsfd,&dcb); +#endif } /* sane check for returned buffer */ diff --git a/drivers/powercom.h b/drivers/powercom.h index 8d0dab6a3f..52dd7dc248 100644 --- a/drivers/powercom.h +++ b/drivers/powercom.h @@ -24,7 +24,9 @@ /* C-libary includes */ #include #include +#ifndef WIN32 #include +#endif #include #include "serial.h" #include diff --git a/drivers/safenet.c b/drivers/safenet.c index 77170fb32d..146de4bde9 100644 --- a/drivers/safenet.c +++ b/drivers/safenet.c @@ -371,7 +371,11 @@ void upsdrv_updateinfo(void) * [A...J]. */ for (i = 1; i < 12; i++) { +#ifndef WIN32 command[i] = (random() % 10) + 'A'; +#else + command[i] = (rand() % 10) + 'A'; +#endif } /* @@ -464,7 +468,9 @@ void upsdrv_makevartable(void) void upsdrv_initups(void) { +#ifndef WIN32 struct termios tio; +#endif const char *val; /* @@ -473,6 +479,7 @@ void upsdrv_initups(void) upsfd = ser_open(device_path); ser_set_speed(upsfd, device_path, B1200); +#ifndef WIN32 /* TODO: correctly set the line in WIN32 */ if (tcgetattr(upsfd, &tio)) { fatal_with_errno(EXIT_FAILURE, "tcgetattr"); } @@ -495,6 +502,7 @@ void upsdrv_initups(void) if (tcsetattr(upsfd, TCSANOW, &tio)) { fatal_with_errno(EXIT_FAILURE, "tcsetattr"); } +#endif /* * Set DTR and clear RTS to provide power for the serial interface. diff --git a/drivers/serial.c b/drivers/serial.c index 8e79d14485..295dbbbab4 100644 --- a/drivers/serial.c +++ b/drivers/serial.c @@ -161,7 +161,8 @@ int ser_open(const char *port) HANDLE ser_open_nf(const char *port) { HANDLE fd; - fd = CreateFileA(port, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_FLAG_WRITE_THROUGH, 0); + + fd = CreateFile(port, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (fd == INVALID_HANDLE_VALUE) return INVALID_HANDLE_VALUE; @@ -224,6 +225,9 @@ int ser_set_speed_nf(HANDLE fd, const char *port, speed_t speed) dcb.fOutxCtsFlow = FALSE; dcb.fOutxDsrFlow = FALSE; dcb.fRtsControl = RTS_CONTROL_DISABLE; + dcb.ByteSize = 8; + dcb.Parity = NOPARITY; + dcb.StopBits = ONESTOPBIT; dcb.BaudRate = speed; return SetCommState(fd,&dcb); @@ -344,7 +348,11 @@ int ser_flush_io(int fd) #else int ser_flush_io(HANDLE fd) { - return FlushFileBuffers(fd); + if ( FlushFileBuffers(fd) == 0 ) { + return -1; + } + + return 0; } #endif @@ -368,7 +376,7 @@ int ser_close(int fd, const char *port) int ser_close(HANDLE fd, const char *port) { if (fd == INVALID_HANDLE_VALUE) - fatal_with_errno(EXIT_FAILURE, "ser_close: programming error: fd=%d port=%s", fd, port); + fatal_with_errno(EXIT_FAILURE, "ser_close: programming error: fd=%d port=%s", (int)fd, port); if (CloseHandle(fd) != 0) return -1; @@ -377,12 +385,20 @@ int ser_close(HANDLE fd, const char *port) } #endif +#ifndef WIN32 int ser_send_char(int fd, unsigned char ch) +#else +int ser_send_char(HANDLE fd, unsigned char ch) +#endif { return ser_send_buf_pace(fd, 0, &ch, 1); } +#ifndef WIN32 static int send_formatted(int fd, const char *fmt, va_list va, unsigned long d_usec) +#else +static int send_formatted(HANDLE fd, const char *fmt, va_list va, unsigned long d_usec) +#endif { int ret; char buf[LARGEBUF]; @@ -397,7 +413,11 @@ static int send_formatted(int fd, const char *fmt, va_list va, unsigned long d_u } /* send the results of the format string with d_usec delay after each char */ +#ifndef WIN32 int ser_send_pace(int fd, unsigned long d_usec, const char *fmt, ...) +#else +int ser_send_pace(HANDLE fd, unsigned long d_usec, const char *fmt, ...) +#endif { int ret; va_list ap; @@ -412,7 +432,11 @@ int ser_send_pace(int fd, unsigned long d_usec, const char *fmt, ...) } /* send the results of the format string with no delay */ +#ifndef WIN32 int ser_send(int fd, const char *fmt, ...) +#else +int ser_send(HANDLE fd, const char *fmt, ...) +#endif { int ret; va_list ap; @@ -427,7 +451,11 @@ int ser_send(int fd, const char *fmt, ...) } /* send buflen bytes from buf with no delay */ +#ifndef WIN32 int ser_send_buf(int fd, const void *buf, size_t buflen) +#else +int ser_send_buf(HANDLE fd, const void *buf, size_t buflen) +#endif { return ser_send_buf_pace(fd, 0, buf, buflen); } @@ -459,15 +487,15 @@ int ser_send_buf_pace(int fd, unsigned long d_usec, const void *buf, int ser_send_buf_pace(HANDLE fd, unsigned long d_usec, const void *buf, size_t buflen) { - int ret; + BOOL res; DWORD sent = 0; DWORD sent_OK; for (sent_OK = 0; sent_OK < buflen; sent_OK += sent) { - ret = WriteFile(fd, &((char *)buf)[sent_OK], (d_usec == 0) ? (buflen - sent_OK) : 1, &sent, NULL); + res = WriteFile(fd, &((char *)buf)[sent_OK], (d_usec == 0) ? (buflen - sent_OK) : 1, &sent, NULL); - if (ret == 0 ) { - return ret; + if( res == 0 ) { + return -1; } usleep(d_usec); @@ -477,12 +505,20 @@ int ser_send_buf_pace(HANDLE fd, unsigned long d_usec, const void *buf, } #endif +#ifndef WIN32 int ser_get_char(int fd, void *ch, long d_sec, long d_usec) +#else +int ser_get_char(HANDLE fd, void *ch, long d_sec, long d_usec) +#endif { return select_read(fd, ch, 1, d_sec, d_usec); } +#ifndef WIN32 int ser_get_buf(int fd, void *buf, size_t buflen, long d_sec, long d_usec) +#else +int ser_get_buf(HANDLE fd, void *buf, size_t buflen, long d_sec, long d_usec) +#endif { memset(buf, '\0', buflen); @@ -490,7 +526,11 @@ int ser_get_buf(int fd, void *buf, size_t buflen, long d_sec, long d_usec) } /* keep reading until buflen bytes are received or a timeout occurs */ +#ifndef WIN32 int ser_get_buf_len(int fd, void *buf, size_t buflen, long d_sec, long d_usec) +#else +int ser_get_buf_len(HANDLE fd, void *buf, size_t buflen, long d_sec, long d_usec) +#endif { int ret; size_t recv; @@ -512,9 +552,15 @@ int ser_get_buf_len(int fd, void *buf, size_t buflen, long d_sec, long d_usec) /* reads a line up to , discarding anything else that may follow, with callouts to the handler if anything matches the alertset */ +#ifndef WIN32 int ser_get_line_alert(int fd, void *buf, size_t buflen, char endchar, const char *ignset, const char *alertset, void handler(char ch), long d_sec, long d_usec) +#else +int ser_get_line_alert(HANDLE fd, void *buf, size_t buflen, char endchar, + const char *ignset, const char *alertset, void handler(char ch), + long d_sec, long d_usec) +#endif { int i, ret; char tmp[64]; @@ -556,14 +602,23 @@ int ser_get_line_alert(int fd, void *buf, size_t buflen, char endchar, } /* as above, only with no alertset handling (just a wrapper) */ +#ifndef WIN32 int ser_get_line(int fd, void *buf, size_t buflen, char endchar, const char *ignset, long d_sec, long d_usec) +#else +int ser_get_line(HANDLE fd, void *buf, size_t buflen, char endchar, + const char *ignset, long d_sec, long d_usec) +#endif { return ser_get_line_alert(fd, buf, buflen, endchar, ignset, "", NULL, d_sec, d_usec); } +#ifndef WIN32 int ser_flush_in(int fd, const char *ignset, int verbose) +#else +int ser_flush_in(HANDLE fd, const char *ignset, int verbose) +#endif { int ret, extra = 0; char ch; diff --git a/drivers/serial.h b/drivers/serial.h index b8af5cc889..b2c7c351ed 100644 --- a/drivers/serial.h +++ b/drivers/serial.h @@ -67,18 +67,36 @@ int ser_close(HANDLE fd, const char *port); #endif +#ifndef WIN32 int ser_send_char(int fd, unsigned char ch); +#else +int ser_send_char(HANDLE fd, unsigned char ch); +#endif /* send the results of the format string with d_usec delay after each char */ +#ifndef WIN32 int ser_send_pace(int fd, unsigned long d_usec, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 3, 4))); +#else +int ser_send_pace(HANDLE fd, unsigned long d_usec, const char *fmt, ...) + __attribute__ ((__format__ (__printf__, 3, 4))); +#endif /* send the results of the format string with no delay */ +#ifndef WIN32 int ser_send(int fd, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); +#else +int ser_send(HANDLE fd, const char *fmt, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); +#endif /* send buflen bytes from buf with no delay */ +#ifndef WIN32 int ser_send_buf(int fd, const void *buf, size_t buflen); +#else +int ser_send_buf(HANDLE fd, const void *buf, size_t buflen); +#endif /* send buflen bytes from buf with d_usec delay after each char */ #ifndef WIN32 @@ -89,24 +107,51 @@ int ser_send_buf_pace(HANDLE fd, unsigned long d_usec, const void *buf, size_t buflen); #endif +#ifndef WIN32 int ser_get_char(int fd, void *ch, long d_sec, long d_usec); +#else +int ser_get_char(HANDLE fd, void *ch, long d_sec, long d_usec); +#endif +#ifndef WIN32 int ser_get_buf(int fd, void *buf, size_t buflen, long d_sec, long d_usec); +#else +int ser_get_buf(HANDLE fd, void *buf, size_t buflen, long d_sec, long d_usec); +#endif /* keep reading until buflen bytes are received or a timeout occurs */ +#ifndef WIN32 int ser_get_buf_len(int fd, void *buf, size_t buflen, long d_sec, long d_usec); +#else +int ser_get_buf_len(HANDLE fd, void *buf, size_t buflen, long d_sec, long d_usec); +#endif /* reads a line up to , discarding anything else that may follow, with callouts to the handler if anything matches the alertset */ +#ifndef WIN32 int ser_get_line_alert(int fd, void *buf, size_t buflen, char endchar, const char *ignset, const char *alertset, void handler (char ch), long d_sec, long d_usec); +#else +int ser_get_line_alert(HANDLE fd, void *buf, size_t buflen, char endchar, + const char *ignset, const char *alertset, void handler (char ch), + long d_sec, long d_usec); +#endif /* as above, only with no alertset handling (just a wrapper) */ +#ifndef WIN32 int ser_get_line(int fd, void *buf, size_t buflen, char endchar, const char *ignset, long d_sec, long d_usec); +#else +int ser_get_line(HANDLE fd, void *buf, size_t buflen, char endchar, + const char *ignset, long d_sec, long d_usec); +#endif +#ifndef WIN32 int ser_flush_in(int fd, const char *ignset, int verbose); +#else +int ser_flush_in(HANDLE fd, const char *ignset, int verbose); +#endif /* unified failure reporting: call these often */ void ser_comm_fail(const char *fmt, ...) diff --git a/drivers/upscode2.c b/drivers/upscode2.c index 1a5a6a25fb..176f5102ca 100644 --- a/drivers/upscode2.c +++ b/drivers/upscode2.c @@ -462,7 +462,9 @@ void upsdrv_help(void) void upsdrv_initups(void) { +#ifndef WIN32 struct termios tio; +#endif int baud = B1200; char *str; @@ -493,6 +495,7 @@ void upsdrv_initups(void) upsfd = ser_open(device_path); ser_set_speed(upsfd, device_path, baud); +#ifndef WIN32 /* TODO : correctly set line for WIN32 */ if (tcgetattr(upsfd, &tio) != 0) fatal_with_errno(EXIT_FAILURE, "tcgetattr(%s)", device_path); tio.c_lflag = ICANON; @@ -500,6 +503,7 @@ void upsdrv_initups(void) tio.c_cc[VMIN] = 0; tio.c_cc[VTIME] = 0; tcsetattr(upsfd, TCSANOW, &tio); +#endif if ((str = getval("input_timeout")) != NULL) { int temp = atoi(str); diff --git a/include/common.h b/include/common.h index 41b40c1091..6d05e9e83a 100644 --- a/include/common.h +++ b/include/common.h @@ -172,6 +172,7 @@ extern int optind; #define LOG_ALERT EVENTLOG_ERROR_TYPE #define LOG_WARNING EVENTLOG_WARNING_TYPE #define LOG_CRIT EVENTLOG_ERROR_TYPE +#define LOG_EMERG EVENTLOG_ERROR_TYPE #define closelog() From bc95b43c453f9559329c7e401b6da34900e64d25 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 10 Dec 2010 14:15:59 +0000 Subject: [PATCH 035/218] upscmd is now working Fossil-ID: SVN r2727 --- clients/upscmd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clients/upscmd.c b/clients/upscmd.c index e7b5d5e291..5f73884dfc 100644 --- a/clients/upscmd.c +++ b/clients/upscmd.c @@ -288,7 +288,7 @@ int main(int argc, char **argv) snprintf(password, sizeof(password), "%s", pwtmp); } - +#endif snprintf(buf, sizeof(buf), "USERNAME %s\n", username); if (upscli_sendline(ups, buf, strlen(buf)) < 0) { @@ -316,7 +316,7 @@ int main(int argc, char **argv) if (upscli_readline(ups, buf, sizeof(buf)) < 0) { fatalx(EXIT_FAILURE, "Set password failed: %s", upscli_strerror(ups)); } -#endif + do_cmd(&argv[1], argc - 1); exit(EXIT_SUCCESS); From 27af8dd554a66d179450f70198609d7bdc65708d Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 10 Dec 2010 14:27:40 +0000 Subject: [PATCH 036/218] upsrw is now working Fossil-ID: SVN r2728 --- clients/upsrw.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/clients/upsrw.c b/clients/upsrw.c index 281b77dd7e..4a65ed257b 100644 --- a/clients/upsrw.c +++ b/clients/upsrw.c @@ -95,10 +95,10 @@ static void do_setvar(const char *varname, char *uin, const char *pass) char newval[SMALLBUF], temp[SMALLBUF], user[SMALLBUF], *ptr; struct passwd *pw; -#ifndef WIN32 if (uin) { snprintf(user, sizeof(user), "%s", uin); } else { +#ifndef WIN32 memset(user, '\0', sizeof(user)); pw = getpwuid(getuid()); @@ -132,8 +132,10 @@ static void do_setvar(const char *varname, char *uin, const char *pass) if (!pass) { fatal_with_errno(EXIT_FAILURE, "getpass failed"); } - } +#else + fatalx(EXIT_FAILURE, "No username available"); #endif + } /* Check if varname is in VAR=VALUE form */ if ((ptr = strchr(varname, '=')) != NULL) { From 41ba23cbc3155255ae7ec7d325163a35a94d1c3a Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 10 Dec 2010 15:44:00 +0000 Subject: [PATCH 037/218] Fix timeout calculation Fossil-ID: SVN r2729 --- common/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/common.c b/common/common.c index 2fde1aefde..57c07964e5 100644 --- a/common/common.c +++ b/common/common.c @@ -631,7 +631,7 @@ int select_read(const HANDLE fd, void *buf, const size_t buflen, const long d_se GetCommTimeouts(fd,&TOut); - timeout = d_sec * 1000 + d_usec / 1000 + ((d_usec % 1000)!=0)?1:0; + timeout = (d_sec*1000) + (d_usec/1000) + (((d_usec % 1000)!=0)?1:0); TOut.ReadIntervalTimeout = MAXDWORD; TOut.ReadTotalTimeoutMultiplier = 0; From 72b980726955f594f03434ccc950ac44e2cb0c7c Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 16 Dec 2010 13:06:24 +0000 Subject: [PATCH 038/218] Update halt.c compilation Fossil-ID: SVN r2740 --- scripts/Windows/Makefile | 2 -- scripts/Windows/Makefile.am | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) delete mode 100644 scripts/Windows/Makefile diff --git a/scripts/Windows/Makefile b/scripts/Windows/Makefile deleted file mode 100644 index abf1b97368..0000000000 --- a/scripts/Windows/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -halt: halt.c - gcc -mwindows -mno-cygwin -s -o halt.exe halt.c diff --git a/scripts/Windows/Makefile.am b/scripts/Windows/Makefile.am index c8bd92661b..a7af7d8dac 100644 --- a/scripts/Windows/Makefile.am +++ b/scripts/Windows/Makefile.am @@ -9,6 +9,7 @@ FORCE: LDADD = ../../common/libcommon.la -bin_PROGRAMS = nut +bin_PROGRAMS = nut halt nut_SOURCES = wininit.c +halt_SOURCES = halt.c From 25b4f68299539bacc731d6be33c8429b4634d90c Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 16 Dec 2010 14:48:29 +0000 Subject: [PATCH 039/218] Automatic generation of winevent.h and winevent.dll Fossil-ID: SVN r2743 --- scripts/Windows/Makefile.am | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/scripts/Windows/Makefile.am b/scripts/Windows/Makefile.am index a7af7d8dac..18d545eb93 100644 --- a/scripts/Windows/Makefile.am +++ b/scripts/Windows/Makefile.am @@ -7,9 +7,31 @@ AM_CFLAGS = -I$(top_srcdir)/include FORCE: -LDADD = ../../common/libcommon.la +if HAVE_MINGW_RESGEN + +winevent.rc winevent.h: winevent.mc + $(WINDMC) winevent.mc + +winevent.o: winevent.rc winevent.h + $(WINDRES) winevent.rc winevent.o + +winevent.dll: winevent.o + $(DLLWRAP) --output-lib=libwinevent.a --dllname=winevent.dll --driver-name=gcc winevent.o bin_PROGRAMS = nut halt +nut$(EXEEXT): winevent.dll nut_SOURCES = wininit.c +nut_LDADD = ../../common/libcommon.la + halt_SOURCES = halt.c + +CLEANFILES = winevent.rc winevent.o winevent.dll winevent.h + +else !HAVE_MINGW_RESGEN + +winevent.dll: + @echo "Not building MingW resources since the needed programs (windmc, windres, dllwrap) were not found." + +endif !HAVE_MINGW_RESGEN + From 17eca7141dd116478cf5476cfd2a7fd21fdfbc55 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 17 Dec 2010 09:32:11 +0000 Subject: [PATCH 040/218] Simplify timeout calculation Fossil-ID: SVN r2744 --- common/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/common.c b/common/common.c index 57c07964e5..062d3bec59 100644 --- a/common/common.c +++ b/common/common.c @@ -631,7 +631,7 @@ int select_read(const HANDLE fd, void *buf, const size_t buflen, const long d_se GetCommTimeouts(fd,&TOut); - timeout = (d_sec*1000) + (d_usec/1000) + (((d_usec % 1000)!=0)?1:0); + timeout = (d_sec*1000) + ((d_usec+999)/1000); TOut.ReadIntervalTimeout = MAXDWORD; TOut.ReadTotalTimeoutMultiplier = 0; From 1cbacf297e66eacb4a5238ec5e432700f675e8dc Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 17 Dec 2010 10:31:46 +0000 Subject: [PATCH 041/218] forgot this for automatic winevent.h and winevent.dll generation Fossil-ID: SVN r2745 --- configure.in | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/configure.in b/configure.in index 6cff5bb647..d15a73bd09 100644 --- a/configure.in +++ b/configure.in @@ -728,6 +728,19 @@ NUT_REPORT_FEATURE([build and install the development files], [${nut_with_dev}], [WITH_DEV], [Define to enable development files support]) dnl ---------------------------------------------------------------------- +dnl checks related to MS Windows support (MingW) + +AC_PATH_PROGS([WINDMC], [windmc], [none]) +AC_PATH_PROGS([WINDRES], [windres], [none]) +AC_PATH_PROGS([DLLWRAP], [dllwrap], [none]) + +if test "x$WINDMC" != "xnone" -a "x$WINDRES" != "xnone" -a "x$DLLWRAP" != "xnone"; then + nut_have_mingw_resgen="yes" +fi + +AM_CONDITIONAL([HAVE_MINGW_RESGEN], [test "${nut_have_mingw_resgen}" = "yes"]) + +dnl ---------------------------------------------------------------------- AC_MSG_CHECKING(state path) From 6a55c6afde57fc97b0dd2545f5bd0682b6428583 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 17 Dec 2010 13:28:55 +0000 Subject: [PATCH 042/218] First implementation of termios functions Fossil-ID: SVN r2746 --- clients/upsclient.c | 68 +--- common/common.c | 8 +- common/wincompat.c | 826 ++++++++++++++++++++++++++++++++++++++++- drivers/belkinunv.c | 199 ++-------- drivers/bestfcom.c | 24 -- drivers/bestuferrups.c | 24 -- drivers/blazer_ser.c | 4 +- drivers/ivtscd.c | 4 - drivers/mge-shut.c | 53 +-- drivers/mge-utalk.c | 22 -- drivers/powercom.c | 10 - drivers/safenet.c | 4 - drivers/serial.c | 233 +++--------- drivers/serial.h | 128 +++---- drivers/upscode2.c | 4 - include/common.h | 17 +- include/wincompat.h | 196 +++++++++- server/upsd.c | 1 + 18 files changed, 1163 insertions(+), 662 deletions(-) diff --git a/clients/upsclient.c b/clients/upsclient.c index 27307e58b6..a3bd8812c8 100644 --- a/clients/upsclient.c +++ b/clients/upsclient.c @@ -45,6 +45,7 @@ /* This override network system calls to adapt to Windows specificity */ #define W32_NETWORK_CALL_OVERRIDE #include "wincompat.h" +#undef W32_NETWORK_CALL_OVERRIDE #endif #include "upsclient.h" @@ -875,73 +876,6 @@ int upscli_tryconnect(UPSCONN_t *ups, const char *host, int port, int flags,stru return -1; } -<<<<<<< HEAD -======= -#ifndef HAVE_IPV6 - serv = gethostbyname(host); - - if (!serv) { -#ifndef WIN32 - struct in_addr listenaddr; - - if (!inet_aton(host, &listenaddr)) { - ups->upserror = UPSCLI_ERR_NOSUCHHOST; - return -1; - } - - serv = gethostbyaddr(&listenaddr, sizeof(listenaddr), AF_INET); - - if (!serv) { - ups->upserror = UPSCLI_ERR_NOSUCHHOST; - return -1; - } -#else - unsigned long numeric_addr; - numeric_addr = inet_addr(host); - if ( numeric_addr == INADDR_NONE ) { - ups->upserror = UPSCLI_ERR_NOSUCHHOST; - return -1; - } - server.sin_addr.s_addr = numeric_addr; - -#endif - - } - - if ((sock_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { - ups->upserror = UPSCLI_ERR_SOCKFAILURE; - ups->syserrno = errno; - close(sock_fd); - return -1; - } - - memset(&local, '\0', sizeof(local)); - local.sin_family = AF_INET; - local.sin_port = htons(INADDR_ANY); - - memset(&server, '\0', sizeof(server)); - server.sin_family = AF_INET; - server.sin_port = htons(port); - - memcpy(&server.sin_addr, serv->h_addr, serv->h_length); - - if (bind(sock_fd, (struct sockaddr *) &local, sizeof(local)) < 0) { - ups->upserror = UPSCLI_ERR_BINDFAILURE; - ups->syserrno = errno; - close(sock_fd); - return -1; - } - - if (connect(sock_fd, (struct sockaddr *) &server, sizeof(struct sockaddr_in)) < 0) { - ups->upserror = UPSCLI_ERR_CONNFAILURE; - ups->syserrno = errno; - close(sock_fd); - return -1; - } - - ups->fd = sock_fd; -#else ->>>>>>> Initial commit (preliminary investigation) snprintf(sport, sizeof(sport), "%hu", (unsigned short int)port); memset(&hints, 0, sizeof(hints)); diff --git a/common/common.c b/common/common.c index 062d3bec59..67cfa11818 100644 --- a/common/common.c +++ b/common/common.c @@ -621,7 +621,7 @@ int select_read(const int fd, void *buf, const size_t buflen, const long d_sec, return read(fd, buf, buflen); } #else -int select_read(const HANDLE fd, void *buf, const size_t buflen, const long d_sec, const long d_usec) +int select_read(const serial_handler_t * fd, void *buf, const size_t buflen, const long d_sec, const long d_usec) { /* This function is only called by serial drivers right now */ DWORD bytes_read; @@ -629,16 +629,16 @@ int select_read(const HANDLE fd, void *buf, const size_t buflen, const long d_se DWORD timeout; COMMTIMEOUTS TOut; - GetCommTimeouts(fd,&TOut); + GetCommTimeouts(fd->handle,&TOut); timeout = (d_sec*1000) + ((d_usec+999)/1000); TOut.ReadIntervalTimeout = MAXDWORD; TOut.ReadTotalTimeoutMultiplier = 0; TOut.ReadTotalTimeoutConstant = timeout; - SetCommTimeouts(fd,&TOut); + SetCommTimeouts(fd->handle,&TOut); - res = ReadFile(fd,buf,buflen,&bytes_read,NULL); + res = ReadFile(fd->handle,buf,buflen,&bytes_read,NULL); if( res == 0 ) { return -1; diff --git a/common/wincompat.c b/common/wincompat.c index e039644401..3873d2c5b1 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -18,6 +18,7 @@ */ #ifdef WIN32 #include "common.h" +#include "wincompat.h" #include #include @@ -51,9 +52,9 @@ int sktclose(int fh) } /* syslog sends a message through a pipe to the wininit service. Which is -in charge of adding an event in the Windows event logger. -The message is made of 4 bytes containing the priority followed by an array -of chars containing the message to display (no terminal 0 required here) */ + in charge of adding an event in the Windows event logger. + The message is made of 4 bytes containing the priority followed by an array + of chars containing the message to display (no terminal 0 required here) */ void syslog(int priority, const char *fmt, ...) { char buf1[LARGEBUF]; @@ -96,13 +97,820 @@ void syslog(int priority, const char *fmt, ...) result = WriteFile (pipe,buf1,strlen(buf2)+sizeof(DWORD),&bytesWritten,NULL); /* testing result is useless. If we have an error and try to report it, - this will probably lead to a call to this function and an infinite - loop */ + this will probably lead to a call to this function and an infinite + loop */ /* - if (result == 0 || bytesWritten != strlen(buf2)+sizeof(DWORD) ) { - return;; - } - */ + if (result == 0 || bytesWritten != strlen(buf2)+sizeof(DWORD) ) { + return;; + } + */ CloseHandle(pipe); } + +/* Serial port wrapper inspired by : +http://serial-programming-in-win32-os.blogspot.com/2008/07/convert-linux-code-to-windows-serial.html */ + +void overlapped_setup (serial_handler_t * sh) +{ + memset (&sh->io_status, 0, sizeof (sh->io_status)); + sh->io_status.hEvent = CreateEvent (NULL, TRUE, FALSE, NULL); + sh->overlapped_armed = 0; +} + +int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen) +{ + int tot; + DWORD n; + HANDLE w4; + DWORD minchars = sh->vmin_ ?: ulen; + + w4 = sh->io_status.hEvent; + + upslogx(LOG_DEBUG,"ulen %d, vmin_ %d, vtime_ %d, hEvent %p", ulen, sh->vmin_, sh->vtime_,sh->io_status.hEvent); + if (!sh->overlapped_armed) + { + SetCommMask (sh->handle, EV_RXCHAR); + ResetEvent (sh->io_status.hEvent); + } + + for (n = 0, tot = 0; ulen; ulen -= n, ptr = (char *)ptr + n) + { + DWORD ev; + COMSTAT st; + DWORD inq = 1; + + n = 0; + + if (!sh->vtime_ && !sh->vmin_) + inq = ulen; + else if (sh->vtime_) + { + /* non-interruptible -- have to use kernel timeouts + also note that this is not strictly correct. + if vmin > ulen then things won't work right. + sh->overlapped_armed = -1; + */ + inq = ulen; + } + + if (!ClearCommError (sh->handle, &ev, &st)) + goto err; + else if (ev) + upslogx(LOG_ERR,"error detected %x", (int)ev); + else if (st.cbInQue) + inq = st.cbInQue; + else if (!sh->overlapped_armed) + { + if ((size_t)tot >= minchars) + break; + else if (WaitCommEvent (sh->handle, &ev, &sh->io_status)) + { + upslogx(LOG_DEBUG,"WaitCommEvent succeeded: ev %x", (int)ev); + if (!ev) + continue; + } + else if (GetLastError () != ERROR_IO_PENDING) + goto err; + else + { + sh->overlapped_armed = 1; + switch (WaitForSingleObject (w4,INFINITE)) + { + case WAIT_OBJECT_0: + if (!GetOverlappedResult (sh->handle, &sh->io_status, &n, FALSE)) + goto err; + upslogx(LOG_DEBUG,"n %d, ev %x", (int)n, (int)ev); + break; + default: + goto err; + } + } + } + + sh->overlapped_armed = 0; + ResetEvent (sh->io_status.hEvent); + if (inq > ulen) + inq = ulen; + upslogx(LOG_DEBUG,"inq %d", (int)inq); + if (ReadFile (sh->handle, ptr, min (inq, ulen), &n, &sh->io_status)) + /* Got something */; + else if (GetLastError () != ERROR_IO_PENDING) + goto err; + else if (!GetOverlappedResult (sh->handle, &sh->io_status, &n, TRUE)) + goto err; + + tot += n; + upslogx(LOG_DEBUG,"vtime_ %d, vmin_ %d, n %d, tot %d", sh->vtime_, sh->vmin_, (int)n, tot); + if (sh->vtime_ || !sh->vmin_ || !n) + break; + continue; + +err: + PurgeComm (sh->handle, PURGE_RXABORT); + upslogx(LOG_DEBUG,"err %d",(int)GetLastError()); + if (GetLastError () == ERROR_OPERATION_ABORTED) + n = 0; + else + { + tot = -1; + break; + } + } + + return tot; +} + +/* Cover function to WriteFile to provide Posix interface and semantics + (as much as possible). */ +int w32_serial_write (serial_handler_t * sh, const void *ptr, size_t len) +{ + DWORD bytes_written; + OVERLAPPED write_status; + + memset (&write_status, 0, sizeof (write_status)); + write_status.hEvent = CreateEvent (NULL, TRUE, FALSE, NULL); + + for (;;) + { + if (WriteFile (sh->handle, ptr, len, &bytes_written, &write_status)) + break; + + switch (GetLastError ()) + { + case ERROR_OPERATION_ABORTED: + continue; + case ERROR_IO_PENDING: + break; + default: + goto err; + } + + if (!GetOverlappedResult (sh->handle, &write_status, &bytes_written, TRUE)) + goto err; + + break; + } + + CloseHandle(write_status.hEvent); + + return bytes_written; + +err: + CloseHandle(write_status.hEvent); + return -1; +} + +serial_handler_t * w32_serial_open (const char *name, int flags) +{ + /* flags are currently ignored, it's here just to have the same + interface as POSIX open */ + COMMTIMEOUTS to; + + upslogx(LOG_INFO,"serial_open (%s)",name); + + serial_handler_t * sh; + + sh = xmalloc(sizeof(serial_handler_t)); + memset(sh,0,sizeof(serial_handler_t)); + + sh->handle = CreateFile(name,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0); + + if(sh->handle == INVALID_HANDLE_VALUE) { + upslogx(LOG_ERR,"could not open %s",name); + return NULL; + } + + SetCommMask (sh->handle, EV_RXCHAR); + + overlapped_setup (sh); + + memset (&to, 0, sizeof (to)); + SetCommTimeouts (sh->handle, &to); + + /* Reset serial port to known state of 9600-8-1-no flow control + on open for better behavior under Win 95. + */ + DCB state; + GetCommState (sh->handle, &state); + upslogx (LOG_INFO,"setting initial state on %s",name); + state.BaudRate = CBR_9600; + state.ByteSize = 8; + state.StopBits = ONESTOPBIT; + state.Parity = NOPARITY; /* FIXME: correct default? */ + state.fBinary = TRUE; /* binary xfer */ + state.EofChar = 0; /* no end-of-data in binary mode */ + state.fNull = FALSE; /* don't discard nulls in binary mode */ + state.fParity = FALSE; /* ignore parity errors */ + state.fErrorChar = FALSE; + state.fTXContinueOnXoff = TRUE; /* separate TX and RX flow control */ + state.fOutX = FALSE; /* disable transmission flow control */ + state.fInX = FALSE; /* disable reception flow control */ + state.XonChar = 0x11; + state.XoffChar = 0x13; + state.fOutxDsrFlow = FALSE; /* disable DSR flow control */ + state.fRtsControl = RTS_CONTROL_ENABLE; /* ignore lead control except + DTR */ + state.fOutxCtsFlow = FALSE; /* disable output flow control */ + state.fDtrControl = DTR_CONTROL_ENABLE; /* assert DTR */ + state.fDsrSensitivity = FALSE; /* don't assert DSR */ + state.fAbortOnError = TRUE; + if (!SetCommState (sh->handle, &state)) + upslogx (LOG_ERR,"couldn't set initial state for %s",name); + + SetCommMask (sh->handle, EV_RXCHAR); + upslogx (LOG_INFO,"%p = serial_open (%s)",sh->handle,name); + return sh; +} + +int w32_serial_close (serial_handler_t * sh) +{ + if( sh->io_status.hEvent != INVALID_HANDLE_VALUE ) { + CloseHandle (sh->io_status.hEvent); + } + if( sh->handle != INVALID_HANDLE_VALUE ) { + CloseHandle (sh->handle); + } + free(sh); + + return 0; +} + +/* tcsendbreak: POSIX 7.2.2.1 */ +/* Break for 250-500 milliseconds if duration == 0 */ +/* Otherwise, units for duration are undefined */ +int tcsendbreak (serial_handler_t * sh, int duration) +{ + unsigned int sleeptime = 300000; + + if (duration > 0) + sleeptime *= duration; + + if (SetCommBreak (sh->handle) == 0) + return -1; + + /* FIXME: need to send zero bits during duration */ + usleep (sleeptime); + + if (ClearCommBreak (sh->handle) == 0) + return -1; + + upslogx(LOG_DEBUG,"0 = tcsendbreak (%d)", duration); + + return 0; +} + +/* tcdrain: POSIX 7.2.2.1 */ +int tcdrain (serial_handler_t * sh) +{ + if (FlushFileBuffers (sh->handle) == 0) + return -1; + + return 0; +} + +/* tcflow: POSIX 7.2.2.1 */ +int tcflow (serial_handler_t * sh, int action) +{ + DWORD win32action = 0; + DCB dcb; + char xchar; + + upslogx(LOG_DEBUG,"action %d", action); + + switch (action) + { + case TCOOFF: + win32action = SETXOFF; + break; + case TCOON: + win32action = SETXON; + break; + case TCION: + case TCIOFF: + if (GetCommState (sh->handle, &dcb) == 0) + return -1; + if (action == TCION) + xchar = (dcb.XonChar ? dcb.XonChar : 0x11); + else + xchar = (dcb.XoffChar ? dcb.XoffChar : 0x13); + if (TransmitCommChar (sh->handle, xchar) == 0) + return -1; + return 0; + break; + default: + return -1; + break; + } + + if (EscapeCommFunction (sh->handle, win32action) == 0) + return -1; + + return 0; +} + +/* tcflush: POSIX 7.2.2.1 */ +int tcflush (serial_handler_t * sh, int queue) +{ + int max; + + if (queue == TCOFLUSH || queue == TCIOFLUSH) + PurgeComm (sh->handle, PURGE_TXABORT | PURGE_TXCLEAR); + + if ((queue == TCIFLUSH) | (queue == TCIOFLUSH)) + /* Input flushing by polling until nothing turns up + (we stop after 1000 chars anyway) */ + for (max = 1000; max > 0; max--) + { + DWORD ev; + COMSTAT st; + if (!PurgeComm (sh->handle, PURGE_RXABORT | PURGE_RXCLEAR)) + break; + Sleep (100); + if (!ClearCommError (sh->handle, &ev, &st) || !st.cbInQue) + break; + } + + return 0; +} + +/* tcsetattr: POSIX 7.2.1.1 */ +int tcsetattr (serial_handler_t * sh, int action, const struct termios *t) +{ + /* Possible actions: +TCSANOW: immediately change attributes. +TCSADRAIN: flush output, then change attributes. +TCSAFLUSH: flush output and discard input, then change attributes. + */ + + BOOL dropDTR = FALSE; + COMMTIMEOUTS to; + DCB ostate, state; + unsigned int ovtime = sh->vtime_, ovmin = sh->vmin_; + + upslogx(LOG_DEBUG, "action %d", action); + if ((action == TCSADRAIN) || (action == TCSAFLUSH)) + { + FlushFileBuffers (sh->handle); + upslogx(LOG_DEBUG,"flushed file buffers"); + } + if (action == TCSAFLUSH) + PurgeComm (sh->handle, (PURGE_RXABORT | PURGE_RXCLEAR)); + + /* get default/last comm state */ + if (!GetCommState (sh->handle, &ostate)) + return -1; + + state = ostate; + + /* -------------- Set baud rate ------------------ */ + /* FIXME: WIN32 also has 14400, 56000, 128000, and 256000. + Unix also has 230400. */ + + switch (t->c_ospeed) + { + case B0: /* drop DTR */ + dropDTR = TRUE; + state.BaudRate = 0; + break; + case B110: + state.BaudRate = CBR_110; + break; + case B300: + state.BaudRate = CBR_300; + break; + case B600: + state.BaudRate = CBR_600; + break; + case B1200: + state.BaudRate = CBR_1200; + break; + case B2400: + state.BaudRate = CBR_2400; + break; + case B4800: + state.BaudRate = CBR_4800; + break; + case B9600: + state.BaudRate = CBR_9600; + break; + case B19200: + state.BaudRate = CBR_19200; + break; + case B38400: + state.BaudRate = CBR_38400; + break; + case B57600: + state.BaudRate = CBR_57600; + break; + case B115200: + state.BaudRate = CBR_115200; + break; + default: + /* Unsupported baud rate! */ + upslogx(LOG_ERR,"Invalid t->c_ospeed %d", t->c_ospeed); + return -1; + } + + /* -------------- Set byte size ------------------ */ + + switch (t->c_cflag & CSIZE) + { + case CS5: + state.ByteSize = 5; + break; + case CS6: + state.ByteSize = 6; + break; + case CS7: + state.ByteSize = 7; + break; + case CS8: + state.ByteSize = 8; + break; + default: + /* Unsupported byte size! */ + upslogx(LOG_ERR,"Invalid t->c_cflag byte size %d", + t->c_cflag & CSIZE); + return -1; + } + + /* -------------- Set stop bits ------------------ */ + + if (t->c_cflag & CSTOPB) + state.StopBits = TWOSTOPBITS; + else + state.StopBits = ONESTOPBIT; + + /* -------------- Set parity ------------------ */ + + if (t->c_cflag & PARENB) + state.Parity = (t->c_cflag & PARODD) ? ODDPARITY : EVENPARITY; + else + state.Parity = NOPARITY; + + state.fBinary = TRUE; /* Binary transfer */ + state.EofChar = 0; /* No end-of-data in binary mode */ + state.fNull = FALSE; /* Don't discard nulls in binary mode */ + + /* -------------- Parity errors ------------------ */ + /* fParity combines the function of INPCK and NOT IGNPAR */ + + if ((t->c_iflag & INPCK) && !(t->c_iflag & IGNPAR)) + state.fParity = TRUE; /* detect parity errors */ + else + state.fParity = FALSE; /* ignore parity errors */ + + /* Only present in Win32, Unix has no equivalent */ + state.fErrorChar = FALSE; + state.ErrorChar = 0; + + /* -------------- Set software flow control ------------------ */ + /* Set fTXContinueOnXoff to FALSE. This prevents the triggering of a + premature XON when the remote device interprets a received character + as XON (same as IXANY on the remote side). Otherwise, a TRUE + value separates the TX and RX functions. */ + + state.fTXContinueOnXoff = TRUE; /* separate TX and RX flow control */ + + /* Transmission flow control */ + if (t->c_iflag & IXON) + state.fOutX = TRUE; /* enable */ + else + state.fOutX = FALSE; /* disable */ + + /* Reception flow control */ + if (t->c_iflag & IXOFF) + state.fInX = TRUE; /* enable */ + else + state.fInX = FALSE; /* disable */ + + /* XoffLim and XonLim are left at default values */ + + state.XonChar = (t->c_cc[VSTART] ? t->c_cc[VSTART] : 0x11); + state.XoffChar = (t->c_cc[VSTOP] ? t->c_cc[VSTOP] : 0x13); + + /* -------------- Set hardware flow control ------------------ */ + + /* Disable DSR flow control */ + state.fOutxDsrFlow = FALSE; + + /* Some old flavors of Unix automatically enabled hardware flow + control when software flow control was not enabled. Since newer + Unices tend to require explicit setting of hardware flow-control, + this is what we do. */ + + /* RTS/CTS flow control */ + if (t->c_cflag & CRTSCTS) + { /* enable */ + state.fOutxCtsFlow = TRUE; + state.fRtsControl = RTS_CONTROL_HANDSHAKE; + } + else + { /* disable */ + state.fRtsControl = RTS_CONTROL_ENABLE; + state.fOutxCtsFlow = FALSE; + } + + /* + if (t->c_cflag & CRTSXOFF) + state.fRtsControl = RTS_CONTROL_HANDSHAKE; + */ + + /* -------------- DTR ------------------ */ + /* Assert DTR on device open */ + + state.fDtrControl = DTR_CONTROL_ENABLE; + + /* -------------- DSR ------------------ */ + /* Assert DSR at the device? */ + + if (t->c_cflag & CLOCAL) + state.fDsrSensitivity = FALSE; /* no */ + else + state.fDsrSensitivity = TRUE; /* yes */ + + /* -------------- Error handling ------------------ */ + /* Since read/write operations terminate upon error, we + will use ClearCommError() to resume. */ + + state.fAbortOnError = TRUE; + + /* -------------- Set state and exit ------------------ */ + if (memcmp (&ostate, &state, sizeof (state)) != 0) + SetCommState (sh->handle, &state); + + sh->r_binary = ((t->c_iflag & IGNCR) ? 0 : 1); + sh->w_binary = ((t->c_oflag & ONLCR) ? 0 : 1); + + if (dropDTR == TRUE) + EscapeCommFunction (sh->handle, CLRDTR); + else + { + /* FIXME: Sometimes when CLRDTR is set, setting + state.fDtrControl = DTR_CONTROL_ENABLE will fail. This + is a problem since a program might want to change some + parameters while DTR is still down. */ + + EscapeCommFunction (sh->handle, SETDTR); + } + + /* + The following documentation on was taken from "Linux Serial Programming + HOWTO". It explains how MIN (t->c_cc[VMIN] || vmin_) and TIME + (t->c_cc[VTIME] || vtime_) is to be used. + + In non-canonical input processing mode, input is not assembled into + lines and input processing (erase, kill, delete, etc.) does not + occur. Two parameters control the behavior of this mode: c_cc[VTIME] + sets the character timer, and c_cc[VMIN] sets the minimum number of + characters to receive before satisfying the read. + + If MIN > 0 and TIME = 0, MIN sets the number of characters to receive + before the read is satisfied. As TIME is zero, the timer is not used. + + If MIN = 0 and TIME > 0, TIME serves as a timeout value. The read will + be satisfied if a single character is read, or TIME is exceeded (t = + TIME *0.1 s). If TIME is exceeded, no character will be returned. + + If MIN > 0 and TIME > 0, TIME serves as an inter-character timer. The + read will be satisfied if MIN characters are received, or the time + between two characters exceeds TIME. The timer is restarted every time + a character is received and only becomes active after the first + character has been received. + + If MIN = 0 and TIME = 0, read will be satisfied immediately. The + number of characters currently available, or the number of characters + requested will be returned. According to Antonino (see contributions), + you could issue a fcntl(fd, F_SETFL, FNDELAY); before reading to get + the same result. + */ + + if (t->c_lflag & ICANON) + { + sh->vmin_ = MAXDWORD; + sh->vtime_ = 0; + } + else + { + sh->vtime_ = t->c_cc[VTIME] * 100; + sh->vmin_ = t->c_cc[VMIN]; + } + + upslogx(LOG_DEBUG,"vtime %d, vmin %d\n", sh->vtime_, sh->vmin_); + + if (ovmin == sh->vmin_ && ovtime == sh->vtime_) + return 0; + + memset (&to, 0, sizeof (to)); + + if ((sh->vmin_ > 0) && (sh->vtime_ == 0)) + { + /* Returns immediately with whatever is in buffer on a ReadFile(); + or blocks if nothing found. We will keep calling ReadFile(); until + vmin_ characters are read */ + to.ReadIntervalTimeout = to.ReadTotalTimeoutMultiplier = MAXDWORD; + to.ReadTotalTimeoutConstant = MAXDWORD - 1; + } + else if ((sh->vmin_ == 0) && (sh->vtime_ > 0)) + { + /* set timeoout constant appropriately and we will only try to + read one character in ReadFile() */ + to.ReadTotalTimeoutConstant = sh->vtime_; + to.ReadIntervalTimeout = to.ReadTotalTimeoutMultiplier = MAXDWORD; + } + else if ((sh->vmin_ > 0) && (sh->vtime_ > 0)) + { + /* time applies to the interval time for this case */ + to.ReadIntervalTimeout = sh->vtime_; + } + else if ((sh->vmin_ == 0) && (sh->vtime_ == 0)) + { + /* returns immediately with whatever is in buffer as per + Time-Outs docs in Win32 SDK API docs */ + to.ReadIntervalTimeout = MAXDWORD; + } + + upslogx(LOG_DEBUG,"ReadTotalTimeoutConstant %d, ReadIntervalTimeout %d, ReadTotalTimeoutMultiplier %d", + (int)to.ReadTotalTimeoutConstant, (int)to.ReadIntervalTimeout, (int)to.ReadTotalTimeoutMultiplier); + int res = SetCommTimeouts(sh->handle, &to); + if (!res) + { + upslogx(LOG_ERR,"SetCommTimeout failed"); + return -1; + } + + return 0; +} + +/* tcgetattr: POSIX 7.2.1.1 */ +int tcgetattr (serial_handler_t * sh, struct termios *t) +{ + DCB state; + + /* Get current Win32 comm state */ + if (GetCommState (sh->handle, &state) == 0) + return -1; + + /* for safety */ + memset (t, 0, sizeof (*t)); + + /* -------------- Baud rate ------------------ */ + + switch (state.BaudRate) + { + case 0: + /* FIXME: need to drop DTR */ + t->c_cflag = t->c_ospeed = t->c_ispeed = B0; + break; + case CBR_110: + t->c_cflag = t->c_ospeed = t->c_ispeed = B110; + break; + case CBR_300: + t->c_cflag = t->c_ospeed = t->c_ispeed = B300; + break; + case CBR_600: + t->c_cflag = t->c_ospeed = t->c_ispeed = B600; + break; + case CBR_1200: + t->c_cflag = t->c_ospeed = t->c_ispeed = B1200; + break; + case CBR_2400: + t->c_cflag = t->c_ospeed = t->c_ispeed = B2400; + break; + case CBR_4800: + t->c_cflag = t->c_ospeed = t->c_ispeed = B4800; + break; + case CBR_9600: + t->c_cflag = t->c_ospeed = t->c_ispeed = B9600; + break; + case CBR_19200: + t->c_cflag = t->c_ospeed = t->c_ispeed = B19200; + break; + case CBR_38400: + t->c_cflag = t->c_ospeed = t->c_ispeed = B38400; + break; + case CBR_57600: + t->c_cflag = t->c_ospeed = t->c_ispeed = B57600; + break; + case CBR_115200: + t->c_cflag = t->c_ospeed = t->c_ispeed = B115200; + break; + default: + /* Unsupported baud rate! */ + upslogx(LOG_ERR,"Invalid baud rate %d", (int)state.BaudRate); + return -1; + } + + /* -------------- Byte size ------------------ */ + + switch (state.ByteSize) + { + case 5: + t->c_cflag |= CS5; + break; + case 6: + t->c_cflag |= CS6; + break; + case 7: + t->c_cflag |= CS7; + break; + case 8: + t->c_cflag |= CS8; + break; + default: + /* Unsupported byte size! */ + upslogx(LOG_ERR,"Invalid byte size %d", state.ByteSize); + return -1; + } + + /* -------------- Stop bits ------------------ */ + + if (state.StopBits == TWOSTOPBITS) + t->c_cflag |= CSTOPB; + + /* -------------- Parity ------------------ */ + + if (state.Parity == ODDPARITY) + t->c_cflag |= (PARENB | PARODD); + if (state.Parity == EVENPARITY) + t->c_cflag |= PARENB; + + /* -------------- Parity errors ------------------ */ + + /* fParity combines the function of INPCK and NOT IGNPAR */ + if (state.fParity == TRUE) + t->c_iflag |= INPCK; + else + t->c_iflag |= IGNPAR; /* not necessarily! */ + + /* -------------- Software flow control ------------------ */ + + /* transmission flow control */ + if (state.fOutX) + t->c_iflag |= IXON; + + /* reception flow control */ + if (state.fInX) + t->c_iflag |= IXOFF; + + t->c_cc[VSTART] = (state.XonChar ? state.XonChar : 0x11); + t->c_cc[VSTOP] = (state.XoffChar ? state.XoffChar : 0x13); + + /* -------------- Hardware flow control ------------------ */ + /* Some old flavors of Unix automatically enabled hardware flow + control when software flow control was not enabled. Since newer + Unices tend to require explicit setting of hardware flow-control, + this is what we do. */ + + /* Input flow-control */ + if ((state.fRtsControl == RTS_CONTROL_HANDSHAKE) && + (state.fOutxCtsFlow == TRUE)) + t->c_cflag |= CRTSCTS; + /* + if (state.fRtsControl == RTS_CONTROL_HANDSHAKE) + t->c_cflag |= CRTSXOFF; + */ + + /* -------------- CLOCAL --------------- */ + /* DSR is only lead toggled only by CLOCAL. Check it to see if + CLOCAL was called. */ + /* FIXME: If tcsetattr() hasn't been called previously, this may + give a false CLOCAL. */ + + if (state.fDsrSensitivity == FALSE) + t->c_cflag |= CLOCAL; + + /* FIXME: need to handle IGNCR */ +#if 0 + if (!sh->r_binary ()) + t->c_iflag |= IGNCR; +#endif + + if (!sh->w_binary) + t->c_oflag |= ONLCR; + + upslogx (LOG_DEBUG,"vmin_ %d, vtime_ %d", sh->vmin_, sh->vtime_); + if (sh->vmin_ == MAXDWORD) + { + t->c_lflag |= ICANON; + t->c_cc[VTIME] = t->c_cc[VMIN] = 0; + } + else + { + t->c_cc[VTIME] = sh->vtime_ / 100; + t->c_cc[VMIN] = sh->vmin_; + } + + return 0; +} + +/* FIXME no difference between ispeed and ospeed */ +void cfsetispeed(struct termios * t, speed_t speed) +{ + t->c_ispeed = t->c_ospeed = speed; +} +void cfsetospeed(struct termios * t, speed_t speed) +{ + t->c_ispeed = t->c_ospeed = speed; +} #endif diff --git a/drivers/belkinunv.c b/drivers/belkinunv.c index 08bd6e6344..761ab42dad 100644 --- a/drivers/belkinunv.c +++ b/drivers/belkinunv.c @@ -196,14 +196,6 @@ static const char *status[] = { #define ESC "\033" #define COL0 ESC "[G" ESC "[K" /* terminal control: clear line */ -/* porting stuff for WIN32 */ -#ifndef WIN32 -#define ERROR_FD (-1) -#else -#define ERROR_FD (INVALID_HANDLE_VALUE) -#define close(a) CloseHandle(a) -#endif - static int minutil = -1; static int maxutil = -1; @@ -448,18 +440,19 @@ static int belkin_nut_write_int(int reg, int val) { will be discarded. After this call, the device is ready for reading and writing via read(2) and write(2). Return a valid file descriptor on success, or else -1 with errno set. */ -#ifndef WIN32 -static int belkin_std_open_tty(const char *device) { - int fd; +static TYPE_FD belkin_std_open_tty(const char *device) { + TYPE_FD fd; struct termios tios; +#ifndef WIN32 struct flock flock; +#endif char buf[128]; int r; /* open the device */ fd = open(device, O_RDWR | O_NONBLOCK); - if (fd == -1) { - return -1; + if (fd == ERROR_FD) { + return ERROR_FD; } /* set communications parameters: 2400 baud, 8 bits, 1 stop bit, no @@ -472,7 +465,7 @@ static int belkin_std_open_tty(const char *device) { r = tcsetattr(fd, TCSANOW, &tios); if (r == -1) { close(fd); - return -1; + return ERROR_FD; } /* signal the UPS to enter "smart" mode. This is done by setting RTS @@ -489,17 +482,20 @@ static int belkin_std_open_tty(const char *device) { r = ser_flush_io(fd); if (r == -1) { close(fd); - return -1; + return ERROR_FD; } - + +/* TODO: port to WIN32 */ +#ifndef WIN32 /* lock the port */ memset(&flock, 0, sizeof(flock)); flock.l_type = F_RDLCK; r = fcntl(fd, F_SETLK, &flock); if (r == -1) { close(fd); - return -1; + return ERROR_FD; } +#endif /* sleep at least 0.25 seconds for the UPS to wake up. Belkin's own software sleeps 1 second, so that's what we do, too. */ @@ -510,127 +506,41 @@ static int belkin_std_open_tty(const char *device) { r = tcflush(fd, TCIFLUSH); if (r == -1) { close(fd); - return -1; + return ERROR_FD; } +#ifndef WIN32 r = read(fd, buf, 127); +#else +/* WIN32 : w32_serial_read is blocking, using select_read with 0ms timeout +is non-blocking */ + r = select_read(fd, buf, 127,0,0); +#endif if (r == -1 && errno != EAGAIN) { close(fd); - return -1; + return ERROR_FD; } /* leave port in non-blocking state */ return fd; } -#else -static HANDLE belkin_std_open_tty(const char *device) { - HANDLE fd; - COMMTIMEOUTS TOut; - DCB dcb; - char buf[128]; - int ret; - - /* open the device */ - fd = CreateFile(device, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); - - if (fd == INVALID_HANDLE_VALUE) { - return fd; - } - - /* set communications parameters: 2400 baud, 8 bits, 1 stop bit, no - parity, enable reading, hang up when done (??TODO??), ignore modem control - lines. */ - GetCommTimeouts(fd,&TOut); - TOut.ReadIntervalTimeout = 0; - TOut.ReadTotalTimeoutMultiplier = 0; - TOut.ReadTotalTimeoutConstant = 0; - SetCommTimeouts(fd,&TOut); - - GetCommState(fd, &dcb); - dcb.fOutxCtsFlow = FALSE; - dcb.fOutxDsrFlow = FALSE; - dcb.fRtsControl = RTS_CONTROL_DISABLE; - dcb.fDtrControl = DTR_CONTROL_DISABLE; - dcb.ByteSize = 8; - dcb.Parity = NOPARITY; - dcb.StopBits = ONESTOPBIT; - dcb.BaudRate = B2400; - - SetCommState(fd,&dcb); - - /* signal the UPS to enter "smart" mode. This is done by setting RTS - and dropping DTR for at least 0.25 seconds. RTS and DTR refer to - two specific pins in the 9-pin serial connector. Note: this must - be done for at least 0.25 seconds for the UPS to react. Ignore - any errors, as this probably means we are not on a "real" serial - port. */ - ser_set_dtr(upsfd, 0); - ser_set_rts(upsfd, 1); - - /* flush both directions of serial port: throw away all data in - transit */ - ret = ser_flush_io(fd); - if (ret == -1) { - CloseHandle(fd); - return INVALID_HANDLE_VALUE; - } - - /* sleep at least 0.25 seconds for the UPS to wake up. Belkin's own - software sleeps 1 second, so that's what we do, too. */ - usleep(1000000); - - /* flush incoming data again, and read any remaining garbage - bytes. There should not be any. */ - ret = ser_flush_io(fd); - if (ret == -1) { - CloseHandle(fd); - return INVALID_HANDLE_VALUE; - } - - ret = select_read(fd, buf, 127,0,0); - if (ret == -1) { - CloseHandle(fd); - return INVALID_HANDLE_VALUE; - } - - return fd; -} -#endif /* blocking read with 1-second timeout (use non-blocking i/o) */ -#ifndef WIN32 -static int belkin_std_upsread(int fd, unsigned char *buf, int n) { +static int belkin_std_upsread(TYPE_FD fd, unsigned char *buf, int n) { int count = 0; int r; int tries = 0; while (count < n) { +#ifndef WIN32 r = read(fd, &buf[count], n-count); - if (r==-1 && errno==EAGAIN) { - /* non-blocking i/o, no data available */ - usleep(100000); - tries++; - } else if (r == -1) { - return -1; - } else { - count += r; - } - if (tries > 10) { - return -1; - } - } - return count; -} #else -static int belkin_std_upsread(HANDLE fd, unsigned char *buf, int n) { - int count = 0; - int r; - int tries = 0; - - while (count < n) { - r = select_read(fd, &buf[count], n-count,0,0); - if (r==0) { + /* WIN32 : w32_serial_read is blocking, using select_read + with 0ms timeout is non-blocking */ + r = select_read(fd, buf, 127,0,0); +#endif + if (r==-1 && errno==EAGAIN) { /* non-blocking i/o, no data available */ usleep(100000); tries++; @@ -645,11 +555,9 @@ static int belkin_std_upsread(HANDLE fd, unsigned char *buf, int n) { } return count; } -#endif /* blocking write with 1-second timeout (use non-blocking i/o) */ -#ifndef WIN32 -static int belkin_std_upswrite(int fd, unsigned char *buf, int n) { +static int belkin_std_upswrite(TYPE_FD fd, unsigned char *buf, int n) { int count = 0; int r; int tries = 0; @@ -671,40 +579,11 @@ static int belkin_std_upswrite(int fd, unsigned char *buf, int n) { } return count; } -#else -static int belkin_std_upswrite(HANDLE fd, unsigned char *buf, int n) { - int count = 0; - int r; - int tries = 0; - DWORD sent; - - while (count < n) { - r = WriteFile(fd, &buf[count], n-count,&sent,NULL); - if (r==0) { - /* non-blocking i/o, no data available */ - usleep(100000); - tries++; - } else if (r == -1) { - return -1; - } else { - count += r; - } - if (tries > 10) { - return -1; - } - } - return count; -} -#endif /* receive Belkin message from UPS, check for well-formedness (leading byte, checksum). Return length of message, or -1 if not well-formed */ -#ifndef WIN32 -static int belkin_std_receive(int fd, unsigned char *buf, int bufsize) { -#else -static int belkin_std_receive(HANDLE fd, unsigned char *buf, int bufsize) { -#endif +static int belkin_std_receive(TYPE_FD fd, unsigned char *buf, int bufsize) { int r; int n=0; int len; @@ -750,11 +629,7 @@ static int belkin_std_receive(HANDLE fd, unsigned char *buf, int bufsize) { /* read the value of an integer register from UPS. Return -1 on failure. */ -#ifndef WIN32 -static int belkin_std_read_int(int fd, int reg) { -#else -static int belkin_std_read_int(HANDLE fd, int reg) { -#endif +static int belkin_std_read_int(TYPE_FD fd, int reg) { unsigned char buf[MAXMSGSIZE]; int len, r; @@ -796,11 +671,7 @@ static int belkin_std_read_int(HANDLE fd, int reg) { /* write the value of an integer register to UPS. Return -1 on failure, else 0 */ -#ifndef WIN32 -static int belkin_std_write_int(int fd, int reg, int val) { -#else -static int belkin_std_write_int(HANDLE fd, int reg, int val) { -#endif +static int belkin_std_write_int(TYPE_FD fd, int reg, int val) { unsigned char buf[MAXMSGSIZE]; int r; @@ -893,11 +764,7 @@ static int belkin_wait(void) char *val; int failcount = 0; /* count consecutive failed connection attempts */ int failerrno = 0; -#ifndef WIN32 - int fd; -#else - HANDLE fd; -#endif + TYPE_FD fd; int r; int bs, ov, bl, st; diff --git a/drivers/bestfcom.c b/drivers/bestfcom.c index cd38ef14a5..54ea93ec2f 100644 --- a/drivers/bestfcom.c +++ b/drivers/bestfcom.c @@ -473,7 +473,6 @@ static void sync_serial(void) { } } -#ifndef WIN32 /* Begin code stolen from bestups.c */ static void setup_serial(void) { @@ -502,29 +501,6 @@ static void setup_serial(void) sync_serial(); } -#else -/* same code as in bestuferrups.c */ -static void setup_serial(void) -{ - DCB dcb; - - GetCommState(upsfd, &dcb); - dcb.fOutxCtsFlow = FALSE; - dcb.fOutxDsrFlow = FALSE; - dcb.fRtsControl = RTS_CONTROL_DISABLE; - dcb.ByteSize = 8; - dcb.Parity = NOPARITY; - dcb.StopBits = ONESTOPBIT; - dcb.BaudRate = B1200; - dcb.fOutX = TRUE; - dcb.fInX = TRUE; - - SetCommState(upsfd,&dcb); - - sync_serial(); -} -/* end of same code as in bestuferrups.c */ -#endif /* These models don't support the formatconfig (fc) command so use diff --git a/drivers/bestuferrups.c b/drivers/bestuferrups.c index c38eba005a..84244d1f69 100644 --- a/drivers/bestuferrups.c +++ b/drivers/bestuferrups.c @@ -367,7 +367,6 @@ static void sync_serial(void) { } } -#ifndef WIN32 /* Begin code stolen from bestups.c */ static void setup_serial(void) { @@ -396,29 +395,6 @@ static void setup_serial(void) sync_serial(); } -#else /*WIN32*/ -/* same code as in bestfcom.c */ -static void setup_serial(void) -{ - DCB dcb; - - GetCommState(upsfd, &dcb); - dcb.fOutxCtsFlow = FALSE; - dcb.fOutxDsrFlow = FALSE; - dcb.fRtsControl = RTS_CONTROL_DISABLE; - dcb.ByteSize = 8; - dcb.Parity = NOPARITY; - dcb.StopBits = ONESTOPBIT; - dcb.BaudRate = B1200; - dcb.fOutX = TRUE; - dcb.fInX = TRUE; - - SetCommState(upsfd,&dcb); - - sync_serial(); -} -/* end of same code as in bestfcom.c */ -#endif void upsdrv_initups () { diff --git a/drivers/blazer_ser.c b/drivers/blazer_ser.c index 6326de10fd..d2bccae5bc 100644 --- a/drivers/blazer_ser.c +++ b/drivers/blazer_ser.c @@ -134,8 +134,11 @@ void upsdrv_initups(void) ======= #ifndef TESTING +<<<<<<< HEAD #ifndef WIN32 /* TODO : Correctly set the port parameters for WIN32 */ >>>>>>> caf5d58... More work on serial drivers. +======= +>>>>>>> 1c3900e... First implementation of termios functions struct termios tio; /* @@ -166,7 +169,6 @@ void upsdrv_initups(void) if (tcsetattr(upsfd, TCSANOW, &tio)) { fatal_with_errno(EXIT_FAILURE, "tcsetattr"); } -#endif /* WIN32 */ val = getval("cablepower"); for (i = 0; val && cablepower[i].val; i++) { diff --git a/drivers/ivtscd.c b/drivers/ivtscd.c index c0025e8aca..d8ae507dfe 100644 --- a/drivers/ivtscd.c +++ b/drivers/ivtscd.c @@ -203,15 +203,12 @@ void upsdrv_makevartable(void) void upsdrv_initups(void) { -#ifndef WIN32 struct termios tio; -#endif const char *val; upsfd = ser_open(device_path); ser_set_speed(upsfd, device_path, B1200); -#ifndef WIN32 /* TODO : Correctly set the port parameters for WIN32 */ if (tcgetattr(upsfd, &tio)) { fatal_with_errno(EXIT_FAILURE, "tcgetattr"); } @@ -237,7 +234,6 @@ void upsdrv_initups(void) if (tcsetattr(upsfd, TCSANOW, &tio)) { fatal_with_errno(EXIT_FAILURE, "tcsetattr"); } -#endif /* * Set DTR and clear RTS to provide power for the serial interface. diff --git a/drivers/mge-shut.c b/drivers/mge-shut.c index 5ab6b46c86..a0b98616b0 100644 --- a/drivers/mge-shut.c +++ b/drivers/mge-shut.c @@ -546,56 +546,46 @@ int shut_wait_ack (void) *********************************************************************/ static int char_read (char *bytes, int size, int read_timeout) { -#ifndef WIN32 struct timeval serial_timeout; fd_set readfs; - int readen = 0; + int read = 0; int rc = 0; - - FD_ZERO (&readfs); - FD_SET (upsfd, &readfs); + int now; serial_timeout.tv_usec = (read_timeout % 1000) * 1000; serial_timeout.tv_sec = (read_timeout / 1000); +#ifndef WIN32 + FD_ZERO (&readfs); + FD_SET (upsfd, &readfs); + rc = select (upsfd + 1, &readfs, NULL, NULL, &serial_timeout); if (0 == rc) return -2; /* timeout */ if (FD_ISSET (upsfd, &readfs)) { - int now = read (upsfd, bytes, size - readen); + now = read (upsfd, bytes, size - read); if (now < 0) { return -1; } else { bytes += now; - readen += now; + read += now; } } else { return -1; } - return readen; #else - DWORD ret; - BOOL res; - DWORD bytes_read; - - COMMTIMEOUTS TOut; - GetCommTimeouts(upsfd,&TOut); - TOut.ReadIntervalTimeout = MAXDWORD; - TOut.ReadTotalTimeoutMultiplier = 0; - TOut.ReadTotalTimeoutConstant = read_timeout; - SetCommTimeouts(upsfd,&TOut); - - res = ReadFile(upsfd,bytes,size,&bytes_read,NULL); -/* FIXME don't know how to detect a timeout... */ - if(res == FALSE ) { + now = select_read(upsfd,bytes,size - read, serial_timeout.tv_sec, serial_timeout.tv_usec); + if( now == -1 ) { return -1; } + bytes += now; + read += now; - return bytes_read; + return read; #endif } @@ -654,26 +644,9 @@ int serial_read (int read_timeout, u_char *readbuf) **********************************************************************/ int serial_send (u_char *buf, int len) { -#ifndef WIN32 tcflush (upsfd, TCIFLUSH); upsdebug_hex (3, "sent", (u_char *)buf, len); return write (upsfd, buf, len); -#else - DWORD ret; - BOOL res; - DWORD bytes_written; - - FlushFileBuffers(upsfd); - upsdebug_hex (3, "sent", (u_char *)buf, len); - - res = WriteFile(upsfd,buf,len,&bytes_written,NULL); - - if(res == 0) { - return -1; - } - - return bytes_written; -#endif } /* diff --git a/drivers/mge-utalk.c b/drivers/mge-utalk.c index c5c7a81a50..3fc85ee705 100644 --- a/drivers/mge-utalk.c +++ b/drivers/mge-utalk.c @@ -891,12 +891,8 @@ static int mge_command(char *reply, int replylen, const char *fmt, ...) * http://old.networkupstools.org/protocols/mge/9261zwfa.pdf § 6.1. Timings */ usleep(500000); -#ifndef WIN32 /* flush received, unread data */ tcflush(upsfd, TCIFLUSH); -#else - ser_flush_io(upsfd); -#endif /* send command */ for (p = command; *p; p++) { @@ -905,17 +901,8 @@ static int mge_command(char *reply, int replylen, const char *fmt, ...) else upsdebugx(4, "mge_command: sending [%02X]", *p); -#ifndef WIN32 if (write(upsfd, p, 1) != 1) return -1; -#else - DWORD bytes_written; - BOOL res; - res = WriteFile(upsfd, p, 1, &bytes_written,NULL); - if (res == 0 || bytes_written == 0) { - return -1; - } -#endif bytes_sent++; usleep(MGE_CHAR_DELAY); @@ -929,17 +916,8 @@ static int mge_command(char *reply, int replylen, const char *fmt, ...) else upsdebugx(4, "mge_command: sending [%02X]", *p); -#ifndef WIN32 if (write(upsfd, p, 1) != 1) return -1; -#else - DWORD bytes_written; - BOOL res; - res = WriteFile(upsfd, p, 1, &bytes_written,NULL); - if (res == 0 || bytes_written == 0) { - return -1; - } -#endif bytes_sent++; usleep(MGE_CHAR_DELAY); diff --git a/drivers/powercom.c b/drivers/powercom.c index 6ef922c45f..82e4898eae 100644 --- a/drivers/powercom.c +++ b/drivers/powercom.c @@ -309,7 +309,6 @@ static void dtr0rts1 (void) /* clear any flow control */ static void no_flow_control (void) { -#ifndef WIN32 struct termios tio; tcgetattr (upsfd, &tio); @@ -322,15 +321,6 @@ static void no_flow_control (void) /* disable any flow control */ tcsetattr(upsfd, TCSANOW, &tio); -#else - DCB dcb; - - GetCommState(upsfd, &dcb); - dcb.fOutX = TRUE; - dcb.fInX = TRUE; - - SetCommState(upsfd,&dcb); -#endif } /* sane check for returned buffer */ diff --git a/drivers/safenet.c b/drivers/safenet.c index 146de4bde9..b26912e41f 100644 --- a/drivers/safenet.c +++ b/drivers/safenet.c @@ -468,9 +468,7 @@ void upsdrv_makevartable(void) void upsdrv_initups(void) { -#ifndef WIN32 struct termios tio; -#endif const char *val; /* @@ -479,7 +477,6 @@ void upsdrv_initups(void) upsfd = ser_open(device_path); ser_set_speed(upsfd, device_path, B1200); -#ifndef WIN32 /* TODO: correctly set the line in WIN32 */ if (tcgetattr(upsfd, &tio)) { fatal_with_errno(EXIT_FAILURE, "tcgetattr"); } @@ -502,7 +499,6 @@ void upsdrv_initups(void) if (tcsetattr(upsfd, TCSANOW, &tio)) { fatal_with_errno(EXIT_FAILURE, "tcsetattr"); } -#endif /* * Set DTR and clear RTS to provide power for the serial interface. diff --git a/drivers/serial.c b/drivers/serial.c index 295dbbbab4..d51b0149d0 100644 --- a/drivers/serial.c +++ b/drivers/serial.c @@ -26,6 +26,8 @@ #include #include #include +#else +#include "wincompat.h" #endif #include #include @@ -58,6 +60,7 @@ static void ser_open_error(const char *port) fatalx(EXIT_FAILURE, "Fatal error: unusable configuration"); } +/* TODO */ #ifndef WIN32 user = getpwuid(getuid()); @@ -88,11 +91,11 @@ static void ser_open_error(const char *port) fatalx(EXIT_FAILURE, "Fatal error: unusable configuration"); } -static void lock_set(int fd, const char *port) +static void lock_set(TYPE_FD fd, const char *port) { int ret; - if (fd < 0) + if (fd == ERROR_FD) fatal_with_errno(EXIT_FAILURE, "lock_set: programming error: fd = %d", fd); if (do_lock_port == 0) @@ -128,67 +131,39 @@ static void lock_set(int fd, const char *port) #endif } -#ifndef WIN32 /* Non fatal version of ser_open */ -int ser_open_nf(const char *port) +TYPE_FD ser_open_nf(const char *port) { - int fd; + TYPE_FD fd; fd = open(port, O_RDWR | O_NOCTTY | O_EXCL | O_NONBLOCK); - if (fd < 0) { - return -1; - } + if (fd == ERROR_FD) + return ERROR_FD; lock_set(fd, port); return fd; } -int ser_open(const char *port) +TYPE_FD ser_open(const char *port) { - int res; + TYPE_FD res; res = ser_open_nf(port); - if(res == -1) { + if(res == ERROR_FD) { ser_open_error(port); } return res; } -#else -HANDLE ser_open_nf(const char *port) -{ - HANDLE fd; - - fd = CreateFile(port, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); - - if (fd == INVALID_HANDLE_VALUE) - return INVALID_HANDLE_VALUE; - - return fd; -} - -HANDLE ser_open(const char *port) -{ - HANDLE fd; - fd = ser_open_nf(port); - - if (fd == INVALID_HANDLE_VALUE) - ser_open_error(port); - - return fd; -} -#endif - -#ifndef WIN32 -int ser_set_speed_nf(int fd, const char *port, speed_t speed) +int ser_set_speed_nf(TYPE_FD fd, const char *port, speed_t speed) { struct termios tio; if (tcgetattr(fd, &tio) != 0) { - return -1; + return ERROR_FD; } tio.c_cflag = CS8 | CLOCAL | CREAD; @@ -210,40 +185,12 @@ int ser_set_speed_nf(int fd, const char *port, speed_t speed) return 0; } -#else -int ser_set_speed_nf(HANDLE fd, const char *port, speed_t speed) -{ - COMMTIMEOUTS TOut; - DCB dcb; - - GetCommTimeouts(fd,&TOut); - TOut.ReadIntervalTimeout = 0xffffffff; - TOut.ReadTotalTimeoutConstant = 0; - SetCommTimeouts(fd,&TOut); - - GetCommState(fd, &dcb); - dcb.fOutxCtsFlow = FALSE; - dcb.fOutxDsrFlow = FALSE; - dcb.fRtsControl = RTS_CONTROL_DISABLE; - dcb.ByteSize = 8; - dcb.Parity = NOPARITY; - dcb.StopBits = ONESTOPBIT; - dcb.BaudRate = speed; - - return SetCommState(fd,&dcb); -} -#endif - -#ifndef WIN32 -int ser_set_speed(int fd, const char *port, speed_t speed) -#else -int ser_set_speed(HANDLE fd, const char *port, speed_t speed) -#endif +int ser_set_speed(TYPE_FD fd, const char *port, speed_t speed) { - int res; + TYPE_FD res; res = ser_set_speed_nf(fd,port,speed); - if(res == -1) { + if(res == ERROR_FD) { fatal_with_errno(EXIT_FAILURE, "tcgetattr(%s)", port); } @@ -270,24 +217,24 @@ int ser_set_rts(int fd, int state) return ser_set_control(fd, TIOCM_RTS, state); } #else -int ser_set_dtr(HANDLE fd, int state) +int ser_set_dtr(serial_handler_t * fd, int state) { DCB dcb; - GetCommState(fd, &dcb); + GetCommState(fd->handle, &dcb); dcb.fDtrControl = state; - return SetCommState(fd,&dcb); + return SetCommState(fd->handle,&dcb); } -int ser_set_rts(HANDLE fd, int state) +int ser_set_rts(serial_handler_t * fd, int state) { DCB dcb; - GetCommState(fd, &dcb); + GetCommState(fd->handle, &dcb); dcb.fRtsControl = state; - return SetCommState(fd,&dcb); + return SetCommState(fd->handle,&dcb); } #endif @@ -316,23 +263,23 @@ int ser_get_dcd(int fd) return ser_get_control(fd, TIOCM_CD); } #else -int ser_get_dsr(HANDLE fd) +int ser_get_dsr(serial_handler_t * fd) { DCB dcb; - GetCommState(fd, &dcb); + GetCommState(fd->handle, &dcb); return dcb.fOutxDsrFlow; } -int ser_get_cts(HANDLE fd) +int ser_get_cts(serial_handler_t * fd) { DCB dcb; - GetCommState(fd, &dcb); + GetCommState(fd->handle, &dcb); return dcb.fOutxCtsFlow; } -int ser_get_dcd(HANDLE fd) +int ser_get_dcd(serial_handler_t * fd) { /*FIXME*/ return 0; @@ -340,26 +287,14 @@ int ser_get_dcd(HANDLE fd) #endif -#ifndef WIN32 -int ser_flush_io(int fd) +int ser_flush_io(TYPE_FD fd) { return tcflush(fd, TCIOFLUSH); } -#else -int ser_flush_io(HANDLE fd) -{ - if ( FlushFileBuffers(fd) == 0 ) { - return -1; - } - - return 0; -} -#endif -#ifndef WIN32 -int ser_close(int fd, const char *port) +int ser_close(TYPE_FD fd, const char *port) { - if (fd < 0) + if (fd == ERROR_FD) fatal_with_errno(EXIT_FAILURE, "ser_close: programming error: fd=%d port=%s", fd, port); if (close(fd) != 0) @@ -372,33 +307,13 @@ int ser_close(int fd, const char *port) return 0; } -#else -int ser_close(HANDLE fd, const char *port) -{ - if (fd == INVALID_HANDLE_VALUE) - fatal_with_errno(EXIT_FAILURE, "ser_close: programming error: fd=%d port=%s", (int)fd, port); - - if (CloseHandle(fd) != 0) - return -1; - - return 0; -} -#endif -#ifndef WIN32 -int ser_send_char(int fd, unsigned char ch) -#else -int ser_send_char(HANDLE fd, unsigned char ch) -#endif +int ser_send_char(TYPE_FD fd, unsigned char ch) { return ser_send_buf_pace(fd, 0, &ch, 1); } -#ifndef WIN32 -static int send_formatted(int fd, const char *fmt, va_list va, unsigned long d_usec) -#else -static int send_formatted(HANDLE fd, const char *fmt, va_list va, unsigned long d_usec) -#endif +static int send_formatted(TYPE_FD fd, const char *fmt, va_list va, unsigned long d_usec) { int ret; char buf[LARGEBUF]; @@ -413,11 +328,7 @@ static int send_formatted(HANDLE fd, const char *fmt, va_list va, unsigned long } /* send the results of the format string with d_usec delay after each char */ -#ifndef WIN32 -int ser_send_pace(int fd, unsigned long d_usec, const char *fmt, ...) -#else -int ser_send_pace(HANDLE fd, unsigned long d_usec, const char *fmt, ...) -#endif +int ser_send_pace(TYPE_FD fd, unsigned long d_usec, const char *fmt, ...) { int ret; va_list ap; @@ -432,11 +343,7 @@ int ser_send_pace(HANDLE fd, unsigned long d_usec, const char *fmt, ...) } /* send the results of the format string with no delay */ -#ifndef WIN32 -int ser_send(int fd, const char *fmt, ...) -#else -int ser_send(HANDLE fd, const char *fmt, ...) -#endif +int ser_send(TYPE_FD fd, const char *fmt, ...) { int ret; va_list ap; @@ -451,18 +358,13 @@ int ser_send(HANDLE fd, const char *fmt, ...) } /* send buflen bytes from buf with no delay */ -#ifndef WIN32 -int ser_send_buf(int fd, const void *buf, size_t buflen) -#else -int ser_send_buf(HANDLE fd, const void *buf, size_t buflen) -#endif +int ser_send_buf(TYPE_FD fd, const void *buf, size_t buflen) { return ser_send_buf_pace(fd, 0, buf, buflen); } -#ifndef WIN32 /* send buflen bytes from buf with d_usec delay after each char */ -int ser_send_buf_pace(int fd, unsigned long d_usec, const void *buf, +int ser_send_buf_pace(TYPE_FD fd, unsigned long d_usec, const void *buf, size_t buflen) { int ret; @@ -482,43 +384,13 @@ int ser_send_buf_pace(int fd, unsigned long d_usec, const void *buf, return sent; } -#else -/* send buflen bytes from buf with d_usec delay after each char */ -int ser_send_buf_pace(HANDLE fd, unsigned long d_usec, const void *buf, - size_t buflen) -{ - BOOL res; - DWORD sent = 0; - DWORD sent_OK; - - for (sent_OK = 0; sent_OK < buflen; sent_OK += sent) { - res = WriteFile(fd, &((char *)buf)[sent_OK], (d_usec == 0) ? (buflen - sent_OK) : 1, &sent, NULL); - - if( res == 0 ) { - return -1; - } - - usleep(d_usec); - } - return sent; -} -#endif - -#ifndef WIN32 -int ser_get_char(int fd, void *ch, long d_sec, long d_usec) -#else -int ser_get_char(HANDLE fd, void *ch, long d_sec, long d_usec) -#endif +int ser_get_char(TYPE_FD fd, void *ch, long d_sec, long d_usec) { return select_read(fd, ch, 1, d_sec, d_usec); } -#ifndef WIN32 -int ser_get_buf(int fd, void *buf, size_t buflen, long d_sec, long d_usec) -#else -int ser_get_buf(HANDLE fd, void *buf, size_t buflen, long d_sec, long d_usec) -#endif +int ser_get_buf(TYPE_FD fd, void *buf, size_t buflen, long d_sec, long d_usec) { memset(buf, '\0', buflen); @@ -526,11 +398,7 @@ int ser_get_buf(HANDLE fd, void *buf, size_t buflen, long d_sec, long d_usec) } /* keep reading until buflen bytes are received or a timeout occurs */ -#ifndef WIN32 -int ser_get_buf_len(int fd, void *buf, size_t buflen, long d_sec, long d_usec) -#else -int ser_get_buf_len(HANDLE fd, void *buf, size_t buflen, long d_sec, long d_usec) -#endif +int ser_get_buf_len(TYPE_FD fd, void *buf, size_t buflen, long d_sec, long d_usec) { int ret; size_t recv; @@ -552,15 +420,9 @@ int ser_get_buf_len(HANDLE fd, void *buf, size_t buflen, long d_sec, long d_usec /* reads a line up to , discarding anything else that may follow, with callouts to the handler if anything matches the alertset */ -#ifndef WIN32 -int ser_get_line_alert(int fd, void *buf, size_t buflen, char endchar, - const char *ignset, const char *alertset, void handler(char ch), - long d_sec, long d_usec) -#else -int ser_get_line_alert(HANDLE fd, void *buf, size_t buflen, char endchar, +int ser_get_line_alert(TYPE_FD fd, void *buf, size_t buflen, char endchar, const char *ignset, const char *alertset, void handler(char ch), long d_sec, long d_usec) -#endif { int i, ret; char tmp[64]; @@ -602,23 +464,14 @@ int ser_get_line_alert(HANDLE fd, void *buf, size_t buflen, char endchar, } /* as above, only with no alertset handling (just a wrapper) */ -#ifndef WIN32 -int ser_get_line(int fd, void *buf, size_t buflen, char endchar, +int ser_get_line(TYPE_FD fd, void *buf, size_t buflen, char endchar, const char *ignset, long d_sec, long d_usec) -#else -int ser_get_line(HANDLE fd, void *buf, size_t buflen, char endchar, - const char *ignset, long d_sec, long d_usec) -#endif { return ser_get_line_alert(fd, buf, buflen, endchar, ignset, "", NULL, d_sec, d_usec); } -#ifndef WIN32 -int ser_flush_in(int fd, const char *ignset, int verbose) -#else -int ser_flush_in(HANDLE fd, const char *ignset, int verbose) -#endif +int ser_flush_in(TYPE_FD fd, const char *ignset, int verbose) { int ret, extra = 0; char ch; diff --git a/drivers/serial.h b/drivers/serial.h index b2c7c351ed..720808b3e1 100644 --- a/drivers/serial.h +++ b/drivers/serial.h @@ -11,15 +11,9 @@ #ifndef WIN32 # include #else -#define speed_t DWORD -#define B300 CBR_300 -#define B600 CBR_600 -#define B1200 CBR_1200 -#define B2400 CBR_2400 -#define B4800 CBR_4800 -#define B9600 CBR_9600 -#define B19200 CBR_19200 -#define B38400 CBR_38400 +#include +#include "common.h" +#include "wincompat.h" #endif #endif /* HAVE_SYS_TERMIOS_H */ @@ -27,7 +21,19 @@ #define SER_ERR_LIMIT 10 /* start limiting after 10 in a row */ #define SER_ERR_RATE 100 /* then only print every 100th error */ +/* porting stuff for WIN32 */ #ifndef WIN32 +#define ERROR_FD (-1) +#define TYPE_FD int +#else +#define ERROR_FD (NULL) +#define TYPE_FD serial_handler_t * + +/* TODO : support "open" flags */ +#define O_NONBLOCK 0 +#define O_NOCTTY 0 +#endif + int ser_open_nf(const char *port); int ser_open(const char *port); @@ -43,120 +49,70 @@ int ser_get_dsr(int fd); int ser_get_cts(int fd); int ser_get_dcd(int fd); -int ser_flush_io(int fd); +TYPE_FD ser_open(const char *port); -int ser_close(int fd, const char *port); - -#else -#include -HANDLE ser_open(const char *port); -int ser_set_speed(HANDLE fd, const char *port, speed_t speed); +int ser_set_speed(TYPE_FD fd, const char *port, speed_t speed); /* set the state of modem control lines */ -int ser_set_dtr(HANDLE fd, int state); -int ser_set_rts(HANDLE fd, int state); +int ser_set_dtr(TYPE_FD fd, int state); +int ser_set_rts(TYPE_FD fd, int state); /* get the status of modem control lines */ -int ser_get_dsr(HANDLE); -int ser_get_cts(HANDLE); -int ser_get_dcd(HANDLE); - -int ser_flush_io(HANDLE); +int ser_get_dsr(TYPE_FD fd); +int ser_get_cts(TYPE_FD fd); +int ser_get_dcd(TYPE_FD fd); -int ser_close(HANDLE fd, const char *port); +int ser_flush_io(TYPE_FD fd); -#endif +int ser_close(TYPE_FD fd, const char *port); -#ifndef WIN32 -int ser_send_char(int fd, unsigned char ch); -#else -int ser_send_char(HANDLE fd, unsigned char ch); -#endif +int ser_send_char(TYPE_FD fd, unsigned char ch); /* send the results of the format string with d_usec delay after each char */ -#ifndef WIN32 -int ser_send_pace(int fd, unsigned long d_usec, const char *fmt, ...) - __attribute__ ((__format__ (__printf__, 3, 4))); -#else -int ser_send_pace(HANDLE fd, unsigned long d_usec, const char *fmt, ...) +int ser_send_pace(TYPE_FD fd, unsigned long d_usec, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 3, 4))); -#endif /* send the results of the format string with no delay */ -#ifndef WIN32 -int ser_send(int fd, const char *fmt, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); -#else -int ser_send(HANDLE fd, const char *fmt, ...) +int ser_send(TYPE_FD fd, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); -#endif /* send buflen bytes from buf with no delay */ -#ifndef WIN32 -int ser_send_buf(int fd, const void *buf, size_t buflen); -#else -int ser_send_buf(HANDLE fd, const void *buf, size_t buflen); -#endif +int ser_send_buf(TYPE_FD fd, const void *buf, size_t buflen); /* send buflen bytes from buf with d_usec delay after each char */ -#ifndef WIN32 -int ser_send_buf_pace(int fd, unsigned long d_usec, const void *buf, +int ser_send_buf_pace(TYPE_FD fd, unsigned long d_usec, const void *buf, size_t buflen); -#else -int ser_send_buf_pace(HANDLE fd, unsigned long d_usec, const void *buf, - size_t buflen); -#endif -#ifndef WIN32 -int ser_get_char(int fd, void *ch, long d_sec, long d_usec); -#else -int ser_get_char(HANDLE fd, void *ch, long d_sec, long d_usec); -#endif +int ser_get_char(TYPE_FD fd, void *ch, long d_sec, long d_usec); -#ifndef WIN32 -int ser_get_buf(int fd, void *buf, size_t buflen, long d_sec, long d_usec); -#else -int ser_get_buf(HANDLE fd, void *buf, size_t buflen, long d_sec, long d_usec); -#endif +int ser_get_buf(TYPE_FD fd, void *buf, size_t buflen, long d_sec, long d_usec); /* keep reading until buflen bytes are received or a timeout occurs */ -#ifndef WIN32 -int ser_get_buf_len(int fd, void *buf, size_t buflen, long d_sec, long d_usec); -#else -int ser_get_buf_len(HANDLE fd, void *buf, size_t buflen, long d_sec, long d_usec); -#endif +int ser_get_buf_len(TYPE_FD fd, void *buf, size_t buflen, long d_sec, long d_usec); /* reads a line up to , discarding anything else that may follow, with callouts to the handler if anything matches the alertset */ -#ifndef WIN32 -int ser_get_line_alert(int fd, void *buf, size_t buflen, char endchar, +int ser_get_line_alert(TYPE_FD fd, void *buf, size_t buflen, char endchar, const char *ignset, const char *alertset, void handler (char ch), long d_sec, long d_usec); -#else -int ser_get_line_alert(HANDLE fd, void *buf, size_t buflen, char endchar, - const char *ignset, const char *alertset, void handler (char ch), - long d_sec, long d_usec); -#endif /* as above, only with no alertset handling (just a wrapper) */ -#ifndef WIN32 -int ser_get_line(int fd, void *buf, size_t buflen, char endchar, - const char *ignset, long d_sec, long d_usec); -#else -int ser_get_line(HANDLE fd, void *buf, size_t buflen, char endchar, +int ser_get_line(TYPE_FD fd, void *buf, size_t buflen, char endchar, const char *ignset, long d_sec, long d_usec); -#endif -#ifndef WIN32 -int ser_flush_in(int fd, const char *ignset, int verbose); -#else -int ser_flush_in(HANDLE fd, const char *ignset, int verbose); -#endif +int ser_flush_in(TYPE_FD fd, const char *ignset, int verbose); /* unified failure reporting: call these often */ void ser_comm_fail(const char *fmt, ...) __attribute__ ((__format__ (__printf__, 1, 2))); void ser_comm_good(void); +#ifdef WIN32 +#define open(a,b) w32_serial_open(a,b) +#define close(a) w32_serial_close(a) +#define read(a,b,c) w32_serial_read(a,b,c) +#define write(a,b,c) w32_serial_write(a,b,c) +#endif + #endif /* SERIAL_H_SEEN */ diff --git a/drivers/upscode2.c b/drivers/upscode2.c index 176f5102ca..1a5a6a25fb 100644 --- a/drivers/upscode2.c +++ b/drivers/upscode2.c @@ -462,9 +462,7 @@ void upsdrv_help(void) void upsdrv_initups(void) { -#ifndef WIN32 struct termios tio; -#endif int baud = B1200; char *str; @@ -495,7 +493,6 @@ void upsdrv_initups(void) upsfd = ser_open(device_path); ser_set_speed(upsfd, device_path, baud); -#ifndef WIN32 /* TODO : correctly set line for WIN32 */ if (tcgetattr(upsfd, &tio) != 0) fatal_with_errno(EXIT_FAILURE, "tcgetattr(%s)", device_path); tio.c_lflag = ICANON; @@ -503,7 +500,6 @@ void upsdrv_initups(void) tio.c_cc[VMIN] = 0; tio.c_cc[VTIME] = 0; tcsetattr(upsfd, TCSANOW, &tio); -#endif if ((str = getval("input_timeout")) != NULL) { int temp = atoi(str); diff --git a/include/common.h b/include/common.h index 6d05e9e83a..2fe1f4509a 100644 --- a/include/common.h +++ b/include/common.h @@ -52,6 +52,18 @@ /* *INDENT-OFF* */ extern "C" { /* *INDENT-ON* */ + +#ifdef WIN32 +typedef struct serial_handler_s { + HANDLE handle; + OVERLAPPED io_status; + int overlapped_armed; + + unsigned int vmin_; + unsigned int vtime_; + unsigned int r_binary; + unsigned int w_binary; +} serial_handler_t; #endif extern const char *UPS_VERSION; @@ -127,7 +139,7 @@ char* ltrim(char *in, const char sep); #ifndef WIN32 int select_read(const int fd, void *buf, const size_t buflen, const long d_sec, const long d_usec); #else -int select_read(const HANDLE fd, void *buf, const size_t buflen, const long d_sec, const long d_usec); +int select_read(const serial_handler_t * fd, void *buf, const size_t buflen, const long d_sec, const long d_usec); #endif int select_write(const int fd, const void *buf, const size_t buflen, const long d_sec, const long d_usec); @@ -178,6 +190,7 @@ extern int optind; #define SVCNAME TEXT("Network UPS Tools") #define EVENTLOG_PIPE_NAME TEXT("\\\\.\\pipe\\nut") -#endif + +#endif /* WIN32*/ #endif /* NUT_COMMON_H */ diff --git a/include/wincompat.h b/include/wincompat.h index dd4c3e16d4..9c01d24ce6 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -17,16 +17,16 @@ 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ + */ /* -This header is provided to make the map the windows system calls to be compatable with -the NUT code. Windows defines a lot of system functions with a _(name) like snprintf -Also, the error codes from the networking code are not put into errno as nut expects. -For convience I've provided wrapper functions which do this. + This header is provided to map Windows system calls to be compatible + with the NUT code. */ +#include "common.h" + /* This is conditional because read/write are generic in unix, and this will make them network specific */ #ifdef W32_NETWORK_CALL_OVERRIDE #define close(h) sktclose(h) @@ -47,4 +47,190 @@ int sktclose(int fh); void syslog(int priority, const char *fmt, ...); extern const char * EventLogName; + +typedef unsigned char cc_t; +typedef unsigned int speed_t; +typedef unsigned int tcflag_t; + +#define NCCS 19 +struct termios { + tcflag_t c_iflag; /* input mode flags */ + tcflag_t c_oflag; /* output mode flags */ + tcflag_t c_cflag; /* control mode flags */ + tcflag_t c_lflag; /* local mode flags */ + cc_t c_line; /* line discipline */ + cc_t c_cc[NCCS]; /* control characters */ + speed_t c_ispeed; /* input speed */ + speed_t c_ospeed; /* output speed */ +}; + +serial_handler_t * w32_serial_open (const char *name, int flags); +int w32_serial_close (serial_handler_t * sh); +int w32_serial_write (serial_handler_t * sh, const void *ptr, size_t len); +int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen); +int tcgetattr (serial_handler_t * sh, struct termios *t); +int tcsetattr (serial_handler_t * sh, int action, const struct termios *t); +int tcflush (serial_handler_t * sh, int queue); +#define HAVE_CFSETISPEED +void cfsetispeed(struct termios * t, speed_t speed); +void cfsetospeed(struct termios * t, speed_t speed); + +#define _POSIX_VDISABLE '\0' + +/* c_cc characters */ +#define VINTR 0 +#define VQUIT 1 +#define VERASE 2 +#define VKILL 3 +#define VEOF 4 +#define VTIME 5 +#define VMIN 6 +#define VSWTC 7 +#define VSTART 8 +#define VSTOP 9 +#define VSUSP 10 +#define VEOL 11 +#define VREPRINT 12 +#define VDISCARD 13 +#define VWERASE 14 +#define VLNEXT 15 +#define VEOL2 16 + +/* c_iflag bits */ +#define IGNBRK 0000001 +#define BRKINT 0000002 +#define IGNPAR 0000004 +#define PARMRK 0000010 +#define INPCK 0000020 +#define ISTRIP 0000040 +#define INLCR 0000100 +#define IGNCR 0000200 +#define ICRNL 0000400 +#define IUCLC 0001000 +#define IXON 0002000 +#define IXANY 0004000 +#define IXOFF 0010000 +#define IMAXBEL 0020000 +#define IUTF8 0040000 + +/* c_oflag bits */ +#define OPOST 0000001 +#define OLCUC 0000002 +#define ONLCR 0000004 +#define OCRNL 0000010 +#define ONOCR 0000020 +#define ONLRET 0000040 +#define OFILL 0000100 +#define OFDEL 0000200 +#define NLDLY 0000400 +#define NL0 0000000 +#define NL1 0000400 +#define CRDLY 0003000 +#define CR0 0000000 +#define CR1 0001000 +#define CR2 0002000 +#define CR3 0003000 +#define TABDLY 0014000 +#define TAB0 0000000 +#define TAB1 0004000 +#define TAB2 0010000 +#define TAB3 0014000 +#define XTABS 0014000 +#define BSDLY 0020000 +#define BS0 0000000 +#define BS1 0020000 +#define VTDLY 0040000 +#define VT0 0000000 +#define VT1 0040000 +#define FFDLY 0100000 +#define FF0 0000000 +#define FF1 0100000 + +/* c_cflag bit meaning */ +#define CBAUD 0010017 +#define B0 0000000 /* hang up */ +#define B50 0000001 +#define B75 0000002 +#define B110 0000003 +#define B134 0000004 +#define B150 0000005 +#define B200 0000006 +#define B300 0000007 +#define B600 0000010 +#define B1200 0000011 +#define B1800 0000012 +#define B2400 0000013 +#define B4800 0000014 +#define B9600 0000015 +#define B19200 0000016 +#define B38400 0000017 +#define EXTA B19200 +#define EXTB B38400 +#define CSIZE 0000060 +#define CS5 0000000 +#define CS6 0000020 +#define CS7 0000040 +#define CS8 0000060 +#define CSTOPB 0000100 +#define CREAD 0000200 +#define PARENB 0000400 +#define PARODD 0001000 +#define HUPCL 0002000 +#define CLOCAL 0004000 +#define CBAUDEX 0010000 +#define BOTHER 0010000 +#define B57600 0010001 +#define B115200 0010002 +#define B230400 0010003 +#define B460800 0010004 +#define B500000 0010005 +#define B576000 0010006 +#define B921600 0010007 +#define B1000000 0010010 +#define B1152000 0010011 +#define B1500000 0010012 +#define B2000000 0010013 +#define B2500000 0010014 +#define B3000000 0010015 +#define B3500000 0010016 +#define B4000000 0010017 +#define CIBAUD 002003600000 /* input baud rate */ +#define CMSPAR 010000000000 /* mark or space (stick) parity */ +#define CRTSCTS 020000000000 /* flow control */ + +#define IBSHIFT 16 /* Shift from CBAUD to CIBAUD */ + +/* c_lflag bits */ +#define ISIG 0000001 +#define ICANON 0000002 +#define XCASE 0000004 +#define ECHO 0000010 +#define ECHOE 0000020 +#define ECHOK 0000040 +#define ECHONL 0000100 +#define NOFLSH 0000200 +#define TOSTOP 0000400 +#define ECHOCTL 0001000 +#define ECHOPRT 0002000 +#define ECHOKE 0004000 +#define FLUSHO 0010000 +#define PENDIN 0040000 +#define IEXTEN 0100000 + +/* tcflow() and TCXONC use these */ +#define TCOOFF 0 +#define TCOON 1 +#define TCIOFF 2 +#define TCION 3 + +/* tcflush() and TCFLSH use these */ +#define TCIFLUSH 0 +#define TCOFLUSH 1 +#define TCIOFLUSH 2 + +/* tcsetattr uses these */ +#define TCSANOW 0 +#define TCSADRAIN 1 +#define TCSAFLUSH 2 + #endif diff --git a/server/upsd.c b/server/upsd.c index 2dbb03fccd..b2252203e4 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -38,6 +38,7 @@ /* This override network system calls to adapt to Windows specificity */ #define W32_NETWORK_CALL_OVERRIDE #include "wincompat.h" +#undef W32_NETWORK_CALL_OVERRIDE #include #endif From 10a1c99a0a8c22379138b11ed6b1b7d1fa8c7bb9 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 20 Dec 2010 13:51:44 +0000 Subject: [PATCH 043/218] Use paths relative to the .exe file's binary for configuration and PID files. Fossil-ID: SVN r2754 --- common/common.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++-- include/common.h | 2 ++ 2 files changed, 73 insertions(+), 3 deletions(-) diff --git a/common/common.c b/common/common.c index 67cfa11818..5d8d339a44 100644 --- a/common/common.c +++ b/common/common.c @@ -218,6 +218,26 @@ void chroot_start(const char *path) upsdebugx(1, "chrooted into %s", path); } +#ifdef WIN32 +/* In WIN32 all non binaries files (namely configuration and PID files) + are retrieved relative to the path of the binary itself. + So this function fill "dest" with the full path to "relative_path" + depending on the .exe path */ +char * getfullpath(char * relative_path) +{ + char buf[SMALLBUF]; + if ( GetModuleFileName(NULL,buf,SMALLBUF) == 0 ) { + return NULL; + } + else { + char * last_slash = strrchr(buf,'\\'); + *last_slash = 0; + strncat(buf,relative_path,SMALLBUF); + return(xstrdup(buf)); + } +} +#endif + /* drop off a pidfile for this process */ void writepid(const char *name) { @@ -232,8 +252,21 @@ void writepid(const char *name) if(name[1] == ':') #endif snprintf(fn, sizeof(fn), "%s", name); - else + else { +#ifndef WIN32 snprintf(fn, sizeof(fn), "%s/%s.pid", PIDPATH, name); +#else + char * path; + path = getfullpath(PATH_VAR_RUN); + if( path == NULL ) { + snprintf(fn, sizeof(fn), "%s/%s.pid", PIDPATH, name); + } + else { + snprintf(fn, sizeof(fn), "%s/%s.pid", path, name); + free(path); + } +#endif + } mask = umask(022); pidf = fopen(fn, "w"); @@ -332,7 +365,19 @@ int sendsignal(const char *progname, int sig) { char fn[SMALLBUF]; +#ifndef WIN32 snprintf(fn, sizeof(fn), "%s/%s.pid", PIDPATH, progname); +#else + char * path; + path = getfullpath(PATH_VAR_RUN); + if( path == NULL ) { + snprintf(fn, sizeof(fn), "%s\\%s.pid", PIDPATH, progname); + } + else { + snprintf(fn, sizeof(fn), "%s\\%s.pid", path, progname); + free(path); + } +#endif return sendsignalfn(fn, sig); } @@ -394,13 +439,23 @@ static void vupslog(int priority, const char *fmt, va_list va, int use_strerror) syslog(priority, "%s", buf); } + /* Return the default path for the directory containing configuration files */ const char * confpath(void) { const char * path; - if ((path = getenv("NUT_CONFPATH")) == NULL) + if ((path = getenv("NUT_CONFPATH")) == NULL) { +#ifndef WIN32 path = CONFPATH; +#else + path = getfullpath(PATH_ETC); + + if( path == NULL ) { + path = CONFPATH; + } +#endif + } return path; } @@ -410,8 +465,17 @@ const char * dflt_statepath(void) { const char * path; - if ((path = getenv("NUT_STATEPATH")) == NULL) + if ((path = getenv("NUT_STATEPATH")) == NULL) { +#ifndef WIN32 + path = STATEPATH; +#else + path = getfullpath(PATH_VAR_RUN); + + if( path == NULL ) { path = STATEPATH; + } +#endif + } return path; } @@ -419,11 +483,15 @@ const char * dflt_statepath(void) /* Return the alternate path for pid files */ const char * altpidpath(void) { +#ifndef WIN32 #ifdef ALTPIDPATH return ALTPIDPATH; #else return dflt_statepath(); #endif +#else /* WIN32 */ + return dflt_statepath(); +#endif } /* logs the formatted string to any configured logging devices + the output of strerror(errno) */ diff --git a/include/common.h b/include/common.h index 2fe1f4509a..537ca49a49 100644 --- a/include/common.h +++ b/include/common.h @@ -191,6 +191,8 @@ extern int optind; #define SVCNAME TEXT("Network UPS Tools") #define EVENTLOG_PIPE_NAME TEXT("\\\\.\\pipe\\nut") +#define PATH_ETC "\\..\\etc" +#define PATH_VAR_RUN "\\..\\var\\run" #endif /* WIN32*/ #endif /* NUT_COMMON_H */ From acbfbddec22e717e3c757bdff4d04dc2905f2b22 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 20 Dec 2010 15:02:54 +0000 Subject: [PATCH 044/218] Add usleep() implementation for systems that lack it (patch from Paul Fertser) This is needed e.g. on Debian which ships a really ancient version of mingw runtime. Fossil-ID: SVN r2755 --- common/wincompat.c | 17 +++++++++++++++++ configure.in | 1 + include/common.h | 4 ++++ 3 files changed, 22 insertions(+) diff --git a/common/wincompat.c b/common/wincompat.c index 3873d2c5b1..bc1aec51a1 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -26,6 +26,23 @@ extern int errno; const char * EventLogName = NULL; +#ifndef HAVE_USLEEP +/* Verbatim from +http://cygwin.com/cgi-bin/cvsweb.cgi/~checkout~/src/winsup/mingw/mingwex/usleep.c?rev=1.2&cvsroot=src */ +int __cdecl usleep(unsigned int useconds) +{ + if(useconds == 0) + return 0; + + if(useconds >= 1000000) + return EINVAL; + + Sleep((useconds + 999) / 1000); + + return 0; +} +#endif /* !HAVE_USLEEP */ + int sktconnect(int fh, struct sockaddr * name, int len) { int ret = connect(fh,name,len); diff --git a/configure.in b/configure.in index d15a73bd09..f52c9bc3f4 100644 --- a/configure.in +++ b/configure.in @@ -103,6 +103,7 @@ AC_CHECK_FUNCS(flock lockf fcvt fcvtl) AC_CHECK_FUNCS(cfsetispeed tcsendbreak) AC_CHECK_FUNCS(seteuid setsid getpassphrase) AC_CHECK_FUNCS(on_exit strptime setlogmask) +AC_CHECK_FUNCS(usleep) AC_CHECK_DECLS(LOG_UPTO, [], [], [#include ]) dnl the following may add stuff to LIBOBJS (is this still needed?) diff --git a/include/common.h b/include/common.h index 537ca49a49..dd683692ce 100644 --- a/include/common.h +++ b/include/common.h @@ -195,4 +195,8 @@ extern int optind; #define PATH_VAR_RUN "\\..\\var\\run" #endif /* WIN32*/ +#ifndef HAVE_USLEEP +int __cdecl usleep(unsigned int useconds); +#endif /* HAVE_USLEEP */ + #endif /* NUT_COMMON_H */ From c6a67950cba91b6cc957e8876ef3d3ba34039e3b Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 21 Dec 2010 08:55:53 +0000 Subject: [PATCH 045/218] Do not use an external DLL anymore. It seems that linking the resources directly into the binary makes the event log happy. (thanks to Paul Fertser for its help) Fossil-ID: SVN r2760 --- configure.in | 7 +++---- scripts/Windows/Makefile.am | 10 +++------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/configure.in b/configure.in index f52c9bc3f4..d22d99cdf9 100644 --- a/configure.in +++ b/configure.in @@ -731,11 +731,10 @@ NUT_REPORT_FEATURE([build and install the development files], [${nut_with_dev}], dnl ---------------------------------------------------------------------- dnl checks related to MS Windows support (MingW) -AC_PATH_PROGS([WINDMC], [windmc], [none]) -AC_PATH_PROGS([WINDRES], [windres], [none]) -AC_PATH_PROGS([DLLWRAP], [dllwrap], [none]) +AC_CHECK_TOOL(WINDMC, windmc, none) +AC_CHECK_TOOL(WINDRES, windres, none) -if test "x$WINDMC" != "xnone" -a "x$WINDRES" != "xnone" -a "x$DLLWRAP" != "xnone"; then +if test "x$WINDMC" != "xnone" -a "x$WINDRES" != "xnone"; then nut_have_mingw_resgen="yes" fi diff --git a/scripts/Windows/Makefile.am b/scripts/Windows/Makefile.am index 18d545eb93..ffe1eddcb6 100644 --- a/scripts/Windows/Makefile.am +++ b/scripts/Windows/Makefile.am @@ -15,23 +15,19 @@ winevent.rc winevent.h: winevent.mc winevent.o: winevent.rc winevent.h $(WINDRES) winevent.rc winevent.o -winevent.dll: winevent.o - $(DLLWRAP) --output-lib=libwinevent.a --dllname=winevent.dll --driver-name=gcc winevent.o - bin_PROGRAMS = nut halt -nut$(EXEEXT): winevent.dll nut_SOURCES = wininit.c -nut_LDADD = ../../common/libcommon.la +nut_LDADD = ../../common/libcommon.la winevent.o halt_SOURCES = halt.c -CLEANFILES = winevent.rc winevent.o winevent.dll winevent.h +CLEANFILES = winevent.rc winevent.o winevent.h else !HAVE_MINGW_RESGEN winevent.dll: - @echo "Not building MingW resources since the needed programs (windmc, windres, dllwrap) were not found." + @echo "Not building MingW resources since the needed programs (windmc, windres) were not found." endif !HAVE_MINGW_RESGEN From 7f9edce04c4c7c70194e8958d4d08ec216f9fa33 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 21 Dec 2010 09:32:47 +0000 Subject: [PATCH 046/218] Forgot to remove now useless winevent.dll reference Fossil-ID: SVN r2761 --- scripts/Windows/Makefile.am | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/scripts/Windows/Makefile.am b/scripts/Windows/Makefile.am index ffe1eddcb6..ff094f1d9d 100644 --- a/scripts/Windows/Makefile.am +++ b/scripts/Windows/Makefile.am @@ -24,10 +24,5 @@ halt_SOURCES = halt.c CLEANFILES = winevent.rc winevent.o winevent.h -else !HAVE_MINGW_RESGEN - -winevent.dll: - @echo "Not building MingW resources since the needed programs (windmc, windres) were not found." - -endif !HAVE_MINGW_RESGEN +endif HAVE_MINGW_RESGEN From 5e72ed9ad5774f934759ac174a5be9fbfec45f16 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 21 Dec 2010 14:36:07 +0000 Subject: [PATCH 047/218] Fix winevent.h generation on clean compile (by Paul Fertser) Fossil-ID: SVN r2763 --- scripts/Windows/Makefile.am | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/Windows/Makefile.am b/scripts/Windows/Makefile.am index ff094f1d9d..565caeea5b 100644 --- a/scripts/Windows/Makefile.am +++ b/scripts/Windows/Makefile.am @@ -15,6 +15,8 @@ winevent.rc winevent.h: winevent.mc winevent.o: winevent.rc winevent.h $(WINDRES) winevent.rc winevent.o +wininit.$(OBJEXT): winevent.h + bin_PROGRAMS = nut halt nut_SOURCES = wininit.c From c2de28093e9f6c1d9491e58a09b75ddf60dc9992 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 22 Dec 2010 14:03:55 +0000 Subject: [PATCH 048/218] Make datapath relative too Fossil-ID: SVN r2772 --- include/common.h | 2 ++ server/upsd.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/include/common.h b/include/common.h index dd683692ce..71f9213164 100644 --- a/include/common.h +++ b/include/common.h @@ -191,8 +191,10 @@ extern int optind; #define SVCNAME TEXT("Network UPS Tools") #define EVENTLOG_PIPE_NAME TEXT("\\\\.\\pipe\\nut") +char * getfullpath(char * relative_path); #define PATH_ETC "\\..\\etc" #define PATH_VAR_RUN "\\..\\var\\run" +#define PATH_SHARE "\\..\\share" #endif /* WIN32*/ #ifndef HAVE_USLEEP diff --git a/server/upsd.c b/server/upsd.c index b2252203e4..4338d8c386 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -1156,7 +1156,11 @@ int main(int argc, char **argv) /* yes, xstrdup - the conf handlers call free on this later */ statepath = xstrdup(dflt_statepath()); +#ifndef WIN32 datapath = xstrdup(NUT_DATADIR); +#else + datapath = getfullpath(PATH_SHARE); +#endif /* set up some things for later */ snprintf(pidfn, sizeof(pidfn), "%s/%s.pid", altpidpath(), progname); From 83c57058c8cc1c3602de60bb6809a48894358bd0 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 7 Jan 2011 09:30:17 +0000 Subject: [PATCH 049/218] Fix latency bug for mge-utalk. Fossil-ID: SVN r2806 --- common/common.c | 14 +++----- common/wincompat.c | 87 +++++++++++++++++++++++++-------------------- drivers/mge-utalk.c | 4 +-- drivers/serial.h | 2 +- include/wincompat.h | 2 +- 5 files changed, 56 insertions(+), 53 deletions(-) diff --git a/common/common.c b/common/common.c index 5d8d339a44..b3d3560c32 100644 --- a/common/common.c +++ b/common/common.c @@ -692,27 +692,21 @@ int select_read(const int fd, void *buf, const size_t buflen, const long d_sec, int select_read(const serial_handler_t * fd, void *buf, const size_t buflen, const long d_sec, const long d_usec) { /* This function is only called by serial drivers right now */ - DWORD bytes_read; - BOOL res; + int res; DWORD timeout; COMMTIMEOUTS TOut; - GetCommTimeouts(fd->handle,&TOut); - timeout = (d_sec*1000) + ((d_usec+999)/1000); + GetCommTimeouts(fd->handle,&TOut); TOut.ReadIntervalTimeout = MAXDWORD; TOut.ReadTotalTimeoutMultiplier = 0; TOut.ReadTotalTimeoutConstant = timeout; SetCommTimeouts(fd->handle,&TOut); - res = ReadFile(fd->handle,buf,buflen,&bytes_read,NULL); - - if( res == 0 ) { - return -1; - } + res = w32_serial_read(fd,buf,buflen,timeout); - return bytes_read; + return res; } #endif diff --git a/common/wincompat.c b/common/wincompat.c index bc1aec51a1..1124855edd 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -134,34 +134,32 @@ void overlapped_setup (serial_handler_t * sh) sh->overlapped_armed = 0; } -int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen) +int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen, DWORD timeout) { int tot; - DWORD n; + DWORD num; HANDLE w4; DWORD minchars = sh->vmin_ ?: ulen; w4 = sh->io_status.hEvent; - upslogx(LOG_DEBUG,"ulen %d, vmin_ %d, vtime_ %d, hEvent %p", ulen, sh->vmin_, sh->vtime_,sh->io_status.hEvent); - if (!sh->overlapped_armed) - { + upslogx(LOG_DEBUG,"w32_serial_read : ulen %d, vmin_ %d, vtime_ %d, hEvent %p", ulen, sh->vmin_, sh->vtime_,sh->io_status.hEvent); + if (!sh->overlapped_armed) { SetCommMask (sh->handle, EV_RXCHAR); ResetEvent (sh->io_status.hEvent); } - for (n = 0, tot = 0; ulen; ulen -= n, ptr = (char *)ptr + n) - { + for (num = 0, tot = 0; ulen; ulen -= num, ptr = (char *)ptr + num) { DWORD ev; COMSTAT st; DWORD inq = 1; - n = 0; + num = 0; - if (!sh->vtime_ && !sh->vmin_) + if (!sh->vtime_ && !sh->vmin_) { inq = ulen; - else if (sh->vtime_) - { + } + else if (sh->vtime_) { /* non-interruptible -- have to use kernel timeouts also note that this is not strictly correct. if vmin > ulen then things won't work right. @@ -170,34 +168,41 @@ int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen) inq = ulen; } - if (!ClearCommError (sh->handle, &ev, &st)) + if (!ClearCommError (sh->handle, &ev, &st)) { goto err; - else if (ev) - upslogx(LOG_ERR,"error detected %x", (int)ev); - else if (st.cbInQue) + } + else if (ev) { + upslogx(LOG_ERR,"w32_serial_read : error detected %x", (int)ev); + } + else if (st.cbInQue) { inq = st.cbInQue; - else if (!sh->overlapped_armed) - { - if ((size_t)tot >= minchars) + } + else if (!sh->overlapped_armed) { + if ((size_t)tot >= minchars) { break; - else if (WaitCommEvent (sh->handle, &ev, &sh->io_status)) - { - upslogx(LOG_DEBUG,"WaitCommEvent succeeded: ev %x", (int)ev); + } + else if (WaitCommEvent (sh->handle, &ev, &sh->io_status)) { + /* WaitCommEvent succeeded */ if (!ev) continue; } - else if (GetLastError () != ERROR_IO_PENDING) + else if (GetLastError () != ERROR_IO_PENDING) { goto err; - else - { + } + else { sh->overlapped_armed = 1; - switch (WaitForSingleObject (w4,INFINITE)) - { + switch (WaitForSingleObject (w4,timeout)) { case WAIT_OBJECT_0: - if (!GetOverlappedResult (sh->handle, &sh->io_status, &n, FALSE)) + if (!GetOverlappedResult (sh->handle, &sh->io_status, &num, FALSE)) goto err; - upslogx(LOG_DEBUG,"n %d, ev %x", (int)n, (int)ev); + upslogx(LOG_DEBUG,"w32_serial_read : characters are available on input buffer"); break; + case WAIT_TIMEOUT: + CancelIo(sh->handle); + sh->overlapped_armed = 0; + ResetEvent (sh->io_status.hEvent); + upslogx(LOG_DEBUG,"w32_serial_read : timeout %d ms ellapsed", (int)timeout); + return 0; default: goto err; } @@ -206,27 +211,31 @@ int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen) sh->overlapped_armed = 0; ResetEvent (sh->io_status.hEvent); - if (inq > ulen) + if (inq > ulen) { inq = ulen; - upslogx(LOG_DEBUG,"inq %d", (int)inq); - if (ReadFile (sh->handle, ptr, min (inq, ulen), &n, &sh->io_status)) + } + upslogx(LOG_DEBUG,"w32_serial_read : Reading %d characters", (int)inq); + if (ReadFile (sh->handle, ptr, min (inq, ulen), &num, &sh->io_status)) { /* Got something */; - else if (GetLastError () != ERROR_IO_PENDING) + } + else if (GetLastError () != ERROR_IO_PENDING) { goto err; - else if (!GetOverlappedResult (sh->handle, &sh->io_status, &n, TRUE)) + } + else if (!GetOverlappedResult (sh->handle, &sh->io_status, &num, TRUE)) { goto err; + } - tot += n; - upslogx(LOG_DEBUG,"vtime_ %d, vmin_ %d, n %d, tot %d", sh->vtime_, sh->vmin_, (int)n, tot); - if (sh->vtime_ || !sh->vmin_ || !n) + tot += num; + upslogx(LOG_DEBUG,"w32_serial_read : total characters read = %d", tot); + if (sh->vtime_ || !sh->vmin_ || !num) break; continue; err: PurgeComm (sh->handle, PURGE_RXABORT); - upslogx(LOG_DEBUG,"err %d",(int)GetLastError()); + upslogx(LOG_DEBUG,"w32_serial_read : err %d",(int)GetLastError()); if (GetLastError () == ERROR_OPERATION_ABORTED) - n = 0; + num = 0; else { tot = -1; @@ -290,7 +299,7 @@ serial_handler_t * w32_serial_open (const char *name, int flags) sh = xmalloc(sizeof(serial_handler_t)); memset(sh,0,sizeof(serial_handler_t)); - sh->handle = CreateFile(name,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0); + sh->handle = CreateFile(name,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,0); if(sh->handle == INVALID_HANDLE_VALUE) { upslogx(LOG_ERR,"could not open %s",name); diff --git a/drivers/mge-utalk.c b/drivers/mge-utalk.c index 3fc85ee705..c3ef9dc03c 100644 --- a/drivers/mge-utalk.c +++ b/drivers/mge-utalk.c @@ -180,10 +180,10 @@ void upsdrv_initups(void) ioctl(upsfd, TIOCMBIC, &RTS); #else if (testvar ("oldmac")) { - EscapeCommFunction(upsfd,CLRRTS); + EscapeCommFunction(((serial_handler_t *)upsfd)->handle,CLRRTS); } else { - EscapeCommFunction(upsfd,SETRTS); + EscapeCommFunction(((serial_handler_t *)upsfd)->handle,SETRTS); } #endif enable_ups_comm(); diff --git a/drivers/serial.h b/drivers/serial.h index 720808b3e1..5c8bebcdd0 100644 --- a/drivers/serial.h +++ b/drivers/serial.h @@ -110,7 +110,7 @@ void ser_comm_good(void); #ifdef WIN32 #define open(a,b) w32_serial_open(a,b) #define close(a) w32_serial_close(a) -#define read(a,b,c) w32_serial_read(a,b,c) +#define read(a,b,c) w32_serial_read(a,b,c,INFINITE) #define write(a,b,c) w32_serial_write(a,b,c) #endif diff --git a/include/wincompat.h b/include/wincompat.h index 9c01d24ce6..61555ddb01 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -67,7 +67,7 @@ struct termios { serial_handler_t * w32_serial_open (const char *name, int flags); int w32_serial_close (serial_handler_t * sh); int w32_serial_write (serial_handler_t * sh, const void *ptr, size_t len); -int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen); +int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen, DWORD timeout); int tcgetattr (serial_handler_t * sh, struct termios *t); int tcsetattr (serial_handler_t * sh, int action, const struct termios *t); int tcflush (serial_handler_t * sh, int queue); From df97c4b9cc336db29b64769db480d4a3bd9784a8 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 7 Jan 2011 09:31:08 +0000 Subject: [PATCH 050/218] code cleanup Fossil-ID: SVN r2807 --- scripts/Windows/wininit.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index b4f136cc66..c61fe2b4d6 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -304,7 +304,7 @@ static int parse_nutconf(BOOL start_flag) } if( strstr(buf,"standalone") != NULL || strstr(buf,"netserver") != NULL ) { - if( start_flag == TRUE ) { + if( start_flag == NUT_START ) { run_drivers(); run_upsd(); run_upsmon(); @@ -318,7 +318,7 @@ static int parse_nutconf(BOOL start_flag) } } if( strstr(buf,"netclient") != NULL ) { - if( start_flag == TRUE ) { + if( start_flag == NUT_START ) { run_upsmon(); return 1; } @@ -522,9 +522,9 @@ static void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) SvcStart(SVCNAME); } - /* A service has no console, so do has its child. */ + /* A service has no console, so do has its children. */ /* So if we want to be able to send CTRL+BREAK signal we must */ - /* create a console which will be inheritated by childs */ + /* create a console which will be inheritated by children */ AllocConsole(); print_event(LOG_INFO,"Starting"); @@ -571,9 +571,8 @@ static void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) if( handles[ret] == svc_stop && service_flag ) { parse_nutconf(NUT_STOP); - if(service_flag) { - print_event(LOG_INFO, "exiting"); + print_event(LOG_INFO, "Exiting"); ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); } return; From 8e8bcb9991c96926441802070163e9e0cb9fac9a Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 7 Jan 2011 14:02:19 +0000 Subject: [PATCH 051/218] Fix client disconnection Fossil-ID: SVN r2808 --- clients/upsclient.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/clients/upsclient.c b/clients/upsclient.c index a3bd8812c8..3685b8b91b 100644 --- a/clients/upsclient.c +++ b/clients/upsclient.c @@ -860,7 +860,6 @@ int upscli_tryconnect(UPSCONN_t *ups, const char *host, int port, int flags,stru #ifdef WIN32 WSADATA WSAdata; WSAStartup(2,&WSAdata); - atexit(WSACleanup); #endif if (!ups) { return -1; @@ -1520,6 +1519,9 @@ int upscli_disconnect(UPSCONN_t *ups) ups->host = NULL; if (ups->fd < 0) { +#ifdef WIN32 + WSACleanup(); +#endif return 0; } @@ -1544,6 +1546,10 @@ int upscli_disconnect(UPSCONN_t *ups) close(ups->fd); ups->fd = -1; +#ifdef WIN32 + WSACleanup(); +#endif + return 0; } From 67fddb109df18be9c1acdb6611186a6bb02e7b45 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 13 Jan 2011 13:14:40 +0000 Subject: [PATCH 052/218] Merge from the trunk -> porting the IPv6 code to Windows [re-added lost man files, and edited out conflict markers. -CFL] Fossil-ID: SVN r2822 --- Makefile.am | 11 + clients/upsc.c | 2 - clients/upsclient.c | 4 +- clients/upscmd.c | 2 - clients/upslog.c | 3 +- clients/upsmon.c | 3 +- clients/upsrw.c | 2 - common/inet_aton.c | 38 - common/state.c | 2 - common/wincompat.c | 17 +- docs/configure.txt | 20 +- docs/developers.txt | 87 +++ docs/images/eaton-logo.png | Bin 0 -> 7998 bytes docs/man/oneac.txt | 125 ---- docs/man/snmp-ups.txt | 168 ----- docs/man/upsd.conf.txt | 105 --- docs/man/upsd.users.txt | 2 +- docs/man/upsrw.txt | 99 --- docs/website/web-layout.conf | 1 - drivers/Makefile.am | 4 - drivers/dstate.c | 5 +- drivers/dstate.h | 4 - drivers/dummy-ups.h | 5 + drivers/megatec.c | 1056 ---------------------------- drivers/megatec_usb.c | 663 ----------------- drivers/serial.h | 1 - drivers/upsdrvctl.c | 2 +- include/common.h | 6 + include/nut_stdint.h | 34 - include/wincompat.h | 23 + nut-autoreconf | 35 + scripts/Windows/wininit.c | 1 - scripts/upower/95-upower-hid.rules | 6 + server/conf.c | 11 +- server/ssl.c | 38 +- server/sstate.c | 2 - server/upsd.c | 94 +-- server/upsd.h | 2 - server/user.c | 2 - 39 files changed, 256 insertions(+), 2429 deletions(-) delete mode 100644 common/inet_aton.c create mode 100644 docs/images/eaton-logo.png delete mode 100644 docs/man/oneac.txt delete mode 100644 docs/man/snmp-ups.txt delete mode 100644 docs/man/upsd.conf.txt delete mode 100644 docs/man/upsrw.txt delete mode 100644 drivers/megatec.c delete mode 100644 drivers/megatec_usb.c delete mode 100644 include/nut_stdint.h create mode 100755 nut-autoreconf diff --git a/Makefile.am b/Makefile.am index 34b7e1fdd0..064a9e5f2c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -55,6 +55,17 @@ website: @echo "Not building website since 'asciidoc' was not found." endif !HAVE_ASCIIDOC +if HAVE_ASCIIDOC +website: + cd docs; $(MAKE) $(AM_MAKEFLAGS) website + cd docs/man; $(MAKE) $(AM_MAKEFLAGS) html-man + cd tools; $(MAKE) $(AM_MAKEFLAGS) website + cd docs/website; $(MAKE) $(AM_MAKEFLAGS) website +else !HAVE_ASCIIDOC +website: + @echo "Not building website since 'asciidoc' was not found." +endif !HAVE_ASCIIDOC + # ---------------------------------------------------------------------- # targets from old build system (pre-automake). # supported for a period of time for backward "compatibility". diff --git a/clients/upsc.c b/clients/upsc.c index 6ec622bb2d..f048881809 100644 --- a/clients/upsc.c +++ b/clients/upsc.c @@ -25,8 +25,6 @@ #include #include #include -#else -#include #endif #include "upsclient.h" diff --git a/clients/upsclient.c b/clients/upsclient.c index 3685b8b91b..95e1b40538 100644 --- a/clients/upsclient.c +++ b/clients/upsclient.c @@ -40,8 +40,6 @@ #include #include #else -#include -#include /* This override network system calls to adapt to Windows specificity */ #define W32_NETWORK_CALL_OVERRIDE #include "wincompat.h" @@ -919,7 +917,7 @@ int upscli_tryconnect(UPSCONN_t *ups, const char *host, int port, int flags,stru { case EAFNOSUPPORT: case EINVAL: - break; + break; default: ups->upserror = UPSCLI_ERR_SOCKFAILURE; ups->syserrno = errno; diff --git a/clients/upscmd.c b/clients/upscmd.c index 5f73884dfc..171cc3ed7a 100644 --- a/clients/upscmd.c +++ b/clients/upscmd.c @@ -26,8 +26,6 @@ #include #include #include -#else -#include #endif #include "upsclient.h" diff --git a/clients/upslog.c b/clients/upslog.c index 57d199ffe2..67c4823e8e 100644 --- a/clients/upslog.c +++ b/clients/upslog.c @@ -40,8 +40,7 @@ #include "upslog.h" #ifdef WIN32 -#include -#define sleep(n) Sleep(1000 * n) +#include "wincompat.h" #endif static int port, reopen_flag = 0, exit_flag = 0; diff --git a/clients/upsmon.c b/clients/upsmon.c index 6ef34e63b3..9ae53c3a73 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -26,8 +26,7 @@ #include #include #else -#include -#define sleep(n) Sleep(1000 * n) +#include #endif #include "upsclient.h" diff --git a/clients/upsrw.c b/clients/upsrw.c index 4a65ed257b..632101e184 100644 --- a/clients/upsrw.c +++ b/clients/upsrw.c @@ -25,8 +25,6 @@ #include #include #include -#else -#include #endif #include "upsclient.h" diff --git a/common/inet_aton.c b/common/inet_aton.c deleted file mode 100644 index 196ce1b9ee..0000000000 --- a/common/inet_aton.c +++ /dev/null @@ -1,38 +0,0 @@ -/* inet_aton.c Ben Collver */ -/* This works if inet_addr exists like it does in CYGWIN */ -#include -#include -#ifndef WIN32 -#include -#include -#include -#else -#include -#endif - -#ifndef INADDR_NONE -#define INADDR_NONE ((unsigned long)-1) -#endif - -/* Solaris 5.x defines extern inet_aton() in /usr/include/arpa/inet.h - However, inet_aton is not in the C library!? Solaris has inet_addr() - but does not define INADDR_NONE - */ - -#ifndef INADDR_NONE -#define INADDR_NONE -1 -#endif - -int inet_aton(const char *cp, struct in_addr *addr) -{ - unsigned long retval; - - if (addr == NULL || cp == NULL) - return 0; - retval = inet_addr(cp); - if (retval == INADDR_NONE) { - return 0; - } - addr->s_addr = retval; - return 1; -} diff --git a/common/state.c b/common/state.c index 3db1100c94..defcd591d1 100644 --- a/common/state.c +++ b/common/state.c @@ -27,8 +27,6 @@ #ifndef WIN32 #include #include -#else -#include #endif #include "common.h" diff --git a/common/wincompat.c b/common/wincompat.c index 1124855edd..aa3bf717f3 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -17,10 +17,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifdef WIN32 -#include "common.h" #include "wincompat.h" -#include -#include extern int errno; @@ -68,6 +65,20 @@ int sktclose(int fh) return ret; } +const char* inet_ntop(int af, const void* src, char* dst, int cnt){ + struct sockaddr_in srcaddr; + + memset(&srcaddr, 0, sizeof(struct sockaddr_in)); + memcpy(&(srcaddr.sin_addr), src, sizeof(srcaddr.sin_addr)); + + srcaddr.sin_family = af; + if (WSAAddressToString((struct sockaddr*) &srcaddr, sizeof(struct sockaddr_in), 0, dst, (LPDWORD) &cnt) != 0) { + WSAGetLastError(); + return NULL; + } + return dst; +} + /* syslog sends a message through a pipe to the wininit service. Which is in charge of adding an event in the Windows event logger. The message is made of 4 bytes containing the priority followed by an array diff --git a/docs/configure.txt b/docs/configure.txt index a28aca6f88..84093968a9 100644 --- a/docs/configure.txt +++ b/docs/configure.txt @@ -58,7 +58,25 @@ To save time during the compile and disk space later on, you can use this option to just build and install a subset of the drivers. To select mge-shut and usbhid-ups, you'd do this: - --with-drivers=apcsmart,usbhid-ups + --with-doc= (default: no) + +Build and install NUT documentation file(s). +The possible values are "html-single" for single page HTML, "html-chunked" +for multi pages HTML, "pdf" for a PDF file or "auto" to build all the +possible previous documentation formats. + +This feature requires AsciiDoc 8.6.3 (http://www.methods.co.nz/asciidoc). + + +Optional features +----------------- + + --with-cgi (default: no) + +Build and install the optional CGI programs, HTML files, and sample +CGI configuration files. This is not enabled by default, as they +are only useful on web servers. See data/html/README for additional +information on how to set up CGI programs. If you need to build more drivers later on, you will need to rerun configure with a different list. To make it build all of the diff --git a/docs/developers.txt b/docs/developers.txt index 52d19dce48..8834ddff36 100644 --- a/docs/developers.txt +++ b/docs/developers.txt @@ -564,3 +564,90 @@ If you are new to Git, but are familiar with SVN, the link:http://git-scm.com/course/svn.html[following link] may be of use. +Distributed SCM systems +----------------------- + +Git and Mercurial (Hg) are two popular distributed SCM tools which provide a +bridge to a SVN repository. This makes it possible for a new developer to stay +synchronized with the latest changes to NUT, while keeping a local version +history of their changes before they are merged by the core NUT developers. + +A complete introduction to either Git or Mercurial is beyond the scope of this +document, but many others have written excellent tutorials on both the DSCM +tools, and their SVN interfaces. + +Git and SVN +~~~~~~~~~~~ + +The `git svn` tool synchronizes a Git repository with a +link:http://www.kernel.org/pub/software/scm/git/docs/git-svn.html[SVN repository]. + +In many cases, NUT developers will not need access to the entire repository +history - a snapshot starting at the most recent revision will work nicely: + + git svn clone --revision HEAD svn://svn.debian.org/nut/trunk nut-git + +From the resulting nut-git directory, you may use all of the Git commands to +record your changes, and even create new branches for working on different +aspects of the code. + +Git offers a little more flexibility than the `svn update` command. You may +fetch other developers' changes from SVN into your repository, but hold off on +actually combining them with your branch until you have compared the two +branches (for instance, with `gitk --all`). + +To import the new SVN revisions, simply run the following command from any +directory under your Git checkout (`nut-git` in the example above). Note that +this only changes the history stored in your repository - it does not touch +your checked-out files. + + git svn fetch + +Initially, the Git `master` branch tracks the SVN `trunk`. The `git svn` +command updates the `remotes/trunk` reference every time you run `git svn +fetch`, but it does not adjust the `master` branch automatically. To update +your master branch with new SVN revisions, you can run the following commands: + + git checkout master + git svn fetch # (optional; this gets commits other than on your current branch) + git svn rebase + +You may create as many branches as you like in your local Git repository. When +using `git svn`, the preferred way to combine your changes with SVN changes is +to use `git rebase` on your local branch. This re-applies your branch's changes +to the new SVN changes, much as though your branch were a series of patches. + +-------------------------------------------------------------------------------- + git checkout master + git branch my-new-feature + git checkout my-new-feature + + # Hack away + + git add changed-file.c + git commit + + # Someone committed something to SVN. Fetch it. + + git svn fetch + git rebase remotes/trunk +-------------------------------------------------------------------------------- + +You are encouraged to use `git rebase -i` on your private Git branches to +separate your changes into <<_patch_cohesion,logical changes>>. + +From there, you can generate patches for the Tracker, or the nut-upsdev list. + +If you are new to Git, but are familiar with SVN, the +link:http://git-scm.com/course/svn.html[following link] may be of use. + + +Mercurial and SVN +~~~~~~~~~~~~~~~~~ + +Synchronizing a Mercurial repository against the NUT SVN repository should be +similar in spirit to the Git method discussed above. +link:http://mercurial.selenic.com/wiki/WorkingWithSubversion[This wiki page] +discusses your options. + +We would welcome any feedback about this process on the nut-upsdev mailing list. diff --git a/docs/images/eaton-logo.png b/docs/images/eaton-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f297295a89ac54e7c6368c0198b175cc83e67bf0 GIT binary patch literal 7998 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, -Eric Lawson - -SEE ALSO --------- - -The core driver: -~~~~~~~~~~~~~~~~ -linkman:nutupsdrv[8] - -Internet resources: -~~~~~~~~~~~~~~~~~~~ -The NUT (Network UPS Tools) home page: http://www.networkupstools.org/ diff --git a/docs/man/snmp-ups.txt b/docs/man/snmp-ups.txt deleted file mode 100644 index 9584d20fbe..0000000000 --- a/docs/man/snmp-ups.txt +++ /dev/null @@ -1,168 +0,0 @@ -snmp-ups(8) -=========== - -NAME ----- - -snmp-ups - Multi-MIB Driver for SNMP UPS equipment - -NOTE ----- -This man page only documents the hardware-specific features of the -snmp-ups driver. For information about the core driver, see -linkman:nutupsdrv[8]. - -SUPPORTED HARDWARE ------------------- - -The snmp-ups driver automatically detects and supports a wide range of devices by loading various MIBS: -*ietf*:: -UPS that is RFC 1628 (UPS MIB) compliant, e.g. MGE UPS SYSTEMS, Liebert, perhaps others (default) - -*mge*:: -MGE UPS SYSTEMS and MGE Office Protection Systems devices with SNMP cards (ref 66062, 66045, 66074 and 66244) - -*apcc*:: -APC AP9605, AP9606, AP9617, and AP9618 APC network management cards, as well as any others supporting the APC POWERNET MIB - -*netvision*:: -Socomec Sicon UPS with Netvision Web/SNMP management card/external box - -*pw*:: -Powerware devices with ConnectUPS SNMP cards - -*aphel_genesisII*:: -Eaton Powerware ePDU Monitored - -*aphel_revelation*:: -Eaton Powerware ePDU Managed - -*raritan*:: -Various Raritan PDUs - -*baytech*:: -Various BayTech PDUs - -*cpqpower*:: -HP/Compaq AF401A management card, perhaps others - -*cyberpower*:: -Cyberpower RMCARD201. Should also support RMCARD100 (net version), RMCARD202 and RMCARD301 - -EXTRA ARGUMENTS ---------------- - -This driver supports the following optional settings in the -linkman:ups.conf[5]: - -*mibs*='name':: -Set MIB compliance (default=auto, allowed entries: refer to the above SUPPORTED HARDWARE). -With "auto", the driver will try a select set of SNMP objects until it finds -one that the device responds to. Note that, since NUT 2.6.2, snmp-ups has a new -method that uses sysObjectID, which is a pointer to the prefered MIB of the -device, to detect supported devices. This renders void the use of 'mib' option. - -*community*='name':: -Set community name (default = public). -Note that you require a RW community name to change UPS settings (as for a powerdown). - -*snmp_version*='version':: -Set SNMP version (default = v1, allowed: v2c, v3) - -*pollfreq*='value':: -Set polling frequency in seconds, to reduce network flow (default=30) - -*notransferoids*:: -Disable the monitoring of the low and high voltage transfer OIDs in -the hardware. This will remove input.transfer.low and input.transfer.high -from the list of variables. This should only be used on APCC Symmetra -equipment which has strangeness in the three-phase power reporting. - -*secLevel*='value':: -Set the securityLevel used for SNMPv3 messages (default=noAuthNoPriv, -allowed: authNoPriv,authPriv) - -*secName*='value':: -Set the securityName used for authenticated SNMPv3 messages (no default) - -*authPassword*='value':: -Set the authentication pass phrase used for authenticated SNMPv3 messages -(no default) - -*privPassword*='value':: -Set the privacy pass phrase used for encrypted SNMPv3 messages (no default) - -*authProtocol*='value':: -Set the authentication protocol (MD5 or SHA) used for authenticated SNMPv3 -messages (default=MD5) - -*privProtocol*='value':: -Set the privacy protocol (DES or AES) used for encrypted SNMPv3 messages -(default=DES) - -REQUIREMENTS ------------- -You will need to install the Net-SNMP package from -http://www.net-snmp.org/ before building this driver. - -SNMP v3 also requires OpenSSL support from http://www.openssl.org. - -LIMITATION ----------- -Shutdown -~~~~~~~~ - -This driver does not provide a proper upsdrv_shutdown() function. There probably -never will be one, since at the time this script should run (near the end of -the system halt script), there will be no network capabilities anymore. -Probably the only way to shutdown an SNMP UPS is by sending it a shutdown -with delay command through linkman:upscmd[8] and hope for the best that the -system will have finished shutting down before the power is cut. - -INSTALLATION ------------- -This driver is only built if the Net-SNMP development files are present on the system. -You can also force it to be built by using "configure --with-snmp=yes" before calling make. - -IMPLEMENTATION --------------- -The hostname of the UPS is specified with the "port" value in -`ups.conf`, i.e.: - - [snmpv1] - driver = snmp-ups - port = snmp-ups.example.com - community = public - snmp_version = v1 - pollfreq = 15 - desc = "Example SNMP v1 device" - - [snmpv3] - driver = snmp-ups - port = 166.99.224.132 - snmp_version = v3 - secLevel = authPriv - secName = mysecurityname - authPassword = myauthenticationpassphrase - privPassword = myprivatepassphrase - desc = "Example SNMP v3 device, with the highest security level" - -AUTHORS -------- -Arnaud Quette, Dmitry Frolov - - -SEE ALSO --------- - -The core driver: -~~~~~~~~~~~~~~~~ -linkman:nutupsdrv[8] - -NUT SNMP Protocols Library -~~~~~~~~~~~~~~~~~~~~~~~~~~ -Available at: http://www.networkupstools.org/protocols/snmp/ - -Internet resources: -~~~~~~~~~~~~~~~~~~~ -The NUT (Network UPS Tools) home page: http://www.networkupstools.org/ diff --git a/docs/man/upsd.conf.txt b/docs/man/upsd.conf.txt deleted file mode 100644 index b1d5d247a1..0000000000 --- a/docs/man/upsd.conf.txt +++ /dev/null @@ -1,105 +0,0 @@ -UPSD.CONF(5) -============ - -NAME ----- - -upsd.conf - Configuration for Network UPS Tools upsd - -DESCRIPTION ------------ - -upsd uses this file to control access to the server and set some other -miscellaneous configuration values. This file contains details on -access controls, so keep it secure. Ideally, only the upsd process -should be able to read it. - -CONFIGURATION DIRECTIVES ------------------------- - -"MAXAGE 'seconds'":: - -upsd usually allows a driver to stop responding for up to 15 seconds -before declaring the data "stale". If your driver takes a very long -time to process updates but is otherwise operational, you can use MAXAGE -to make upsd wait longer. -+ -Most users should leave this at the default value. - -"STATEPATH 'path'":: - -Tell upsd to look for the driver state sockets in 'path' rather -than the default that was compiled into the program. - -"LISTEN 'interface' 'port'":: - -Bind a listening port to the interface specified by its Internet -address. This may be useful on hosts with multiple interfaces. -You should not rely exclusively on this for security, as it can be -subverted on many systems. -+ -Listen on TCP port 'port' instead of the default value which was -compiled into the code. This overrides any value you may have set -with 'configure --with-port'. If you don't change it with configure -or this value, upsd will listen on port 3493 for this interface. -+ -Multiple LISTEN addresses may be specified. The default is to bind to -127.0.0.1 if no LISTEN addresses are specified (and ::1 if IPv6 support is -compiled in). - - LISTEN 127.0.0.1 - LISTEN 192.168.50.1 - LISTEN ::1 - LISTEN 2001:0db8:1234:08d3:1319:8a2e:0370:7344 -+ -This parameter will only be read at startup. You'll need to restart -(rather than reload) upsd to apply any changes made here. - -"MAXCONN 'connections'":: - -This defaults to maximum number allowed on your system. Each UPS, each -LISTEN address and each client count as one connection. If the server -runs out of connections, it will no longer accept new incoming client -connections. Only set this if you know exactly what you're doing. - -"CERTFILE 'certificate file'":: - -When compiled with SSL support with OpenSSL backend, you can enter the -certificate file here. -The certificates must be in PEM format and must be sorted starting with -the subject's certificate (server certificate), followed by intermediate -CA certificates (if applicable_ and the highest level (root) CA. It should -end with the server key. See 'docs/security.txt' or the Security chapter of -NUT user manual for more information on the SSL support in NUT. - -"CERTPATH 'certificate database'":: - -When compiled with SSL support with NSS backend, you can enter the -certificate path here. -Certificates are stored in a dedicated database (splitted in 3 files). -Specify the path of the database directory. - -"CERTIDENT 'certificate name' 'database password'":: - -When compiled with SSL support with NSS backend, you can specify the -certificate name to retrieve from database to authenticate itself and -the password required to access certificate related private key. - -"CERTREQUEST 'certificate request level'":: - -When compiled with SSL support with NSS backend and client certificate -validation (disabled by default, see 'docs/security.txt'), -you can specify if upsd requests or requires client's' certificates. -Possible values are : -- '0' to not request to clients to provide any certificate -- '1' to require to all clients a certificate -- '2' to require to all clients a valid certificate - -SEE ALSO --------- - -linkman:upsd[8], linkman:nutupsdrv[8], linkman:upsd.users[5] - -INTERNET RESOURCES ------------------- -The NUT (Network UPS Tools) home page: http://www.networkupstools.org/ diff --git a/docs/man/upsd.users.txt b/docs/man/upsd.users.txt index 4f73cebac7..2b4d5a9737 100644 --- a/docs/man/upsd.users.txt +++ b/docs/man/upsd.users.txt @@ -56,7 +56,7 @@ actions are: FSD;; set the forced shutdown flag in the UPS. This is equivalent to an "on battery + low battery" situation for the purposes of monitoring. - ++ The list of actions is expected to grow in the future. *instcmds*:: diff --git a/docs/man/upsrw.txt b/docs/man/upsrw.txt deleted file mode 100644 index de09067398..0000000000 --- a/docs/man/upsrw.txt +++ /dev/null @@ -1,99 +0,0 @@ -UPSRW(8) -======== - -NAME ----- - -upsrw - UPS variable administration tool - -SYNOPSIS --------- - -*upsrw* 'ups' - -*upsrw* -h - -*upsrw* -s 'variable' [-u 'username'] [-p 'password'] 'ups' - -DESCRIPTION ------------ - -*upsrw* allows you to view and change the read/write variables inside your UPS. -It sends commands via the server linkman:upsd[8] to your driver, which -configures the hardware for you. - -The list of variables that allow you to change their values is based on -the capabilities of your UPS equipment. Not all models support this -feature. Typically, cheaper hardware does not support any of them. -Run upsrw with a UPS identifier to see what will work for you. - -OPTIONS -------- - -*-h*:: -Display the help message. - -*-s* 'variable':: -Specify the variable to be changed inside the UPS. For unattended -mode such as in shell scripts, use the format VAR=VALUE to specify both -the variable and the value, for example: - - -s input.transfer.high=129 -+ -Without this argument, upsrw will just display the list of the variables -and their possible values. -+ -Some variables are strings, and can be set to any value within the -length limit. Others are enumerated types and can only be set to one of -those values. Others may be within an allowed range of values. Refer to -the list to know what's available in your hardware. - -*-u* 'username':: -Set the NUT username for the connection to the server. This is optional, -and you will be prompted for this when using the -s option if you don't -specify -u on the command line. NUT usernames are defined in -linkman:upsd.users[5], and are not linked to system usernames. - -*-p* 'password':: -Set the password to authenticate to the server. This is also optional -like -u, and you will be prompted for it if necessary. - -'ups':: -View or change the settings on this UPS. The format for this option is -`upsname[@hostname[:port]]`. The default hostname is "localhost". - -UNATTENDED MODE ---------------- - -If you run this program inside a shell script or similar to set -variables, you will need to specify all of the information on the -command line. This means using `-s VAR=VALUE`, `-u` and `-p`. Otherwise it -will put up a prompt and your program will hang. - -This is not necessary when displaying the list, as the username and -password are not required for read-only mode. - -Moreover, if you run this program inside a shell script or similar, you -should only consider using output from stdout, not stderr. - -DIAGNOSTICS ------------ - -*upsrw* can't set variables on your UPS unless you provide a valid -username and password. If you get "access denied" errors, make sure -that your linkman:upsd.users[5] has an entry for you, and that the -username you are using has permissions to SET variables. - -HISTORY -------- - -This program used to be called upsct2, which was ambiguous and -confusing. - -SEE ALSO --------- -linkman:upsd[8], linkman:upscmd[8] - -Internet resources: -~~~~~~~~~~~~~~~~~~~ -The NUT (Network UPS Tools) home page: http://www.networkupstools.org/ diff --git a/docs/website/web-layout.conf b/docs/website/web-layout.conf index 29ba745719..f72426e950 100644 --- a/docs/website/web-layout.conf +++ b/docs/website/web-layout.conf @@ -180,6 +180,5 @@ endif::badges[] })(); -endif::analytics[] diff --git a/drivers/Makefile.am b/drivers/Makefile.am index 862d2808c6..736bcb232c 100644 --- a/drivers/Makefile.am +++ b/drivers/Makefile.am @@ -178,10 +178,6 @@ tripplite_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) -lm bcmxcp_usb_SOURCES = bcmxcp_usb.c bcmxcp.c usb-common.c bcmxcp_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) -megatec_usb_SOURCES = megatec.c megatec_usb.c libusb.c usb-common.c -megatec_usb_CFLAGS = $(AM_CFLAGS) -DMEGATEC_SUBDRV -megatec_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) - blazer_usb_SOURCES = blazer.c blazer_usb.c libusb.c usb-common.c blazer_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) -lm diff --git a/drivers/dstate.c b/drivers/dstate.c index 2a0d2b0182..e1a944a9a3 100644 --- a/drivers/dstate.c +++ b/drivers/dstate.c @@ -29,7 +29,6 @@ #include #include #else -#include #include #include #endif @@ -712,8 +711,8 @@ void dstate_init(const char *prog, const char *devname) } #else /* FIXME: use dflt_statepath() instead of hardcoded value ?*/ - if (port) { - snprintf(sockname, sizeof(sockname), "\\\\.\\pipe\\%s-%s", prog, port); + if (devname) { + snprintf(sockname, sizeof(sockname), "\\\\.\\pipe\\%s-%s", prog, devname); } else { snprintf(sockname, sizeof(sockname), "\\\\.\\pipe\\%s", prog); } diff --git a/drivers/dstate.h b/drivers/dstate.h index b9143d26e8..8dfe2e4c00 100644 --- a/drivers/dstate.h +++ b/drivers/dstate.h @@ -22,10 +22,6 @@ #ifndef DSTATE_H_SEEN #define DSTATE_H_SEEN 1 -#ifdef WIN32 -#include -#endif - #include "state.h" #include "attribute.h" diff --git a/drivers/dummy-ups.h b/drivers/dummy-ups.h index 49294ca878..7e9b15c8ea 100644 --- a/drivers/dummy-ups.h +++ b/drivers/dummy-ups.h @@ -45,8 +45,13 @@ * Status lookup table type definition */ typedef struct { +<<<<<<< HEAD const char *status_str; /* ups.status string */ int status_value; /* ups.status flag bit */ +======= + const char *status_str; /* ups.status string */ + int status_value; /* ups.status value */ +>>>>>>> Merge from the trunk -> porting the IPv6 code to Windows } status_lkp_t; #define STATUS_CAL (1 << 0) /* calibration */ diff --git a/drivers/megatec.c b/drivers/megatec.c deleted file mode 100644 index f6b9a789c4..0000000000 --- a/drivers/megatec.c +++ /dev/null @@ -1,1056 +0,0 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: t; -*- - * - * megatec.c: support for Megatec protocol based UPSes - * - * Copyright (C) Carlos Rodrigues - * - * megatec.c created on 4/10/2003 - * - * 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 - */ - - -/* - * A document describing the protocol implemented by this driver can be - * found online at "http://www.networkupstools.org/protocols/megatec.html". - */ - - -#include "main.h" -#ifndef WIN32 /* FIXME removing serial reference just during the USB compilation phase, need to be reactivated when serial will be ported to WIN32. there is several occurence of this FIXME in this file*/ -#include "serial.h" -#endif -#include "megatec.h" - -#include -#include -#include -#include - -#define DRIVER_NAME "Megatec protocol driver" -#define DRIVER_VERSION "1.6" /* FIXME: doesn't conform to "X.YZ" */ - -/* driver description structure */ -upsdrv_info_t upsdrv_info = { - DRIVER_NAME, - DRIVER_VERSION, - "Carlos Rodrigues ", - DRV_STABLE, -#ifdef MEGATEC_SUBDRV - { &megatec_subdrv_info, NULL } -#else - { NULL } -#endif -}; - -#define ENDCHAR '\r' -#define IGNCHARS "" - -#define RECV_BUFFER_LEN 128 -#define FIELD_BUFFER_LEN 16 - -/* The expected reply lengths */ -#define F_CMD_REPLY_LEN 21 -#define Q1_CMD_REPLY_LEN 46 -#define I_CMD_REPLY_LEN 38 - -#define IDENT_MAXTRIES 3 - -#define READ_TIMEOUT 2 /* timeout on read (seconds) */ -#define READ_PACE 300000 /* interval to wait between sending a command and reading the response (usec) */ - -#define MAX_START_DELAY 9999 -#define MAX_SHUTDOWN_DELAY 99 - -/* Maximum length of a string representing these values */ -#define MAX_START_DELAY_LEN 4 -#define MAX_SHUTDOWN_DELAY_LEN 2 - -#define MAX_POLL_FAILURES 3 - -#define N_FLAGS 8 - -/* The UPS status flags */ -#define FL_ON_BATT 0 -#define FL_LOW_BATT 1 -#define FL_BOOST_TRIM 2 -#define FL_FAILED 3 -#define FL_UPS_TYPE 4 -#define FL_BATT_TEST 5 -#define FL_LOAD_OFF 6 -#define FL_BEEPER_ON 7 /* bogus on some models */ - -/* Maximum lengths for the "I" command reply fields */ -#define UPS_MFR_CHARS 15 -#define UPS_MODEL_CHARS 10 -#define UPS_VERSION_CHARS 10 - -/* Below this value we can safely consider a voltage to be zero */ -#define RESIDUAL_VOLTAGE 10.0 - - -/* The values returned by the UPS for an "I" query */ -typedef struct { - char mfr[UPS_MFR_CHARS + 1]; - char model[UPS_MODEL_CHARS + 1]; - char version[UPS_VERSION_CHARS + 1]; -} UPSInfo_t; - - -/* The values returned by the UPS for an "F" query */ -typedef struct { - float volt; - float current; - float battvolt; - float freq; -} FirmwareValues_t; - - -/* The values returned by the UPS for an "Q1" query */ -typedef struct { - float ivolt; - float fvolt; - float ovolt; - float load; - float freq; - float battvolt; - float temp; - char flags[N_FLAGS + 1]; -} QueryValues_t; - - -/* Parameters for known battery types */ -typedef struct { - float nominal; /* battery voltage (nominal) */ - float min; /* lower bound for a single battery of "nominal" voltage (see "set_battery_params" below) */ - float max; /* upper bound for a single battery of "nominal" voltage (see "set_battery_params" below) */ - float empty; /* fully discharged battery */ - float full; /* fully charged battery */ - float low; /* low battery (unused) */ -} BatteryVolts_t; - - -/* Known battery types must be in ascending order by "nominal" first, and then by "max". */ -static BatteryVolts_t batteries[] = {{ 12.0, 9.0, 16.0, 9.7, 13.7, 0.0 }, /* Mustek PowerMust 600VA Plus (LB unknown) */ - { 12.0, 18.0, 30.0, 18.8, 26.8, 22.3 }, /* PowerWalker Line-Interactive VI 1000 */ - { 23.5, 18.0, 30.0, 21.3, 27.1, 22.2 }, /* UNITEK ALPHA2600 */ - { 24.0, 18.0, 30.0, 19.4, 27.4, 22.2 }, /* Mustek PowerMust 1000VA Plus */ - { 36.0, 1.5, 3.0, 1.64, 2.31, 1.88 }, /* Mustek PowerMust 1000VA On-Line */ - { 36.0, 30.0, 42.0, 32.5, 41.0, 0.0 }, /* Mecer ME-2000 (LB unknown) */ - { 48.0, 38.0, 58.0, 40.0, 54.6, 44.0 }, /* Sven Smart RM2000 */ - { 72.0, 1.5, 3.0, 1.74, 2.37, 1.82 }, /* Effekta RM2000MH */ - { 96.0, 1.5, 3.0, 1.63, 2.29, 1.8 }, /* Ablerex MS3000RT (LB at 25% charge) */ - { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }}; /* END OF DATA */ - -/* Interval between chars on send (usec) */ -static int send_pace = 100000; - -/* Some models need this */ -static char state_dtr = 1; -static char state_rts = 0; - -/* Workaround for buggy models */ -static char ignore_off = 0; /* ignore FL_LOAD_OFF if it behaves strangely */ - -/* Defined in upsdrv_initinfo */ -static float battvolt_empty = -1; /* unknown */ -static float battvolt_full = -1; /* unknown */ - -/* Battery voltage multiplier (to match the nominal voltage on some models) */ -static float battvolt_mult = 1; - -/* Minimum and maximum voltage seen on input */ -static float ivolt_min = INT_MAX; /* unknown */ -static float ivolt_max = -1; /* unknown */ - -/* In minutes: */ -static short start_delay = 2; /* wait at least this amount of time before coming back online */ -static short shutdown_delay = 0; /* wait until going offline */ - -/* In percentage: */ -static float lowbatt = -1; /* disabled */ - -static char watchdog_enabled = 0; /* disabled by default, of course */ -static char watchdog_timeout = 1; /* in minutes */ - - -static char *copy_field(char* dest, char *src, int field_len); -static float get_battery_charge(float battvolt); -static int set_battery_params(float volt_nominal, float volt_now); -static int check_ups(QueryValues_t *status); -static int get_ups_info(UPSInfo_t *info); -static int get_firmware_values(FirmwareValues_t *values); -static int run_query(QueryValues_t *values); - -int instcmd(const char *cmdname, const char *extra); -int setvar(const char *varname, const char *val); - - -/* I know, macros should evaluate their arguments only once */ -#define CLAMP(x, min, max) (((x) < (min)) ? (min) : (((x) > (max)) ? (max) : (x))) - - -static char *copy_field(char* dest, char *src, int field_len) -{ - int i, j; - - /* First we skip the leading spaces... */ - for (i = 0; i < field_len; i++) { - if (src[i] != ' ') { - break; - } - } - - /* ... then we copy the rest of the field... */ - j = 0; - while (i < field_len) { - dest[j] = src[i]; - - i++; j++; - } - - dest[j] = '\0'; - - /* ...and finally, remove the trailing spaces. */ - rtrim(dest, ' '); - - return &src[field_len]; /* return the rest of the source buffer */ -} - - -static float get_battery_charge(float battvolt) -{ - float value; - - if (battvolt_empty < 0 || battvolt_full < 0) { - return -1; - } - - battvolt = CLAMP(battvolt, battvolt_empty, battvolt_full); - value = (battvolt - battvolt_empty) / (battvolt_full - battvolt_empty); - - return value * 100; /* percentage */ -} - - -/* - * Set the proper limits, depending on the battery voltage, - * so that the "charge" calculations return meaningful values. - * - * This has to be done by looking at the present battery voltage and - * the nominal voltage because, for example, some 24V models will - * show a nominal voltage of 24, while others will show a nominal - * voltage of 12. The present voltage helps telling them apart. - */ -static int set_battery_params(float volt_nominal, float volt_now) -{ - int i = 0; - - while (batteries[i].nominal > 0) { - if (volt_nominal == batteries[i].nominal) { /* battery voltage matches... */ - while (volt_nominal == batteries[i].nominal) { /* ...find the most adequate parameters */ - if (volt_now > batteries[i].min && volt_now < batteries[i].max) { - battvolt_empty = batteries[i].empty; - battvolt_full = batteries[i].full; - - upsdebugx(1, "%.1fV battery, interval [%.1fV, %.1fV].", volt_nominal, battvolt_empty, battvolt_full); - - return i; - } - - i++; - - } - - upsdebugx(1, "%.1fV battery, present voltage (%.1fV) outside of supported intervals.", volt_nominal, volt_now); - - return -1; - } - - i++; - } - - upsdebugx(1, "Unsupported battery voltage (%.1fV).", volt_nominal); - - return -1; -} - - -/* - * The "status" parameter is left unchanged on failure. - */ -static int check_ups(QueryValues_t *status) -{ - QueryValues_t values; - - if (run_query(&values) < 0) { - return -1; - } - - memcpy(status, &values, sizeof(values)); - - return 0; -} - - -static int get_ups_info(UPSInfo_t *info) -{ - char buffer[RECV_BUFFER_LEN]; - char *anchor; - int ret; - - upsdebugx(2, "Asking for UPS information [I]..."); -#ifndef WIN32 /*FIXME*/ - ser_flush_io(upsfd); - ser_send_pace(upsfd, send_pace, "I%c", ENDCHAR); - usleep(READ_PACE); - - /* - * Expected reply: "#UPS_MFR........ UPS_MODEL. UPS_VER..." - */ - ret = ser_get_line(upsfd, buffer, RECV_BUFFER_LEN, ENDCHAR, IGNCHARS, READ_TIMEOUT, 0); - -#endif - if (ret < 0) { - upsdebug_with_errno(2, "I => FAILED"); - - return -1; - } - - if (ret == 0) { - upsdebugx(2, "I => FAILED [timeout]"); - - return -1; - } - - if (ret < I_CMD_REPLY_LEN) { - upsdebugx(2, "I => FAILED [short read]"); - upsdebug_hex(3, "I detail", (unsigned char *)buffer, ret); - - return -1; - } - - if (buffer[0] != '#') { - upsdebugx(2, "I => FAILED [invalid start character]"); - upsdebug_hex(3, "I detail", (unsigned char *)buffer, ret); - - return -1; - } - - upsdebugx(2, "I => OK [%s]", buffer); - - memset(info, 0, sizeof(UPSInfo_t)); - - /* - * Get the manufacturer, model and version fields, skipping - * the separator character that sits between them, as well as - * the first character (the control character, always a '#'). - */ - anchor = copy_field(info->mfr, &buffer[1], UPS_MFR_CHARS); - anchor = copy_field(info->model, anchor + 1, UPS_MODEL_CHARS); - copy_field(info->version, anchor + 1, UPS_VERSION_CHARS); - - upsdebugx(2, "I VALUES => [%s %s %s]", info->mfr, info->model, info->version); - - return 0; -} - - -static int get_firmware_values(FirmwareValues_t *values) -{ - char buffer[RECV_BUFFER_LEN]; - char field[FIELD_BUFFER_LEN]; - char *anchor; - int ret; - - upsdebugx(2, "Asking for UPS power ratings [F]..."); -#ifndef WIN32 /*FIXME*/ - ser_flush_io(upsfd); - ser_send_pace(upsfd, send_pace, "F%c", ENDCHAR); - usleep(READ_PACE); - - /* - * Expected reply: "#MMM.M QQQ SS.SS RR.R" - */ - ret = ser_get_line(upsfd, buffer, RECV_BUFFER_LEN, ENDCHAR, IGNCHARS, READ_TIMEOUT, 0); -#endif - - if (ret < 0) { - upsdebug_with_errno(2, "F => FAILED"); - - return -1; - } - - if (ret == 0) { - upsdebugx(2, "F => FAILED [timeout]"); - - return -1; - } - - if (ret < F_CMD_REPLY_LEN) { - upsdebugx(2, "F => FAILED [short read]"); - upsdebug_hex(3, "F detail", (unsigned char *)buffer, ret); - - return -1; - } - - - if (buffer[0] != '#') { - upsdebugx(2, "F => FAILED [invalid start character]"); - upsdebug_hex(3, "F detail", (unsigned char *)buffer, ret); - - return -1; - } - - upsdebugx(2, "F => OK [%s]", buffer); - - anchor = copy_field(field, &buffer[1], 5); - values->volt = atof(field); - - anchor = copy_field(field, anchor + 1, 3); - values->current = atof(field); - - anchor = copy_field(field, anchor + 1, 5); - values->battvolt = atof(field); - - anchor = copy_field(field, anchor + 1, 4); - values->freq = atof(field); - - upsdebugx(2, "F VALUES => [%.1f %.1f %.1f %.1f]", values->volt, - values->current, values->battvolt, values->freq); - - return 0; -} - - -static int run_query(QueryValues_t *values) -{ - char buffer[RECV_BUFFER_LEN]; - char field[FIELD_BUFFER_LEN]; - char *anchor; - int ret; - - upsdebugx(2, "Asking for UPS status [Q1]..."); -#ifndef WIN32 /*FIXME*/ - ser_flush_io(upsfd); - ser_send_pace(upsfd, send_pace, "Q1%c", ENDCHAR); - usleep(READ_PACE); - - /* - * Expected reply: "(MMM.M NNN.N PPP.P QQQ RR.R S.SS TT.T b7b6b5b4b3b2b1b0" - */ - ret = ser_get_line(upsfd, buffer, RECV_BUFFER_LEN, ENDCHAR, IGNCHARS, READ_TIMEOUT, 0); -#endif - - if (ret < 0) { - upsdebug_with_errno(2, "Q1 => FAILED"); - - return -1; - } - - if (ret == 0) { - upsdebugx(2, "Q1 => FAILED [timeout]"); - - return -1; - } - - if (ret < Q1_CMD_REPLY_LEN) { - upsdebugx(2, "Q1 => FAILED [short read]"); - upsdebug_hex(3, "Q1 detail", (unsigned char *)buffer, ret); - - return -1; - } - - if (buffer[0] != '(') { - upsdebugx(2, "Q1 => FAILED [invalid start character]"); - upsdebug_hex(3, "Q1 detail", (unsigned char *)buffer, ret); - - return -1; - } - - upsdebugx(2, "Q1 => OK [%s]", buffer); - - anchor = copy_field(field, &buffer[1], 5); - values->ivolt = atof(field); - - anchor = copy_field(field, anchor + 1, 5); - values->fvolt = atof(field); - - anchor = copy_field(field, anchor + 1, 5); - values->ovolt = atof(field); - - anchor = copy_field(field, anchor + 1, 3); - values->load = atof(field); - - anchor = copy_field(field, anchor + 1, 4); - values->freq = atof(field); - - anchor = copy_field(field, anchor + 1, 4); - values->battvolt = atof(field); - - anchor = copy_field(field, anchor + 1, 4); - values->temp = atof(field); - - anchor = copy_field(values->flags, anchor + 1, N_FLAGS); - - if (strlen(values->flags) < N_FLAGS) { - upsdebugx(2, "Q1 => FAILED [flags error]"); - return -1; - } - - upsdebugx(2, "Q1 VALUES => [%.1f %.1f %.1f %.1f %.1f %.1f %.1f %s]", - values->ivolt, values->fvolt, values->ovolt, values->load, - values->freq, values->battvolt, values->temp, values->flags); - - return 0; -} - - -void upsdrv_initinfo(void) -{ - int i; - FirmwareValues_t values; - QueryValues_t status; - UPSInfo_t info; - - /* - * Some models apparently time-out with the default send pace, so we must - * allow the user to override it if needed be. The configuration parameter - * is specified in milliseconds for the user's benefit. - */ - if (getval("sendpace")) { - upsdebugx(2, "Default command send pace is %d usec.", send_pace); - upsdebugx(2, "Parameter [sendpace]: [%s]", getval("sendpace")); - - /* Having 1 second as the upper-bound is an arbitrary choice... */ - send_pace = CLAMP(atoi(getval("sendpace")), 1, 1000) * 1000; - - upslogx(LOG_NOTICE, "Command send pace changed to %d usec.", send_pace); - } - - /* - * UPS detection sequence. - */ - upsdebugx(1, "Starting UPS detection process..."); - - /* Some models seem to need this. We'll just discard the ouput for now... */ - get_ups_info(&info); - - /* Check for a compatible UPS... */ - for (i = 0; i < IDENT_MAXTRIES; i++) { - if (check_ups(&status) == 0) { - break; - } - } - - if (i == IDENT_MAXTRIES) { - fatalx(EXIT_FAILURE, "Megatec protocol UPS not detected."); - } - - dstate_setinfo("ups.type", status.flags[FL_UPS_TYPE] == '1' ? "standby" : "online"); - - upsdebugx(1, "Cancelling any pending shutdown or battery test."); -#ifndef WIN32 /*FIXME*/ - ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); -#endif - - /* - * Try to identify the UPS. - */ - if (get_ups_info(&info) >= 0) { - char model[UPS_MODEL_CHARS + UPS_VERSION_CHARS + 2]; - snprintf(model, sizeof(model), "%s %s", info.model, info.version); - - dstate_setinfo("ups.mfr", "%s", getval("mfr") ? getval("mfr") : info.mfr); - dstate_setinfo("ups.model", "%s", getval("model") ? getval("model") : model); - - upslogx(LOG_INFO, "Megatec protocol UPS detected [%s %s %s].", info.mfr, info.model, info.version); - } else { - dstate_setinfo("ups.mfr", "%s", getval("mfr") ? getval("mfr") : "unknown"); - dstate_setinfo("ups.model", "%s", getval("model") ? getval("model") : "unknown"); - - upslogx(LOG_INFO, "Megatec protocol UPS detected."); - } - - dstate_setinfo("ups.serial", "%s", getval("serial") ? getval("serial") : "unknown"); - - /* - * Workaround for buggy models. - */ - ignore_off = testvar("ignoreoff"); - - if (status.flags[FL_LOAD_OFF] == '1' && status.load > 0.01 && !ignore_off) { - ignore_off = 1; - upslogx(LOG_INFO, "The UPS reports OFF status but appears to be ON. Parameter \"ignoreoff\" set automatically."); - } - upsdebugx(2, "Parameter [ignoreoff]: [%s]", (ignore_off ? "true" : "false")); - - /* - * Set battery-related values. - */ - if (get_firmware_values(&values) >= 0) { - dstate_setinfo("battery.voltage.nominal", "%.1f", values.battvolt); - dstate_setinfo("input.voltage.nominal", "%.1f", values.volt); - dstate_setinfo("input.frequency.nominal", "%.1f", values.freq); - - if (set_battery_params(values.battvolt, status.battvolt) < 0) { - upslogx(LOG_NOTICE, "This UPS has an unsupported combination of battery voltage/number of batteries."); - } - } - - if (getval("battvoltmult")) { - upsdebugx(2, "Parameter [battvoltmult]: [%s]", getval("battvoltmult")); - - /* Having SHRT_MAX as the upper-bound is an arbitrary choice... */ - battvolt_mult = CLAMP(atof(getval("battvoltmult")), 1, SHRT_MAX); - - upslogx(LOG_NOTICE, "The battery voltage reported by the UPS will be multiplied by %.1f.", battvolt_mult); - } - - if (getval("battvolts")) { - upsdebugx(2, "Parameter [battvolts]: [%s]", getval("battvolts")); - - if (sscanf(getval("battvolts"), "%f:%f", &battvolt_empty, &battvolt_full) != 2) { - fatalx(EXIT_FAILURE, "Error in \"battvolts\" parameter."); - } - - upslogx(LOG_NOTICE, "Overriding battery voltage interval [%.1fV, %.1fV].", battvolt_empty, battvolt_full); - } - - if (battvolt_empty < 0 || battvolt_full < 0) { - upslogx(LOG_NOTICE, "Cannot calculate charge percentage for this UPS."); - } - - if (getval("lowbatt")) { - if (battvolt_empty < 0 || battvolt_full < 0) { - upslogx(LOG_NOTICE, "Ignoring \"lowbatt\" parameter."); - } else { - lowbatt = CLAMP(atof(getval("lowbatt")), 0, 100); - } - } - - /* - * Set the restart and shutdown delays. - */ - if (getval("ondelay")) { - start_delay = CLAMP(atoi(getval("ondelay")), 0, MAX_START_DELAY); - } - - if (getval("offdelay")) { - shutdown_delay = CLAMP(atoi(getval("offdelay")), 0, MAX_SHUTDOWN_DELAY); - } - - dstate_setinfo("ups.delay.start", "%d", start_delay); - dstate_setinfo("ups.delay.shutdown", "%d", shutdown_delay); - - /* - * Register the available instant commands. - */ - dstate_addcmd("test.battery.start.deep"); - dstate_addcmd("test.battery.start"); - dstate_addcmd("test.battery.stop"); - dstate_addcmd("shutdown.return"); - dstate_addcmd("shutdown.stayoff"); - dstate_addcmd("shutdown.stop"); - dstate_addcmd("load.on"); - dstate_addcmd("load.off"); - dstate_addcmd("reset.input.minmax"); - dstate_addcmd("reset.watchdog"); - dstate_addcmd("beeper.toggle"); - - upsh.instcmd = instcmd; - upsh.setvar = setvar; - - upsdebugx(1, "Done setting up the UPS."); -} - - -void upsdrv_updateinfo(void) -{ - QueryValues_t query; - float charge; - static int poll_fail = 0; - - if (run_query(&query) < 0) { - /* - * Query wasn't successful (we got some weird - * response), however we won't fatalx(EXIT_FAILURE, ) as this - * happens sometimes when the ups is offline. - * - * Some fault tolerance is good, we just assume - * that the UPS is just taking a nap. ;) - */ - poll_fail++; - upsdebugx(2, "Poll failure [%d].", poll_fail); -#ifndef WIN32 /*FIXME */ - ser_comm_fail("No status from UPS."); -#endif - - if (poll_fail >= MAX_POLL_FAILURES) { - upsdebugx(2, "Too many poll failures, data is stale."); - dstate_datastale(); - } - - return; - } - - poll_fail = 0; -#ifndef WIN32 /*FIXME*/ - ser_comm_good(); -#endif - - dstate_setinfo("input.voltage", "%.1f", query.ivolt); - dstate_setinfo("input.voltage.fault", "%.1f", query.fvolt); - dstate_setinfo("output.voltage", "%.1f", query.ovolt); - dstate_setinfo("ups.load", "%.1f", query.load); - dstate_setinfo("input.frequency", "%.1f", query.freq); - - /* - * The battery voltage multiplier should only be applied to battery.voltage - * in order not to break the charge calculation (that uses the 'raw' value - * that is reported by the UPS). - */ - dstate_setinfo("battery.voltage", "%.2f", battvolt_mult * query.battvolt); - - if (query.temp > 0.01) { - dstate_setinfo("ups.temperature", "%.1f", query.temp); - } - - charge = get_battery_charge(query.battvolt); - if (charge >= 0) { - dstate_setinfo("battery.charge", "%.1f", charge); - - upsdebugx(2, "Calculated battery charge: %.1f%%", charge); - } - - dstate_setinfo("ups.beeper.status", query.flags[FL_BEEPER_ON] == '1' ? "enabled" : "disabled"); - - status_init(); - - /* - * Some models, when OFF, never change to on-battery status when - * line power is unavailable. To get around this, we also look at - * the input voltage level here. - */ - if (query.flags[FL_ON_BATT] == '1' || query.ivolt < RESIDUAL_VOLTAGE) { - status_set("OB"); - } else { - status_set("OL"); - - if (query.flags[FL_BOOST_TRIM] == '1') { - if (query.ivolt < query.ovolt) { - status_set("BOOST"); - } else if (query.ivolt > query.ovolt) { - status_set("TRIM"); - } else { - status_set("BYPASS"); - } - } - - /* Update minimum and maximum input voltage levels too */ - if (query.ivolt < ivolt_min) { - ivolt_min = query.ivolt; - } - - if (query.ivolt > ivolt_max) { - ivolt_max = query.ivolt; - } - - dstate_setinfo("input.voltage.minimum", "%.1f", ivolt_min); - dstate_setinfo("input.voltage.maximum", "%.1f", ivolt_max); - } - - /* - * If "lowbatt > 0", it becomes a "soft" low battery level - * and the hardware flag "FL_LOW_BATT" is always ignored. - */ - if ((lowbatt <= 0 && query.flags[FL_LOW_BATT] == '1') || - (lowbatt > 0 && charge < lowbatt)) { - status_set("LB"); - } - - if (query.flags[FL_BATT_TEST] == '1') { - status_set("CAL"); - } - - if (query.flags[FL_LOAD_OFF] == '1' && !ignore_off) { - status_set("OFF"); - } - - alarm_init(); - - if (query.flags[FL_FAILED] == '1') { - alarm_set("Internal UPS fault!"); - } - - alarm_commit(); - - status_commit(); - - dstate_dataok(); -} - - -void upsdrv_shutdown(void) -{ - int s_wait = getval("offdelay") ? CLAMP(atoi(getval("offdelay")), 0, MAX_SHUTDOWN_DELAY) : shutdown_delay; - int r_wait = getval("ondelay") ? CLAMP(atoi(getval("ondelay")), 0, MAX_START_DELAY) : start_delay; - - upslogx(LOG_INFO, "Shutting down UPS."); -#ifndef WIN32 /*FIXME*/ - ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); - ser_send_pace(upsfd, send_pace, "S%02dR%04d%c", s_wait, r_wait, ENDCHAR); -#endif -} - - -int instcmd(const char *cmdname, const char *extra) -{ -#ifndef WIN32 - char buffer[RECV_BUFFER_LEN]; - - /* - * Some commands are always supported by every UPS implementing - * the megatec protocol, but others may or may not be supported. - * Unsupported commands are echoed back without ENDCHAR. - */ - - if (strcasecmp(cmdname, "test.battery.start.deep") == 0) { - ser_flush_io(upsfd); - ser_send_pace(upsfd, send_pace, "TL%c", ENDCHAR); - usleep(READ_PACE); - - if (ser_get_line(upsfd, buffer, 2 + 1, '\0', IGNCHARS, READ_TIMEOUT, 0) > 0) { - upslogx(LOG_NOTICE, "test.battery.start.deep not supported by UPS hardware."); - } else { - upslogx(LOG_INFO, "Deep battery test started."); - } - - return STAT_INSTCMD_HANDLED; - } - - if (strcasecmp(cmdname, "test.battery.start") == 0) { - ser_flush_io(upsfd); - ser_send_pace(upsfd, send_pace, "T%c", ENDCHAR); - usleep(READ_PACE); - - if (ser_get_line(upsfd, buffer, 1 + 1, '\0', IGNCHARS, READ_TIMEOUT, 0) > 0) { - upslogx(LOG_NOTICE, "test.battery.start not supported by UPS hardware."); - } else { - upslogx(LOG_INFO, "Battery test started."); - } - - return STAT_INSTCMD_HANDLED; - } - - if (strcasecmp(cmdname, "test.battery.stop") == 0) { - ser_flush_io(upsfd); - ser_send_pace(upsfd, send_pace, "CT%c", ENDCHAR); - usleep(READ_PACE); - - if (ser_get_line(upsfd, buffer, 2 + 1, '\0', IGNCHARS, READ_TIMEOUT, 0) > 0) { - upslogx(LOG_NOTICE, "test.battery.stop not supported by UPS hardware."); - } else { - upslogx(LOG_INFO, "Battery test stopped."); - } - - return STAT_INSTCMD_HANDLED; - } - - if (strcasecmp(cmdname, "shutdown.return") == 0) { - ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); - watchdog_enabled = 0; - - ser_send_pace(upsfd, send_pace, "S%02dR%04d%c", shutdown_delay, start_delay, ENDCHAR); - - upslogx(LOG_INFO, "Shutdown (return) initiated."); - - return STAT_INSTCMD_HANDLED; - } - - if (strcasecmp(cmdname, "shutdown.stayoff") == 0) { - ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); - watchdog_enabled = 0; - - ser_flush_io(upsfd); - ser_send_pace(upsfd, send_pace, "S%02d%c", shutdown_delay, ENDCHAR); - usleep(READ_PACE); - - if (ser_get_line(upsfd, buffer, 3 + 1, '\0', IGNCHARS, READ_TIMEOUT, 0) > 0) { - ser_send_pace(upsfd, send_pace, "S%02dR9999%c", shutdown_delay, ENDCHAR); - upslogx(LOG_NOTICE, "UPS refuses to turn the load off indefinitely. Will turn off for 9999 minutes instead."); - } - - upslogx(LOG_INFO, "Shutdown (stayoff) initiated."); - - return STAT_INSTCMD_HANDLED; - } - - if (strcasecmp(cmdname, "shutdown.stop") == 0) { - ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); - watchdog_enabled = 0; - - upslogx(LOG_INFO, "Shutdown canceled."); - - return STAT_INSTCMD_HANDLED; - } - - if (strcasecmp(cmdname, "load.on") == 0) { - ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); - watchdog_enabled = 0; - - upslogx(LOG_INFO, "Turning the load on."); - - return STAT_INSTCMD_HANDLED; - } - - if (strcasecmp(cmdname, "load.off") == 0) { - ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); - watchdog_enabled = 0; - - ser_flush_io(upsfd); - ser_send_pace(upsfd, send_pace, "S00%c", ENDCHAR); - usleep(READ_PACE); - - if (ser_get_line(upsfd, buffer, 3 + 1, '\0', IGNCHARS, READ_TIMEOUT, 0) > 0) { - ser_send_pace(upsfd, send_pace, "S00R9999%c", ENDCHAR); - upslogx(LOG_NOTICE, "UPS refuses to turn the load off indefinitely. Will turn off for 9999 minutes instead."); - } - - upslogx(LOG_INFO, "Turning the load off."); - - return STAT_INSTCMD_HANDLED; - } - - if (strcasecmp(cmdname, "reset.input.minmax") == 0) { - ivolt_min = INT_MAX; - ivolt_max = -1; - - dstate_setinfo("input.voltage.minimum", "%.1f", ivolt_min); - dstate_setinfo("input.voltage.maximum", "%.1f", ivolt_max); - - upslogx(LOG_INFO, "Resetting minimum and maximum input voltage values."); - - return STAT_INSTCMD_HANDLED; - } - - if (strcasecmp(cmdname, "reset.watchdog") == 0) { - ser_send_pace(upsfd, send_pace, "C%c", ENDCHAR); - ser_send_pace(upsfd, send_pace, "S%02dR0001%c", watchdog_timeout, ENDCHAR); - - if (watchdog_enabled) { - upsdebugx(2, "Resetting the UPS watchdog."); - } else { - watchdog_enabled = 1; - upslogx(LOG_INFO, "UPS watchdog started."); - } - - return STAT_INSTCMD_HANDLED; - } - - if (strcasecmp(cmdname, "beeper.toggle") == 0) { - ser_flush_io(upsfd); - ser_send_pace(upsfd, send_pace, "Q%c", ENDCHAR); - usleep(READ_PACE); - - if (ser_get_line(upsfd, buffer, 1 + 1, '\0', IGNCHARS, READ_TIMEOUT, 0) > 0) { - upslogx(LOG_NOTICE, "beeper.toggle not supported by UPS hardware."); - } else { - upslogx(LOG_INFO, "Toggling UPS beeper."); - } - - return STAT_INSTCMD_HANDLED; - } - - upslogx(LOG_NOTICE, "instcmd: unknown command [%s]", cmdname); -#endif - return STAT_INSTCMD_UNKNOWN; -} - - -int setvar(const char *varname, const char *val) -{ - return STAT_SET_UNKNOWN; -} - - -void upsdrv_help(void) -{ -} - - -void upsdrv_makevartable(void) -{ - addvar(VAR_VALUE, "mfr", "Manufacturer name"); - addvar(VAR_VALUE, "model", "Model name"); - addvar(VAR_VALUE, "serial", "UPS serial number"); - addvar(VAR_VALUE, "lowbatt", "Low battery level (%)"); - addvar(VAR_VALUE, "ondelay", "Min. delay before UPS startup (minutes)"); - addvar(VAR_VALUE, "offdelay", "Delay before UPS shutdown (minutes)"); - addvar(VAR_VALUE, "battvolts", "Battery voltages (empty:full)"); - addvar(VAR_VALUE, "battvoltmult", "Battery voltage multiplier"); - addvar(VAR_FLAG , "ignoreoff", "Ignore the OFF status from the UPS"); - addvar(VAR_VALUE, "sendpace", "Interval between command chars (msec)"); - addvar(VAR_VALUE, "dtr", "Serial DTR line state (0/1)"); - addvar(VAR_VALUE, "rts", "Serial RTS line state (0/1)"); - - megatec_subdrv_makevartable(); -} - - -void upsdrv_initups(void) -{ -#ifndef WIN32 /*FIXME*/ - upsfd = ser_open(device_path); - ser_set_speed(upsfd, device_path, B2400); - - if (getval("dtr")) { - upsdebugx(2, "Parameter [dtr]: [%s]", getval("dtr")); - - if (strcmp(getval("dtr"), "0") != 0 && strcmp(getval("dtr"), "1") != 0) { - fatalx(EXIT_FAILURE, "Error in \"dtr\" parameter."); - } - - state_dtr = atoi(getval("dtr")); - } - - if (getval("rts")) { - upsdebugx(2, "Parameter [rts]: [%s]", getval("rts")); - - if (strcmp(getval("rts"), "0") != 0 && strcmp(getval("rts"), "1") != 0) { - fatalx(EXIT_FAILURE, "Error in \"rts\" parameter."); - } - - state_rts = atoi(getval("rts")); - } - - upsdebugx(2, "DTR=%d, RTS=%d", state_dtr, state_rts); - - ser_set_dtr(upsfd, state_dtr); - ser_set_rts(upsfd, state_rts); -#endif -} - - -void upsdrv_cleanup(void) -{ -#ifndef WIN32 - ser_set_dtr(upsfd, 0); - ser_close(upsfd, device_path); -#endif -} - - -/* EOF - megatec.c */ diff --git a/drivers/megatec_usb.c b/drivers/megatec_usb.c deleted file mode 100644 index 7f4ef4e5cd..0000000000 --- a/drivers/megatec_usb.c +++ /dev/null @@ -1,663 +0,0 @@ -/* megatec_usb.c - usb communication layer for Megatec protocol based UPSes - * - * Copyright (C) 2006 Andrey Lelikov - * Copyright (C) 2007 Alexander Gordeev - * Copyright (C) 2007 Jon Gough - * - * 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 - */ - -#include "main.h" -#include "megatec.h" -#include "libusb.h" -#ifndef WIN32 /*FIXME*/ -#include "serial.h" -#else -/*FIXME : is this define correct ?*/ -#define speed_t int -#endif -#include "usb-common.h" - -#include -#include -#include -#include - -#define SUB_DRIVER_VERSION "0.10" -#define SUB_DRIVER_NAME "Serial-over-USB transport layer" - -/* driver description structure */ -upsdrv_info_t megatec_subdrv_info = { - SUB_DRIVER_NAME, - SUB_DRIVER_VERSION, - "Andrey Lelikov \n" \ - "Alexander Gordeev \n" \ - "Jon Gough ", - DRV_STABLE, - { NULL } -}; - -/* - This is a communication driver for "USB HID" UPS-es which use proprietary -usb-to-serial converter and speak megatec protocol. Usually these are cheap -models and usb-to-serial converter is a huge oem hack - HID tables are bogus, -device has no UPS reports, etc. - This driver has a table of all known devices which has pointers to device- -specific communication functions (namely send a string to UPS and read a string -from it). Driver takes care of detection, opening a usb device, string -formatting etc. So in order to add support for another usb-to-serial device one -only needs to implement device-specific get/set functions and add an entry into -KnownDevices table. - -*/ - -static usb_communication_subdriver_t *usb = &usb_subdriver; -static usb_dev_handle *udev = NULL; -static USBDevice_t usbdevice; -static USBDeviceMatcher_t *reopen_matcher = NULL; -static USBDeviceMatcher_t *regex_matcher = NULL; - -static int (*get_data)(char *buffer, int buffer_size) = NULL; -static int (*set_data)(const char *str) = NULL; - -/* agiler-old subdriver definition */ -static int get_data_agiler_old(char *buffer, int buffer_size); -static int set_data_agiler_old(const char *str); - -static void *agiler_old_subdriver(void) -{ - get_data = &get_data_agiler_old; - set_data = &set_data_agiler_old; - return NULL; -} - -/* agiler subdriver definition */ -static int get_data_agiler(char *buffer, int buffer_size); -static int set_data_agiler(const char *str); - -static void *agiler_subdriver(void) -{ - get_data = &get_data_agiler; - set_data = &set_data_agiler; - return NULL; -} - -/* Phoenixtec Power Co subdriver definition */ -static int get_data_phoenix(char *buffer, int buffer_size); -static int set_data_phoenix(const char *str); - -static void *phoenix_subdriver(void) -{ - get_data = &get_data_phoenix; - set_data = &set_data_phoenix; - return NULL; -} - -/* krauler (ablerex) subdriver definition */ -static int get_data_krauler(char *buffer, int buffer_size); -static int set_data_krauler(const char *str); - -static void *krauler_subdriver(void) -{ - get_data = &get_data_krauler; - set_data = &set_data_krauler; - return NULL; -} - -/* list of subdrivers for manual overrides */ -static const struct { - const char *name; - void *(*handler)(void); -} subdriver[] = { - { "agiler-old", &agiler_old_subdriver }, - { "agiler", &agiler_subdriver }, - { "phoenix", &phoenix_subdriver }, - { "krauler", &krauler_subdriver }, - /* end of list */ - { NULL } -}; - -/* list of all known devices */ -static usb_device_id_t megatec_usb_id[] = { - /* Agiler UPS */ - { USB_DEVICE(0x05b8, 0x0000), &agiler_subdriver}, - /* Krauler UP-M500VA */ - { USB_DEVICE(0x0001, 0x0000), &krauler_subdriver}, - /* Ablerex 625L USB */ - { USB_DEVICE(0xffff, 0x0000), &krauler_subdriver}, - /* Belkin F6C1200-UNV */ - { USB_DEVICE(0x0665, 0x5161), &phoenix_subdriver}, - /* Mustek Powermust */ - { USB_DEVICE(0x06da, 0x0003), &phoenix_subdriver}, - /* Unitek Alpha 1200Sx */ - { USB_DEVICE(0x0f03, 0x0001), &phoenix_subdriver}, - /* end of list */ - {-1, -1, NULL} -}; - -static int subdriver_match_func(USBDevice_t *d, void *privdata) -{ - if(getval("subdriver")) - return 1; - - switch (is_usb_device_supported(megatec_usb_id, d->VendorID, d->ProductID)) - { - case SUPPORTED: - return 1; - - case POSSIBLY_SUPPORTED: - case NOT_SUPPORTED: - default: - return 0; - } -} - -static USBDeviceMatcher_t subdriver_matcher = { - &subdriver_match_func, - NULL, - NULL -}; - -static void usb_open_error(const char *port) -{ - fatalx(EXIT_FAILURE, -"No supported devices found. Please check your device availability with 'lsusb'\n" -"and make sure you have an up-to-date version of NUT. If this does not help,\n" -"try running the driver with at least 'vendorid' and 'subdriver' options\n" -"specified. Please refer to the man page for details about these options\n" -"(man 8 megatec_usb).\n" -"Please report your results to the NUT user's mailing list\n" -".\n" - ); -} - -/* FIXME: Fix "serial" variable (which conflicts with "serial" variable in megatec.c) */ -void megatec_subdrv_makevartable() -{ - addvar(VAR_VALUE, "vendor", "Regular expression to match UPS Manufacturer string"); - addvar(VAR_VALUE, "product", "Regular expression to match UPS Product string"); - /* addvar(VAR_VALUE, "serial", "Regular expression to match UPS Serial number"); */ - addvar(VAR_VALUE, "vendorid", "Regular expression to match UPS Manufacturer numerical ID (4 digits hexadecimal)"); - addvar(VAR_VALUE, "productid", "Regular expression to match UPS Product numerical ID (4 digits hexadecimal)"); - addvar(VAR_VALUE, "bus", "Regular expression to match USB bus name"); - addvar(VAR_VALUE, "subdriver", "Serial-over-USB subdriver selection"); -} - -int ser_open(const char *port) -{ - char *regex_array[6]; - int ret; - - char *subdrv = getval("subdriver"); - char *vid = getval("vendorid"); - char *pid = getval("productid"); - char *vend = getval("vendor"); - char *prod = getval("product"); - - /* pick up the subdriver name if set explicitly */ - if(subdrv) - { - int i; - - if(!vid && !pid && !vend && !prod) - { - upslogx(LOG_WARNING, "It's unsafe to select a subdriver but not specify device!\n" - "Please set some of \"vendor\", \"product\", \"vendorid\", \"productid\"" - " variables.\n"); - } - - for (i = 0; subdriver[i].name; i++) - { - if (!strcasecmp(subdrv, subdriver[i].name)) - { - (*subdriver[i].handler)(); - break; - } - } - - if(!subdriver[i].name) - fatalx(EXIT_FAILURE, "No subdrivers named \"%s\" found!", subdrv); - } - - /* FIXME: fix "serial" variable */ - /* process the UPS selection options */ - regex_array[0] = vid; - regex_array[1] = pid; - regex_array[2] = vend; - regex_array[3] = prod; - regex_array[4] = NULL; /* getval("serial"); */ - regex_array[5] = getval("bus"); - - ret = USBNewRegexMatcher(®ex_matcher, regex_array, REG_ICASE | REG_EXTENDED); - if (ret == -1) { - fatal_with_errno(EXIT_FAILURE, "USBNewRegexMatcher"); - } else if (ret) { - fatalx(EXIT_FAILURE, "invalid regular expression: %s", regex_array[ret]); - } - /* link the matchers */ - regex_matcher->next = &subdriver_matcher; - - ret = usb->open(&udev, &usbdevice, regex_matcher, NULL); - if (ret < 0) - usb_open_error(port); - - /* create a new matcher for later reopening */ - ret = USBNewExactMatcher(&reopen_matcher, &usbdevice); - if (ret) { - fatal_with_errno(EXIT_FAILURE, "USBNewExactMatcher"); - } - /* link the matchers */ - reopen_matcher->next = regex_matcher; - - /* NOTE: This is here until ser_flush_io() is used in megatec.c */ -#ifndef WIN32 /*FIXME*/ - ser_flush_io(0); -#endif - - return 0; -} - -int ser_set_speed(int fd, const char *port, speed_t speed) -{ - return 0; -} - -int ser_set_dtr(int fd, int state) -{ - return 0; -} - -int ser_set_rts(int fd, int state) -{ - return 0; -} - -int ser_flush_io(int fd) -{ - char flush_buf[256]; - int i; - - /* flush input buffers */ - for (i = 0; i < 10; i++) { - if ((*get_data)(flush_buf, sizeof(flush_buf)) < 1) - break; - } - - return 0; -} - -void ser_comm_fail(const char *fmt, ...) -{ -} - -void ser_comm_good(void) -{ -} - -int ser_close(int fd, const char *port) -{ - usb->close(udev); - USBFreeExactMatcher(reopen_matcher); - USBFreeRegexMatcher(regex_matcher); - return 0; -} - -/*!@brief Try to reconnect once. - * @return 1 if reconnection was successful. - */ -static int reconnect_ups(void) -{ - int ret; - - upsdebugx(2, "=================================================="); - upsdebugx(2, "= device has been disconnected, try to reconnect ="); - upsdebugx(2, "=================================================="); - - usb->close(udev); - - ret = usb->open(&udev, &usbdevice, reopen_matcher, NULL); - if (ret < 1) { - upslogx(LOG_INFO, "Reconnecting to UPS failed; will retry later..."); - udev = NULL; - return 0; - } else - upslogx(LOG_NOTICE, "Successfully reconnected"); - - return ret; -} - -/*!@brief Report a USB comm failure, and reconnect if necessary - * - * @param[in] res Result code from libusb/libhid call - * @param[in] msg Error message to display - */ -void usb_comm_fail(int res, const char *msg) -{ - switch(res) { - case -EBUSY: - upslogx(LOG_WARNING, "%s: Device claimed by another process", msg); - fatalx(EXIT_FAILURE, "Terminating: EBUSY"); - - default: - upslogx(LOG_WARNING, "%s: Device detached? (error %d: %s)", msg, res, usb_strerror()); - - if(reconnect_ups()) { - /* upsdrv_initinfo(); */ - } - break; - } -} - -int ser_send_pace(int fd, unsigned long d_usec, const char *fmt, ...) -{ - char buf[128]; - size_t len; - va_list ap; - int ret; - - if ((udev == NULL) && (! reconnect_ups())) - return -1; - - va_start(ap, fmt); - - len = vsnprintf(buf, sizeof(buf), fmt, ap); - - va_end(ap); - - if ((len < 1) || (len >= (int) sizeof(buf))) { - upslogx(LOG_WARNING, "ser_send_pace: vsnprintf needed more than %d bytes", (int) sizeof(buf)); - buf[sizeof(buf) - 1] = 0; - } - - ret = (*set_data)(buf); - if(ret < 0) { - usb_comm_fail(ret, "ser_send_pace"); - } - - return ret; -} - -int ser_get_line(int fd, void *buf, size_t buflen, char endchar, const char *ignset, long d_sec, long d_usec) -{ - int len; - char *src, *dst, c; - - if ((udev == NULL) && (! reconnect_ups())) - return -1; - - len = (*get_data)((char *)buf, buflen); - if (len < 0) { - usb_comm_fail(len, "ser_get_line"); - return len; - } - - dst = (char *)buf; - - for (src = (char *)buf; src != ((char *)buf + len); src++) { - c = *src; - - if (c == endchar) - break; - - if ((c == 0) || ((ignset != NULL) && (strchr(ignset, c) != NULL))) - continue; - - *(dst++) = c; - } - - /* terminate string if we have space */ - if (dst != ((char *)buf + len)) - *dst = 0; - - return (dst - (char *)buf); -} - -/************** minidrivers go after this point **************************/ - -/* - agiler-old subdriver -*/ -/* Protocol was reverse-engineered from Windows driver - HID tables are completely bogus - Data is transferred out as one 8-byte packet with report ID 0 - Data comes in as 6 8-byte reports per line , padded with zeroes - All constants are hardcoded in windows driver -*/ - -#define AGILER_REPORT_SIZE 8 -#define AGILER_REPORT_COUNT 6 -#define AGILER_TIMEOUT 5000 - -static int set_data_agiler_old(const char *str) -{ - unsigned char report_buf[AGILER_REPORT_SIZE]; - - if (strlen(str) > AGILER_REPORT_SIZE) { - upslogx(LOG_ERR, "set_data_agiler: output string too large"); - return -1; - } - - memset(report_buf, 0, sizeof(report_buf)); - memcpy(report_buf, str, strlen(str)); - - return usb->set_report(udev, 0, report_buf, sizeof(report_buf)); -} - -static int get_data_agiler_old(char *buffer, int buffer_size) -{ - int i, len; - char buf[AGILER_REPORT_SIZE * AGILER_REPORT_COUNT + 1]; - - memset(buf, 0, sizeof(buf)); - - for (i = 0; i < AGILER_REPORT_COUNT; i++) { - len = usb->get_interrupt(udev, (unsigned char *) buf + i * AGILER_REPORT_SIZE, AGILER_REPORT_SIZE, AGILER_TIMEOUT); - if (len != AGILER_REPORT_SIZE) { - if (len < 0) - len = 0; - buf[i * AGILER_REPORT_SIZE + len] = 0; - upsdebug_hex(5, "get_data_agiler: raw dump", buf, i * AGILER_REPORT_SIZE + len); - break; - } - } - - len = strlen(buf); - - if (len > buffer_size) { - upslogx(LOG_ERR, "get_data_agiler: input buffer too small"); - len = buffer_size; - } - - memcpy(buffer, buf, len); - return len; -} - - -/* - Agiler serial-to-usb device. -*/ - -static int set_data_agiler(const char *str) -{ - return usb->set_report(udev, 0, (unsigned char *)str, strlen(str)); -} - -static int get_data_agiler(char *buffer, int buffer_size) -{ - return usb->get_interrupt(udev, (unsigned char *)buffer, buffer_size, 1000); -} - - -/* - Phoenixtec Power Co serial-to-usb device. -*/ -static char phoenix_buffer[32]; - -static int set_data_phoenix(const char *str) -{ - unsigned int count; - - memset(phoenix_buffer, '\0', sizeof(phoenix_buffer)); - - snprintf(phoenix_buffer, sizeof(phoenix_buffer), "%s", str); - - if (!strcmp(phoenix_buffer, "I\r") || !strcmp(phoenix_buffer, "C\r")) { - /* Ignore these, since they seem to lock up the connection */ - return strlen(phoenix_buffer); - } - - for (count = 0; count < strlen(phoenix_buffer); count += 8) { - - if (usb->set_report(udev, 0, (unsigned char *)(phoenix_buffer + count), 8) < 1) { - return -1; - } - } - - return strlen(phoenix_buffer); -} - -static int get_data_phoenix(char *buffer, int buffer_size) -{ - int count; - - memset(buffer, '\0', buffer_size); - - if (!strcmp(phoenix_buffer, "I\r") || !strcmp(phoenix_buffer, "C\r")) { - /* Echo back unsupported commands */ - snprintf(buffer, buffer_size, "%s", phoenix_buffer); - return strlen(buffer); - } - - for (count = 8; count <= buffer_size; count += 8) { - - /* Read data in 8-byte chunks, break on a timeout */ - if (usb->get_interrupt(udev, (unsigned char *)&buffer[count-8], 8, 1000) < 0) { - return count-8; - } - - upsdebugx(3, "get_data_phoenix: got so far [%s]", buffer); - upsdebug_hex(4, "get_data_phoenix", (unsigned char *)buffer, count); - } - - upsdebugx(3, "get_data_phoenix: buffer too small"); - return -1; -} - - -/* - Krauler serial-over-usb device. - - Protocol was reverse-engineered using Windows driver. -*/ - -#define KRAULER_MAX_ATTEMPTS_Q1 4 -#define KRAULER_MAX_ATTEMPTS_F 31 -#define KRAULER_MAX_ATTEMPTS_I 15 - -typedef struct { - char *str; /* Megatec command */ - int index; /* Krauler string index for this command */ - char prefix; /* character to replace the first byte in reply */ - int retry; /* number of retries (1 is typically for instant commands) */ -} krauler_command_t; - -static krauler_command_t krauler_command_lst[] = { - { "T\r", 0x04, '\0', 1 }, - { "TL\r", 0x05, '\0', 1 }, - { "Q\r", 0x07, '\0', 1 }, - { "C\r", 0x0b, '\0', 1 }, - { "CT\r", 0x0b, '\0', 1 }, - { "Q1\r", 0x03, '(', KRAULER_MAX_ATTEMPTS_Q1 }, - { "I\r", 0x0c, '#', KRAULER_MAX_ATTEMPTS_I }, - { "F\r", 0x0d, '#', KRAULER_MAX_ATTEMPTS_F }, - { NULL, 0, '\0', 0 } -}; - -/* -Still not implemented: - 0x6 T (don't know how to pass the parameter) - 0x68 and 0x69 both cause shutdown after an undefined interval -*/ - - -/* an intermediate buffer for 1 command's output */ -static char krauler_line_buf[255]; -static char krauler_line_buf_len = 0; - -static int set_data_krauler(const char *str) -{ - krauler_command_t *command; - int retval = strlen(str); - - for (command = krauler_command_lst; command->str != NULL; command++) { - int retry; - - if (strcmp(str, command->str)) { - continue; - } - - upsdebugx(3, "set_data_krauler: index [%02x]", command->index); - - krauler_line_buf_len = 0; - for (retry = 0; retry < command->retry; retry++) { - int res; - - res = usb->get_string(udev, command->index, krauler_line_buf, sizeof(krauler_line_buf)); - if (res < 1) { - /* TODO: handle_error(res) */ - upsdebugx(2, "set_data_krauler: connection failure"); - return res; - } - - /* "UPS No Ack" has a special meaning */ - if (!strcmp(krauler_line_buf, "UPS No Ack")) { - upsdebugx(4, "set_data_krauler: retry [%s]", krauler_line_buf); - continue; - } - - /* Replace the first byte of what we received with the correct one */ - if(command->prefix) - krauler_line_buf[0] = command->prefix; - - krauler_line_buf_len = res; - return retval; - } - - if(command->retry > 1 && retry == command->retry) - upsdebugx(2, "set_data_krauler: too many attempts, the UPS is probably switched off!"); - - return retval; - } - - upsdebugx(4, "set_data_krauler: unknown command [%s]", str); - - /* echo the unknown command back */ - strcpy(krauler_line_buf, str); - krauler_line_buf_len = retval; - - return retval; -} - -static int get_data_krauler(char *buffer, int buffer_size) -{ - int retrieved = (buffer_size < krauler_line_buf_len) ? buffer_size : krauler_line_buf_len; - int left = krauler_line_buf_len - retrieved; - - memcpy(buffer, krauler_line_buf, retrieved); - memmove(krauler_line_buf, krauler_line_buf + retrieved, left); - krauler_line_buf_len = left; - - return retrieved; -} diff --git a/drivers/serial.h b/drivers/serial.h index 5c8bebcdd0..5c3ccc141f 100644 --- a/drivers/serial.h +++ b/drivers/serial.h @@ -11,7 +11,6 @@ #ifndef WIN32 # include #else -#include #include "common.h" #include "wincompat.h" #endif diff --git a/drivers/upsdrvctl.c b/drivers/upsdrvctl.c index 586f12effa..f2cc4e34cc 100644 --- a/drivers/upsdrvctl.c +++ b/drivers/upsdrvctl.c @@ -260,7 +260,7 @@ static void forkexec(char *const argv[], const ups_t *ups) i++; } ret = CreateProcess( - prog, + argv[0], commandline, NULL, NULL, diff --git a/include/common.h b/include/common.h index 71f9213164..5690cfb537 100644 --- a/include/common.h +++ b/include/common.h @@ -39,7 +39,13 @@ #ifndef WIN32 #include #else +/* We need windows XP or above (for getaddrinfo and freeaddrinfo) */ +#ifndef WINVER +#define WINVER 0x0501 +#endif #include +#include +#include #endif #include #include diff --git a/include/nut_stdint.h b/include/nut_stdint.h deleted file mode 100644 index 35292ee501..0000000000 --- a/include/nut_stdint.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * nut_stdint.h - Network UPS Tools sets of integer types having specified widths - * - * Copyright (C) 2011 Arjen de Korte - * - * 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 NUT_STDINT_H_SEEN -#define NUT_STDINT_H_SEEN - -#include "config.h" - -#if defined HAVE_INTTYPES_H -# include -#endif - -#if defined HAVE_STDINT_H -# include -#endif - -#endif /* NUT_STDINT_H_SEEN */ diff --git a/include/wincompat.h b/include/wincompat.h index 61555ddb01..506e13ff03 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -27,6 +27,10 @@ #include "common.h" +#define sleep(n) Sleep(1000 * n) + +/* Network compatibility */ + /* This is conditional because read/write are generic in unix, and this will make them network specific */ #ifdef W32_NETWORK_CALL_OVERRIDE #define close(h) sktclose(h) @@ -44,10 +48,29 @@ int sktread(int fh, char *buf, int size); int sktwrite(int fh, char *buf, int size); int sktclose(int fh); +const char* inet_ntop(int af, const void* src, char* dst, int cnt); + +/* from the MSDN getaddrinfo documentation : */ +#define EAI_AGAIN WSATRY_AGAIN +#define EAI_BADFLAGS WSAEINVAL +#define EAI_FAIL WSANO_RECOVERY +#define EAI_FAMILY WSAEAFNOSUPPORT +#define EAI_MEMORY WSA_NOT_ENOUGH_MEMORY +#define EAI_NONAME WSAHOST_NOT_FOUND +#define EAI_SERVICE WSATYPE_NOT_FOUND +#define EAI_SOCKTYPE WSAESOCKTNOSUPPORT +/* not from MS docs : */ +#define EAI_SYSTEM WSANO_RECOVERY +#define EAFNOSUPPORT WSAEAFNOSUPPORT + +/* syslog compatibility */ + void syslog(int priority, const char *fmt, ...); extern const char * EventLogName; +/* serial function compatibility */ + typedef unsigned char cc_t; typedef unsigned int speed_t; typedef unsigned int tcflag_t; diff --git a/nut-autoreconf b/nut-autoreconf new file mode 100755 index 0000000000..eee95cd8d2 --- /dev/null +++ b/nut-autoreconf @@ -0,0 +1,35 @@ +#! /bin/sh +# +# Autoreconf wrapper script to ensure that the source tree is +# in a buildable state + +# re-generate files needed by configure, and created otherwise at 'dist' time +if [ ! -f scripts/augeas/nutupsconf.aug.in ] +then + if python -c pass; then + echo "Regenerating Augeas ups.conf lens..." + cd scripts/augeas && ./gen-nutupsconf-aug.py && cd ../.. + else + echo "----------------------------------------------------------------------" + echo "Warning: Python is not available." + echo "Skipping Augeas ups.conf lens regeneration." + echo "----------------------------------------------------------------------" + fi +fi + +if [ ! -f scripts/hal/ups-nut-device.fdi.in ] || [ ! -f scripts/udev/nut-usbups.rules.in ] +then + if perl -e 1; then + echo "Regenerating the USB helper files..." + cd tools && ./nut-usbinfo.pl && cd .. + else + echo "----------------------------------------------------------------------" + echo "Error: Perl is not available." + echo "Skipping the USB helper files regeneration." + echo "----------------------------------------------------------------------" + fi +fi + +# now we can safely call autoreconf +echo "Calling autoreconf..." +autoreconf -i diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index c61fe2b4d6..ee92fd25c4 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -19,7 +19,6 @@ */ #ifdef WIN32 -#include #include "common.h" #include "config.h" #include "winevent.h" diff --git a/scripts/upower/95-upower-hid.rules b/scripts/upower/95-upower-hid.rules index 8af641525e..512f0d7981 100644 --- a/scripts/upower/95-upower-hid.rules +++ b/scripts/upower/95-upower-hid.rules @@ -34,12 +34,15 @@ ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1f09", ENV{UPOWER_BATTERY_TYPE}="ups ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1f0a", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe0", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe1", ENV{UPOWER_BATTERY_TYPE}="ups" +<<<<<<< HEAD ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe2", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe3", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe5", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe6", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe7", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe8", ENV{UPOWER_BATTERY_TYPE}="ups" +======= +>>>>>>> Merge from the trunk -> porting the IPv6 code to Windows # Eaton ATTRS{idVendor}=="0463", ATTRS{idProduct}=="0001", ENV{UPOWER_BATTERY_TYPE}="ups" @@ -103,7 +106,10 @@ ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3012", ENV{UPOWER_BATTERY_TYPE}="ups ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3013", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3014", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3015", ENV{UPOWER_BATTERY_TYPE}="ups" +<<<<<<< HEAD ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3016", ENV{UPOWER_BATTERY_TYPE}="ups" +======= +>>>>>>> Merge from the trunk -> porting the IPv6 code to Windows ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="4001", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="4002", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="4003", ENV{UPOWER_BATTERY_TYPE}="ups" diff --git a/server/conf.c b/server/conf.c index 306205b1a6..31e6241035 100644 --- a/server/conf.c +++ b/server/conf.c @@ -74,14 +74,13 @@ static void ups_create(const char *fn, const char *name, const char *desc) return; } #endif - - if (last == NULL) - firstups = temp; - else - last->next = temp; - temp->sock_fd = sstate_connect(temp); + /* preload this to the current time to avoid false staleness */ + time(&temp->last_heard); + + temp->next = firstups; + firstups = temp; num_ups++; } diff --git a/server/ssl.c b/server/ssl.c index 92c514c738..11083432b6 100644 --- a/server/ssl.c +++ b/server/ssl.c @@ -119,42 +119,52 @@ void net_starttls(ctype_t *client, int numarg, const char **arg) void ssl_init(void) { +#if OPENSSL_VERSION_NUMBER >= 0x10000000L + const SSL_METHOD *ssl_method; +#else + SSL_METHOD *ssl_method; +#endif if (!certfile) { return; } check_perms(certfile); - SSL_library_init(); SSL_load_error_strings(); - OpenSSL_add_ssl_algorithms(); + SSL_library_init(); - if ((ssl_ctx = SSL_CTX_new(TLSv1_server_method())) == NULL) { - fatal_with_errno(EXIT_FAILURE, "SSL_CTX_new"); + if ((ssl_method = TLSv1_server_method()) == NULL) { + ssl_debug(); + fatalx(EXIT_FAILURE, "TLSv1_server_method failed"); } - if (SSL_CTX_use_RSAPrivateKey_file(ssl_ctx, certfile, SSL_FILETYPE_PEM) != 1) { + if ((ssl_ctx = SSL_CTX_new(ssl_method)) == NULL) { ssl_debug(); - upslogx(LOG_ERR, "SSL_CTX_use_RSAPrivateKey_file(%s) failed", certfile); - return; + fatalx(EXIT_FAILURE, "SSL_CTX_new failed"); } if (SSL_CTX_use_certificate_chain_file(ssl_ctx, certfile) != 1) { - upslogx(LOG_ERR, "SSL_CTX_use_certificate_chain_file(%s) failed", certfile); - return; + ssl_debug(); + fatalx(EXIT_FAILURE, "SSL_CTX_use_certificate_chain_file(%s) failed", certfile); } - if (SSL_CTX_check_private_key(ssl_ctx) != 1) { - upslogx(LOG_ERR, "SSL_CTX_check_private_key(%s) failed", certfile); - return; + if (SSL_CTX_use_PrivateKey_file(ssl_ctx, certfile, SSL_FILETYPE_PEM) != 1) { + ssl_debug(); + fatalx(EXIT_FAILURE, "SSL_CTX_use_PrivateKey_file(%s) failed", certfile); } - SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, NULL); + if (SSL_CTX_check_private_key(ssl_ctx) != 1) { + ssl_debug(); + fatalx(EXIT_FAILURE, "SSL_CTX_check_private_key(%s) failed", certfile); + } if (SSL_CTX_set_cipher_list(ssl_ctx, "HIGH:@STRENGTH") != 1) { - fatalx(EXIT_FAILURE, "SSL_CTX_set_cipher_list"); + ssl_debug(); + fatalx(EXIT_FAILURE, "SSL_CTX_set_cipher_list failed"); } + SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, NULL); + ssl_initialized = 1; } diff --git a/server/sstate.c b/server/sstate.c index 0aae8ddcb6..bc7ab58e87 100644 --- a/server/sstate.c +++ b/server/sstate.c @@ -35,8 +35,6 @@ #ifndef WIN32 #include #include -#else -#include #endif static int parse_args(upstype_t *ups, int numargs, char **arg) diff --git a/server/upsd.c b/server/upsd.c index 4338d8c386..58ed3929df 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -33,7 +33,6 @@ #include #include #else -#include #include /* This override network system calls to adapt to Windows specificity */ #define W32_NETWORK_CALL_OVERRIDE @@ -194,83 +193,10 @@ void listen_add(const char *addr, const char *port) static void setuptcp(stype_t *server) { #ifdef WIN32 - WSADATA WSAdata; - WSAStartup(2,&WSAdata); + WSADATA WSAdata; + WSAStartup(2,&WSAdata); atexit((void(*)(void))WSACleanup); #endif - -#ifndef HAVE_IPV6 - struct hostent *host; - struct sockaddr_in sockin; - int res, one = 1; - - memset(&sockin, '\0', sizeof(sockin)); - host = gethostbyname(server->addr); -#ifndef WIN32 - - if (!host) { - struct in_addr listenaddr; - - if (!inet_aton(server->addr, &listenaddr)) { - fatal_with_errno(EXIT_FAILURE, "inet_aton"); - } - - host = gethostbyaddr(&listenaddr, sizeof(listenaddr), AF_INET); - - if (!host) { - fatal_with_errno(EXIT_FAILURE, "gethostbyaddr"); - } - } -#else - unsigned long numeric_addr; - numeric_addr = inet_addr(server->addr); - if ( numeric_addr == INADDR_NONE ) { - fatal_with_errno(EXIT_FAILURE, "inet_addr"); - } - sockin.sin_addr.s_addr = numeric_addr; - -#endif - if ((server->sock_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { - fatal_with_errno(EXIT_FAILURE, "socket"); - } - - res = setsockopt(server->sock_fd, SOL_SOCKET, SO_REUSEADDR, (void *) &one, sizeof(one)); - - if (res != 0) { - fatal_with_errno(EXIT_FAILURE, "setsockopt(SO_REUSEADDR)"); - } - - sockin.sin_family = AF_INET; - sockin.sin_port = htons(atoi(server->port)); - - memcpy(&sockin.sin_addr, host->h_addr, host->h_length); - - if (bind(server->sock_fd, (struct sockaddr *) &sockin, sizeof(sockin)) == -1) { - fatal_with_errno(EXIT_FAILURE, "Can't bind TCP port %s", server->port); - } - -#ifndef WIN32 - if ((res = fcntl(server->sock_fd, F_GETFL, 0)) == -1) { - fatal_with_errno(EXIT_FAILURE, "fcntl(get)"); - } - - if (fcntl(server->sock_fd, F_SETFL, res | O_NDELAY) == -1) { - fatal_with_errno(EXIT_FAILURE, "fcntl(set)"); - } -#else - server->Event = CreateEvent(NULL, /*Security,*/ - FALSE, /*auo-reset */ - FALSE, /*initial state*/ - NULL); /* no name */ - - /* Associate socket event to the socket via its Event object */ - WSAEventSelect( server->sock_fd, server->Event, FD_ACCEPT ); -#endif - - if (listen(server->sock_fd, 16)) { - fatal_with_errno(EXIT_FAILURE, "listen"); - } -#else struct addrinfo hints, *res, *ai; int v = 0, one = 1; @@ -307,7 +233,7 @@ static void setuptcp(stype_t *server) close(sock_fd); continue; } - +#ifndef WIN32 if ((v = fcntl(sock_fd, F_GETFL, 0)) == -1) { fatal_with_errno(EXIT_FAILURE, "setuptcp: fcntl(get)"); } @@ -315,7 +241,7 @@ static void setuptcp(stype_t *server) if (fcntl(sock_fd, F_SETFL, v | O_NDELAY) == -1) { fatal_with_errno(EXIT_FAILURE, "setuptcp: fcntl(set)"); } - +#endif if (listen(sock_fd, 16) < 0) { upsdebug_with_errno(3, "setuptcp: listen"); close(sock_fd); @@ -326,6 +252,16 @@ static void setuptcp(stype_t *server) break; } +#ifdef WIN32 + server->Event = CreateEvent(NULL, /*Security,*/ + FALSE, /*auo-reset */ + FALSE, /*initial state*/ + NULL); /* no name */ + + /* Associate socket event to the socket via its Event object */ + WSAEventSelect( server->sock_fd, server->Event, FD_ACCEPT ); +#endif + freeaddrinfo(res); /* leave up to the caller, server_load(), to fail silently if there is @@ -1069,7 +1005,6 @@ static void help(const char *progname) printf(" -V display the version of this software\n"); printf(" -4 IPv4 only\n"); printf(" -6 IPv6 only\n"); -#endif exit(EXIT_SUCCESS); } @@ -1212,7 +1147,6 @@ int main(int argc, char **argv) case '6': opt_af = AF_INET6; break; -#endif default: help(progname); break; diff --git a/server/upsd.h b/server/upsd.h index 46211fc291..f6880d828c 100644 --- a/server/upsd.h +++ b/server/upsd.h @@ -35,8 +35,6 @@ #include #include #include -#else -#include #endif #include "timehead.h" diff --git a/server/user.c b/server/user.c index e50cf690c6..f10e65c8b9 100644 --- a/server/user.c +++ b/server/user.c @@ -22,8 +22,6 @@ #include #include #include -#else -#include #endif #include "common.h" From 24c40122b8f24bb158657a54e141a415a24d3487 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 18 Jan 2011 10:05:01 +0000 Subject: [PATCH 053/218] Fix service access to configuration path Fossil-ID: SVN r2839 --- scripts/Windows/wininit.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index ee92fd25c4..61ad742243 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -285,8 +285,11 @@ static int parse_nutconf(BOOL start_flag) char fn[SMALLBUF]; FILE *nutf; char buf[SMALLBUF]; + const char * conf_path; - snprintf(fn,sizeof(fn),"%s/nut.conf",CONFPATH); + conf_path = confpath(); + snprintf(fn,sizeof(fn),"%s/nut.conf",conf_path); + free(conf_path); nutf = fopen(fn, "r"); if(nutf == NULL) { From 9e8538ea6be7e40c01c318b85cfec8eb15397b4b Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 18 Jan 2011 13:21:41 +0000 Subject: [PATCH 054/218] Safer relative path management Fossil-ID: SVN r2842 --- common/common.c | 33 +++++++++++++++++++++++---------- scripts/Windows/wininit.c | 5 +---- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/common/common.c b/common/common.c index b3d3560c32..62b9e4419d 100644 --- a/common/common.c +++ b/common/common.c @@ -41,6 +41,11 @@ const char *UPS_VERSION = NUT_VERSION_MACRO; int nut_log_level = 0; static int upslog_flags = UPSLOG_STDERR; +#ifdef WIN32 +const char * relative_conf_path = NULL; +const char * relative_state_path = NULL; +#endif + static void xbit_set(int *val, int flag) { *val |= flag; @@ -449,11 +454,15 @@ const char * confpath(void) #ifndef WIN32 path = CONFPATH; #else - path = getfullpath(PATH_ETC); - - if( path == NULL ) { - path = CONFPATH; - } + if( relative_conf_path == NULL ) { + path = getfullpath(PATH_ETC); + if( path == NULL ) { + path = CONFPATH; + } + } + else { + path = relative_conf_path; + } #endif } @@ -469,11 +478,15 @@ const char * dflt_statepath(void) #ifndef WIN32 path = STATEPATH; #else - path = getfullpath(PATH_VAR_RUN); - - if( path == NULL ) { - path = STATEPATH; - } + if( relative_state_path == NULL ) { + path = getfullpath(PATH_VAR_RUN); + if( path == NULL ) { + path = STATEPATH; + } + } + else { + path = relative_state_path; + } #endif } diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index 61ad742243..e2f2483e26 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -285,11 +285,8 @@ static int parse_nutconf(BOOL start_flag) char fn[SMALLBUF]; FILE *nutf; char buf[SMALLBUF]; - const char * conf_path; - conf_path = confpath(); - snprintf(fn,sizeof(fn),"%s/nut.conf",conf_path); - free(conf_path); + snprintf(fn,sizeof(fn),"%s/nut.conf",confpath()); nutf = fopen(fn, "r"); if(nutf == NULL) { From e6445e1e51df1ca86a22f0a2a06bda3d9fa4d01f Mon Sep 17 00:00:00 2001 From: Arjen de Korte Date: Tue, 18 Jan 2011 19:52:02 +0000 Subject: [PATCH 055/218] Prefer to use static variables locally over global variables (to prevent namespace conflicts) Fossil-ID: SVN r2845 --- common/common.c | 47 ++++++++--------------------------------------- 1 file changed, 8 insertions(+), 39 deletions(-) diff --git a/common/common.c b/common/common.c index 62b9e4419d..d778d3f8cb 100644 --- a/common/common.c +++ b/common/common.c @@ -41,11 +41,6 @@ const char *UPS_VERSION = NUT_VERSION_MACRO; int nut_log_level = 0; static int upslog_flags = UPSLOG_STDERR; -#ifdef WIN32 -const char * relative_conf_path = NULL; -const char * relative_state_path = NULL; -#endif - static void xbit_set(int *val, int flag) { *val |= flag; @@ -446,51 +441,25 @@ static void vupslog(int priority, const char *fmt, va_list va, int use_strerror) /* Return the default path for the directory containing configuration files */ -const char * confpath(void) +const char * confpath(void) { - const char * path; - - if ((path = getenv("NUT_CONFPATH")) == NULL) { #ifndef WIN32 - path = CONFPATH; + const char *path = getenv("NUT_CONFPATH"); #else - if( relative_conf_path == NULL ) { - path = getfullpath(PATH_ETC); - if( path == NULL ) { - path = CONFPATH; - } - } - else { - path = relative_conf_path; - } + static const char *path = getfullpath(PATH_ETC); #endif - } - - return path; + return (path != NULL) ? path : CONFPATH; } /* Return the default path for the directory containing state files */ -const char * dflt_statepath(void) +const char * dflt_statepath(void) { - const char * path; - - if ((path = getenv("NUT_STATEPATH")) == NULL) { #ifndef WIN32 - path = STATEPATH; + const char *path = getenv("NUT_STATEPATH"); #else - if( relative_state_path == NULL ) { - path = getfullpath(PATH_VAR_RUN); - if( path == NULL ) { - path = STATEPATH; - } - } - else { - path = relative_state_path; - } + static const char *path = getfullpath(PATH_VAR_RUN); #endif - } - - return path; + return (path != NULL) ? path : STATEPATH; } /* Return the alternate path for pid files */ From b7b8d2f63ca49c50292d71e8a2dd34343f23fa7d Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 19 Jan 2011 12:49:45 +0000 Subject: [PATCH 056/218] Compilation fix (from Arjen de Korte) Fossil-ID: SVN r2847 --- common/common.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/common/common.c b/common/common.c index d778d3f8cb..afa71d1098 100644 --- a/common/common.c +++ b/common/common.c @@ -446,7 +446,10 @@ const char * confpath(void) #ifndef WIN32 const char *path = getenv("NUT_CONFPATH"); #else - static const char *path = getfullpath(PATH_ETC); + static const char *path = NULL; + if (path == NULL) { + path = getfullpath(PATH_ETC); + } #endif return (path != NULL) ? path : CONFPATH; } @@ -457,7 +460,10 @@ const char * dflt_statepath(void) #ifndef WIN32 const char *path = getenv("NUT_STATEPATH"); #else - static const char *path = getfullpath(PATH_VAR_RUN); + static const char *path = NULL; + if (path == NULL) { + path = getfullpath(PATH_VAR_RUN); + } #endif return (path != NULL) ? path : STATEPATH; } From bdad5ce03cf1e905a99037e5dd2281f44cac303b Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 26 Jan 2011 13:13:48 +0000 Subject: [PATCH 057/218] Fix "make install" Fossil-ID: SVN r2851 --- docs/man/Makefile.am | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/man/Makefile.am b/docs/man/Makefile.am index 6dc58c066e..79ee763dae 100644 --- a/docs/man/Makefile.am +++ b/docs/man/Makefile.am @@ -606,15 +606,15 @@ else !HAVE_ASCIIDOC @echo "Not (re)building $@ manual page, since 'asciidoc' was not found." .txt.1: - @echo "Using existing $@ manual page, since 'asciidoc' was not found." + @echo "Using existing or faked $@ manual page, since 'asciidoc' was not found." > $@ .txt.3: - @echo "Using existing $@ manual page, since 'asciidoc' was not found." + @echo "Using existing or faked $@ manual page, since 'asciidoc' was not found." > $@ .txt.5: - @echo "Using existing $@ manual page, since 'asciidoc' was not found." + @echo "Using existing or faked $@ manual page, since 'asciidoc' was not found." > $@ .txt.8: - @echo "Using existing $@ manual page, since 'asciidoc' was not found." + @echo "Using existing or faked $@ manual page, since 'asciidoc' was not found." > $@ endif !HAVE_ASCIIDOC From af675f9e070fca223cb2fd0bc20ac013fb9203a8 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 26 Jan 2011 15:05:16 +0000 Subject: [PATCH 058/218] upsmon does not fork in WIN32 Fossil-ID: SVN r2852 --- clients/upsmon.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/clients/upsmon.c b/clients/upsmon.c index 9ae53c3a73..f3456d1ae5 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -77,7 +77,13 @@ static char *certpasswd = NULL; static int certverify = 0; /* don't verify by default */ static int forcessl = 0; /* don't require ssl by default */ -static int userfsd = 0, use_pipe = 1, pipefd[2]; +static int userfsd = 0, pipefd[2]; +#ifndef WIN32 +static int use_pipe = 1; +#else + /* Do not fork in WIN32 */ +static int use_pipe = 0; +#endif static utype_t *firstups = NULL; @@ -2078,7 +2084,9 @@ int main(int argc, char *argv[]) become_user(new_uid); } else { +#ifndef WIN32 upslogx(LOG_INFO, "Warning: running as one big root process by request (upsmon -p)"); +#endif writepid(prog); } From be33cab85d840076d44ee4ea91d073eae3bba336 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 26 Jan 2011 15:16:09 +0000 Subject: [PATCH 059/218] Clean-up : put compatibility macros in wincompat.h Fossil-ID: SVN r2853 --- drivers/main.h | 5 ----- include/wincompat.h | 1 + 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/main.h b/drivers/main.h index 882fe6a575..b39e4d2393 100644 --- a/drivers/main.h +++ b/drivers/main.h @@ -6,11 +6,6 @@ #include "dstate.h" #include "extstate.h" -#ifdef WIN32 -#define sleep(a) Sleep(a*1000) -#define strtok_r(a,b,c) strtok(a,b) -#endif - /* public functions & variables from main.c */ extern const char *progname, *upsname, *device_name; extern char *device_path; diff --git a/include/wincompat.h b/include/wincompat.h index 506e13ff03..c14cbbd94d 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -28,6 +28,7 @@ #include "common.h" #define sleep(n) Sleep(1000 * n) +#define strtok_r(a,b,c) strtok(a,b) /* Network compatibility */ From 65f33ebdeb192ba4c713aaae74395deddd2bd7aa Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 26 Jan 2011 15:16:51 +0000 Subject: [PATCH 060/218] Fix a warning Fossil-ID: SVN r2854 --- common/common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/common.c b/common/common.c index afa71d1098..f4f4df7384 100644 --- a/common/common.c +++ b/common/common.c @@ -692,7 +692,7 @@ int select_read(const serial_handler_t * fd, void *buf, const size_t buflen, con TOut.ReadTotalTimeoutConstant = timeout; SetCommTimeouts(fd->handle,&TOut); - res = w32_serial_read(fd,buf,buflen,timeout); + res = w32_serial_read((serial_handler_t *)fd,buf,buflen,timeout); return res; } From abba82a851dbf70a10136410622ea41a5be95f95 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 26 Jan 2011 15:49:31 +0000 Subject: [PATCH 061/218] More clean-up of wincompat Fossil-ID: SVN r2855 --- drivers/main.h | 3 +++ drivers/serial.c | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/main.h b/drivers/main.h index b39e4d2393..d8407119a1 100644 --- a/drivers/main.h +++ b/drivers/main.h @@ -5,6 +5,9 @@ #include "upsconf.h" #include "dstate.h" #include "extstate.h" +#ifdef WIN32 +#include "wincompat.h" +#endif /* public functions & variables from main.c */ extern const char *progname, *upsname, *device_name; diff --git a/drivers/serial.c b/drivers/serial.c index d51b0149d0..0eafb1de5a 100644 --- a/drivers/serial.c +++ b/drivers/serial.c @@ -26,8 +26,6 @@ #include #include #include -#else -#include "wincompat.h" #endif #include #include From 65c0d4985c7f433bdf3a2619184396bbb07d1140 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 26 Jan 2011 15:51:15 +0000 Subject: [PATCH 062/218] Merge from trunk Fossil-ID: SVN r2856 --- autogen.sh | 2 +- docs/configure.txt | 1 + nut-autoreconf | 35 ----------------------------------- 3 files changed, 2 insertions(+), 36 deletions(-) delete mode 100755 nut-autoreconf diff --git a/autogen.sh b/autogen.sh index 323b167b4b..eee95cd8d2 100755 --- a/autogen.sh +++ b/autogen.sh @@ -6,7 +6,7 @@ # re-generate files needed by configure, and created otherwise at 'dist' time if [ ! -f scripts/augeas/nutupsconf.aug.in ] then - if python -c "import re,glob,codecs"; then + if python -c pass; then echo "Regenerating Augeas ups.conf lens..." cd scripts/augeas && ./gen-nutupsconf-aug.py && cd ../.. else diff --git a/docs/configure.txt b/docs/configure.txt index 84093968a9..d08aa56465 100644 --- a/docs/configure.txt +++ b/docs/configure.txt @@ -64,6 +64,7 @@ Build and install NUT documentation file(s). The possible values are "html-single" for single page HTML, "html-chunked" for multi pages HTML, "pdf" for a PDF file or "auto" to build all the possible previous documentation formats. +Verbose output can be enabled using: ASCIIDOC_VERBOSE=-v make This feature requires AsciiDoc 8.6.3 (http://www.methods.co.nz/asciidoc). diff --git a/nut-autoreconf b/nut-autoreconf deleted file mode 100755 index eee95cd8d2..0000000000 --- a/nut-autoreconf +++ /dev/null @@ -1,35 +0,0 @@ -#! /bin/sh -# -# Autoreconf wrapper script to ensure that the source tree is -# in a buildable state - -# re-generate files needed by configure, and created otherwise at 'dist' time -if [ ! -f scripts/augeas/nutupsconf.aug.in ] -then - if python -c pass; then - echo "Regenerating Augeas ups.conf lens..." - cd scripts/augeas && ./gen-nutupsconf-aug.py && cd ../.. - else - echo "----------------------------------------------------------------------" - echo "Warning: Python is not available." - echo "Skipping Augeas ups.conf lens regeneration." - echo "----------------------------------------------------------------------" - fi -fi - -if [ ! -f scripts/hal/ups-nut-device.fdi.in ] || [ ! -f scripts/udev/nut-usbups.rules.in ] -then - if perl -e 1; then - echo "Regenerating the USB helper files..." - cd tools && ./nut-usbinfo.pl && cd .. - else - echo "----------------------------------------------------------------------" - echo "Error: Perl is not available." - echo "Skipping the USB helper files regeneration." - echo "----------------------------------------------------------------------" - fi -fi - -# now we can safely call autoreconf -echo "Calling autoreconf..." -autoreconf -i From e26253a33c59ede3079ca0726a736b9c8ee4b1d6 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 27 Jan 2011 10:26:19 +0000 Subject: [PATCH 063/218] Add strtok_r implementation and remove last "#define strtok_r" Fossil-ID: SVN r2862 --- clients/upsclient.c | 4 ---- common/wincompat.c | 27 +++++++++++++++++++++++++++ drivers/libhid.c | 3 --- drivers/mge-xml.c | 4 ---- drivers/netxml-ups.c | 2 -- include/wincompat.h | 2 +- 6 files changed, 28 insertions(+), 14 deletions(-) diff --git a/clients/upsclient.c b/clients/upsclient.c index 95e1b40538..b0d3197949 100644 --- a/clients/upsclient.c +++ b/clients/upsclient.c @@ -69,10 +69,6 @@ #define shutdown_how 2 #endif -#ifdef WIN32 -#define strtok_r(a,b,c) strtok(a,b) -#endif - struct { int flags; const char *str; diff --git a/common/wincompat.c b/common/wincompat.c index aa3bf717f3..a902904b5b 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -40,6 +40,33 @@ int __cdecl usleep(unsigned int useconds) } #endif /* !HAVE_USLEEP */ +char * strtok_r(char *str, const char *delim, char **saveptr) +{ + char *token_start, *token_end; + + /* Subsequent call ? */ + token_start = str ? str : *saveptr; + + /* Skip delim characters */ + token_start += strspn(token_start, delim); + if (*token_start == '\0') { + /* No more token */ + *saveptr = ""; + return NULL; + } + + /* Skip NO delim characters */ + token_end = token_start + strcspn(token_start, delim); + + /* Prepare token to be a null terminated string */ + if (*token_end != '\0') + *token_end++ = '\0'; + + *saveptr = token_end; + + return token_start; +} + int sktconnect(int fh, struct sockaddr * name, int len) { int ret = connect(fh,name,len); diff --git a/drivers/libhid.c b/drivers/libhid.c index d61a28e0af..d0ba7c5761 100644 --- a/drivers/libhid.c +++ b/drivers/libhid.c @@ -639,9 +639,6 @@ static int string_to_path(const char *string, HIDPath_t *path, usage_tables_t *u snprintf(buf, sizeof(buf), "%s", string); -#ifdef WIN32 -#define strtok_r(a,b,c) strtok(a,b) -#endif for (token = strtok_r(buf, ".", &last); token != NULL; token = strtok_r(NULL, ".", &last)) { /* lookup tables first (to override defaults) */ diff --git a/drivers/mge-xml.c b/drivers/mge-xml.c index bf5c31a808..617a425d19 100644 --- a/drivers/mge-xml.c +++ b/drivers/mge-xml.c @@ -30,10 +30,6 @@ #include "netxml-ups.h" #include "mge-xml.h" -#ifdef WIN32 -// strtok for win32 is re-entrant -#define strtok_r(a,b,c) strtok(a,b) -#endif //WIN32 #define MGE_XML_VERSION "MGEXML/0.22" #define MGE_XML_INITUPS "/" #define MGE_XML_INITINFO "/mgeups/product.xml /product.xml /ws/product.xml" diff --git a/drivers/netxml-ups.c b/drivers/netxml-ups.c index 75cc2b0d00..26a2225da1 100644 --- a/drivers/netxml-ups.c +++ b/drivers/netxml-ups.c @@ -48,8 +48,6 @@ #ifdef WIN32 // FIXME ?? skip alarm handling #define HAVE_NE_SET_CONNECT_TIMEOUT 1 #define HAVE_NE_SOCK_CONNECT_TIMEOUT 1 -//strtok for win32 is re-entrant -#define strtok_r(a,b,c) strtok(a,b) #endif /* driver description structure */ diff --git a/include/wincompat.h b/include/wincompat.h index c14cbbd94d..32c57c5c66 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -28,7 +28,7 @@ #include "common.h" #define sleep(n) Sleep(1000 * n) -#define strtok_r(a,b,c) strtok(a,b) +char * strtok_r(char *str, const char *delim, char **saveptr); /* Network compatibility */ From a12d1bc979321b4fbbc975c0d61e4aa0313686b8 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 27 Jan 2011 11:52:42 +0000 Subject: [PATCH 064/218] Cleaner warning fix in common.c Fossil-ID: SVN r2863 --- common/common.c | 4 ++-- include/common.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/common/common.c b/common/common.c index f4f4df7384..174d501e63 100644 --- a/common/common.c +++ b/common/common.c @@ -677,7 +677,7 @@ int select_read(const int fd, void *buf, const size_t buflen, const long d_sec, return read(fd, buf, buflen); } #else -int select_read(const serial_handler_t * fd, void *buf, const size_t buflen, const long d_sec, const long d_usec) +int select_read(serial_handler_t * fd, void *buf, const size_t buflen, const long d_sec, const long d_usec) { /* This function is only called by serial drivers right now */ int res; @@ -692,7 +692,7 @@ int select_read(const serial_handler_t * fd, void *buf, const size_t buflen, con TOut.ReadTotalTimeoutConstant = timeout; SetCommTimeouts(fd->handle,&TOut); - res = w32_serial_read((serial_handler_t *)fd,buf,buflen,timeout); + res = w32_serial_read(fd,buf,buflen,timeout); return res; } diff --git a/include/common.h b/include/common.h index 5690cfb537..6ab892c230 100644 --- a/include/common.h +++ b/include/common.h @@ -145,7 +145,7 @@ char* ltrim(char *in, const char sep); #ifndef WIN32 int select_read(const int fd, void *buf, const size_t buflen, const long d_sec, const long d_usec); #else -int select_read(const serial_handler_t * fd, void *buf, const size_t buflen, const long d_sec, const long d_usec); +int select_read(serial_handler_t * fd, void *buf, const size_t buflen, const long d_sec, const long d_usec); #endif int select_write(const int fd, const void *buf, const size_t buflen, const long d_sec, const long d_usec); From 6be30a6350d07a3fae53d4092d39e0b11b5b3ed7 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 27 Jan 2011 12:01:31 +0000 Subject: [PATCH 065/218] Disable Hotplug and udev support on Windows (useful when cross-compiling) Fossil-ID: SVN r2864 --- configure.in | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/configure.in b/configure.in index d22d99cdf9..3ee90fa576 100644 --- a/configure.in +++ b/configure.in @@ -64,17 +64,27 @@ cgiexecdir='${exec_prefix}/cgi-bin' driverexecdir='${exec_prefix}/bin' htmldir='${prefix}/html' pkgconfigdir='${libdir}/pkgconfig' -hotplugdir='/etc/hotplug' -if test ! -d "${hotplugdir}"; then - hotplugdir='' -fi -udevdir='/lib/udev' -if test ! -d "${udevdir}"; then - udevdir='/etc/udev' - if test ! -d "${udevdir}"; then - udevdir='' - fi -fi + +dnl Disable Hotplug and udev support on Windows +case ${target_os} in + mingw* ) + hotplugdir='' + udevdir='' + ;; + * ) + hotplugdir='/etc/hotplug' + if test ! -d "${hotplugdir}"; then + hotplugdir='' + fi + udevdir='/lib/udev' + if test ! -d "${udevdir}"; then + udevdir='/etc/udev' + if test ! -d "${udevdir}"; then + udevdir='' + fi + fi + ;; +esac RUN_AS_USER="nobody" RUN_AS_GROUP="nobody" From a25153a3ff45f83866df36d775e6f6677bd21fc8 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 27 Jan 2011 12:31:53 +0000 Subject: [PATCH 066/218] Fix warning in wincompat.c Fossil-ID: SVN r2865 --- common/wincompat.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/common/wincompat.c b/common/wincompat.c index a902904b5b..8a4c06d242 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -128,11 +128,13 @@ void syslog(int priority, const char *fmt, ...) vsnprintf(buf1, sizeof(buf1), fmt, ap); va_end(ap); - /* Add progname */ + /* Add progname to the formated message */ snprintf(buf2,sizeof(buf2),"%s - %s",EventLogName,buf1); - /* Add priority to create the whole frame */ - *((DWORD *)buf1) = (DWORD)priority; + /* Create the frame */ + /* first 4 bytes are priority */ + memcpy(buf1,&priority,sizeof(DWORD)); + /* then comes the message */ memcpy(buf1+sizeof(DWORD),buf2,sizeof(buf2)); pipe = CreateFile( From 2ab3691bc6677f211e2f1655cfcb73a66c60b966 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 27 Jan 2011 12:45:54 +0000 Subject: [PATCH 067/218] Fix warning in upsmon.h Fossil-ID: SVN r2866 --- clients/upsmon.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/clients/upsmon.h b/clients/upsmon.h index 2504370cf1..dfd3f6e6dc 100644 --- a/clients/upsmon.h +++ b/clients/upsmon.h @@ -17,6 +17,11 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#ifdef WIN32 +/* ST_CONNECTED is defined for WIN32 DDE (Dynamic Data Exchange) in ddeml.h */ +#undef ST_CONNECTED +#endif + /* flags for ups->status */ #define ST_ONLINE (1 << 0) /* UPS is on line (OL) */ From 65bf10c11bf1bed4b4e106f038307374fbd35446 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 27 Jan 2011 13:06:23 +0000 Subject: [PATCH 068/218] Fix possible race in notify. Fossil-ID: SVN r2867 --- clients/upsmon.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/clients/upsmon.c b/clients/upsmon.c index f3456d1ae5..360be05e95 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -131,10 +131,10 @@ static void wall(const char *text) #ifdef WIN32 typedef struct async_notify_s { - const char *notice; + char *notice; int flags; - const char *ntype; - const char *upsname; } async_notify_t; + char *ntype; + char *upsname; } async_notify_t; static unsigned __stdcall async_notify(LPVOID param) { @@ -159,11 +159,17 @@ static unsigned __stdcall async_notify(LPVOID param) setenv("NOTIFYTYPE", data->ntype, 1); if (system(exec) == -1) { + free(data->notice); + free(data->ntype); + free(data->upsname); upslog_with_errno(LOG_ERR, "%s", __func__); } } } + free(data->notice); + free(data->ntype); + free(data->upsname); return 1; } #endif @@ -217,10 +223,10 @@ static void notify(const char *notice, int flags, const char *ntype, #else async_notify_t data; - data.notice = notice; + data.notice = strdup(notice); data.flags = flags; - data.ntype = ntype; - data.upsname = upsname; + data.ntype = strdup(ntype); + data.upsname = strdup(upsname); _beginthreadex( NULL, /* security FIXME */ From 4e8fc4f8a1890bdce30a45846a21841c5cf1387a Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 27 Jan 2011 13:32:21 +0000 Subject: [PATCH 069/218] Fix another race condition in notify. Fossil-ID: SVN r2868 --- clients/upsmon.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/clients/upsmon.c b/clients/upsmon.c index 360be05e95..eb4fc43ced 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -162,6 +162,7 @@ static unsigned __stdcall async_notify(LPVOID param) free(data->notice); free(data->ntype); free(data->upsname); + free(data); upslog_with_errno(LOG_ERR, "%s", __func__); } } @@ -170,6 +171,7 @@ static unsigned __stdcall async_notify(LPVOID param) free(data->notice); free(data->ntype); free(data->upsname); + free(data); return 1; } #endif @@ -221,18 +223,19 @@ static void notify(const char *notice, int flags, const char *ntype, exit(EXIT_SUCCESS); #else - async_notify_t data; + async_notify_t * data; - data.notice = strdup(notice); - data.flags = flags; - data.ntype = strdup(ntype); - data.upsname = strdup(upsname); + data = malloc(sizeof(async_notify_t)); + data->notice = strdup(notice); + data->flags = flags; + data->ntype = strdup(ntype); + data->upsname = strdup(upsname); _beginthreadex( NULL, /* security FIXME */ 0, /* stack size */ async_notify, - (void *)&data, + (void *)data, 0, /* Creation flags */ NULL /* thread id */ ); From 162b8625818316b828cae0e54ce23cf78bda493c Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 27 Jan 2011 14:05:46 +0000 Subject: [PATCH 070/218] Fix warnings in main.c Fossil-ID: SVN r2869 --- drivers/main.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/main.c b/drivers/main.c index 4df2b85a47..68c3d03f5c 100644 --- a/drivers/main.c +++ b/drivers/main.c @@ -502,7 +502,7 @@ int main(int argc, char **argv) progname = xbasename(argv[0]); #ifdef WIN32 - char * drv_name; + const char * drv_name; drv_name = xbasename(argv[0]); /* remove trailing .exe */ char * name = strrchr(drv_name,'.'); @@ -514,7 +514,7 @@ int main(int argc, char **argv) } } else { - progname = drv_name; + progname = strdup(drv_name); } #endif @@ -733,4 +733,5 @@ int main(int argc, char **argv) } /* if we get here, the exit flag was set by a signal handler */ + return 0; } From 664d782edb92da6780e34a5e34c8315d30e0fa99 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 27 Jan 2011 15:50:27 +0000 Subject: [PATCH 071/218] Porting isbmex driver Fossil-ID: SVN r2870 --- drivers/isbmex.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/drivers/isbmex.c b/drivers/isbmex.c index 17328b2abe..2c87c6ae8f 100644 --- a/drivers/isbmex.c +++ b/drivers/isbmex.c @@ -147,10 +147,12 @@ void upsdrv_initinfo(void) } static const char *getpacket(int *we_know){ +#ifndef WIN32 fd_set readfds; struct timeval tv; - int bytes_per_packet=0; int ret; +#endif + int bytes_per_packet=0; static const char *packet_id=NULL; static char buf[256]; const char *s; @@ -159,7 +161,7 @@ static const char *getpacket(int *we_know){ bytes_per_packet=*we_know; D(printf("getpacket with %d\n",bytes_per_packet);) - +#ifndef WIN32 FD_ZERO(&readfds); FD_SET(upsfd,&readfds); /* Wait up to 2 seconds. */ @@ -175,17 +177,33 @@ static const char *getpacket(int *we_know){ } r=read(upsfd,buf,255); +#else + r = select_read(upsfd,buf,255,5,0); + if (r <= 0) { + s="Nothing received from UPS. Check cable conexion"; + upslogx(LOG_ERR, "%s", s); + D(printf("%s\n",s);) + return NULL; + } +#endif D(printf("%d bytes read: ",r);) buf[r]=0; if (bytes_per_packet && r < bytes_per_packet){ ssize_t rr; D(printf("short read...\n");) usleep(500000); +#ifndef WIN32 tv.tv_sec = 2; tv.tv_usec = 0; ret=select(upsfd+1, &readfds, NULL, NULL, &tv); if (!ret) return NULL; rr=read(upsfd,buf+r,255-r); +#else + rr = select_read(upsfd,buf+r,255-r,2,0); + if (rr <= 0) { + return NULL; + } +#endif r += rr; if (r < bytes_per_packet) return NULL; } From 05201f4d1509a940029610d251998d639948e0d2 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 28 Jan 2011 08:20:27 +0000 Subject: [PATCH 072/218] Fix warnings in libshut.c. Fossil-ID: SVN r2871 --- drivers/libshut.c | 66 +++++++++++++++++++++++------------------------ drivers/libshut.h | 11 ++++++++ 2 files changed, 44 insertions(+), 33 deletions(-) diff --git a/drivers/libshut.c b/drivers/libshut.c index 30651d0614..f72ac0b99e 100644 --- a/drivers/libshut.c +++ b/drivers/libshut.c @@ -180,16 +180,16 @@ struct my_hid_descriptor { /*! * SHUT functions for HID marshalling */ -int shut_get_descriptor(int upsfd, unsigned char type, +int shut_get_descriptor(TYPE_FD upsfd, unsigned char type, unsigned char index, void *buf, int size); -int shut_get_string_simple(int upsfd, int index, +int shut_get_string_simple(TYPE_FD upsfd, int index, char *buf, size_t buflen); -int libshut_get_report(int upsfd, int ReportId, +int libshut_get_report(TYPE_FD upsfd, int ReportId, unsigned char *raw_buf, int ReportSize ); -int shut_set_report(int upsfd, int id, unsigned char *pkt, int reportlen); -int libshut_get_interrupt(int upsfd, unsigned char *buf, +int shut_set_report(TYPE_FD upsfd, int id, unsigned char *pkt, int reportlen); +int libshut_get_interrupt(TYPE_FD upsfd, unsigned char *buf, int bufsize, int timeout); -void libshut_close(int upsfd); +void libshut_close(TYPE_FD upsfd); /* FIXME */ const char * shut_strerror(void) { return ""; } @@ -260,12 +260,12 @@ typedef union device_desc_data_t { } device_desc_data_t; #endif /* Low level SHUT (Serial HID UPS Transfer) routines */ -void setline(int upsfd, int set); -int shut_synchronise(int upsfd); -int shut_wait_ack(int upsfd); -int shut_interrupt_read(int upsfd, int ep, unsigned char *bytes, +void setline(TYPE_FD upsfd, int set); +int shut_synchronise(TYPE_FD upsfd); +int shut_wait_ack(TYPE_FD upsfd); +int shut_interrupt_read(TYPE_FD upsfd, int ep, unsigned char *bytes, int size, int timeout); -int shut_control_msg(int upsfd, int requesttype, int request, int value, +int shut_control_msg(TYPE_FD upsfd, int requesttype, int request, int value, int index, unsigned char *bytes, int size, int timeout); /* Data portability */ @@ -288,8 +288,8 @@ static void align_request(struct shut_ctrltransfer_s *ctrl ) * information. This callback should return a value > 0 if the device * is accepted, or < 1 if not. */ -int libshut_open(int *upsfd, SHUTDevice_t *curDevice, char *device_path, - int (*callback)(int upsfd, SHUTDevice_t *hd, unsigned char *rdbuf, int rdlen)) +int libshut_open(TYPE_FD *upsfd, SHUTDevice_t *curDevice, char *device_path, + int (*callback)(TYPE_FD upsfd, SHUTDevice_t *hd, unsigned char *rdbuf, int rdlen)) { int ret, res; unsigned char buf[20]; @@ -304,7 +304,7 @@ int libshut_open(int *upsfd, SHUTDevice_t *curDevice, char *device_path, upsdebugx(2, "libshut_open: using port %s", device_path); /* If device is still open, close it */ - if (*upsfd > 0) { + if (VALID_FD(*upsfd)) { ser_close(*upsfd, device_path); } @@ -471,9 +471,9 @@ int libshut_open(int *upsfd, SHUTDevice_t *curDevice, char *device_path, return -1; } -void libshut_close(int upsfd) +void libshut_close(TYPE_FD upsfd) { - if (upsfd < 1) { + if (!VALID_FD(upsfd)) { return; } @@ -483,10 +483,10 @@ void libshut_close(int upsfd) /* return the report of ID=type in report * return -1 on failure, report length on success */ -int libshut_get_report(int upsfd, int ReportId, +int libshut_get_report(TYPE_FD upsfd, int ReportId, unsigned char *raw_buf, int ReportSize ) { - if (upsfd < 1) { + if (!VALID_FD(upsfd)) { return 0; } @@ -501,12 +501,12 @@ int libshut_get_report(int upsfd, int ReportId, } /* return ReportSize upon success ; -1 otherwise */ -int libshut_set_report(int upsfd, int ReportId, +int libshut_set_report(TYPE_FD upsfd, int ReportId, unsigned char *raw_buf, int ReportSize ) { int ret; - if (upsfd < 1) { + if (!VALID_FD(upsfd)) { return 0; } @@ -525,11 +525,11 @@ int libshut_set_report(int upsfd, int ReportId, return ((ret == 0) ? ReportSize : ret); } -int libshut_get_string(int upsfd, int StringIdx, char *buf, size_t buflen) +int libshut_get_string(TYPE_FD upsfd, int StringIdx, char *buf, size_t buflen) { int ret; - if (upsfd < 1) { + if (!VALID_FD(upsfd)) { return -1; } @@ -542,12 +542,12 @@ int libshut_get_string(int upsfd, int StringIdx, char *buf, size_t buflen) return ret; } -int libshut_get_interrupt(int upsfd, unsigned char *buf, +int libshut_get_interrupt(TYPE_FD upsfd, unsigned char *buf, int bufsize, int timeout) { int ret; - if (upsfd < 1) { + if (!VALID_FD(upsfd)) { return -1; } @@ -582,9 +582,9 @@ shut_communication_subdriver_t shut_subdriver = { * set : 1 to set comm * set : 0 to stop commupsh. */ -void setline(int upsfd, int set) +void setline(TYPE_FD upsfd, int set) { - if (upsfd < 1) { + if (!VALID_FD(upsfd)) { return; } @@ -607,7 +607,7 @@ void setline(int upsfd, int set) * return TRUE on success, FALSE on failure * *****************************************************************************/ -int shut_synchronise(int upsfd) +int shut_synchronise(TYPE_FD upsfd) { int retCode = 0; u_char c = SHUT_SYNC_OFF, reply; @@ -669,7 +669,7 @@ u_char shut_checksum(const u_char *buf, int bufsize) } -int shut_packet_recv(int upsfd, u_char *Buf, int datalen) +int shut_packet_recv(TYPE_FD upsfd, u_char *Buf, int datalen) { u_char Start[2]; u_char Frame[8]; @@ -775,7 +775,7 @@ int shut_packet_recv(int upsfd, u_char *Buf, int datalen) } /**********************************************************************/ -int shut_interrupt_read(int upsfd, int ep, unsigned char *bytes, int size, +int shut_interrupt_read(TYPE_FD upsfd, int ep, unsigned char *bytes, int size, int timeout) { /* @@ -786,7 +786,7 @@ int shut_interrupt_read(int upsfd, int ep, unsigned char *bytes, int size, } /**********************************************************************/ -int shut_get_string_simple(int upsfd, int index, +int shut_get_string_simple(TYPE_FD upsfd, int index, char *buf, size_t buflen) { unsigned char tbuf[255]; /* Some devices choke on size > 255 */ @@ -834,7 +834,7 @@ int shut_get_string_simple(int upsfd, int index, * return 0 on success, -1 on failure, -2 on NACK * *********************************************************************/ -int shut_get_descriptor(int upsfd, unsigned char type, +int shut_get_descriptor(TYPE_FD upsfd, unsigned char type, unsigned char index, void *buf, int size) { memset(buf, 0, size); @@ -846,7 +846,7 @@ int shut_get_descriptor(int upsfd, unsigned char type, } /* Take care of a SHUT transfer (sending and receiving data) */ -int shut_control_msg(int upsfd, int requesttype, int request, +int shut_control_msg(TYPE_FD upsfd, int requesttype, int request, int value, int index, unsigned char *bytes, int size, int timeout) { unsigned char shut_pkt[11]; @@ -970,7 +970,7 @@ int shut_control_msg(int upsfd, int requesttype, int request, * returns 0 on success, -1 on error, -2 on NACK, -3 on NOTIFICATION * *********************************************************************/ -int shut_wait_ack(int upsfd) +int shut_wait_ack(TYPE_FD upsfd) { int retCode = -1; u_char c = '\0'; diff --git a/drivers/libshut.h b/drivers/libshut.h index 48f48bbca9..32d3b39927 100644 --- a/drivers/libshut.h +++ b/drivers/libshut.h @@ -30,6 +30,17 @@ #include "main.h" /* for subdrv_info_t */ #include "nut_stdint.h" /* for uint16_t */ +/* porting stuff for WIN32 */ +#ifndef WIN32 +#define ERROR_FD (-1) +#define VALID_FD(a) (a>0) +#define TYPE_FD int +#else +#define ERROR_FD (NULL) +#define VALID_FD(a) (a!=NULL) +#define TYPE_FD serial_handler_t * +#endif + extern upsdrv_info_t comm_upsdrv_info; /*! From 90f3a14b55ef06d19832b73b3f4028eb3d06eac0 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 28 Jan 2011 09:59:24 +0000 Subject: [PATCH 073/218] Fix warning in mge-xml.c Fossil-ID: SVN r2872 --- drivers/mge-xml.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/mge-xml.c b/drivers/mge-xml.c index 617a425d19..b68b53cf69 100644 --- a/drivers/mge-xml.c +++ b/drivers/mge-xml.c @@ -30,6 +30,9 @@ #include "netxml-ups.h" #include "mge-xml.h" +#ifdef WIN32 +#include "wincompat.h" +#endif #define MGE_XML_VERSION "MGEXML/0.22" #define MGE_XML_INITUPS "/" #define MGE_XML_INITINFO "/mgeups/product.xml /product.xml /ws/product.xml" From 493ba7d5dcef05e010f0bd9932ea7634d1e8599a Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 28 Jan 2011 12:42:28 +0000 Subject: [PATCH 074/218] upslog_with_errno does not call exit() nor return, ... ...so let the memory be freed at the end of the function (fix a double free) Fossil-ID: SVN r2873 --- clients/upsmon.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/clients/upsmon.c b/clients/upsmon.c index eb4fc43ced..9145344411 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -159,10 +159,6 @@ static unsigned __stdcall async_notify(LPVOID param) setenv("NOTIFYTYPE", data->ntype, 1); if (system(exec) == -1) { - free(data->notice); - free(data->ntype); - free(data->upsname); - free(data); upslog_with_errno(LOG_ERR, "%s", __func__); } } From 3f1844e5ed78d47d1cf65a1b31a64c28449e093e Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 31 Jan 2011 09:30:27 +0000 Subject: [PATCH 075/218] Fix compilation on buildbot Fossil-ID: SVN r2876 --- clients/Makefile.am | 2 +- common/common.c | 1 + drivers/mge-shut.c | 12 ++++++------ 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/clients/Makefile.am b/clients/Makefile.am index d1fc994a8a..7199ec262b 100644 --- a/clients/Makefile.am +++ b/clients/Makefile.am @@ -46,7 +46,7 @@ upsstats_cgi_SOURCES = upsstats.c upsclient.h status.h upsstats.h \ # not LDADD. libupsclient_la_SOURCES = upsclient.c upsclient.h -libupsclient_la_LIBADD = ../common/libcommon.la ../common/libparseconf.la +libupsclient_la_LIBADD = ../common/libparseconf.la if WITH_SSL libupsclient_la_LIBADD += $(LIBSSL_LIBS) endif diff --git a/common/common.c b/common/common.c index 174d501e63..c93ca01544 100644 --- a/common/common.c +++ b/common/common.c @@ -114,6 +114,7 @@ void open_syslog(const char *progname) upslogx(LOG_INFO, "Changing log level threshold not possible"); break; #endif + } #else EventLogName = progname; #endif diff --git a/drivers/mge-shut.c b/drivers/mge-shut.c index a0b98616b0..cd9659d6d0 100644 --- a/drivers/mge-shut.c +++ b/drivers/mge-shut.c @@ -548,7 +548,7 @@ static int char_read (char *bytes, int size, int read_timeout) { struct timeval serial_timeout; fd_set readfs; - int read = 0; + int bytes_read = 0; int rc = 0; int now; @@ -564,29 +564,29 @@ static int char_read (char *bytes, int size, int read_timeout) return -2; /* timeout */ if (FD_ISSET (upsfd, &readfs)) { - now = read (upsfd, bytes, size - read); + now = read (upsfd, bytes, size - bytes_read); if (now < 0) { return -1; } else { bytes += now; - read += now; + bytes_read += now; } } else { return -1; } #else - now = select_read(upsfd,bytes,size - read, serial_timeout.tv_sec, serial_timeout.tv_usec); + now = select_read(upsfd,bytes,size - bytes_read, serial_timeout.tv_sec, serial_timeout.tv_usec); if( now == -1 ) { return -1; } bytes += now; - read += now; + bytes_read += now; - return read; #endif + return bytes_read; } /********************************************************************** From 7084805b4d71c1e270e857b5985750a2f5baccbb Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 1 Feb 2011 13:57:39 +0000 Subject: [PATCH 076/218] Fix "make distckeck-light" in Windows environment Fossil-ID: SVN r2878 --- scripts/Windows/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/Windows/Makefile.am b/scripts/Windows/Makefile.am index 565caeea5b..c0010b0ba2 100644 --- a/scripts/Windows/Makefile.am +++ b/scripts/Windows/Makefile.am @@ -10,7 +10,7 @@ FORCE: if HAVE_MINGW_RESGEN winevent.rc winevent.h: winevent.mc - $(WINDMC) winevent.mc + $(WINDMC) $< winevent.o: winevent.rc winevent.h $(WINDRES) winevent.rc winevent.o @@ -24,6 +24,7 @@ nut_LDADD = ../../common/libcommon.la winevent.o halt_SOURCES = halt.c +EXTRA_DIST = winevent.mc CLEANFILES = winevent.rc winevent.o winevent.h endif HAVE_MINGW_RESGEN From 6b6f05b81f95ef6eaa85f14539e58736cddc2580 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 2 Feb 2011 13:10:09 +0000 Subject: [PATCH 077/218] Fix "upsdrvctl start" path issue Fossil-ID: SVN r2879 --- common/common.c | 12 ++++++++---- drivers/upsdrvctl.c | 4 ++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/common/common.c b/common/common.c index c93ca01544..d956bd670e 100644 --- a/common/common.c +++ b/common/common.c @@ -230,12 +230,16 @@ char * getfullpath(char * relative_path) if ( GetModuleFileName(NULL,buf,SMALLBUF) == 0 ) { return NULL; } - else { - char * last_slash = strrchr(buf,'\\'); - *last_slash = 0; + + /* remove trailing executable name and its preceeding slash*/ + char * last_slash = strrchr(buf,'\\'); + *last_slash = 0; + + if( relative_path ) { strncat(buf,relative_path,SMALLBUF); - return(xstrdup(buf)); } + + return(xstrdup(buf)); } #endif diff --git a/drivers/upsdrvctl.c b/drivers/upsdrvctl.c index f2cc4e34cc..11af0d5d8c 100644 --- a/drivers/upsdrvctl.c +++ b/drivers/upsdrvctl.c @@ -521,7 +521,11 @@ int main(int argc, char **argv) if (!command) fatalx(EXIT_FAILURE, "Error: unrecognized command [%s]", argv[0]); +#ifndef WIN32 driverpath = xstrdup(DRVPATH); /* set default */ +#else + driverpath = getfullpath(NULL); /* Relative path in WIN32 */ +#endif atexit(exit_cleanup); From 21c167b47e430fb255c88f9c5eb72eeab05be980 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 2 Feb 2011 13:31:36 +0000 Subject: [PATCH 078/218] clean-up printf calls Fossil-ID: SVN r2880 --- drivers/dstate.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/dstate.c b/drivers/dstate.c index e1a944a9a3..1fb87a3387 100644 --- a/drivers/dstate.c +++ b/drivers/dstate.c @@ -181,7 +181,6 @@ static HANDLE sock_open(const char *fn) FALSE, /* inital state = non signaled*/ NULL /* no name*/); if(connect_overlapped.hEvent == NULL ) { - printf("CreateEvent failed.\n"); fatal_with_errno(EXIT_FAILURE, "Can't create event"); } @@ -296,7 +295,6 @@ static int send_to_one(conn_t *conn, const char *fmt, ...) #else result = WriteFile (conn->fd,buf,strlen(buf),&bytesWritten,NULL); if( result == 0 ) { - printf("Write failed\n"); ret = 0; } else { @@ -681,7 +679,6 @@ static void sock_close(void) FlushFileBuffers(sockfd); CloseHandle(sockfd); sockfd = INVALID_HANDLE_VALUE; - printf("sock_close Close %d\n",(int)sockfd); } #endif @@ -865,7 +862,7 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) } if (ret == WAIT_FAILED) { - printf("waitfor failed\n"); + upslog_with_errno(LOG_ERR, "waitfor failed"); return overrun; } From 412e5e4c03f5a51c77e8df9ea08b3f67dcdb4fad Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 7 Feb 2011 15:05:10 +0000 Subject: [PATCH 079/218] Prefer upsdebugx to upslogx for low level output Fossil-ID: SVN r2885 --- common/wincompat.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/common/wincompat.c b/common/wincompat.c index 8a4c06d242..c62b6f5253 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -183,7 +183,7 @@ int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen, DWORD timeou w4 = sh->io_status.hEvent; - upslogx(LOG_DEBUG,"w32_serial_read : ulen %d, vmin_ %d, vtime_ %d, hEvent %p", ulen, sh->vmin_, sh->vtime_,sh->io_status.hEvent); + upsdebugx(4,"w32_serial_read : ulen %d, vmin_ %d, vtime_ %d, hEvent %p", ulen, sh->vmin_, sh->vtime_,sh->io_status.hEvent); if (!sh->overlapped_armed) { SetCommMask (sh->handle, EV_RXCHAR); ResetEvent (sh->io_status.hEvent); @@ -212,7 +212,7 @@ int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen, DWORD timeou goto err; } else if (ev) { - upslogx(LOG_ERR,"w32_serial_read : error detected %x", (int)ev); + upsdebugx(4,"w32_serial_read : error detected %x", (int)ev); } else if (st.cbInQue) { inq = st.cbInQue; @@ -235,13 +235,13 @@ int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen, DWORD timeou case WAIT_OBJECT_0: if (!GetOverlappedResult (sh->handle, &sh->io_status, &num, FALSE)) goto err; - upslogx(LOG_DEBUG,"w32_serial_read : characters are available on input buffer"); + upsdebugx(4,"w32_serial_read : characters are available on input buffer"); break; case WAIT_TIMEOUT: CancelIo(sh->handle); sh->overlapped_armed = 0; ResetEvent (sh->io_status.hEvent); - upslogx(LOG_DEBUG,"w32_serial_read : timeout %d ms ellapsed", (int)timeout); + upsdebugx(4,"w32_serial_read : timeout %d ms ellapsed", (int)timeout); return 0; default: goto err; @@ -254,7 +254,7 @@ int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen, DWORD timeou if (inq > ulen) { inq = ulen; } - upslogx(LOG_DEBUG,"w32_serial_read : Reading %d characters", (int)inq); + upsdebugx(4,"w32_serial_read : Reading %d characters", (int)inq); if (ReadFile (sh->handle, ptr, min (inq, ulen), &num, &sh->io_status)) { /* Got something */; } @@ -266,14 +266,14 @@ int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen, DWORD timeou } tot += num; - upslogx(LOG_DEBUG,"w32_serial_read : total characters read = %d", tot); + upsdebugx(4,"w32_serial_read : total characters read = %d", tot); if (sh->vtime_ || !sh->vmin_ || !num) break; continue; err: PurgeComm (sh->handle, PURGE_RXABORT); - upslogx(LOG_DEBUG,"w32_serial_read : err %d",(int)GetLastError()); + upsdebugx(4,"w32_serial_read : err %d",(int)GetLastError()); if (GetLastError () == ERROR_OPERATION_ABORTED) num = 0; else From f94fe36776a5231c8374a8257921bda8bc3f6d0b Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 7 Feb 2011 15:14:25 +0000 Subject: [PATCH 080/218] small typo Fossil-ID: SVN r2886 --- common/wincompat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/wincompat.c b/common/wincompat.c index c62b6f5253..c70bbfc0f5 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -332,7 +332,7 @@ serial_handler_t * w32_serial_open (const char *name, int flags) interface as POSIX open */ COMMTIMEOUTS to; - upslogx(LOG_INFO,"serial_open (%s)",name); + upslogx(LOG_INFO,"w32_serial_open (%s)",name); serial_handler_t * sh; @@ -384,7 +384,7 @@ serial_handler_t * w32_serial_open (const char *name, int flags) upslogx (LOG_ERR,"couldn't set initial state for %s",name); SetCommMask (sh->handle, EV_RXCHAR); - upslogx (LOG_INFO,"%p = serial_open (%s)",sh->handle,name); + upslogx (LOG_INFO,"%p = w32_serial_open (%s)",sh->handle,name); return sh; } From f0b41e830c1be25a1fe6e6f5c35c19d1db4aa309 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 9 Feb 2011 10:18:38 +0000 Subject: [PATCH 081/218] Add date to notification Fossil-ID: SVN r2890 --- clients/upsmon.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/clients/upsmon.c b/clients/upsmon.c index 9145344411..a7a07da62c 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -134,19 +134,23 @@ typedef struct async_notify_s { char *notice; int flags; char *ntype; - char *upsname; } async_notify_t; + char *upsname; + char *date } async_notify_t; static unsigned __stdcall async_notify(LPVOID param) { char exec[LARGEBUF]; + char notice[LARGEBUF]; /* the following code is a copy of the content of the NOT WIN32 part of "notify" function below */ async_notify_t *data = (async_notify_t *)param; - if (flag_isset(data->flags, NOTIFY_WALL)) - wall(data->notice); + if (flag_isset(data->flags, NOTIFY_WALL)) { + snprintf(notice,LARGEBUF,"%s: %s", data->date, data->notice); + wall(notice); + } if (flag_isset(data->flags, NOTIFY_EXEC)) { if (notifycmd != NULL) { @@ -167,6 +171,7 @@ static unsigned __stdcall async_notify(LPVOID param) free(data->notice); free(data->ntype); free(data->upsname); + free(data->date); free(data); return 1; } @@ -220,12 +225,15 @@ static void notify(const char *notice, int flags, const char *ntype, exit(EXIT_SUCCESS); #else async_notify_t * data; + time_t t; data = malloc(sizeof(async_notify_t)); data->notice = strdup(notice); data->flags = flags; data->ntype = strdup(ntype); data->upsname = strdup(upsname); + t = time(NULL); + data->date = strdup(ctime(&t)); _beginthreadex( NULL, /* security FIXME */ From 578682301f73e1538b1f9cd33623c43d31288067 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 14 Feb 2011 08:48:29 +0000 Subject: [PATCH 082/218] Extent print_event capabilities Fossil-ID: SVN r2894 --- scripts/Windows/wininit.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index e2f2483e26..1500c3789a 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -44,27 +44,42 @@ HANDLE svc_stop = NULL; static SERVICE_STATUS SvcStatus; static SERVICE_STATUS_HANDLE SvcStatusHandle; -static void print_event(DWORD priority, const char * string) +static void print_event(DWORD priority, const char * fmt, ...) { HANDLE EventSource; + va_list ap; + CHAR * buf; + int ret; + + buf = xmalloc(LARGEBUF); + + va_start(ap, fmt); + ret = vsnprintf(buf, LARGEBUF, fmt, ap); + va_end(ap); + + if(ret<0) { + return; + } EventSource = RegisterEventSource(NULL, SVCNAME); if( NULL != EventSource ) { - ReportEvent( EventSource, /* event log handle */ + ReportEvent( EventSource, /* event log handle */ priority, /* event type */ 0, /* event category */ SVC_EVENT, /* event identifier */ NULL, /* no security identifier*/ 1, /* size of string array */ 0, /* no binary data */ - &string, /* array of string */ + &buf, /* array of string */ NULL); /* no binary data */ DeregisterEventSource(EventSource); } + if( buf ) + free(buf); } static void pipe_create() @@ -214,7 +229,7 @@ static DWORD create_process(char * application, char * command) ); if( res == 0 ) { - print_event(LOG_ERR, "Can't create process"); + print_event(LOG_ERR, "Can't create process %s with command %s : %d", application, command, (int)GetLastError()); return 0; } From 9be9876cf629b5138c533dd9f2f835c04d24c4eb Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 15 Feb 2011 10:26:07 +0000 Subject: [PATCH 083/218] Let nut.exe calls its children through their relatives paths Fossil-ID: SVN r2896 --- include/common.h | 2 ++ scripts/Windows/wininit.c | 48 ++++++++++++++++++++++----------------- 2 files changed, 29 insertions(+), 21 deletions(-) diff --git a/include/common.h b/include/common.h index 6ab892c230..d94b175bf6 100644 --- a/include/common.h +++ b/include/common.h @@ -201,6 +201,8 @@ char * getfullpath(char * relative_path); #define PATH_ETC "\\..\\etc" #define PATH_VAR_RUN "\\..\\var\\run" #define PATH_SHARE "\\..\\share" +#define PATH_BIN "\\..\\bin" +#define PATH_SBIN "\\..\\sbin" #endif /* WIN32*/ #ifndef HAVE_USLEEP diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index 1500c3789a..47399528c0 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -207,16 +207,17 @@ static void pipe_read(conn_t *conn) } /* returns PID of the newly created process or 0 on failure */ -static DWORD create_process(char * application, char * command) +static DWORD create_process(char * command) { STARTUPINFO StartupInfo; PROCESS_INFORMATION ProcessInformation; BOOL res; + DWORD LastError; memset(&StartupInfo,0,sizeof(STARTUPINFO)); res = CreateProcess( - application, + NULL, command, NULL, NULL, @@ -227,9 +228,10 @@ static DWORD create_process(char * application, char * command) &StartupInfo, &ProcessInformation ); + LastError = GetLastError(); if( res == 0 ) { - print_event(LOG_ERR, "Can't create process %s with command %s : %d", application, command, (int)GetLastError()); + print_event(LOG_ERR, "Can't create process %s : %d", command, LastError); return 0; } @@ -239,33 +241,37 @@ static DWORD create_process(char * application, char * command) /* return PID of created process or 0 on failure */ static DWORD run_drivers() { - char application[MAX_PATH]; char command[MAX_PATH]; + char *path; - snprintf(application,sizeof(application),"%s/upsdrvctl.exe",BINDIR); - snprintf(command,sizeof(command),"upsdrvctl.exe start"); - return create_process(application,command); + path = getfullpath(PATH_BIN); + snprintf(command,sizeof(command),"%s\\upsdrvctl.exe start",path); + free(path); + return create_process(command); } /* return PID of created process or 0 on failure */ static DWORD stop_drivers() { - char application[MAX_PATH]; char command[MAX_PATH]; + char *path; - snprintf(application,sizeof(application),"%s/upsdrvctl.exe",BINDIR); - snprintf(command,sizeof(command),"upsdrvctl.exe stop"); - return create_process(application,command); + path = getfullpath(PATH_BIN); + snprintf(command,sizeof(command),"%s\\upsdrvctl.exe stop",path); + free(path); + return create_process(command); } /* return PID of created process or 0 on failure */ static void run_upsd() { - char application[MAX_PATH]; char command[MAX_PATH]; - snprintf(application,sizeof(application),"%s/upsd.exe",SBINDIR); - snprintf(command,sizeof(command),"upsd.exe"); - upsd_pid = create_process(application,command); + char *path; + + path = getfullpath(PATH_SBIN); + snprintf(command,sizeof(command),"%s\\upsd.exe",path); + free(path); + upsd_pid = create_process(command); } static void stop_upsd() @@ -278,13 +284,13 @@ static void stop_upsd() /* return PID of created process or 0 on failure */ static void run_upsmon() { - char application[MAX_PATH]; char command[MAX_PATH]; - snprintf(application,sizeof(application),"%s/upsmon.exe",SBINDIR); - /* FIXME "-p" is to prevent the fork of upsmon. - Maybe this will need more investigation to avoid security breach ?? */ - snprintf(command,sizeof(command),"upsmon.exe -p"); - upsmon_pid = create_process(application,command); + char *path; + + path = getfullpath(PATH_SBIN); + snprintf(command,sizeof(command),"%s\\upsmon.exe",path); + free(path); + upsmon_pid = create_process(command); } static void stop_upsmon() From ba6a030d71207800e4286c086d0406357a71885c Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 22 Feb 2011 08:30:24 +0000 Subject: [PATCH 084/218] Add a Sleep before running upsmon... ...or else we are spamed with communication errors. Try to properly close all handles. Fossil-ID: SVN r2907 --- scripts/Windows/wininit.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index 47399528c0..cc9d6ddb1b 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -327,6 +327,8 @@ static int parse_nutconf(BOOL start_flag) if( start_flag == NUT_START ) { run_drivers(); run_upsd(); + /* Wait a moment for the drivers to start */ + Sleep(5000); run_upsmon(); return 1; } @@ -530,6 +532,18 @@ static void SvcReady(void) ReportSvcStatus( SERVICE_RUNNING, NO_ERROR, 0); } +static void close_all(void) +{ + conn_t *conn; + + CloseHandle(pipe_connection_handle); + for (conn = connhead; conn; conn = conn->next) { + CloseHandle(conn->overlapped.hEvent); + CloseHandle(conn->handle); + } + +} + static void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) { @@ -593,6 +607,7 @@ static void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) parse_nutconf(NUT_STOP); if(service_flag) { print_event(LOG_INFO, "Exiting"); + close_all(); ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); } return; From a15f3f0ab19c0211959c499750ffed46322a3187 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 24 Feb 2011 10:10:39 +0000 Subject: [PATCH 085/218] Correctly manage time-out in libusb Fossil-ID: SVN r2908 --- drivers/libusb.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/libusb.c b/drivers/libusb.c index 9484969759..1ef7eefddd 100644 --- a/drivers/libusb.c +++ b/drivers/libusb.c @@ -50,6 +50,10 @@ upsdrv_info_t comm_upsdrv_info = { #define MAX_REPORT_SIZE 0x1800 +#ifdef WIN32 +/* This value is defined in the error.h file of the libusb-win32 sources */ +#define ETIMEDOUT 116 +#endif static void libusb_close(usb_dev_handle *udev); /* From usbutils: workaround libusb API goofs: "byte" should never be sign extended; @@ -376,11 +380,11 @@ static int libusb_strerror(const int ret, const char *desc) case -ENOSYS: /* Function not implemented */ upslogx(LOG_DEBUG, "%s: %s", desc, usb_strerror()); return ret; -#ifndef WIN32 case -ETIMEDOUT: /* Connection timed out */ upsdebugx(2, "%s: Connection timed out", desc); return 0; +#ifndef WIN32 case -EOVERFLOW: /* Value too large for defined data type */ case -EPROTO: /* Protocol error */ upsdebugx(2, "%s: %s", desc, usb_strerror()); From 97f5a73aedfe528607e2da2e0e28ab7f5b7d8bc8 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 16 Mar 2011 10:35:36 +0000 Subject: [PATCH 086/218] Add some console output when running in non-service mode Fossil-ID: SVN r2937 --- scripts/Windows/wininit.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index cc9d6ddb1b..ea3446eb62 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -61,6 +61,10 @@ static void print_event(DWORD priority, const char * fmt, ...) return; } + if( !service_flag ) { + upslogx(LOG_ERR, "EventLog : %s\n",buf); + } + EventSource = RegisterEventSource(NULL, SVCNAME); if( NULL != EventSource ) { @@ -643,6 +647,7 @@ int main(int argc, char **argv) return SvcUninstall(SVCNAME); case 'N': service_flag = FALSE; + upslogx(LOG_ERR, "Running in non-service mode\n"); break; default: break; From bd4f8b5f620d496757ada211114e509d80e43219 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 16 Mar 2011 10:38:57 +0000 Subject: [PATCH 087/218] Fix a crash if configuration files are wrong in non-service mode Fossil-ID: SVN r2938 --- scripts/Windows/wininit.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index ea3446eb62..d0207ae79e 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -573,7 +573,9 @@ static void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) /* parse nut.conf and start relevant processes */ if ( parse_nutconf(NUT_START) == 0 ) { print_event(LOG_INFO, "exiting"); - ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); + if( service_flag ) { + ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); + } return; } From 7ed18c1242ca12e34c229216651972e11a9f5eac Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 16 Mar 2011 10:56:06 +0000 Subject: [PATCH 088/218] Handle properly the "none" MODE in nut.conf Fossil-ID: SVN r2939 --- scripts/Windows/wininit.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index d0207ae79e..eaa66905ec 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -323,7 +323,8 @@ static int parse_nutconf(BOOL start_flag) while( fgets(buf,sizeof(buf),nutf) != NULL ) { if(buf[0] != '#') { if( strstr(buf,"none") != NULL ) { - return 1; + print_event(LOG_ERR, "NUT is configured to \"none\" in nut.conf, nothing is to be started.\n"); + return 0; } if( strstr(buf,"standalone") != NULL || From 6142ecbcb423bddccf55e61354e00e6ab68c79dd Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 16 Mar 2011 14:57:06 +0000 Subject: [PATCH 089/218] Windows scripts and support files for NUT Windows installer using WIX (from Praveen Kumar) Fossil-ID: SVN r2940 --- scripts/Windows/Installer/BuildInstaller.bat | 25 + .../Installer/ImageFiles/Binary/New.ibd | Bin 0 -> 318 bytes .../Installer/ImageFiles/Binary/Up.ibd | Bin 0 -> 318 bytes .../Installer/ImageFiles/Binary/bannrbmp.ibd | Bin 0 -> 94554 bytes .../Installer/ImageFiles/Binary/completi.ibd | Bin 0 -> 2998 bytes .../Installer/ImageFiles/Binary/custicon.ibd | Bin 0 -> 2998 bytes .../Installer/ImageFiles/Binary/dlgbmp.ibd | Bin 0 -> 79246 bytes .../Installer/ImageFiles/Binary/exclamic.ibd | Bin 0 -> 766 bytes .../Installer/ImageFiles/Binary/info.ibd | Bin 0 -> 1078 bytes .../Installer/ImageFiles/Binary/insticon.ibd | Bin 0 -> 2998 bytes .../Installer/ImageFiles/Binary/removico.ibd | Bin 0 -> 2998 bytes .../Installer/ImageFiles/Binary/repairic.ibd | Bin 0 -> 2998 bytes .../ImageFiles/Others/DeRegister.bat | 2 + .../ImageFiles/Others/StartService.bat | 1 + .../ImageFiles/Others/StopService.bat | 1 + .../ImageFiles/Others/libgnurx-0.dll | Bin 0 -> 43860 bytes .../Installer/ImageFiles/Others/msys-1.0.dll | Bin 0 -> 820224 bytes .../ImageFiles/Others/msys-crypto-1.0.0.dll | Bin 0 -> 1320448 bytes .../ImageFiles/Others/msys-ssl-1.0.0.dll | Bin 0 -> 300544 bytes .../Installer/ImageFiles/Others/regex2.dll | Bin 0 -> 79360 bytes .../ImageFiles/emptyDir/cgi-bin/temp.txt | 0 .../ImageFiles/emptyDir/html/temp.txt | 0 .../ImageFiles/emptyDir/include/temp.txt | 0 .../ImageFiles/emptyDir/man1/temp.txt | 0 .../ImageFiles/emptyDir/man3/temp.txt | 0 .../ImageFiles/emptyDir/pkgconfig/temp.txt | 0 .../ImageFiles/emptyDir/run/temp.txt | 0 .../ImageFiles/icons/powernut_Stop.ico | Bin 0 -> 7262 bytes .../ImageFiles/icons/powernut_logo.ico | Bin 0 -> 9462 bytes .../ImageFiles/libusb/libusb_win32.exe | Bin 0 -> 616278 bytes scripts/Windows/Installer/NUT-Installer.xml | 1831 +++++++++++++++++ 31 files changed, 1860 insertions(+) create mode 100644 scripts/Windows/Installer/BuildInstaller.bat create mode 100644 scripts/Windows/Installer/ImageFiles/Binary/New.ibd create mode 100644 scripts/Windows/Installer/ImageFiles/Binary/Up.ibd create mode 100644 scripts/Windows/Installer/ImageFiles/Binary/bannrbmp.ibd create mode 100644 scripts/Windows/Installer/ImageFiles/Binary/completi.ibd create mode 100644 scripts/Windows/Installer/ImageFiles/Binary/custicon.ibd create mode 100644 scripts/Windows/Installer/ImageFiles/Binary/dlgbmp.ibd create mode 100644 scripts/Windows/Installer/ImageFiles/Binary/exclamic.ibd create mode 100644 scripts/Windows/Installer/ImageFiles/Binary/info.ibd create mode 100644 scripts/Windows/Installer/ImageFiles/Binary/insticon.ibd create mode 100644 scripts/Windows/Installer/ImageFiles/Binary/removico.ibd create mode 100644 scripts/Windows/Installer/ImageFiles/Binary/repairic.ibd create mode 100644 scripts/Windows/Installer/ImageFiles/Others/DeRegister.bat create mode 100644 scripts/Windows/Installer/ImageFiles/Others/StartService.bat create mode 100644 scripts/Windows/Installer/ImageFiles/Others/StopService.bat create mode 100644 scripts/Windows/Installer/ImageFiles/Others/libgnurx-0.dll create mode 100644 scripts/Windows/Installer/ImageFiles/Others/msys-1.0.dll create mode 100644 scripts/Windows/Installer/ImageFiles/Others/msys-crypto-1.0.0.dll create mode 100644 scripts/Windows/Installer/ImageFiles/Others/msys-ssl-1.0.0.dll create mode 100644 scripts/Windows/Installer/ImageFiles/Others/regex2.dll create mode 100644 scripts/Windows/Installer/ImageFiles/emptyDir/cgi-bin/temp.txt create mode 100644 scripts/Windows/Installer/ImageFiles/emptyDir/html/temp.txt create mode 100644 scripts/Windows/Installer/ImageFiles/emptyDir/include/temp.txt create mode 100644 scripts/Windows/Installer/ImageFiles/emptyDir/man1/temp.txt create mode 100644 scripts/Windows/Installer/ImageFiles/emptyDir/man3/temp.txt create mode 100644 scripts/Windows/Installer/ImageFiles/emptyDir/pkgconfig/temp.txt create mode 100644 scripts/Windows/Installer/ImageFiles/emptyDir/run/temp.txt create mode 100644 scripts/Windows/Installer/ImageFiles/icons/powernut_Stop.ico create mode 100644 scripts/Windows/Installer/ImageFiles/icons/powernut_logo.ico create mode 100644 scripts/Windows/Installer/ImageFiles/libusb/libusb_win32.exe create mode 100644 scripts/Windows/Installer/NUT-Installer.xml diff --git a/scripts/Windows/Installer/BuildInstaller.bat b/scripts/Windows/Installer/BuildInstaller.bat new file mode 100644 index 0000000000..f980b75063 --- /dev/null +++ b/scripts/Windows/Installer/BuildInstaller.bat @@ -0,0 +1,25 @@ +::This script can be used to Create and Build NUT installer using WiX. + +@echo off + +SET BATDIR=%~dp0 +cd /d %BATDIR% + +SET NUT-XML-FILE=NUT-Installer.xml +SET wixobjName=NUT-Installer.wixobj +SET msiPackageName=NUT-Installer.msi + +REM use "candle.exe" to create the "object" file +candle.exe "%NUT-XML-FILE%" -out "%wixobjName%" >"log.txt" +@echo ========================================================= +@echo Please wait as MSI package creation in progress... + +@echo off +REM use "light.exe" to create the "MSi" package +light.exe "%wixobjName%" -out "%msiPackageName%" >>"log.txt" + +@echo ========================================================= +@echo MSI package "%msiPackageName%" complete +@echo ========================================================= +@echo Check output file "log.txt" for status of completion... +@echo ========================================================= \ No newline at end of file diff --git a/scripts/Windows/Installer/ImageFiles/Binary/New.ibd b/scripts/Windows/Installer/ImageFiles/Binary/New.ibd new file mode 100644 index 0000000000000000000000000000000000000000..27881dfe972209bb5825c15cb7bc00bbde46c7c2 GIT binary patch literal 318 zcmZQzU<5(|0RaXO&|qX>5ChRb3=&ZQVnzlQAj!bc04A{!KpBu^Lj!~Yl0YWIfddDC zG)Uq<7%}|+4`Kl^5Q2n21UlFa1RH>Y#L_VR++bZW9?>+&2@U*cm>0w0`Ys0yAd=1E8#zj literal 0 HcmV?d00001 diff --git a/scripts/Windows/Installer/ImageFiles/Binary/Up.ibd b/scripts/Windows/Installer/ImageFiles/Binary/Up.ibd new file mode 100644 index 0000000000000000000000000000000000000000..86f6b5a84755483dee8175ebc821d3af0ce866b8 GIT binary patch literal 318 zcma)&F%Ez*3jinPaBfq3iVrS`7_(?ej5C}1lGoRa7bAIcM3XBn@W5%19)2 zpi~0CfR3A`90Zc8)(X4P;;1!e1a8Ujwl!?g%}lJWd!z?T2-Gq9(9iqVy9{0F7kh<5 P<5%!Eb(Xf+-TO;BySGdd literal 0 HcmV?d00001 diff --git a/scripts/Windows/Installer/ImageFiles/Binary/bannrbmp.ibd b/scripts/Windows/Installer/ImageFiles/Binary/bannrbmp.ibd new file mode 100644 index 0000000000000000000000000000000000000000..77fe2b6762c20ab47d7ad13b2fa81fa032086591 GIT binary patch literal 94554 zcmeI)O>(1F6b4ZD1~TpiWRMkPnyQ{>1KCA(;H71dCH367ybD(d5Jn)yROzV72tD2p z99$naswFBAV7e?K>>C9K|sR^5Fl_q0d@QN?uj!ZK!Ctu0d@OfLK6@mK;Ucw>h`nU z5$8jI0D%VxsM{ZaXbJ)Z2%Jkm-F~k7;cN&HAn*_Yb^AjYO+tVGfinrH+s|}2oC^U0 z1Rf-?w{CxbfB&bw=I0U3aWr1_;JE9bHJDGRg#ZBp1nv^3_-z^g$tL1Da=YfQ3~xbx z+06TVGVgHM-=&tV9RdUh91>``x~Z-nmWdGG)c^WlhS@i2SkpTJ0t5)$ArR4?K|R#Y z3-4KnXO+Hi_(oF~=EJLIxY4(7R<{pe-U$#Oa7>`Z>Pj7+vv04uW4=j5=h#csZ(H%$ zRT)iy0D+els3>lUJKZGBv~|Ph`pP{becV0UCymu%@=$o`8{^^$5Fl_wpatt<-JY|? z@x`Mn?Ny?8JG1%w*q^mm&m&i3ECB)p2!udIbj#YyCKLGb`JTOmy;YpYOwl3cpHJDx zyBkA*009CA1zN&Z&D;fVwtRdnR^1CduV<)lT^4)xMSDBvTk{{hAj1g|AV8qPyd`wM z*^5Jee<Hlf&Bt4UMCfGeUUzywrjucA00BxC+*Q|y(Ola z&z7Smi~2}_009E`3RDQU%)V^K^F#{GG_B$7VYyn`^Uj}ZTkcW5FoHapat^0 z#_o#h)&I*qm+Dgb#tbX%IX1>E_Sta}h7ce?fWTOw0=6ae)h4@LH4Pu~P~`v6aL0Q- zH5Lc-Q9nLE`veFOAh1KAh3sPe97p>3uKQdTxo+?Jf7X)0zFzHL=C?RX2NkAoeTVF&>N1PF`;S{7H0 z9iLYACkY?99WC=$=6NoXeOBh2uQ)zC`veFOAh1KAqP1oG)=lPl-Ax6b-Q0m0t5&=Mxf>D#)`Tg1W)b%nCmhN0RjYG zSfJv1sGYy^UETh|zlkoL0D*@Jv@CyW9bS)*jjKHL@=Qj60D)H&sNns|dVN@1-TsQd zg07hWfoBM`T-{hv*Ms1x{hx7_<|IIXz)K1IKXHBEDlc^dTr2?s1fC(FZhwZVISCLT pK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PB}!_z!MT%8CF0 literal 0 HcmV?d00001 diff --git a/scripts/Windows/Installer/ImageFiles/Binary/completi.ibd b/scripts/Windows/Installer/ImageFiles/Binary/completi.ibd new file mode 100644 index 0000000000000000000000000000000000000000..93a95a1b190530733b16e26c8f1882e007f43315 GIT binary patch literal 2998 zcmbuBKTKO!6o-!kQasVFkcGvlE8d|UI)In50K11QR0zpZA2L$#LTq=iD@PaKNYnGD6jEUSAf174_yKJ zn8thmNC8K8<5>!*zZcI^fPO1pYdu~(ce$+Bji<|Y%!{XC+D5z^a~vC=8&mv*YTf5V z^f>KW0_LVk&o#$Tj~_?VZ3&)51{)Iia4CTvpB7-uSNlhL0tEg*yM4}s%+4|Hbsp|5 z(DBZ>)<3^XkHLq!REO`NGWqe54G&55EDQg^$5c!*@A8%v+KIdpC;Q-3vG%8b5Qxb_pWOQ^?!r`zC4Gqb_z<~7i^-1Gz zBR{-&@gM(B@e%Ve+qQL?UCg#mPY-@sPIn>fO2yTmt@=%2SIPeLU^)G4b=40zuL7JN zs9Y}JoxrYQ1bBvu-2v=V2M|Hz%|}0l-~>ypR`b)()Kot?fw=2mF0ZaGFN;*0<^+F@ zhKWvxiCsobpPjv}HY?`j#PzRKYf>{;#?(Y?m47~XTUFq~^>Xy92Uo71PM;kdyk&xB z<$_wN;eYkOJh;MNY{wnF+VtE>MCUgEx@G6*Opo5VKh?jSNG>3MV&~`X)XtrGamSnq zNXG58?iF-*rQVUKncfaFj_&2>5a`!SOKEIjVWHR6z5H5w=1B{1^>%&=;Qyozc>XNL zTfU=b+JL9)0$YIV@6F)qZZ7TodYABbfewGIuNwYKZJ-t3-M<^%0Z7x+Kg#dp`h1jM stF+G3tzSoe?BQ+m>fg%GS%lxs%g;x00{ze5Df)Y)+wT-#t>bsfznDslbN~PV literal 0 HcmV?d00001 diff --git a/scripts/Windows/Installer/ImageFiles/Binary/custicon.ibd b/scripts/Windows/Installer/ImageFiles/Binary/custicon.ibd new file mode 100644 index 0000000000000000000000000000000000000000..878d3ba54b8bfaf2de6ea1e8584bb25726492e5d GIT binary patch literal 2998 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 W5}8#&WKq>3SJhVJwimgdMdJrzKB>e2 literal 0 HcmV?d00001 diff --git a/scripts/Windows/Installer/ImageFiles/Binary/info.ibd b/scripts/Windows/Installer/ImageFiles/Binary/info.ibd new file mode 100644 index 0000000000000000000000000000000000000000..7e0ff7f14c24ace2d59e24260b666ca60ef57482 GIT binary patch literal 1078 zcmbW0y-ve06opR-l9@=}pq)_PqC8SIv&9<=QeMd$43&6=ZZKveLsj!#J1I(4B!t`J z>vMnI>sx818*Mg?Y<=EH56Gq|e7lnFD`|^v10KOjx9n2D_xcJLv4l_rJ4X-{W5kg1 zS1H*E@G+Hb^K$KcD$-x@3wwRR(}KHt!M%rjKNlc%Z+ucX-Eos3KbP#GDUB#{M4>2L zcBr$}wjn#5X(DH<4u0ITvP0`~GzxPggEMIkSvvo;;K6qbKKzec{hViLOa4sQLR;$3 z+^O8}W&dWXk>A_dVTvE%Ibhq4i;&%MkvWdDv$`envn4WpSL6%MXQ^LNCuEYnNE+KOLGOMmO~`pV9URzm zD%EP0qYjk$CrarvDx3aD?}B1w`)B58Wj2pq2A^bnPb9x(9~FZS@>?5eE9rkYEZPQ; zC#_80KKvv-OKNJ7oCkkZeQHca7_lbVapldmq0wze`;HdCN&+d1dR*7LU0LEHNN$lkEB*?#-p zbvB#l_ElQ4*|cpFnZguI+l;Jt8im}#+UGUd;-535w*frDt^rC!?<-R<8%0R{31SrAGbht)x;m;OZYsVl~$|V*yshS zD-Ykm*YP!c1<&G)S)e+91IpAKb)C9MjZnue(BF5ND}lV4tP1CG;ff08Tp zC#BofS2V@snhL}FdSQl&8J}0eb%R__XQ*`k3NEh<5Uw~>7``{28KGzU7guI_dORn% z1o>pB+~z%?^P4A6wkeyNo0FkD7+L4JXMHe~2lEg$`D_4&b8}m!e;E8pR^Ctr^ lCLe%txdGhf=zR40^d5?NRR+r&UY{Q5ep2}P`k()w@;93z)Y6e#>d|xv%J1QG=byzxY;85!9g@KO!Ohn$5B5+9iofa6UAY>#m?@w z;t1kA9=8wJ8lYAaU{KYRPaUKn^&|SN2UZ1tKP^i!oXO+tGa!;H` z7Z+dLIn8HmZP{zLQ|5)O(i7))kNNpxU*EX3k%}?1$7~;eiIbswsaQy`+DEtB?bT0X zLmTKYNaUT&D%x}}bo=PtnBe{Si6et1Io@Bp^}*HXTIA199M)61$DTKS z^KNne^nb8>lpQK)HcS(%Dc?tG<|lRJIE~Yi`K#34fUK;96_|>ar=Nh zPOWvmv$sQyU%#hPgHvANlrC{vDsY^$l${1p5oyc2#59^>Zo@M-uZ_!)R7EM}4jp5O_d;AxIj_#*rkd(Cx(H?#}mtMEnmE%*$40Db{}9)1>n3Vssa2|osp zar1fjH2f0$47_u|>|nvE@J0A7_zZjie!)q69jIePf;A!V~!N+y%EzP?T?D=XyjcH78ST)9FcBO}!K zi_>?H9{tbF;4UECtFeq#TU_KjU9IG^EChdrj$yC!#*E?#`LBQdh$1| zuq?@bKY-5$z4^&x*k|6L>^B%Y=)_O%|Ndq>8BY0pk}T-azWMEB%FfrKee%EEOoq+R zk9@gb{$@Cd`LnLCX?^lrWqba75q~tQpTB>l+{usl{r#@rDkpXO`UCP?$&{{3k~}D1 zDdW>eB4)Vn^;;d_k81cK(KCPLeYIQk6w(FR+k5|-U>17`mdi5!&g8Rwb+=O_2@?Y@ zV}iQRkL~J4vsp8+nJZNi1dyKj+clc((mpmVC>o-{%BsY4{Lbm-?>3DZPb3mrU6&rFg7qYlv=Jv59r-{Vm-j8Q=hzOLgH>qP(8-zi5l{SUV)2I>F+ literal 0 HcmV?d00001 diff --git a/scripts/Windows/Installer/ImageFiles/Binary/repairic.ibd b/scripts/Windows/Installer/ImageFiles/Binary/repairic.ibd new file mode 100644 index 0000000000000000000000000000000000000000..6fb68610c9af370020f00cd1d0ff589db8d19b6d GIT binary patch literal 2998 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%0Dc35`-`P7LXprsitiYzTy*7S^}Sbv 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

$qM}wBF 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≈2tS*L;DcyeI@RrpxL^V1D61J!v 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 VKh(z+)$IQ*KHUF&h=2MM_+O0^4-^0Z literal 0 HcmV?d00001 diff --git a/scripts/Windows/Installer/ImageFiles/Others/msys-crypto-1.0.0.dll b/scripts/Windows/Installer/ImageFiles/Others/msys-crypto-1.0.0.dll new file mode 100644 index 0000000000000000000000000000000000000000..e6c1e6938f10d1453a7027c3b1f434fc473753cb GIT binary patch literal 1320448 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

J%LdvPT^l0R%(<2PM$TSGk`afPE^W?T-+_ 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

  • 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³L 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

    (fo{JQRm$HWxuAgZTkFCnfPmhpJKu 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%0AG%fjqbu#xr$ZTPiF&`r~x7|-*HmE43 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%0Axgavb=Fn*;h&efyO=HCL1 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 S$=~PA?h%V9Mom&~oWHOR_O^+huNJkyxrYc`C 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 z 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®K?WPEyjjgDrw%JHi9YHZ0{u! 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≷U+#cT_|DuiO@Re-B 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 Hu+k@v#OixeurI)0SNS~a(DgC$f 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 c8TiJyf2iI=!)}fnqp_uK$gE<@~QpYaD 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 ^- zVL3-x&g1xyj~ByV#(71oS}=J?Sm=8#2&{>4Ydxfh`$tn%os{>E*qWsbOeTN8QkQxo zs-tLcr-g(4OQ^oF{5Q3HRUuC|jF57E2R#_u`p%dS=}cX0>xY@EqM7Kal~0(?Udx6! zVW|3mYW_JDbB)I(V554-LAR-U5gPH9-Z9VJivb;FXb+7VX`2IZrL;SW-Kcdgx>>~Q zH+-_f6P`67J(5`FG{;^Vle&ndWqg4UcT zK*~=_?o%kg{$1)=Ni($?<1@s)j@F>gYA3-HNt52!4I;oLyVnQ{#xvNrDal(WdnF=p zESOA`X6uqXGnuFv=E?oTW%mWDgBJYN-70^(X@G}@WH*x{q*U-lsuTRVCpA0_@u7@s zI+=!qbS4dd0PxUgmsf>B=n-SqP9Tc8)t(@y43ut_ph-i9YV{tj=2Pw)`MR%M!UZeg zB`*`%*{dyCIj_7tnVLfRX#uTY63_%TT8?BJJHe3>p}6NL-Ex( zQWd$w2>Hryz)0V~L^uDGvB{eHZ?|)NVRiA#+|9}TKD4`gTXn4IZ5}K_=y8(qW<5Qn zn>gR%@c7&Gdn8MX*i9j8Yr(V_rkAgflHp&_`EZ{2CeUds_!KpH`Mhaa*B#2~Jy=6= zdB1K`J?yrL_?D}$y0Fk+TW@tYEN@k(J9P-Nv6Q#Ij)Z*OG^*qv+p8vA5sUFqjGKHW z&{qyx=c=8CA2_w=m}}oMdgpzt#zeUz5d=;a1ptUyi%b?aszVdM?@ zf{pmbx?uvL*mwc4zc-qx9 z;3gzX!$?Sy7-=2Cee`6a)ScYyH%o{R*Skp5Kq5Qm`YA_>hJOpm&|09G$&gqQG@G_b zEV+D%npPu$pC`e_Are>)ks!5wyc-w2Z2(>{a9iGg0Ai}CYhY72db8?uYatD4SX-m* z$5MoWF872*g9M$FP>rB)kWdI)sdfABFUpGPZPNoh(AA{jW|1-LUcD=eX#zM=$3@g36yEg>25r8cH;Vw1xj@g-)gJB zJMmNhrYITNI3+_=E=I}p!S5)U;p01~vF93k*#GlLoX?71zo}a3&bu}E9RZ>3kJE2F z9jojnEZ6p_eBx4&?%XmuPe!CiiQ`g9aO}R|_B(J2>ULv0Mf1PXfH5w zqofmEBHoV*(ZSa!WcbWgsNUV-dgeu~!Y8PV`wH1$#w5OaL}z3c;y4N7b})Al_w0YP#5coovz7@i2(Ciq!*I6OF`5Hj3b-LOXd>?k^AxBLOW z5F8=V(NG~HxI+X&7Ko*PX_-V~73r`y$2+m~gL=Ek7z1zK5A~K3IV82-urv|Ru;`_f z?I1cz(uq@7UX?XU;C^uAD?305k?;B2@|2hYCGz|fOWQqft3#eD%kvbpb37IHfIEYl zswfw-Eqt1|O<4~fFUdDK0jZ$1OxW2JS4;*wZrP=#n=wlCXEQ4Ve7r0E z0ToR7L*#dC#g)Ct9>4qJoa3bPRVOIN3Kjs#B0=Dc6+jrbJv3HcbM;$|ha~sdqVV_8 zHL*>hHA%*T%D1}!eK3~V$_q~D{fwhc-Q=cPyEQ>(XE$k>wWIidQA7uy?1*iBKQs5N z!pb+S^s<$)EvIE_PK#6q*L^EfUuZB@zJaOPJ<5BAkM#%XPpX+-$N?q%og;tN>HKHT zrh4ho)Y#T;O_R{#k@v^^hSQ_A{^q*aqST%f6Lns1raD>~T-#wS)B?=Y`6=1pjtzC z5k(-Hl^pbMS`3Oe+4g>QhlpRsK&UMmeLH+?h@Bm%*RMI^~IQ2YX}c#VJ2P zEBYNaQm{|(ce5#%g{#&Q@@6`UD6X^n)K2hQvVsnG25%-ao-~bgF6c_Ts?m0tWu=+? zabvn%*V_0I1%rEBX$7iF?7}i8CMLv#Vu5hKtAf7%`Y~&!mND5ZpC!VrI`fz%6K-1- z7kGruAsjQC;|~c4xGspPdVL$}rnGagi^}rg(c9;F{Q#>?6RoL{mnxrB=X8b?s-WJ( zRtm_VG-l`ZpenOuswNdR!4AGp>NQ!H8c>*IG~0p$QsS8*8XVuQc`V~QeTM_6ghp!U zzs06z@C0T!fJXw761ExQCFm;%eP(ptE~eV`Sg-D^=%Af6df%dh3jwB6WW}G@Of~f#x`8j^gC7PUQN}r-c%+G!z$jg z8eD^S8Ao|PGe!6N+)1)=9e+C8WYEhfDR-C>)`g5~qRacem$anaGE>jhS~?L8khnCg zG*1PzoA6-_PzUy${vEtUENELLnz~n{6aRr`M(ev!`@|>a$gFc!gam-IgCCF)c&0MP_!Jd@ zmU_X$7pn_=1$D}@EK*(D4?VnA)seHgbS$_zz-%uk_aeJeF z?_HtabIMSu3IFzWys*<_cbern7S5^j3coqcN7`J@+fqaeVC+6Sj(=#gGA~-O-(ST?__T}4SlM0p+}>DK&UG6=d0r9e1`NX zWY8JJKPv+o$+a(#(?vEU4(p#@L_M5}QLH~?LkDr2%~d7dIy=(^ke4_cpTV#~mA|$b zf-abs`w#M)zr^+9yAXqZeCV%{^GW^CmxKCY;xX*Ub+6?6vB_m`x)8G*y?ad9hZZ=~ zTN5UxZz3@dvVZlw{uy&Ah0|=F{s0Xi&spegGLSRp&Iel@ta1*j%m3MO(8<7F;(xbU zPb(n7v0~y+KSDnsjn|LVJVWskb}7*Av&)KN>G#ze?u~2F%99JEuw&+SSC2=a*674D&$g0(fn{ov=Bo)d_5iyqAstFr8$$ifHg8wGv%MkluiO< zQ8zPpWkII=uuSRM*#_}u+TvNDBDvG?M*hHYl^YTO6I=Hg)q(AXBoL~NGoZ_nG6#vO zz>Dul=O4lAQj#UBizU}2>t56V#h75RtuCHW3dmW^(YWM8h!X9mTn{N1B6Q&|9Fk-t zOK)TzGdY~O%Uw!$Yc~K`gX%^9*)WzNdwJ@|hKEAfrvx#%f^j3f*f^FoM_^oM8F{_( zc!&Mf{A?rRj+AI-ogLlkGJx0-4>J!|F68hI6_R{M1`hxn4VbKdNzarOWuM_Wxn0B6 zFlZtoHG4(j5NkI5J0=klLFmh_AYYqF1gSr1H6QEP8)D-#1vmKpxlmzWb0<@r3L`^f zwyDmE7^_e|-GeLql2zD9YZ@1CstZ&&-zwDC+~E|@lwNLpQTJ(~sV?$HMz&?w9N-WL_EGl8{2Aan<=Jjmrw&{?5qgzFLD=!Mpa6Nn41jak3fCD@--f%> zyQm@c{;1gc{lMn+=Zjszf=ra0p)j5Hj~aXfNVkW9H=Tcd%4V6&244+ zhzc=-pa}gdIVt;)**DvNGReDnPxf@XuM^z7k=dE|T*%bqErHF|oQ4+oD&a90#T6aQ zThM8tlNFJjeznYqinfGPH50K)<^t4CP+n%w6YP1s<9^Kj z%*}UGbqE-vCZAB;cAKlB$orEGb-AqBiVR$m+`-lVP3!C8jXZ0RUMXM%U-?+OJW%!( zyjIH)qQP4wPjk0wJ&up3haZKZTCzMdUJ`*iuiDazXFLfKR(}<<`!bP>uji5^C(@<=ed5fL>Th+QxJQ;1)D9T z$Q6i)#T*{s_B&wr)yn{YT*a9L@i{U@C`=`#m?X7Sq{(H}zpYzfM?iwp!`NLIid$gg1j{c2s4ScwwLH}RA5Rk(bQ$I^3^@A7%TsQGA( z_lW7JRE=Qrg`tppj725`Lb<3qLT=p{vvv4K@O(I(Ea)SO8fY0obC3&-)K{ zlb7qd{HD!3VD8`OFE7P=J6MM2HZ>THrElfCmwcIDH%tCR5--}&cFd4GP>?#HIkyJl zxAhr)aHFo2$KYN-5UZfASPmAez%(JV*y^3*ykERb=7E;1=0JJTTaulo%203vKc4aj zm+ubc%Y7{rJmLJ$?Y~gCnhv{|0!8Zm)f-fnG4gu=kdCda8FZx&6n$$uH>CB2gZp{Yw1SZLE-t+_~<_6w7cQ9{e@J!PEs#CwRyHTW5tn%bo z(|1%0U%fXnOAaj7Pa_4h1&@w>03KFLpGth)C(cj4GFIqgTUMMhh;*o!l?RFF zHoVp04ZkeDbz9}LtB!{9R8e&lF>w{R>VQKK=fGT?E$I~F z3ri0j@}F--B9e^P%`jeR9NqS-w1}f`8(cwQ98q4DDBN+ zBE-nhDDQZHpRQ#v6+O3ugM!P+m5YY-E|}n`Ljvfxpm*Zm#(a!>vA9> zAw3{l(1={$UKQ&054ga^j;ZK+RKnnQsXm!J=#p-yt6iUOrIkRm6iT?)6ZxdE!g7pSuiU0J(*2lN{NRlEUD( zvj(u+kK+fbXuZqUW`d)rQ`=PPZ9j{)5$6428s7MdWc!f28dbGWXUg7g$oKZ=j|ss{phhw$z6 z!+bI>m-(Kd6$aQ+f7uEyK1;n`n7L1yfIgP^k4PS5uAeKqeUHk4A^1Yrjac(~Wz&AC z3$21?RJnfy+so(1PtYEbn)vblc~P3t1r$x)&2{k;{mY`wgf!`#b>bt~X_#N&*;~MC zet{>wnisIP9M&1HVRw#uU+SOD0jV3tAbOe)^Amv23W(CUe~tSbbQp<$U7_vj^sXUP z@8VI5ybDIb?T+^*upag!`e06>GTZHGJV|=6lmx#)H+ykyqgG!*X*9UhWk)h6AXur@ z1m=TF8PlMyMS}@AOMubN)8=`pe-dFPTDH2Shm%?b+$}8j^rF&^wnGXQZHR3tK6-yo z`pM?vqZ>w?bNwzb#Qv}OF1$9udMGxh|IHQNUNOPL66@R{1;tA;%ZoDi8gD_4aX)tC zxCa=;RWa`xCub#H+dBDa{Z}{goe%U{^5tfeWdoR7>dzD=xi#hhCYuy3117adWyci3 z_)(LsV5um_fo%D(6CDf>1jU%AxiN?vu%{FA1Pu=M7zGT%c#CL`z`yu#(tOD?>FsNu|2)nEA01D`>nU%S@t{Aeyi;F zbo*7HOK*0H{R%_9*;DQJ6#Mox=r z?NQHmw|#7Xx;WUrf6{*Q>h@30ukSAZLF=nTCRnsf@`j4C;|Ui%3O;d{eQ1oG0-}f$ z`IlbqUy@_nua?uYl&Js|vS~qnfso-B4IW%A=U&C}RAhB53Jvwl+hZR4mLa1H{Y+<|ZnbrB`{vGxV!9cw5yyqC54R&0LxiRY0gZ>*Rs z@IH%1ad-J@n8YaPf5PeJoUG6}0pK+4TAW|`3*JFDG^c(fpnKTImmA;nMoF`Ox4r8Y zpp8G|vDyC*ev`dF)@NxlhV66TXV@N{nNbXq$J+*~Vn5b=-l5#~oH=it|M1<)+c3_* z(+XV@^;h4kFVl+rhwsv|KY49jrZ?-%#tR!%anFkml2rr zI-mTt-TGZxliJVG!+%qz_nI#|#cAx!Wv5CU16^ucEn7~-ED`z#NH*g9hii~0QUQNN zib$roXcy_IV+er2M#z+o@RRahYsRyd>if7#qbh!O=Fx&`+EVSR^@b;Of{ISRx~GvGjr`0 z=)(m(Aio!ONK%L!P9uZRAls(p8}N!<5#|&W_RPie*zc>u+V4_Z->gD>uCuezLjn*< zj`L_~G0`EL$box^MPPsH?L1?YPmNG=1JALv&Jgk!jF-3n&QUxv6>}?w{<2bMzudW0 z-Q4Wz(cVftF*u=BydV*t@8NH{OYbtVE`g1`ZK-YSw7rjlJ$pxZo9=2P5tTIGPjA-a zOn=>G%g?7s;JuewTu7){n+B43EOu9yL>ms-U41A{!;6YEWi;1YH9S#~NsM&HAI8>e z&_njqhohZjKkkdP}uL+BjxS-EOBaK67et>nlvL})+QNT5PNta&Ou{s;Iqqoe5;!YyXI z2FRbuO5N3dL>|!ei)2i_pWp$|&%7Nbi#2I11@DUP$S)RY#5SmXvCI5BSz|Aw3d}L_ zQV}jGuQ;CU>*gDzjmn-5P9c{$wW**;m&9Yf)4AlfyOm4Bte6~dm1ZJhS{ z!8>=5#1O-Ps@5(EzJ)m`SsZ+al0tP0gLAh3unAX0*FY}x*W91-5kNpUi-YM z)Ta09mAHB73XNJDsTr>4zPLtmLkWLvWNhxj*|=zfc$7J;q?o^;Ow74lBwk$$iX=!@ zz^WQ0^TC$$lgZ>n+;~Z4@u!yx))S&U&XM_=KAOkfYYV|Mfwu}D7gom!*E6}}cf8&T z>}|Y1yA+oV#xiHWQdQSZek2|`B^NqaGZL1DA2DfHpR04hY*3i{BW*Zt@U(TuU!Wrw z(z*oPUtPzqD!!f0=<6@}t8O%W*CBVmMj&*%QyG;o*Afy(>bcrIk8#~7O2|YGP7F(~ z4{I80?_QrvJ<_E%-AQ%XBh+hV0;}hwFZ%tmO zIX_{Z268kQ!*>ujm!{?q zi5T^n{{32Md}rUwT>jT1xYpZ>Cy{sLpO=|a=r7d>*IK^(7p0la)=P;9p;qVwy)wUp zsYo@Ly=6btpwf9Ve#X-BJSQ>c<(_0&U`SY|zou;KjgfB7Gtx+ij9AGvv5??%_%*J} zEy7xLS?c8?e3r*Nnf!ABL`(MQS7`O`tWk#PWsorSvQBk~4qi0DSr$K{1@-b&0P_}% zXQ1T{rD74Y*uk3Kp~AC^@+y$)Ht#aM=U-IH!kM&ZZqNI`a&@`9nSWL8#bv42in!C{ ze+WytgXMk|1%Ln?XdHhH7L>@kNFxx3xOq}!r6uevzH*Y!{1MH^)-O;m0QoR6Exoy5 z3pEfPrP8lZE458|EBKUBk;bS*I~1maQbLecIV^HVRrHBP9&fE6Ei36J1PWtbc|3Sw zBWbXGaECIv{nm9z(oH=yw5eN{tKk85?FBz~d7}ROc#S(to-qf_>);DbHA|_vSS`+V z89_oU-5?aO0%AIX7AGn#yzXU*F8fuh7H8vVka|2C+BlFxW>4Nt{*kM?`%S?&bzOs=TA*q7n{b)wYyP%X%Ii724qx2#8>n#9|hAFwN(Ao0$X&4OYPxlIMSDuE)a zoo`fGoO@B?fK%F~_=7+r092T3zHNX{PIG=yYJ+KsD<9edxt~z9eNVon+trfHjNDB; zb^MB_F2gSmrjV%E;rB8iY-?9Js?6O6vvu6eTbpv{J6)1J*0oujtD>2<&kc3qj1U$< zFAbJkOa<*zhnkzF=IHuRb8kyO){t(@+G$n*W7QZ|H296uk0ssMq3fSjztY7H45nO> zhFt!>)+(5;KDoSN;qlA_KF#2-cbAjGmXc||UnmcNTSM_{b*E3gf4z*&I07bf@uBqC zw%i5}oW(&Kvx+lIb(YOk`oifM&IX^FnI{9lLYK2I0t@@W!_d3Qa2K8_rk?cCXFW&q zC5=B+7hK0$`uGZ<`FKonPT7q*pGX-~@8^&cQgewgDl16bjG`$Y;q}p&HV2la9v{aa zQ;LnGNh*9BT+oL&a;@H<5sma_t}5Q09KqKzva&t+Bq8fv4hQ1!lR4U7JCzyTR6L@b z?=w}01zE#msE&9v?PZ-zciA<6RG~V{8brPqovejhFV@#+rkbElIoK4fdUX`TJMu>6 z+akx*=Cif$daC!FExmEU@B1Zce75$R$E{VrA)1*T=^J%u^UMfW{OV{ifqy-&$F-kD zXJ&3FZk`$Subdy-dP|)5DQ`7jG}6Cdey3J(z3XfGrL_v5xia0p5!BAJ@AClgOEn zO)usM8DS=ZlT(<=y~-RuG}`R!yN+tiaJ6q^sx2zKYdpySk<9GFpAO??LEfO*Vmi+? z@BgX>0P}wh@oI3&g3whZu1zAGV6AP5&l{`o<;&{L^qMI&UXOU2A5q%hHdzAt-uc76`>xh zE-blSO@zC`@cI27{UBLvtSU2h0Pm(Hu5`S4Cw5iUnNqXvrePK z5)&;jV|liR&YIvhdT0Gh z91G+q@&wnrjKyecH`gw)0~;kK=&$+|EU=b~9KNdkRI#39B0W-~rvzaleyN_YfE+eq z=c-s|v)pUgz%KBDDR``F&D(s+T%a>dsZ{vaNzGuP>m5{WcgHElzQDl7E`niw+*C z!rv3&I6JaUO$CQ%u9R(HIGa|YWX&k2HokGVJ1cD}-nMs+H+eKU?=a+mTUsjwY)t3p znyGvimZ!61>);gNN(GWH=6dw6tMV5}meb{E@WZPhw748O_gN%G?prb~F+SVi0B6@J z6ia3pF#^=#)_v=&#GvC}LIi$`NCeZifO8QL*f7aeQkVSa`TfP^^rt#BK7+N+M4$Nl z+b}d*)!>Dg6YZiMNhikeQ`8l7=%=3S{eVQ**X-bzmGcsJTdbdwIn9Ew1bBSV-Q#o& z3++1C_)w4GTWl}Y?&x^2q2H;=5TPaM2%3T$L%>B@a^E!|HntufDmZvQL~`F!rDQha z;7IN}-f}5yJ-JWI5wVP{c5au^b9yyLsK(a6iYVnv8M5v0Sc@D=`RkxoVxw{+PlWbC zm@HG>$kVF#wi13og{c8<$7U(I@gLxvC;MS@lVv1Na14al_ACU-W>m%2BWM zNLak}E9fz9nL3`m47y97zJwTKe?M_VYdz!Xyye7GC2Y+LkPHIo?yIIfc zU#GI~qXP}QQ-Pt~JWKaaxO$M&EiOh&qPIK^|P zBHDp-%3HY=JXt(GHS#OE09EyzS!TTOvKm}>Uy;85SO#^rES zQ#lN2*SKaYw52ZO{kb6xa+~R-#!GUa6m@L<8f#A~KbHB=LbY*%p3~1;8$0rCoJ1S_ zGZkTHO}%}J`}@1s@=Y$GN&liHqR1D?MeC|_pqai@tG*?S-q`x7)`EC~!y9OUDkD^x zn@wtRU%gsh=Q#ZWJ-2+7{F#k+3kr_XTl-^*_$^ORVs{UY?^j6mJG*)HZ?o~aGcjg& z58?efd02NpgszT~d!vbwyL$=~)z}abhI~Z{~8TqY2Fy7yILy&p$N0nr<4Q73@`CFrVU?jZq+% z8xc`X-ss>33cP4q69L4iMe5ju$ZRu4QgOSEp6)6lncU7)pv%FMl+HzRY$*9fPYQqt zYGl<7Z*@Jr<&a3q#nLB95diuR*jAo9mKXo~)g)*FJ(&9I%gO#-Dzd5~cb4IyU?F(= zG_D8Hc6ALE4POR19h}fwJw=SH2g}zy|8I50r*yl^Yswst5YFeVUP^^c-Gr{en?Sz% z@d!s7xPv^ib%3QqOysKE-7_xM^e7MMCu7Y&w+|6wYg;7m{b?1FXSeC=bXE|Xbj-7X z1855Y&F!|Q&;PPDFDj-`x3JJUNgb%67WHF;GLLf5=Dte*{n_*VJ4B@B%g4canagAT z2EAr#HDi>aZPr0brq|5**dr5MddP{9XT0YoJuzjcJ7NLrZjw$faw~=CgJ9p+tXc6C zi;4?|E;y2w1h^%O4M=x&kqG^%uL57Gq{$XRtUS-1WE{AZDq`uMArSa@U=96^3xr-S z{;Gj|U5#Y&+QbYYhval~B{SFX(lR*Ej3}nm{>&2T>Aj7i8d`toUZm#i33QQDVDguu zl~JEFrA@d$m)c%#GaH4*W8bxO1Ek+Brt#0d!fVyS3E*+Syy$fUp9QRhe|CpJ(6@rmr3y#6t$i};gC}P4ObZUsp{eqRW;dFm4z~9P6w;c0#Uj!bJ%5r4?t?h zY8my#(!UEEw}nk<)$V%NW~}8XQxx-BC6hgW7`F24+^G=+a&B1-)i0WtDSn)0IUUFb z$8W)|silp!oZgxV{_iOJs05gJEAwpWu**})4Yh(JUz zo^yo+&&ch{AYE-~xkA*Mf6;t1U%Z=4zS7{Y9>|06ZV2+X0fE-L1?V^cRi)p)!k<;% z^=Cd&VTpg~6>Ubsb0-3dnLx&4f*PeM38i$8FpB(A%}##h9$;K@$Bbwk zE~yr~yY>V&eNfCeQ@>fO%rVk3AtKN;i88fhY%j5P6278gT(Niv={k8!XuapN1qJ7_ zG0MtY^YpB3c31WVCB zd;SS|)y!x9$=I=)3KA>%aA4y9h1q$$_!7^ZudaNhl9g)zdgb0OA@0!Ugsm3`@0ODUj%x{jn{7^hdY$8@4HD zVgz@EphtJ)@2ha}tmRBfs_{sb9L8XoRYgz~Q?ucbRF9uSr}LW2Tpf1SP^^+8OmC!v zWVVnW#?7BJN;ut~uf#eK4e|YMdfjODa6v=)NA5?T)>t*RfMqG7sP}v(b}MJAHN2^- z?bF{-`Ojn;M2d--hH*XnikdGg_D46*IMk1M>r243mfLPt<=%zk{5!Vm0mn)52|dg# z@^99h#k;83zhj3bmH5fuT2iTh^K+Io-oHaW=*)$ucnc=@vnFzkPItqY@Vwb;YP?-d zyEB(YnhO(gi?RAIwP~HlsENEsWR=)Nf*|-$%uD~e`TiPNK4%t?@qbhHF5ppC*ZzMJ z21p<}qeP81wPVlN2AgU)O&+q(s9y0Iy?!DJud#$zC zUVH7e_YSWEUJbCNO6^sbBGV)L?#v{I7nQAPe-X4=* zf-&ZSSd<6+#^wCbOIJWk>aT$o^1y1NNLBoEQ1gf%`J{^5P~>ZQtwtk^`_pyxgLGm}1tQ zm;7l=^Il4Zk`KfV=&>T^J)uiEiL>Xmsr)Z`DB3$A!pvLVlBum< z%ma(%L-FcO)xwKBpIm=TDu6XY0)aJXKtCOsYMsV!px`wpI$L3n!Xoa6bEO2Tjb`^W` z>eao}LEOc3kSL<++XHtUA8vb=d>ZUWzk7BL7#P zs|_X;K%%h4C!DmBcd3f^TYtP-^zy*9}uy#L@O5)_{M+ znky=WJ02DQ1Xm%H(sLlUEN)DJ#$8JM02+(FqVoWa83O7e0%NkpNP`TO#kSFH@-ow~ zP9bUyEX-s9ty01Asth3Q)bV=@DBq^^U1_PN)cuq;lw_@e*3Z6aWyfX~`9S2A*ZIXq z1&jO=!l|+@RjnGY32KB$W8tM-$aZcai0VEgDlg3Z3whL|yofwXTqa<(acmzcF z5>H6wuo^H`qV<6#6k(MD$FTbSSRoh!!5n`gK1i*EWd3I{qOno7|5X;BqIbMTMTxP* zXugc7r2f@cXa0CH;2si*1M9GB7zzShLz(HSq}dMT$y_WXSfRD(F)3FNy8+;|poUq! zBFc>F3FTvrLV`0<>AtqLG3kF(xrcV6R2Axo%fs{<+Q;1@GX&Hs@Kc)Qvt0&5Y6V}D zYwc7X@zXnHrg%&XKV$a^RfQU z$*H;l9<89T0Cjx&io4Dia>!UQn4!i@_4Q)>9#@iw9S>r<%4JUH1D(fW)qXDL24lM> z4}L_V7$ULV(12M}FH5JfM1oV~TR7g6nJwR-cg&N6;;JeMsNUfr>n8ESR)zQF#V4nx z(w(zU(}lJ@$CH^|-3O>-K*W|2HnNZO?hxrRUA9SwbfOKE$B%-!S6y%tfw!0h?N>9m z^1&wf?Ax2;VrgOS`<-UR3b(%kXU$GBq52grR!9@su0hQVCR%5Q^mJKF4tlJwBXyxr zJx5iU*k!fmrm$CC9}R7+2H&+n4c((PATTCnt`u;YT!)$IZTow!m7UKHZspVuPzdLX ze%kM~-3+?_Q2Ut`Zja;&3dsin+W7{pLE0kO1Ij&>w=NawzD7A^14^xnkgLfpdHBpC zSnIdqS2QTqD%jXIMv_ho>yg{tPru4HXt(nQZ~U_M4S~ z#@SJsojSnUNKj2$;$==LqS1@dfh&ZpuJ+*uA+qbVqYC^%8!&g`pF}K=IBge@Jkvin$4wu`FF9Mvjv_KSS@&SGEImEuN6yIq$JH%dPX*mdI>Tz} z<B_4EVwW`)mFTITNaGgudDDB93?(S-q~b2vRwhRakf~vMq?B z)65c9ohv$Hq5|Aa&eLtBz5x+rh87kR97Aluex0;6I9F%_I$fi*Ox+5Fk`ru@Jr4;G zP#R@5O+21TC4D9762A^p%K=61@?o~W3a;JP!xs}s+h8a0RM*LVg|x19q?ztX;mH?^ zj2u~Q&hP%lKsm(F#M;VziZrb!&cQ0u{QxoWt0biigrcsl>b%90!qMk_Q$I7#yNaK1 z+s_1{EM_;2LXS}9v1++Jbl$E@NC?rNr@K7Ip4Irtc+T(^Tz!l`gGeKR1PbGA6hf3y zsqebV|A)DT_k_7;5k}RS-&HH6ZMOg#GL`}F27aUbeuKR!r?sA|*-*HxOX*9Re9zIh zoA^dGLYbc>{1C!~|0Jb^0#1PTCk4m56RbyIM16h=82NEflK|ygfP6n^I+8LHo=JPQ#Q_LfB$uq*2-`bdJBTS(fM1*ZbOC`oc=mMJBOC1OR5A{& zJ;fgKilFl{2L>jrqD2nCXqca^LN=81YrbG8D$?B zl~F~DGN06+G}(Jq5UXV$f7Q3OQr%xy29z@4y`BgYA~C{kD>Sh4VYz*%3AbM*k*Dmc!nAXZ)5M z@eEuj57=(XIJSL#K6Cs6BN+l4Zac%DY#s^1$o_|~@Cr!~zc_P=&$?=w~@Dx|ev+Bm#k3$LyH8|?dINN4hv z6|V-t1Fwm0P~=~6@$2`cSIo=COmQs|0se`!ItyyzH8>4b?gR>bZ1W0|Hv~io+Spd6 zUTX`Vx%gROo1MmI!M@{mI#`=5Mmq@Jt>j$AGh|8H{cotTl;Ga_*M~Q>%JWD z=X{aKJjcNc_%R?v0^mB!woRlPbngF=y@s#)q!Bz@)wak})u&cJRqRvtAeM{(F8>^u zt{`jnQd*7g{*|tg)PODsF>0ADpxu-h=BIx}A`A-a75LgerA%_nAW+PZ9o3-z%D-bG zm=v+zi=s~#NM(0FT+p^ufNX3!jC(7$(mqsCvMvd zWCcm}wf>1?v!5e(Yk#AtwRWfV_ZfO#H&1L?eWxg=h@1Z=Ne$k5e~xm*EioVyl^_w) zz8m5fBCWlPDUBRwyNulusPNja8{F?3+^>LFa($!VDvW4)0CzoPa!Xhfz06IDrS20D zw7*+^S?9exySY-yrud;iu@E_bs>Dky?1BGkkn(}g(nYSo+mU$gZFRrfkp;Wa;I0C1 zvlf$aF7lV`{LM@34S6Gi(*(1}fv}s>Y=cNz!q)wSu(w5u^!{P-ok5tMd8-|6ZE|95cnk5AINd%K9U6Jo11f7pBaGem*$R* zlBv!AVW9IG=>z|xITXbU7+QVIN+=HTYsi}&M@DaiOVm)OXty`<+`-lz2Lxt~Se0F> zc@4#vFgob>?bmaZ|20JcBQispF?$15;H{D3$}V80LH=$DT;_8s4Exf?6Tkapp2Jr0 z5z=fDNcRfT5>6ECft~?0ZcA13TNO9Kfs8y$olT(zZ0H;B)z>M7?wglURsWnqy6*LE zX<_<&otyIVimAw?WmNXwQ{o zHaZVE!>9Y(fhzvY3pu*a20DGjjX@~COzAw4ZD~^~%CEOtOv}-3COc>&)huZL7FPkn z9g?%_(SKu1uZv`N>f4Cycfi_>^*TjLI|>Jgg4CCGOKRN6@RpOk$9MD>R=?F!H1+}p zsXNFQ7>OzQ;cVUt>_~b94ecJ-&MDiE$xi0UOSE&880nF%&&dEO+L3Bd6GuvybOS(w zVOHSxKZ}WI^wTXqlC@u8?)jAeH;Ch01vTKK3xnc8HF{=K_7Ajz*P7t<*Sv6NQ6FMGbpp&wqsv;s9y+-)O=ECjH0 zGb5s4rr8Xibz#$aX68%hS%{fB-{pi?Y##$yGoZU@wC^gAc3}(&sMq~ZzMH%lo$di> z_FFI`wVm(gm+)7|A+3#Cbf3Q6iT)uiKNM-&PJtkoHyxUg7iuw2?+@Ar`0i_^x^mzQ z5ch#)q8D+J@tH26(Wk$rslR5NDO%=xWxaLL#cw7rhq|&MZH!GtReljoM{+dSxuwnW zK`-#u`zzqL*wXhNNbZB|`}u|qsc4z@E)4ANnZw+y1PvP1w6>oak`Ci)DN5`v(HT&? zHb9IFluCbvx>6pV75c32j(m+-lwA|OEB*v1rIpP;=TrD(K80zTIek8|oES?=W|TeF z=&{fq>-G5VJY|@q$Jgw!kw1nCwej@*gZ^DOfHk~+p zp_V;$+@nb2L7C41t#6N>D)jWUo<2VCtyE8&kM?)k`D_tPmZ&$5ee@8#Z&Yx|@@;^Z z=sa;Ll0UuK-KaJT=STQJH`~?nTP<)K>%|YRta)s3_6?R7#w$Bt^rovIy zA1~!>z6#-eS^(ih{UQvLbC5(9K^pHv+SBq&H?NtCc=VZk|0+nQAAz&K$#2G^`X#*} z2S-E|oPVNmq%{IK_L+Py@p&+uH36KJ0h~1HMi#L|aPB(-hh_X*?K3U=FXg+YnVuX? z?2cgjWov+ti+4ucbs}Fxgsy@5Zlk2E_4&LN%>Mj=y8qog?xT|I4N2@S95_Ddp-<8U zIO$0%5EgjY`kJ&~oFyoZpbo_gSh3!h*j=2vF3Qh8lT?2P6&ID(HG3UBVBaaR^fv6~ zk#7sUjz`oaFnSMzz|Eu=+nmR?vnmB^E=?4#8Mc`bw8oAHGXHMkWjQ$f9!#@nnl6qn zB`}UF{3wg;7Q3`+BKo#J&gP7y%rqu@lD}86uN6Ov)~mix*_VBhGdFM4lQ+t>su-I~ z>O$U*PfZV9`>&ku=#BE868$Jrf)tl>FWD{!e$_WB^9{SSWmJkTq@TVgli%u3-d9r_ z&hyUomW29tabJ7|F0Lpb$pN-cdkq1$GrbE!-pP!?TL0xJi{(|EjjgJw7R<|;8VK`}0Q0TBRtP4t z>~s+RJLn(&k(TYx+|bk4qvqUZ%{iY?m%jg6Ft9&P4KUs^FaL-$)^hXL3C8Jw!N#vK zdxsiz#Q-|pH#C2#V-Mj5i9o)Qz(WxJaRGubg_Bmd8Q*a*a`G2BV4T0OLfQN|fglXl zXSw})ND*5P4QS7T#NlyQ4^54uMQ)7|d2h=pZjBLnZ_9BhNn@^muuoBiAiRl>2?}*R zj8XDIcuxC2;CbQf9G=Vv6EBZr$QsN1O}?K>Iq8sx3S^+lP52-g__E1BX-;Ct36W`% zfzm(*E{RY0Fc}DUbf_B-k^_8c%Q=3N;@S{Yi5%!2-m!_@<0K1Zfh_#u$oP1)Jalew zSBKgU-LT!w{$TQMGV(st688ICdwN9*IuDEXvNNn?D4j2kpYBYZB2s7LGArGl_%m^>gt5QxvYDDdQ+yk7!Ox?4G(S@z$3ZEETI}?30ST z%h>ly{4u(R))S;pAofRt!FE}!vbs~5!)tHV-?o+fJ*Jzy<*UkRp>W4-qKV&4I4}rv z$wDdZPJDFV#OH8@i`+1pw@`I3?$WMk^*UuPvSjPKn8jHFcpw9 z3r=>M4aY+*#X;cgCQ|`-s|J?3w55|OLz%r7Q_Do~yVvkDL4b0Z8NzRRfS-si6>wyf z0>63Sr<}K(j|%u0UJXa2T(y}M;q_O@%YmyAYr!9Fvp4W1S=*odiH)#Byvsw`XZ7jp z{mD-IbhfuVWbUGXmf2q%(IK7EA=^!d;1jc3EW1sIh*nUJ4#~Ng7g+T2P0S;M5MJ3M z8iV$b9^?M6W*p3m5O=oZ(|}dz91OU_U*X_urR<}3MjbinnPxy}exz|V^;`aIyHoQc zNG8RT**}fO(>KUkNyny#R06I28Dc{?l)Fb^QBNeE(?;ad_>T#y{oF;FGTl2CCUmAN&n1o0*6R+ieAm|Ih3U&`IesC}t$ zYqZ1En^Ngk%9+Z9+pUpfz?(AGyTnwvn`p#6mG)ueUHcBFN_WcM>TO_9L8dsxv9|$B z7`wbzh_b>!4qQ~c3!~TX@t7~HoGyop&G5qQmktsH5hi7{($bh{)n&BO^j?FB`rIF< z!kjYp9qSibUqUw>v)_(%J$k;T`0Un~*8+q~2^Kb?26=QfQ(GSvCW)ToTCWf38V+wl zBy3mudJ{O6U14eC2i#kDx5De<^eT+ekGcC-0D-5ITmn@jUDW`&((5YLw{;KK4#1q_Dgvcp!S~jFQQ9#iS%2 zmLV}Vc}IkoPIbQUmg|R8VbvJiGIhg8`}@MHcDz@}No-Yl?5-xyVEZz>r39Z-{c(At z_a#HanDXp-bAQqA$p5A5Uf>9iw|6{W*hVa*x`X#b>)sXovZHa`10ogy=Bsb#flf5m z4SVuH;*orBn7cj?RX^4vw&0SGcTu6~%GTYYxcTk3|0gB7#m>%e3+N)`|71NVYJh<= z=pozlm5o*@M=0|y!z_&URXH^K3yYvW(BSNKYl9l&w_{IHuiC&lgi`Nn-}}<8`;|ow zbACQYDHflSJ(Ha2XQ*|%kV~0}sB;=}QaUIBTi}o)`6wPy{XQtXED(r$Aw>$EKQJ4$ zDHc~hdd=K(+0uX23_JpCHc{H*%NR6g>+ppdTAcH*_s?PN``WYKf&CC~oSRVWz3Dwc zgDdlUF{x{+_j8E+$m|xhCjn?eRM)-njNv9?@fCyOdxYdh*4h76PyNp3d^oXwYdVTpUFM7-SpxtUq=?N6xO(#UuJ+ z>T*3SV=k@wKMN#SX{7uK^z43+yhJOtWdr@uR*%P_=Nf4+F%+CyiE~e0 zk=7mRl#+1K`abDW`pGEd+@?e6Lh>xAPFL}Ri1HV!aOgPwE;JKno|Ry^#J@ZQpW(Hr zNU0$8(k!bmE-d9WWvW-#=&mgE?pB(cUhJ)r9(5BV-b(3FcV&rpxAdsoj?+s$)1z)) znYT%L)J=?fE2T%>l`-#b=}|Ym+%rAu=2du`q(|MvN)C*%JXPM^(xYzrSkLsRoLflr z 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π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

    b?6Wu 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 C#7}1c literal 0 HcmV?d00001 diff --git a/scripts/Windows/Installer/ImageFiles/Others/regex2.dll b/scripts/Windows/Installer/ImageFiles/Others/regex2.dll new file mode 100644 index 0000000000000000000000000000000000000000..f84a847a0de92fc59fa2ff8494ff700e62b87326 GIT binary patch literal 79360 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

    _=j6^tGnWdd25;!iXjHu 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�ylRVUo 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

    ^w_2~-IofBEH{Gm53^o-YmCFf(3 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

    &UYUiVm9v*E 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 z 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%0Axtb!cU4MFFI?y#t!oL@{ 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 + + + + + + + +

    + + + + + + + + + + + + + + + [DlgTitleFont][ProductName] relies on libUSB as a prerequisite, you have to install it. + + + If you plan to use NUT for UPS with USB connectivity, do not forget to install the corresponding libUSB's device driver using libUSB's Inf Wizard. + + + Click Next to continue [Wizard]. + + + + + + + + + + + + + + Click the Finish button to exit the [Wizard]. + + + {\VerdanaBold13}Completing the [ProductName] [Wizard] + + + + + + + + + + + + {\VerdanaBold13}[ProductName] [Wizard] ended prematurely + + + [ProductName] setup ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again. + + + Click the Finish button to exit the [Wizard]. + + + + + + + + + + Please wait while the [Wizard] prepares to guide you through the installation. + + + {\VerdanaBold13}Welcome to the [ProductName] [Wizard] + + + + + + + + + + + + + + + + + Please wait while the [Wizard] [Progress2] [ProductName]. This may take several minutes. + + + + + [DlgTitleFont][Progress1] [ProductName] + + + + + + + + + + + + + + + + + + + + {\VerdanaBold13}[ProductName] [Wizard] was interrupted + + + [ProductName] setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again. + + + Click the Finish button to exit the [Wizard]. + + + + + + + + + + + + + + + + + + + + + + + + + + + Browse to the destination folder + + + [DlgTitleFont]Change current destination folder + + + + + + + + + + + + + + + + Are you sure you want to cancel [ProductName] installation? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The following applications are using files that need to be updated by this setup. Close these applications and then click Retry to continue the installation or Cancel to exit it. + + + + + Some files that need to be updated are currently in use. + + + [DlgTitleFont]Files in Use + + + + + + + + + + + "Yes"]]> + + + + + + + + {\rtf1\ansi\ansicpg1252\deff0\deftab720 + {\fonttbl{\f0\froman\fprq2 Times New Roman;}} + {\colortbl\red0\green0\blue0;} + \deflang1033\horzdoc{\*\fchars }{\*\lchars } + \pard\plain\f0\fs18 \par + GNU GENERAL PUBLIC LICENSE \par + Version 2, June 1991 + \par \par +Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. \par + + Preamble \par +The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. \par + +\par +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + \par +To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + \par + \par +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their rights. + \par + \par +We protect your rights with two steps: +\par (1) copyright the software, and +\par (2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + \par + \par +Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + \par + \par +Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + \par + \par +The precise terms and conditions for copying, distribution and +modification follow. + \par + \par + GNU GENERAL PUBLIC LICENSE + \par \par + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + \par \par + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + \par \par + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + \par \par + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + \par \par +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + \par \par + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + \par \par + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + \par \par + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + \par \par + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + \par \par +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + \par \par +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + \par \par +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + \par \par + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + \par \par + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + \par \par + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + \par \par + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + \par \par +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + \par \par +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + \par \par + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + \par \par + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + \par \par + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + \par \par + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + \par \par +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + \par \par +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + \par \par +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + \par \par + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + \par \par + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + \par \par +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + \par \par + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + \par \par + NO WARRANTY + \par \par + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + \par \par + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + \par \par + END OF TERMS AND CONDITIONS + \par \par + How to Apply These Terms to Your New Programs + \par \par + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + \par \par + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + \par \par + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + \par \par + 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. + \par \par + 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. + \par \par + 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., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + \par \par +Also add information on how to contact you by electronic and paper mail. + \par \par +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + \par \par + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + \par +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + \par \par +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + \par \par + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + \par \par + <signature of Ty Coon>, 1 April 1989 + \par + Ty Coon, President of Vice + \par \par +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + \par \par + + } + + + + + + Please read the following license agreement carefully + + + [DlgTitleFont]End-User License Agreement + + + + + + [DlgTitleFont]Re&pair + + + + + + + + + [DlgTitleFont]&Remove + + + + + + + + + + + + + + + + + + + Select the operation you wish to perform. + + + [DlgTitleFont]Repair or Remove installation + + + Removes [ProductName] from your computer. + + + Repairs errors in the most recent installation state - fixes missing or corrupt files, shortcuts and registry entries. + + + + + + + + + + + + + + + The [Wizard] will allow you to change the way [ProductName] features are installed on your computer or even to remove [ProductName] from your computer. Click Next to continue or Cancel to exit the [Wizard]. + + + {\VerdanaBold13}Welcome to the [ProductName] [Wizard] + + + + + 1]]> + + + + + + + + + + + The [Wizard] will complete the installation of [ProductName] on your computer. Click Install to continue or Cancel to exit the [Wizard]. + + + {\VerdanaBold13}Resuming the [ProductName] [Wizard] + + + + + 1]]> + + + + + + + + + + + + Click Install to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. + + + + + The [Wizard] is ready to begin the [InstallMode] installation + + + [DlgTitleFont]Ready to Install + + + + + + + + + 1]]> + 1]]> + + + + + + + + + Click Remove to remove [ProductName] from your computer. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. + + + + + You have chosen to remove the program from your computer. + + + [DlgTitleFont]Remove [ProductName] + + + + + + 1]]> + 1]]> + 1]]> + + + + + + + + + + + + Click Repair to repair the installation of [ProductName]. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. + + + + + The [Wizard] is ready to begin the repair of [ProductName]. + + + [DlgTitleFont]Repair [ProductName] + + + + + + + + + + + + + + + The [Wizard] will install [ProductName] on your computer. Click Next to continue or Cancel to exit the [Wizard]. + + + {\VerdanaBold13}Welcome to the [ProductName] [Wizard] + + + + + + + + + + + bytes + GB + KB + MB + Entire feature will be unavailable + Feature will be installed when required + Entire feature will be installed to run from CD + Entire feature will be installed on local hard drive + Entire feature will be installed to run from network + Will be installed to run from CD + Will be installed on local hard drive + Will be installed to run from network + Gathering required information... + This feature will remain uninstalled + This feature will be set to be installed when required + This feature will be installed to run from CD + This feature will be installed on the local hard drive + This feature will be installed to run from the network + This feature will become unavailable + Will be installed when required + This feature will be available to run from CD + This feature will be installed on your local hard drive + This feature will be available to run from the network + This feature will be uninstalled completely, you won't be able to run it from CD + This feature will change from run from CD state to set to be installed when required + This feature will remain to be run from CD + This feature will change from run from CD state to be installed on the local hard drive + This feature frees up [1] on your hard drive. + This feature requires [1] on your hard drive. + Compiling cost for this feature... + This feature will be completely removed + This feature will be removed from your local hard drive, but will be set to be installed when required + This feature will be removed from your local hard drive, but will be still available to run from CD + This feature will remain on you local hard drive + This feature will be removed from your local hard drive, but will be still available to run from the network + This feature will be uninstalled completely, you won't be able to run it from the network + This feature will change from run from network state to set to be installed when required + This feature will change from run from network state to be installed on the local hard drive + This feature will remain to be run from the network + This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive. + This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive. + This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive. + This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive. + Time remaining: {[1] minutes }{[2] seconds} + Available + Difference + Required + Disk Size + Volume + Validating install + Copying new files + Copying network install files + Computing space requirements + Computing space requirements + Computing space requirements + Creating shortcuts + Publishing Qualified Components + Publishing Product Features + Publishing product information + Registering Class servers + Registering extension servers + Registering MIME info + Registering program identifiers + Allocating registry space + Searching for installed applications + Binding executables + Searching for qualifying products + Creating folders + Deleting services + Creating duplicate files + Searching for related applications + Installing ODBC components + Installing new services + Evaluating launch conditions + Migrating feature states from related applications + Moving files + Patching files + Updating component registration + Registering COM+ Applications and Components + Registering fonts + Registering product + Registering type libraries + Registering user + Removing duplicated files + Updating environment strings + Removing applications + Removing files + Removing folders + Removing INI files entries + Removing ODBC components + Removing system registry values + Removing shortcuts + Searching for qualifying products + Registering modules + Unregistering modules + Initializing ODBC directories + Starting services + Stopping services + Unpublishing Qualified Components + Unpublishing Product Features + Unregister Class servers + Unregistering COM+ Applications and Components + Unregistering extension servers + Unregistering fonts + Unregistering MIME info + Unregistering program identifiers + Unregistering type libraries + Updating environment strings + Writing INI files values + Writing system registry values + Advertising application + Generating script operations for action: + Installing system catalog + Publishing assembly information + Unpublishing assembly information + Rolling back action: + Removing backup files + Removing moved files + Unpublishing product information + {{Fatal error: }} + {{Error [1]. }} + Warning [1]. + + Info [1]. + The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}} + + {{Disk full: }} + Action [Time]: [1]. [2] + [ProductName] + {[2]}{, [3]}{, [4]} + Message type: [1], Argument: [2] + === Logging started: [Date] [Time] === + === Logging stopped: [Date] [Time] === + Action start [Time]: [1]. + Action ended [Time]: [1]. Return value [2]. + Time remaining: {[1] minutes }{[2] seconds} + Out of memory. Shut down other applications before retrying. + Installer is no longer responding. + Installer stopped prematurely. + Please wait while Windows configures [ProductName] + Gathering required information... + Removing older versions of this application... + Preparing to remove older versions of this application... + {[ProductName] }Setup completed successfully. + {[ProductName] }Setup failed. + Error reading from file: [2]. {{ System error [3].}} Verify that the file exists and that you can access it. + Cannot create the file '[2]'. A directory with this name already exists. Cancel the install and try installing to a different location. + Please insert the disk: [2] + The installer has insufficient privileges to access this directory: [2]. The installation cannot continue. Log on as administrator or contact your system administrator. + Error writing to file: [2]. Verify that you have access to that directory. + Error reading from file [2]. {{ System error [3].}} Verify that the file exists and that you can access it. + Another application has exclusive access to the file '[2]'. Please shut down all other applications, then click Retry. + There is not enough disk space to install this file: [2]. Free some disk space and click Retry, or click Cancel to exit. + Source file not found: [2]. Verify that the file exists and that you can access it. + Error reading from file: [3]. {{ System error [2].}} Verify that the file exists and that you can access it. + Error writing to file: [3]. {{ System error [2].}} Verify that you have access to that directory. + Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it. + Cannot create the directory '[2]'. A file with this name already exists. Please rename or remove the file and click retry, or click Cancel to exit. + The volume [2] is currently unavailable. Please select another. + The specified path '[2]' is unavailable. + Unable to write to the specified folder: [2]. + A network error occurred while attempting to read from the file: [2] + An error occurred while attempting to create the directory: [2] + A network error occurred while attempting to create the directory: [2] + A network error occurred while attempting to open the source file cabinet: [2] + The specified path is too long: [2] + The Installer has insufficient privileges to modify this file: [2]. + A portion of the folder path '[2]' is invalid. It is either empty or exceeds the length allowed by the system. + The folder path '[2]' contains words that are not valid in folder paths. + The folder path '[2]' contains an invalid character. + '[2]' is not a valid short file name. + Error getting file security: [3] GetLastError: [2] + Invalid Drive: [2] + Error applying patch to file [2]. It has probably been updated by other means, and can no longer be modified by this patch. For more information contact your patch vendor. {{System Error: [3]}} + A file that is required cannot be installed because the cabinet file [2] is not digitally signed. This may indicate that the cabinet file is corrupt. + A file that is required cannot be installed because the cabinet file [2] has an invalid digital signature. This may indicate that the cabinet file is corrupt.{{ Error [3] was returned by WinVerifyTrust.}} + Failed to correctly copy [2] file: CRC error. + Failed to correctly move [2] file: CRC error. + Failed to correctly patch [2] file: CRC error. + The file '[2]' cannot be installed because the file cannot be found in cabinet file '[3]'. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package. + The cabinet file '[2]' required for this installation is corrupt and cannot be used. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package. + There was an error creating a temporary file that is needed to complete this installation.{{ Folder: [3]. System error code: [2]}} + Could not create key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not open key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not delete value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not delete key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not read value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not write value [2] to key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not get value names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not get sub key names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not read security information for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not increase the available registry space. [2] KB of free registry space is required for the installation of this application. + Another installation is in progress. You must complete that installation before continuing this one. + Error accessing secured data. Please make sure the Windows Installer is configured properly and try the install again. + User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product. Your current install will now continue. + User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product. + Out of disk space -- Volume: '[2]'; required space: [3] KB; available space: [4] KB. Free some disk space and retry. + Are you sure you want to cancel? + The file [2][3] is being held in use{ by the following process: Name: [4], Id: [5], Window Title: '[6]'}. Close that application and retry. + The product '[2]' is already installed, preventing the installation of this product. The two products are incompatible. + There is not enough disk space on the volume '[2]' to continue the install with recovery enabled. [3] KB are required, but only [4] KB are available. Click Ignore to continue the install without saving recovery information, click Retry to check for available space again, or click Cancel to quit the installation. + Could not access network location [2]. + The following applications should be closed before continuing the install: + Could not find any previously installed compliant products on the machine for installing this product. + An error occurred while applying security settings. [2] is not a valid user or group. This could be a problem with the package, or a problem connecting to a domain controller on the network. Check your network connection and click Retry, or Cancel to end the install. {{Unable to locate the user's SID, system error [3]}} + The key [2] is not valid. Verify that you entered the correct key. + The installer must restart your system before configuration of [2] can continue. Click Yes to restart now or No if you plan to manually restart later. + You must restart your system for the configuration changes made to [2] to take effect. Click Yes to restart now or No if you plan to manually restart later. + An installation for [2] is currently suspended. You must undo the changes made by that installation to continue. Do you want to undo those changes? + A previous installation for this product is in progress. You must undo the changes made by that installation to continue. Do you want to undo those changes? + An installation package for the product [2] cannot be found. Try the installation again using a valid copy of the installation package '[3]'. + Installation completed successfully. + Installation failed. + Product: [2] -- [3] + You may either restore your computer to its previous state or continue the install later. Would you like to restore? + An error occurred while writing installation information to disk. Check to make sure enough disk space is available, and click Retry, or Cancel to end the install. + One or more of the files required to restore your computer to its previous state could not be found. Restoration will not be possible. + [2] cannot install one of its required products. Contact your technical support group. {{System Error: [3].}} + The older version of [2] cannot be removed. Contact your technical support group. {{System Error [3].}} + Installed [2] + Configured [2] + Removed [2] + File [2] was rejected by digital signature policy. + The Windows Installer Service could not be accessed. This can occur if you are running Windows in safe mode, or if the Windows Installer is not correctly installed. Contact your support personnel for assistance. + There is a problem with this Windows Installer package. A script required for this install to complete could not be run. Contact your support personnel or package vendor. {{Custom action [2] script error [3], [4]: [5] Line [6], Column [7], [8] }} + There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action: [2], location: [3], command: [4] }} + There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor. {{Action [2], location: [3], command: [4] }} + There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action [2], entry: [3], library: [4] }} + Removal completed successfully. + Removal failed. + Advertisement completed successfully. + Advertisement failed. + Configuration completed successfully. + Configuration failed. + You must be an Administrator to remove this application. To remove this application, you can log on as an Administrator, or contact your technical support group for assistance. + The path [2] is not valid. Please specify a valid path. + Out of memory. Shut down other applications before retrying. + There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to go back to the previously selected volume. + There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to return to the browse dialog and select a different volume. + The folder [2] does not exist. Please enter a path to an existing folder. + You have insufficient privileges to read this folder. + A valid destination folder for the install could not be determined. + Error attempting to read from the source install database: [2]. + Scheduling reboot operation: Renaming file [2] to [3]. Must reboot to complete operation. + Scheduling reboot operation: Deleting file [2]. Must reboot to complete operation. + Module [2] failed to register. HRESULT [3]. Contact your support personnel. + Module [2] failed to unregister. HRESULT [3]. Contact your support personnel. + Failed to cache package [2]. Error: [3]. Contact your support personnel. + Could not register font [2]. Verify that you have sufficient permissions to install fonts, and that the system supports this font. + Could not unregister font [2]. Verify that you that you have sufficient permissions to remove fonts. + Could not create Shortcut [2]. Verify that the destination folder exists and that you can access it. + Could not remove Shortcut [2]. Verify that the shortcut file exists and that you can access it. + Could not register type library for file [2]. Contact your support personnel. + Could not unregister type library for file [2]. Contact your support personnel. + Could not update the ini file [2][3]. Verify that the file exists and that you can access it. + Could not schedule file [2] to replace file [3] on reboot. Verify that you have write permissions to file [3]. + Error removing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel. + Error installing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel. + Error removing ODBC driver: [4], ODBC error [2]: [3]. Verify that you have sufficient privileges to remove ODBC drivers. + Error installing ODBC driver: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it. + Error configuring ODBC data source: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it. + Service '[2]' ([3]) failed to start. Verify that you have sufficient privileges to start system services. + Service '[2]' ([3]) could not be stopped. Verify that you have sufficient privileges to stop system services. + Service '[2]' ([3]) could not be deleted. Verify that you have sufficient privileges to remove system services. + Service '[2]' ([3]) could not be installed. Verify that you have sufficient privileges to install system services. + Could not update environment variable '[2]'. Verify that you have sufficient privileges to modify environment variables. + You do not have sufficient privileges to complete this installation for all users of the machine. Log on as administrator and then retry this installation. + Could not set file security for file '[3]'. Error: [2]. Verify that you have sufficient privileges to modify the security permissions for this file. + Component Services (COM+ 1.0) are not installed on this computer. This installation requires Component Services in order to complete successfully. Component Services are available on Windows 2000. + Error registering COM+ Application. Contact your support personnel for more information. + Error unregistering COM+ Application. Contact your support personnel for more information. + The description for service '[2]' ([3]) could not be changed. + The Windows Installer service cannot update the system file [2] because the file is protected by Windows. You may need to update your operating system for this program to work correctly. {{Package version: [3], OS Protected version: [4]}} + The Windows Installer service cannot update the protected Windows file [2]. {{Package version: [3], OS Protected version: [4], SFP Error: [5]}} + The Windows Installer service cannot update one or more protected Windows files. {{SFP Error: [2]. List of protected files:\r\n[3]}} + User installations are disabled via policy on the machine. + An error occured during the installation of assembly component [2]. HRESULT: [3]. {{assembly interface: [4], function: [5], assembly name: [6]}} + + TARGETDIR="" + + + + + + + + + + + + + + + TARGETDIR="" + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + @@@@@]]> + + + + + + + + + + + TARGETDIR="" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TARGETDIR="" + + + + + + + + + \ No newline at end of file From edec90aa45758403eae91568e3fa910e322e4f30 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 18 Mar 2011 13:17:16 +0000 Subject: [PATCH 090/218] small typo Fossil-ID: SVN r2943 --- scripts/Windows/Installer/NUT-Installer.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index a0717f7a98..a2eaed5ea1 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1,6 +1,6 @@ - + @@ -1828,4 +1828,4 @@ Public License instead of this License. - \ No newline at end of file + From 58d73ab6f48c2398cd9af65d50c1916a412fe391 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 18 Mar 2011 14:09:12 +0000 Subject: [PATCH 091/218] Remove DLL from the SVN repository. They are now gathered from the build system when creating the installer . Fossil-ID: SVN r2946 --- scripts/Windows/Installer/BuildInstaller.bat | 8 +++++++- .../ImageFiles/Others/libgnurx-0.dll | Bin 43860 -> 0 bytes .../Installer/ImageFiles/Others/msys-1.0.dll | Bin 820224 -> 0 bytes .../ImageFiles/Others/msys-crypto-1.0.0.dll | Bin 1320448 -> 0 bytes .../ImageFiles/Others/msys-ssl-1.0.0.dll | Bin 300544 -> 0 bytes .../Installer/ImageFiles/Others/regex2.dll | Bin 79360 -> 0 bytes 6 files changed, 7 insertions(+), 1 deletion(-) delete mode 100644 scripts/Windows/Installer/ImageFiles/Others/libgnurx-0.dll delete mode 100644 scripts/Windows/Installer/ImageFiles/Others/msys-1.0.dll delete mode 100644 scripts/Windows/Installer/ImageFiles/Others/msys-crypto-1.0.0.dll delete mode 100644 scripts/Windows/Installer/ImageFiles/Others/msys-ssl-1.0.0.dll delete mode 100644 scripts/Windows/Installer/ImageFiles/Others/regex2.dll diff --git a/scripts/Windows/Installer/BuildInstaller.bat b/scripts/Windows/Installer/BuildInstaller.bat index f980b75063..f105a13893 100644 --- a/scripts/Windows/Installer/BuildInstaller.bat +++ b/scripts/Windows/Installer/BuildInstaller.bat @@ -9,6 +9,12 @@ SET NUT-XML-FILE=NUT-Installer.xml SET wixobjName=NUT-Installer.wixobj SET msiPackageName=NUT-Installer.msi +REM copy DLL files from system +copy /Y c:\mingw\msys\1.0\bin\msys-1.0.dll .\ImageFiles\Others +copy /Y c:\mingw\msys\1.0\bin\msys-crypto-1.0.0.dll .\ImageFiles\Others +copy /Y c:\mingw\msys\1.0\bin\msys-ssl-1.0.0.dll .\ImageFiles\Others +copy /Y c:\mingw\bin\libgnurx-0.dll .\ImageFiles\Others + REM use "candle.exe" to create the "object" file candle.exe "%NUT-XML-FILE%" -out "%wixobjName%" >"log.txt" @echo ========================================================= @@ -22,4 +28,4 @@ light.exe "%wixobjName%" -out "%msiPackageName%" >>"log.txt" @echo MSI package "%msiPackageName%" complete @echo ========================================================= @echo Check output file "log.txt" for status of completion... -@echo ========================================================= \ No newline at end of file +@echo ========================================================= diff --git a/scripts/Windows/Installer/ImageFiles/Others/libgnurx-0.dll b/scripts/Windows/Installer/ImageFiles/Others/libgnurx-0.dll deleted file mode 100644 index 6e95eec6b86623db199baf65fd6ceaadb957a8fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43860 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%0Dc35`-`P7LXprsitiYzTy*7S^}Sbv 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

    $qM}wBF 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

    J%LdvPT^l0R%(<2PM$TSGk`afPE^W?T-+_ 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≈2tS*L;DcyeI@RrpxL^V1D61J!v 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 VKh(z+)$IQ*KHUF&h=2MM_+O0^4-^0Z diff --git a/scripts/Windows/Installer/ImageFiles/Others/msys-crypto-1.0.0.dll b/scripts/Windows/Installer/ImageFiles/Others/msys-crypto-1.0.0.dll deleted file mode 100644 index e6c1e6938f10d1453a7027c3b1f434fc473753cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1320448 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

  • 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³L zC#i6%nbvK;bAro15J>!R4Sp0x1@S5^g}nW`$BA$?bbE)Cw7=_D;BU(t^50c8h89#K z)RH5|lu4h_TS()rvtauW`9@=rV$q9oNw;%{5 zSYAkYah3XQ(Z$xL)pjn)Q@=9BA+qaut1Eq6JU3K%O%k?MIOMZ4>LHx9XQ1LK)o!d*=)xHgpk{;JJxueYF_G72ccm;3pmGywS{!eKwH@WH3?!$y534%QV#fVVgU5Trlo6Ga6RslGdYZ-JIXuB;R<~tMgf;-S^*JJ z6w<8?YRX}#)Tmk&uGHylyZ(`7b7MGo$5ToI>Z~liX3hG0biuK0U(3vq$3;vnZLgAfT-h zwER7V`T0*!*zB(Q=A=oQD(Nz*>faN-e(+N!0m3&7G_1;spq*bzBJwvrB-0%`UYMpB zgJr*`*a2y(dnP0LfopjWy^_s$0zqHzI32xNY4Y$Wm27Gtt_4g0EVl#kI)CkV(9rE4 zEuhF(x5<}gM@0-UG@{t*xW4MRK#o%Y?Y6V4 zh(-E#rNJIE511R;QNYK3F50neXaynh&cSv2w<`aWH7#zo!8@^IeyK0D1E5^cfua1*5PhRtVeRPK4Zl8vzEG9(@@Wq_VD*et4+3Wk z$o>J=j3n?j^nLgTj=uNL3+TH<0HH4)$B0nUZB&-@AaY*M70~ylO(P}2(YMTD>eKgz zi$9CLb&qlNo?-0^lO0O5HqGx)$yl1TMdUM25jTWi)Dzzx%TO5_I}EqBaV~ zbMJgA7>Kiu+w#`BpCrL@Ql$bB+>Zuv{|EEJCZE4;o`QO+)h=_)YaFeP%31vmtL!zVc;1ePMB%iI&TO z9&2C1U3bxr%Wp8E&neIB(>s-jl<=*4u}FMfq)7PqV3Q014AfGK9Cc0K;iAH07 zWl?wuTv3(maLw%DtQtu@9t=wV=Ubg2Of+2OAFGKXLt@~t$ z2Z=c<_uMEx4G+K$o`*d9!~4hIf;Dfk3ZCpiAJ1eITKQdyh0rnp?-zQh3kK`xHc*^yvEgS^6NIK?uEP~7h>7&_Yos3f-dVT1>S6tWX?QG540~?BN25O z0?Ss2$~Aan7u_>?kjpaUH%@C58E{&m9bhDnxn1zy`muM&SgkOft)!|_=(_I_&b!)5 zv`Cm(mt!-`Yw~{5A-wcEC@aKJaMm7~<^5vl%SHO4lmz>hXI&OTc4k5CR#7A|RBGaO zN@>v*G@3J1YPao_lI|fi4MU|E32vvwCbhWhP$|2PbtGP*#A{9w8xTMvlmELOoM&an zOSH_=_)axGu!F#!dA>;|bN1oHozOhB!UQ~P0`4Rddb+uLice#Cjf!5aqJDCyTE~wO z$OHm>`!E5%?sY4_>|~YqmAINtB8^AOjrh%FeyuthrXndrdgWpkNYr(>@@C;g31ASo zqa_hR)d&A`)v10}f2&U`GJK4$#XS#Gm0oDcrqY3}U{L1w!h}egO{d5CAihn$h8g7= z5||5iA|5MTD)ky$psZHKC)bNTH7?8DFf9K?-z^5D=-&5BLOXa zI^NDQN4U6bl7Rb`@HueoewqIa8((8*{>2sCi-L78=TANBF_gy@xvJ7M#(+aXz@mS#1fYsyH*CJ{%`LB6`Rsmo8oU@7GuUYc!hv zT4=)h#?_t6*K*D94p1&)Jyh?=9DOxe&c>dQb@Gv`xfzY`X|5_p4$TcvDn2kqpDF15 zj>$**dc9T`XK0`0`;2 z>Nl-6#RA&B=OSx2@#@E}a_VOzJWsbLn)zgYhs3-1@mtDjeElO38m^QZ9eqDTDRbva zYEAI*>(cLpiQNd{Uo%Yjb6Zrw=R3qN%9yK@6e8p5=^}OqxdfR@g9R>`pf`XEQL5OO1N_a)UcrVXWu9$ ze^H)%fqYXCxoOPYGoAmWROWWcJ@QLEk?RGD_v`bt_JdIa^$O=Fg88ug80T;IAt8h0 zS!(dW)9_zasVQYitj+=d_;m2tqNq;kJ6|Sdip{E}F0zZ&)_kY{E4*x;zFb}gp5A+Z zSNT$v-x=z9Pj9ps46*q@hygLY38x2{zoCq~<~Vph(>+Igxc36YpRtKaKc4HW{00j8 zuprPST^19ghr|vCo{eDXT0TqvfD3EaA1fTqp{@5?X%przcCrnVS;J%a`aU4(1qTxx zMWkp6_kOjJxlCz+;0%Yyc{bN+V|5r{k@JZ5n|; zZv-p;eu(mb8{@nh3o}xu+l1g#fBTfR#nJGxSBV2Mwu}c8omKn&=eYK5M~UCIJJLl# z_}|ZEa$Jnc|5DhG=ExDhXQ6P{(Y(haafK;D6a{ys`C4pr;Z_kyKSAo(%_P=Z?5+;i zFIeM;(t!wplKM#Vmdj={~#s`b?yEuDE1FdUAdlpSMa$JRi55Zl$YIO(H^FM(LaIUtwXB z&tpm^9A+j8BpE1JY091dF5i8`#)P|UQ#C?Cyd-%eO0&$0ExB>- z`M#4d#|KJq_-JJkg))J`co>TU6PKMJCQ9HbE!1M1*(Bz2=7=IPBmXJ#Okl))TN(#* zoXt@n3vBy3sVTvmcX)GmRp)WR+o_e>tTjXBrdH{3sy#;Z_$7O+)?>XMPpwg8uI+k3 zZFr|USS6c^T99c3V6d%RnB9!LVPc8qV~4}!X#(>Ubyb?*4VDiHLEcs*-G(`@ebE{H zuTV3fqr`*nQMZl7G#0VE_Rj?oTMhp)>V$RQ6F)q&>(SyD#BACB6E$qj)jcy|CCTiM zi}E`|EtOmw+Qp3eyHK>rPQbGHbveJOva#O=)xh5P_Sxri?(VtCcfI_ zfOwzzZ9%!apDP5e35qY05nSQogy#wgbrd7_4JvFL6QwA%)xfWR%J0Ic>E7 z-*H@>rH}t=Fn3auwe@dSHL$lJVS+^~avQoVJHaN`XPOSKA#pBn&1A3fitRo8xt7!iaIurl}7&_K|g2d(_= z!0B16$e{c|2YO`lj&A9eTtl^2V%9`%fxENKElhr!_A#8dy=#Ay>%0|uB8RKDOWkur z%H6^I;tPCohw;7Ylr{4n7`jNH9dVUOD|e!H(k$}`4P5*6$ViXCP{xiPoXcOtsJ3xM zWHG&CY$BW%K(*`a1;k769y*%(Ph$`xNq>tLxw#P236`uk@|=O3A!sKyB_0bW2YB4D zvMSt_);pbT67HI*caIc@yKd$Ifs4Z9suYKpNV=j}rcVF-Qcng*BJMoL%PhLwtU z(E?NT^odd7A_Z`&>K%WRQ}oF~^R%e$L6d%Kp&$iumvp%bE^CFEv$d6x!BZ^Q-Az@P zUBQ9L&Nj);wt%ilDDk&tmqS)pDoG$WpYxeSlNUuNh)?YX`IIVFJz;m{i5M=u4UDS~ z^?zf<#xm0Dp3Y0Nidl2Cf%ijb^H=yq@zYE;$Po%qsPhS-ERLB`slXK3t{)Bb-7U5q zPIY7p=G21`>t~=KYiO=GCVMLFxzX7rj;S^}8x~(uIvA++*Z>MG@gDl}kdNO{_8+1A z+naFwt(f-nrwB2jPRRShQWTjuWXc)NuEf`Ln4j-wY29!qzrZ>9{0-+W&*(r-Q!ZLA z%XB!bN^>z3$k0NM_ePJq#{`)7m^g}3#P=v;Np6~a_Gwizy0=p_)oe>2SLpFHZrTnf zlJ*t~gcFPG(dHS9O^A?Sz%JZujyE~dmc@7*%*7H}ewr9HllHh*uz;2m{B!6Ir% zrlnU6W)hLyBsO|1hvgXB>$1Kj3}s~QL0l258Ta>Ffw3|7b-M9i*x)rPt$t__NNNs( z6m0N$I-oZq`Hr?qdYV-PGIQ2QAvdS@ihs7zB zlaWRA&}Z-ahf?mSpd2$*zQ`LqiIRwduwVQI%I!?Ko}G~uBX71~uxUd5$yM=v`272b ze9de>UxSGdyk`sfnhyb(y1-q4bd`*rSI)o@?k+n8)s#u0{6s5n`5F!OyaWEJB4*~* zdrF*zm6Yy0M6k(U%=|C)q?8MHq|wza&+yZk_T6ZbI4tum{syL9CkPZw`y~t&#jR~k zyOvvMSau(O;bnyEYBYTPvdKIYEX4bh|yA==Pv2@eF;26$;qJOy2kXsN_&VNap7Pm@rbp`Z(Y zlnL(fJa%(5QMz379=<6U6zJ4Pp`^m2u zFES6&Q8TYY<0g#MaCwu~`hD%UzJr5zdOM5ruc6&@m-n!}%+F(>0&Z>)5czffe5K+V zT<~D#2Fh(~H`Vw2?LFFB?##RyODU6#r9NJRL{z6nr5fV@495pc-Kny0fNPS26ID!+XKHG$50GrVtmg%PDz8Ti3bH_TiK5#*oFL$tpr&sx)sbTI*Wjr z{K7#)3*Y?w$&9+kxFK=Lo1f4fhS{2&2GdCD{z!!$(d=$zO!>R3Gyu_i#4FJg9#n5X z!Kd?FotoTaW05zd|1&F7bE+Ur)!ifyr}9RZWdDf2R%AV$f&7~6DW{Fp%qm)xCA6c? z5e85x^8V*8lkNn2FN-!zK9(5i02CrMvpRiU^0tOW;x4)| z0(+fNybbo}ATd%m4M-jK&l+JOV832C`PkdDVgEI6}o>wq>M$$?n+D$SR9bBPXwq@6{38e5&iT}Qg!mHKc}(`ztn z=6L9&_ZPOKsKUQ#UcE}@I-626Lg{Idd8y+|bU|f%B&Pc+TO#wpdojgyGw|%lJSd;~ zN~s$R&5kU90s3fkbQq^5J34}*5D%naU#4u;Vi%=TCzdj|xhK+P2+;|&)Vt?am56-< zSOu)%q>r^s-vq;&wQmqb-A~=?Xe72_wa<3|4o*!k2mFqyIc1#m(WQ+d!9hil;qf3c zUxDFG;nbI`k=D5M`wEj~xT~NP$xQ7{AC-`CJhiuHu#8hed8=M0B6sjdG!`iWc_gpZCK{6vM!4VqJwznxy4i+~uzG#QuwKNv!nhIkSv zdv0ejg!2!kM{<{_J>*xii&RSHcK?CNZP$H#$~}tVX2o9WLSz$X-MZ5peX zt|-{=HXBMbldR~hNHwzxrt^?gGi$FpkBAp8WJ89%*W)bM(f8PEL-QH>@Th&DM(p>t zemleOp{j+g1NNZ%gqOT|uZVWPxfLws8q?L1R4d1f$3AatdpPo>Uap8d${%%K;RZT7 z*jB$}jcNz^UK>5vcw~o&l;F`m-8&K z_%(IYrxhokUYXlJU9-c}pH9e&an7VAHpqWYHu3sYk8{{D5KfF6!{c4Q32OUffAi;+DXpu_gi&4?cG9ndvcP?(lPuF^Ul~HN>wB5o%19bsQCM;PDte zo>3~FP^-s#9eU67P(l9ADIb31aK9sm@S*Ny=%Mb`Jw_Uu=#ObJ#W!x|R2eDDU1ID& z*Q@Zm^DcB!G=$AfU05mKwB`9sG#jXTmI53HpYK@UFkv z$-&P6WR8L~cxrOFiij*SObZw(i`)sd<@dLi#ElwqhYs``QZBEQT{lrcidooH7|&?Inn@Y~XI84GG&?3}90X8m;E z1tqK(cR9b*X=TZKZAebv<3o>7cWz zTEBAES5|us5{Ai^U_FemAb*Q@u)Qfmq`Eedq0T40a(iR`=mXwZe$5+Pt%{mm>dNWm zSxCG0FMC;~m;chsse1XGy_9|IdQC5n)XM>TsgzjP^Loi)6-qU!f4!0g>!f;=onPo5 zy&cxSIma{b-G^#~6S4#-$IMDgx}!b0yA^oNsmPV`H}FbuA#_*8*x$0|=0Sk!zP>y4 z6KBR2veMPw1%DnKv;z7S+|N67e=X%rF>s+!xFi)*LZBqoh8N&ATWwA1tVv$Vy~~iZ za}v7aHm^{wL;#n=)xowZw}+b(eyaxnQpU2aH~ zWZPu;%BaMqE6(#D8s8xAv`gh8?>of6l3_m`<>sppx(dXzigj2=WS^&)iK2~&fLUe} zS@gIx-K=fw){Z)LP`%i-XpHRw3=}BbC9U_lWYeE;Dc!8`PJvMi;4>LG*^ED0VY5CD z+oM^hAKRlDGr5&iGnS}xzUA~gzmaOj+H}rLH4}$*9-nGvWld*&s+naOQr>BTsv#v5 zAt_mLX0C6di3J*)J4aLj^He!^4nM1>C3;$=r*VCRZokpfr@cJgp{Eb@biJN(Jms$P ztN&R)Y$*a?{-7Tx`(IY+hpimr%LDqczyD)5p<>)1p&AmzzT`V zc&EgVoAtt)dS7PY-_U+|-oyvQvQTc|E0*6a{9b-01v!s{bX{tarM#ykl# zBV5V#tI1IEpmkyEo&7CKwUsbN9(>)#Kf*x2OSk%6w$<+v|2M&*ZBQP|v|uV4*}A{T zZwd0tcu2CaTdKJ!{@TBHS}dCJsLMe`^qV*mV_maZqV1Fzo}Zn;?i)98d%w+lk|Pu_ zS=p~B%EZcke?6V%?|bC98N*zYr$JlV9}?`w8<8S^C@KN=&3_>IaGmv0Gn|STQF_b&sc$Kau4R^gu&-vUScz@?v&2-R={;qkN zzgkPdbH+W_==omvtRNyG>){>4MiB~@NOaB0gY(Z)qIB$1Z@=IpF)?CTZ3W7izjp;r z6*=@?mBFOeOctV?WYn>%&AKyQRT+)`>5NY<)WMvQcN`~ktD{5ySvXew-tu4d`EvF{ z;vQyoquejak6ebmH4*6AfuC7j=V#iSk?E5Clt$;j%0ez%z4GGQuVAY=&TZxE$`*yl z8PU5FnCi*>9pmi1qomSWKyF|b8nmNs&OX0OKioG7uH$j9|M2wmsB!XYZBQ`$sLrYNR9N<3FxRXILV`R7^W6=A|y-qGJy56LRa# z*15YjYFU}jP!e9aCHf8SPm}u-b$?oj?>bi0PSVXIXN8JiWS8}#w=+)wD_x#m0GffD zwP-qtpd5P?(vNUR-2O@d2}<1t8Y1pO-)i7jBtEb|MXH@u5Mhv(8WAJ4;MUsW$5ZZE;Dn#+>bZIZYi{c-TOU@`t9dTJ?!>Ukh z|J2xcE)-uIN{&*Q_^MDavE%&lC&@pp%#HfsC-Fzh8I*|&Oi-okZwA3?@2rOq3N3;r z8C%Z0Q`MO8GPx2BmyE8$G=5Ig$H|kXajdhA4iIsPMfMv0>$UY_1myjaAQwPrWEcbx ze_*d)-9Ua#5Nz|8C5>!G)HbYnB!E@`#0J1r(b5)^wFTtBA9jmGI>>|H8(B=L4U?Oq z5VJ;>{fgB_a=Z z>6~AiF6&t=(T~x9Ms{FfqMxsdZ;r$!_bOcOSBajuO3+aomeD<*3Voe=uaVW?8*CG1 zhwT8K2a#hCaXt$ZS5qaDiKv`!uEw*#D?R_C%8<8&{SbD%#C9$pLV2T?z_Drapl^jA+{h)AU4P&{9Ekxbg&`Tx zb(tFMDEMad|7SL_==8EhKLgP=r;DR`+)f+TKiZhpeXp<;%?yg96ahJ$IMRg(51?ou z)XHVL16}JntvxKsEHf!k)={_v1aPBgf`DA!qOV#X!d(*C_{K;$@hqaAk;&^;Q*Nt; zD!0QP_?zFS|95;e-gTRPN`u8ay5`fh-_O~Eyp|&gp!{_Qpdz*L)_)zn0(0+3#96wr z-EPC@YJ|30BB5%4rr9EI)GthE8Ck@Bnr`2>DElaHx$&?%+%;QDs#94;r*r{sY)@(N zs;}tG3>F^$!KrX%YFx^~m&PkMOB$ldm9f)BgHU+IYEEt3Si)wRu9rG1^lmhKt$P{M z&$lij#P18n?)9Jh?brJ2Y1Y`Ay2M>}B8vbS!1Frj=Kbgdwxap#do}39dPK$f8!o2z zSdG1JQ)uaK-n8F&EE!AkQ`1Aou&hjbV0yIv#2DUvJx@?y8LZ)i?lwZpxxah_)!AvF z)!`|$MxZ3~r~Q0%QSM4!e8Sh30Dy5Mcc#j7U=qw|We%&cth4Ns z)clghX8_WYeENf*#!k*^dkSnQbMmM7<2<1xeVr%QMboL1L#evd6^i4vU&>hm;;eV4 zKnXTm(1cc=LjAhJ6lJcJ%D&WOP2P0;iF(>Uk%vC(pCY3Lz>~rM;Bfkh(Bw#;4`!Zr zIF#A2&`|4n)4eLqob3ZL9Cd#3@bQ7p!(!Vu4QWwb6wnGJmHw-z)3)rNF11p(8r5sr zFsUg@_|MR#wU(sDL}XpmQs7!a9t=as27cK`84aP@fiNI^=WK>FYD4e^n{;QKQzMse z=jGt*BmDJjyfuWR;MqWK1HySgo#l2kaOXq6!U0o~4qLWYDioSr??cB6h%@pNaK|VIcc>FlGcUhuzM?HQ*{4X4qLr-m7U?w4(K}y_h}Du% z%%3--)`+#8!%u~3M&)Nh{ zzRpHMV^HO7kvFGF`$#FFH=D>{x-L0kn9LHgBm;y6?FHN7H&4tFAX1R(~~}e43Wl-3n%$#_niQu zJ%7H)Qix?)9URi#!GGeTq}kvfC$s@!I%GqEIOhkgEiRg{DgEV9YbO>Lr!V<5;~(Qu z{DDzgL%$7^#uu#}UDOO3C7_}CBT0>S8}9|rgapzSKo-_R`1wF}qB`ANjGwFRELr@; z;`G$w*cY=hjordIW2wk()!&%~p%6bzq^YpAd}ppcv2LL8g@tA3E)PGr%i>LgokvXM z8u$h8H@*-%FTQcyqAAe{tJ%aIx%xo5uY-w{p)y1G=EU&=!&JxW#50{|PRu{qW2sO> z;(r~zYzUmY3_Z>0b@yVumZ$L-7nbGD;9Jj?yv|yIi-*;dh~$n_UA=V-L4@4~CwO6J zSPkU^w5^v=9-)$b7k_2XYts|O->OCrGDj9p^?BTTGa&obB<0Kc#N!^rd4aDLlKL}h z{4kNzGGU1{ECOgd-RIopYeyAL$feI1wRTeRsPq+|ii@%`kBn9&jNQ7r4UJnCmKXT9 z_?V*DG0l@3w=DPw0bo3U)a#Tx?O}%|?AMB#2vnLP1?|zY-y*<+*fZpvMJqBHUx7RV z{MY8m`Jap&uYQKSjB@hQM~|JnT)-1N-P&FB_^b$dryV*{UY==uX<=CMQamv+5F0b8 z@udYHG`-^;^Cfjm4={2%1uL?;jH zM(bbts`1S8=xJ?piJVXgtk(()9z)*3)># z`OE6~rt#rrYw0l3aST=w%W}*p&Vq;?V?)LsQ6^)O5`;uUfkodXB2)|D~O&1p47&v*HiwGNH2QrcbI zr(BG6Hf!P^bQY_h+nMhUZc5+;_tF6F+r*+eAC`a!yBxXt%L|XnPUBf)1{y%U{LlPw*yXEq{+WE-Y;2)&A zM%=9WDNx-aY0nwzu$+7lM3vD&lZt${prWi_;(nARZ(c{?bVp=vlKA3L5~Ji=?o)l- z{)?}0>|F~-$#GYMRc9!)^l?7c4IXoUs!a#Tz6y+WdBCX?tWp*`^+a+e=#_`+L8kS*nxyxR+NTa5sPCe$*xJ(l7Cq z@(f+IGSuzo}7L>d0Wy@)T>jM9nz(^yLmpPWV8m6u+0oABj21(unu9FJc-TJ@Vfx=#Tch zX+<@8LLV*QR+9w0Rh=UpnQj}5Z>kP2v%4GqG~u1_QXT%Co|U)sSvs_vq@u5Ap2b0C z!M}e1VIVTDLGF&ECXgr1)9W5uVy@y>lf=HegN)g(du8nC&|yT5UK zk@wE+#@Vt=xsXv{1t_Byl;Io$;^A)SgiY8JoFL0(Md1fSd(^g+w_y=>TlBv7OCN&T z&l(g78%7go7KF2yb_mMTG{Ze0I{{?R6xrn3mfhJC`_h7UymJCL_ZrtNOQjr`q|4N! zG);2R(8CO)7A6m$6q^0ur=6eYM>R)79&EiKnhK-BHH({yi#o?Bn0k+3Y6ql+SEGt! z=LCv#1ugU`@d6*q`bFnnvlI$JG?-7VqvL0~;7)EZd9u)IgzgoXCd)+283pfIOBEK9ErJ8)^c%!J1`yw#5 zvR570<p*3r;bboefL+4>2*5L({k4*7S`k`sPL?Hoy z_#?a1W1Z==m|wP^Oyfg^eCn4s=UB%mP84PCL}p^b2k})CplrJNPhzL{$x%f9E&Jvb z_vuIqB~|99x!Xm!O?WS!vpW!Oq7P5YX9T6X(yl<|_cIxVBc>OO-g(n!;!BN*8En_SK^yp$`#_`%Au+SyW-=dXUp`=SrdkYjyVtr0*V#aR%TPynYb@mtM*haa3)URztbr_*0( zUrj%~2QevhYIYFx8dEIjHMV3AqaVGJr~ZPw>u`O@DdUwrvG8582HjnHfIixm!GgD0 zzFg~N@rgm6s>-|NHs;_+{YBBe{91B|I{6p_hL&) z50fK)#=k{2ocJLaWJc494@+hz>m7C zZ^K~1hH`C5XGHB_uh6)wJT$Q8!)a zuz3>`2qeu!MNz*}cM}XV*jm*o^W!!B(Un|9$@o>F;?5mYJH{KyLvP}RPu;r5jAxXu z>J}Hx^V3$D6HyuMY4k!}Jc%p|Xhm6#rrotC;ayX$c4EdPJ+|428AtQz?Z*CGs>tO) z>jE1VT;T9Id^qNK{?sI`l?W1Ds_6aZe_c@>v14tvMnq}#>aw5fQ|zch2fF3b)B)4H ztmc*_i%twhHFZFS^t#GXMc(DC#Wvi;<4IM49K3eEYw#x37FCr%7H+L0a08ULyWtkQ z$VrJE2PM2-y?ZOXGPn77Il|h|X1j#_a35cIeX*mFVVF%e$>{vDg}-24m3x*1bkO?& zcVri@O$jqskLdkyC0s@;xxK_G+l7&+L&e;EyVh(?AT@hfKe#5DR*a%`&tw%8({yP@ z&K+86WKx!6lB%%wQ)V_ZclL<$)))_EWV5pe$UM;X?rZpE%jNi0NU-`{@!s0oA0lWN zGnz=;s(zPn*iQXlZm+(iVXOLb=G&|PzuT*?$*`^JU;7#L58JxF4aSF^Kj(fA zIV9q9JkpXkZv`L$dPZ=GZip~6{9)eyVZFgPJj*skFqT_idMEEVZ(x8w%nF@=x$u8& ziH!|kM?uy;l%Xr$bk>{0)AYQ-_#5NA*Ip!)esE82On%RDlFz=@wTfK?6enyQHRVKE z83q^vn{L@*6!*eh&*W3l;syH;KFsXBCAsTiW5#;lfs^%vRG)hm_VJGMc=j?gQL|)? z`ek0nPdmtIWu*ogK{B<3jT7?e3p5-`mw$oYN4%qUcM}ca#8n`GWz&g4q7Bxhnhv3v zHVI9A^Dy26Hnk95x-YhZ2){%Ter;&CNsa$n@S#@g)bT$2;BIvTBq{ey&tS+?l;276 z6I@m26-I}yXXfw189VPD<929te#3p}E&=0gjryq&O$OpHCS6noM$*Fle21sbGVRKz#*bpV^LfHYilx#u zN2urC$8d<3bpwp{YGou<#XABo!dveNs(m7=rpQY+zLm@c=j{j6fHe&;`D0qL@v*ke zd=0IKh+ee9^7zBKw4B`n1C-76U?d<|R$Z9ji_6BURZDlv=~{%|Z}Pfd9PBYo3}k_L zJNFJXdz2IDGg&EQSBMaEER!1S*HG8K^(s>=LrbSDdfY~iUd0vWbQDzYSAz!oma0?x(=*i^NYQ>Kg9)a8z8 ziElBrorpZysq~?_dE=H1fi+7HI!~FauTWMN&Zd{K!g)_OEhO6 zJ*qJuzJ4XoT^kl1hY`rW1mfN5yJ?%8;GcFG8o|FyNeLCu4aptfa%Yqt#(TP9hSHm` zv9)+Lo!9N3QBcx^g?9iMVd>%uTO#6%zrdg8KA7ZZBtQ~<6WY&9F^I~kV{9TwQH4Eu zEiJWqG9Z$Av_ZGinG-NVYVUPdSsNB5LLjWE-3Ba{A&I+J8y0L40pInO2L7GjOy(zi zFk!R50IGO%`ozJ-mu@MBHhXf=ZFo6aQdhlU4Z_8AJAQ5txQolyF_pjxqT`Y2Shpf0^E(gD+A4>*cGUUlGm7(1 z$R0zvxHmc-+s^{DOb>{H7V$R#@^=NAtcar9!WZO|e(XK(Z@p=LF z&lhm_uWCJIEfZQb@+Y0gFzK~)ea-nz#h2GkT)gRm*!l7NsKrftJz3bxpea_xJ2qVY z_~4-w^Kwfs_o?w7O|jCl;}MoHKz6a-%lMap5xMCgF>dxFecGpu&oA7&kgrpIys0}j zzNx2k`sBvv7rc{vcEShJjSj3}_S+5=cc;;yyWvIAx%l>-j3Mz|l~9ys>1i>RkG4~x zZ;3uZA$Jkbu=@@(^?X^f$?lk`T(s|!O}btta}+OQJ1yDtBYwnoGo;Cn#5YAdKd^Mm z>dcXp7&f(Pg2Uiij4y-0<*d{x<0c*Bd8{(7#oo)k9shvDk7g*j7pd-&f3J_fHtNjP ztk;x%!WX;f{!H$dtjs)0XU*}`FJQ}iiW%lMRj*>t5OfXV#nP;mXGOirP*!tV z#<)BFt=otT8!Y-kU+Zf#Xa67YGkc7LZ{@cGKe}D`r9uH&P%RVXpHFmX82`0i-+dR> z_B|PV7eW1e1;(YtTmO{YfR{_-9oD+ELm?IMIjq@u@}um`-2dvP9w0$d;d{U(IiO>c$s!^mqS~+}Zmb?6IRd5ITpACGZaXtgc|rCKD(x3k0AG*OK!*WK4c`hOZL z!QQL}lF|fP@u@*|32v>*x--pKCBg6x2fE!uTIz!~eyNn&09}<*WiLZ8009ot4;hwj zb;N`YuXX76r1aI@xKmb8pQ-b#Lp<7zC7C&{U`cl15)6nxqvZNWJKkS*QZQokq09aF z8F}?-qQrj%&L+YQ)u~oh(oSc8ZftMs2k?_TSb+`Q0_@iVHHyUuD@j-9FH|jY(Nz!VxjiFCu*2EdXYGt96I7^Pk{T`0(2 zFw`x}KO!;w@8xe5Sp0YL_W}u581cF7%HKUV`ix*7kW&$#8#ZrgVo1F*CxONd@mC?S zB=9Rt@DPfv$_Mu$L%N~+IJt})qK0%=9s7+SUG9}{aX96JkS6fA!^_ulbF%jDB-hmq zI6qvOe3ohz)CPak+gkzPpRo1VXlaZtD5XgFnltc2>?deuLmKyEAz~K~6}_oYbnT@( zCD#tqciQJxyKo|+aJHEpY}^A&-6MzU>a2Iy%-ZlZC|uD<{BU8ir4azI|*%WQAI%7d&Cvlg@JK>*IS)YH#Nota^U}3##?kQBj>!{+8jswa33SW zQPBnC9j2 zIAQm@`#sF=tg`Cn1un*<575Ue_RHE)$ST``YuQ6(J46y2It3(o?n#j(oYk_56AWAepx%uemIpcsOhOu71=Qm5MLI$vRx13sdEDwtni_?(IFA)ZPNqA_P9#y z>z>Qc@b!~ab_M^L8gd@m*Rb0<7flEB=C>Z!}3Zn&`kGmkz}|$mIPO`u7LtA7>|gHpy%{AsD8)oelfihvkw;=}F^?^0!dpW|aVxKza}9 zZI{I_?jl-iJ-?WE5&XK&lhC;02C8fuuy0&cQk2upDxcNvM`;S^d;!HLiZ+NMyn*X1 z-?7#Gepg<-{b?ugGNi2r?ydehK?)`qp z?8yCddu)ZNyMJ!|GQ-rre{NTHO#ip{`@JDd4d+`q2hi^KQ_zsP1M#qlTi8t38LEX~W|{Xd7WEN?RgGLzYJ)4q)7@uMflc8ubD5eLBO}GGa2ZXh;*+;&aFYeq zvEz_CTD3T4T~x;)6|IX_pdN$kqQZt>-zFxrztb}8}m!H07-{;)A17k4s0I@v+m+m1W# z{2!#$-AjDbXl@_2utl;{v6u-{^ZTzlf56v5(H;2_*HG4#ck8PvVL~mYQEN`4(4q>C zMmTCyH|27v@|D^|pSV#(2K;!YARE1K*Mka4CYNasOJWSqjETdEGworl?duPB-9i

    (fo{JQRm$HWxuAgZTkFCnfPmhpJKu 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%0AG%fjqbu#xr$ZTPiF&`r~x7|-*HmE43 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%0Axgavb=Fn*;h&efyO=HCL1 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 S$=~PA?h%V9Mom&~oWHOR_O^+huNJkyxrYc`C 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 z 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®K?WPEyjjgDrw%JHi9YHZ0{u! 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≷U+#cT_|DuiO@Re-B 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 Hu+k@v#OixeurI)0SNS~a(DgC$f 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 c8TiJyf2iI=!)}fnqp_uK$gE<@~QpYaD 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 ^- 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 z z%HWv z(ZjPiCnUzb6GF5!ukSx4CLeFWyqVdQ)4#*rl_9Tgs&{!K0qC9$lx||NX9K0XGUDBB z44z)%tuY4AEk*jg8zpycVwu-!48Ahz{lpkNH|E`F44zo-wQ8VrS5|mGF$T}AWQUTK zs$$2IC5`odQlW=Ag&yv$H4}UW@07}TDzgOFv!wYXP)C}XC@g7e-6`R1-DBe{vTzQL zZS{w=xd_L_GC!xR3Psd#WL=UU$odjX;=IcrNJa+9dD}nfXW8fZWBOo-e-6Z%S{s1m z?GKS4g-tLR>&J|I;nfEO6&_`dBg3jiDmma^mcVVNQ6`P*%aYxRgu#K% zhaZWP5EA`eHhi8YpZySf{VCWHXW)v!#997yhGhR4z z8j|qqk(0d~G?7;>T$wf;W1M}>!I(W~_-Lj_GDN|HkvhgmjlZ4v6<9;|&w?4$Z- zp)Z5<#@3yZs>F^mub6mtU4Vsxuww!xKe@5gN2Ul``>2FFv?BdssnclYi~nx;lNp_+Sk8O)MsisD$GWo;ubjlelHt{15^T6i-d75eQV)ni zG}|qz%R{!th6Hbo`qB6W-WoL}`yyRUnxU}PG(&c{R{m;DWn`PRxc7b<7dBzXUjCE51PUs=zk;2!Dd+x2h7F z?+?TWiiT&eHnMvG^rj?m+TZRwsuq}Ek+rT@S%H3@2gJ2YIJ3}D$bGY?Q z${xOXCkM;=FQ;(pMf;;I)7=BHJ4vEPa+%YP_@(JTQN%1ze^(p^4viVSGcH{K)6gHG zOnXgm08wK1vVf}r^pm+tqy6cY%|}CT`LA3u-)|Q}ZJU5)CuQv9T<=TDw6n+p4j%Xf z$$0#l64zG^>7AfqB`=xQz!PrMT^JtIm^)sQV!h#McMV?3aNCuzqV;-zByIb5jR8<% z(+Y|(-z-Xe@#Jv3BD)VwsN_V7HWsqo$IkVS3=OxviPe;N8%=sYr2>?m(*+o&_#em+*u_Qz<8rV_^1)L%f#SSm}jJb?9ac8%u_U2A_- zT~I0VxUNxS)ri@A7}MW=$lY!y+$PtkHOtQkZ^^%4{6w~%&SvZBN@bqZe#o}FU9ApwMi+zU^@(Aq-7}?Asrc%Z*g`n>N*((8w${ zFn{WD<_|$x<|p8kaL@b%4&T7+rog@>?$Z1OZc5ZMKY^=@dFCf@9IW8mw=6Z9pTJG2 z^vq8{D6nUK0*8BGuzl;s`R32A@tFQm(DnN_G)km@1*ZAoRXwmRyk+yFyfIsvc3F7K zreCV1mM#L^ig>v8ePn~`m$>8$Jh@hNGv24!dW@7cYr`Lb(B7M=Pz}ZL*~q@tJ?4ch ztCuU{u012OYjzXvn@w%%a_v_$v?Qig5-OgJ@Tk$cZ}Wl;Vpx-f;Dpz&^S|5FqV40V zG`!y8d3I+1$S`8{)AxYhBIv^thf6po1n5C`x_YFWU8apCHozV(S$1OL@X6tInujC~ zpAv4{z(ecxdHKk4xcwbK^iJdtqsQ+wNKI(&D&{45t3(U0RBWgutNNM{s79}vG3J@R z(=pTB+(PCr$=ZBxBF0f@1oVh?gifpLpB}1y{i^3&GrqCUWRIsM0tkS-WQPbYV`QlK z5CB~Ai{1%lhv#sZBOGQodl_bRLaKG=RB~t5a^6Cg;IMvo{lb*MA+*}7ER|ZCObc{c zx4l?*#9QMg$Ok3>;!FP%S=oCUoG|}`sW`+4MmB-C3_AsAc*P%1lBPS52 zZ7YAP=WznmU!WDcm880!*5kb573V^Kse=Gm8cyE@22Y;{s0^IT=D-x{L>nVm5fL(Mam8)UfIu#P7UD z!>Em&UOK`fi!K9$D04UeVkpgrv7aBW=hXC|ZS5~HlG_^6{pA#ESm4=j_DLJyZIv}d zGgT}S0qit6nuS62#8NIRgL>GHl?dL?t`QyKJM;lh=Hp8-}u1LL>{BcIseMMeHTmxEKKpyhAWP_uB~ zV=U)*&CuSzKf4rOZxgWW7kP3M7IsU%lbcPV0p#B_Vp@o6Nl zcY=&@C=nyLl3>KVg9PT~ML~5!RkoN6V(6^%OzAR8zD-YiodV83J6p>XA5%yT9pq8( zm)8_{Pii+QK7eMV)j#Sy{}BnIr0}>pq%>zww0tyw9`{d#M*qpv_}p^*K$kIpo%eKh zj}CtEJ28i*`eS_dK0X>2I`wSZ2vAS0hA31K=`z3AKlo&=KjIEc$s+OHVPKMZ_46oG z@S|6mHu`N?y-=0;bx>KLI_g!~dzb^y05nK-6Pl7PLzU@ILVp`FyUgObwS!vVrrc6y z6A@c5A4~>z@LcWJTWrS*rtZbBBP$8a3q5A1jpu?DO1ATUCBSmHPZRSp=a3-X>fgmF zfbP35sF4WqM>eAE_h)a{5jF5>99B^_gs$-kqb;&FckOQE$@k2CRV5`PIj39$Wjn`^ zZsbcHQaU2J?HoNwioh?c35UCR1)ro2`VszA9VD>UTV0}m=VdB_F_>LJcC%;I9qxoI zSXc|)N{vAHxG!}Rst)ar#E(BOOd#Cy;pZuWZ}}*WX^GdJ7d?YDu5ssu`C0y1ol-z( zryykS$Bysr9l*2RuPfr$p2Kq_6{lYylm8h;WM2f??cd>(83d=o(XKQE(qSGO;BP%=Dup!MWB})@n-Da%7^UnAgP82>vLKUt!HIZ zE115Au7-)@d}vh9yl@t^PGaiP4DqU%>H=41qE@;Mg;Xy>ujJQttkoL>_)h(D3u_M+ zyZqp+oN#CB&Tu=v5j<5*?w%fyN#3VHvvtQiJhLU8k%{|E2X@9jL>iN4n?^HT)d1%T zItm?rAn$B9O54C1iGEBr4(XUwfI}bDqJC)_sq^-22@eR%L$oaFHfrKPo2v3N?fbok zV()@Txa~G7k#tTQ>W>4mxX4|u;)jJRB|)trLVC){o z=E1H)+qP|vs#%Zrr{SmJv#XusP2hsS$rml~rVVoqA>A=Dq0r3cV)7(=RgpT-UVA4465m-|LTk6SX3(j;zX_oZE{MkMUGXqli ztMD&>#`kdJ4>9={kEm-e<+P(Y(fS*q%GW>$NqkZ?!Xj z_|UQWd3Uj~z_!b|wW9234=Eff#qn^qL!EG=&Ers}Pf<4nZ97|Eoqa8iWp)Z9nt73a zeUf`8lA{w%-k&X#K1auhVdRpQ$y|FLN_kGPHz$&95~zj{PD~n6MJ6r(kM$mmi=X3* zd&m2ldHX`W-@HhFw=WhyX(nKst*Km#EfN?hM24X0-yZ_(DgJ_nn{gSq35zJzL5=*3 zKS=a{S#F>X*0RiRkUuAs-ADIDTy2f)-7)!j`B#LpkMRwrlt7@=&*6uuAs|M&l6=}` zBY@_lTJmV7i7Mw4;3Kr~sQy_-h7#DWb97AOo2cQBm$y#Z(Qi z{_MR>mY@JoSg~I@NqGcGNmb<}MPtrRQ0TkIk1xfFq<}&#GH-v@A6SRGx-vB5=h^2} zgZ^6*?8k%r<@j;YZWQpVmgu2>RQL`Qy=MDFUm{R5qs)Vr{jKGpuD7NCY%Kf>dhpfxSHY zkoRZ5CMm6J@-5(7rKEF}DegEmQaQDtB#wbgu!-lwa~LK*Nl`7i&+d$pD_F#-uro}G z=|t*0CScyUSmxF$i3nO%Hix^0$#eK74$Wc&s6Sb2=TFD06%2EioDGSGi>t4!kC%gJ z1`*u$27fxA7a}={{Q}hw(s!$+HwfWn7?5&aq$*ZR@#sxq=3`#5@XK;HPbby1Wl0*; ze+YfWSO>|ke3CjsoVwL%Yb_d%)okgPg=eE*Ha3BsWO($>(XWkuDOvlv)-cvR1~@mj z-rG~X^M(She6}{VF=$3tdzg}ICX)xOpO)HQ z{v+`Wdbky$%;=<9~HP;^dS!j61%7WeV|@Wq-#ALpOn&W1h*ZiutVE z>)&&tKCO1i3Ur^cL3ka(8%&>r&M+sJ-%f%s9S|q~Eb?DWelH=GXYWRY5s*v-(&+at zCE<3?F4dp{tXI^rMjQY*+*$;Oak?;2hW0AHv%JIXlERTZW|$n=EV3lvWRbU>$4X_ zD>qkKy0q87k1s_|JP7st&C90LoGTY%ALy=+Qa5o@{w`{X==l3)IyixLzLXTZbEr>6 zHQx8{@4L@NrtCEU2*#fy`vv++q=wWh7ZcZ{VdO6984+TVng~I^#|P<%_^EC&y96;_ zIP9gjXF6s`?|@$M>-U7W3`tJW=}?glByDCs%fI}; zu3*RWksSvZa2y6f(OX`lVhh75{{_nFQ=zG*78{<@2bQVK(;UB zPpQW&_UmH;uWC5KO_j2+pxRn@3$a~%v_hZ9m-`rn`u4iZiQTXZ-VuOEvMsileE!L) zITL_E0{->Su42qt_j`;GhK2!s-gz6Mw_O{SP4p0q%r)itdGB}!jZw*mxD{PXE8#6` z4Rm0X=snDn zPlvZWQS@7i-4v7AD>&EK??bU``K4rq?2MNLmjl7_kO4vZ7LN zWc_)Ja^cmh$VIf|E8#7B&_CnA`ilg^*zGrTnz7)2zWa&snsMpXK%*%1$;T|bb)70$ zQ2l6l)l<|F-kQ}Q6yCZs@$iW1O!#{{QOh^m0iEIYtz=k00RQnTd?Mo&`yrnYbK=Is z?H!rI^K8;BaySoO7!fC48|Gr!= zHE4(n&O}3?^H!m=nD({5Kp~{qBo#b^?Q}zF1&ijR+ypDUO4d6>Jb}VAIfh$Y$D_nN zCRy*IrCgfT=3d(=wit8DALdz@JN6Kmj>v%R}( z#Dy)xI$AqGRx{qM7Zfh=k{k3kWgK_!HWa%VoRnOV*jb#vQ-^%3yOd}yP?*^+TN3A$ z^mHX?bcs0IH6z#H#0du)CYnH2=5_p2U>QwsBDGWbz|*%eLA1*9uw4>Fy@m?!&Gvrp zT|ZXp9lxJF;P;S<@kB$!D{sF?WQ7e&fu^!qVefGA_%WGf34v0H3^#LFY(W7mSGDJ zKQ%SQkXPcz#v$4?suWypzUt0}mqG{9G6v?b^`(_Cmz!dD3g|=Df8er$W1LQ`BYWnL z_;$0iHJ!pYt@{O&OvL@3>7O?u31H{dOff!UXS1;(A`gI|Q0yOoB#^+8M*eaYpXIb! z_cpLbQ?{kcr}f{d$SvX6WA3}p%jj{fw)0Al_3XcMzq#9fEesqgv0 z>)9UxE2rMzcHX%;-5_1(a&&Ji<*oWYUord#&nZ(344i2Rvnc{<4t1Jp2n=pWDIY=R z-7^ppX$kd%aJ%L_azg_}+rT(fBiw#Ay{Ni(VA$FIAj3}jX}BsOl5A)4K0c_^Q#8*z zoWHa_`y$@&v_kpF6v=9xC#W_35T#Q=Pm6TEL5c0}su-m1lHVGt`Cg<;K~JpAO+!We z%y?*BOkYDweHPqp29dy+sVYu0pk59xc zevkGx`x@vb>)#zWni^WdF1%GzLF_)*3;dMYmtD_Ou5EpMIMO!tpY2k`5G%C3F=(XP zm(luWb`c^Ol(dW2(kd=FF-6p6C7~V#)CWSDX?#fuOjffB^-1?Jz4e#a z8n@Dj(@;M!=exAIb(hF7c)nX#%v$LPUnhFc648NlQ1c}8VI$qJ9$dYHv?G+6fms@rB*YQ1zVpB`11Ii@n2rTitA2ye%*Bm<(?j>8=>(t`B*?Nlwh~2y;+v zR$3vZgMO#$Qm-gpSX;ZxPGqh#vvAKu<~nnS?x|s}Q^Qxd@yr_pL;BR)V6h9}y@w3_*f*5+5y!=`5K*v^r&{nKpm{ zk(B)3+tlkIUval}IL+`hzj;L{FB{z9kg9$Epu0&jAmcTq^@ zg@kc(#Mv#?A?hehu!k1FecL34v*&he0b-8n46?9 zJ`AV3NFQ7c3i9Dpsq;aGprHA8igC(Sy0n$PrdU#}e)ul^5P3f@6{iQ8<(0d?!CyWC zh<{!HnFA(dZY*OpcDE1Du5W(?&QN>A^QEaEiKmzIl)0i4_>$hMRH6JZ4;U6wFRS^4p}Kw^qQ#c3N?Cz_hK8J6^lcE8 zjwAO0!#Q{JjoDm)JNGF3Px?^&mmq=SNx=u;UkLuc-|zs96sAfR$C_07D=p;>B>;zrLecpdm?!W4xWe(&zn%p zQR18_9yE-sF|Nl+{H-{7mz*!*tsRo%JuCDw(z`y?J3+<_&Xs(&^GdcCcpH=hGRIhm zDfF(7_(I_CTDTnf*`}eeQ$vM1IP~|AmE1-z+ct-E8w=8wj(1=?rn5#!-;W5%v)>_O zuBR*iKu@=;n!7ANJ>57)zcB$0i8`<^hPY%Gd{BSR`Tr&G=KpVhX89N0Nk6RIaCzq= z*Z^JMqbkyh4SjVRX?GlANNMJ~%nj1unMYsdgb1kutpZ4hKEBf&luyTB&|3*%{<;KD zr!qyAImnuQdzU|?jp7U#AQ~|E9?DFXih8>5$AO{^))T{9VLLo5%cS`_#l%a*q1j^`y2t6d!R3S4SgUYn?3Gj@yhj9B>Me)lkyk|8QO|Ou4 zo~>Q4h?;K!T_6pQ%SKA%L^8LY-~S%9vAO<&dbd*kXO^z`p6D4;{YdYZq^67;π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

    b?6Wu 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 C#7}1c diff --git a/scripts/Windows/Installer/ImageFiles/Others/regex2.dll b/scripts/Windows/Installer/ImageFiles/Others/regex2.dll deleted file mode 100644 index f84a847a0de92fc59fa2ff8494ff700e62b87326..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79360 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 Date: Fri, 18 Mar 2011 14:49:19 +0000 Subject: [PATCH 092/218] MinGW bin directory and MSYS bin directory are now configurable Fossil-ID: SVN r2948 --- scripts/Windows/Installer/BuildInstaller.bat | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/scripts/Windows/Installer/BuildInstaller.bat b/scripts/Windows/Installer/BuildInstaller.bat index f105a13893..efc3f28489 100644 --- a/scripts/Windows/Installer/BuildInstaller.bat +++ b/scripts/Windows/Installer/BuildInstaller.bat @@ -5,15 +5,17 @@ SET BATDIR=%~dp0 cd /d %BATDIR% +SET MSYS_BIN_DIR=c:\mingw\msys\1.0\bin\ +SET MINGW_BIN_DIR=c:\mingw\bin\ SET NUT-XML-FILE=NUT-Installer.xml SET wixobjName=NUT-Installer.wixobj SET msiPackageName=NUT-Installer.msi REM copy DLL files from system -copy /Y c:\mingw\msys\1.0\bin\msys-1.0.dll .\ImageFiles\Others -copy /Y c:\mingw\msys\1.0\bin\msys-crypto-1.0.0.dll .\ImageFiles\Others -copy /Y c:\mingw\msys\1.0\bin\msys-ssl-1.0.0.dll .\ImageFiles\Others -copy /Y c:\mingw\bin\libgnurx-0.dll .\ImageFiles\Others +copy /Y %MSYS_BIN_DIR%msys-1.0.dll .\ImageFiles\Others +copy /Y %MSYS_BIN_DIR%msys-crypto-1.0.0.dll .\ImageFiles\Others +copy /Y %MSYS_BIN_DIR%msys-ssl-1.0.0.dll .\ImageFiles\Others +copy /Y %MINGW_BIN_DIR%libgnurx-0.dll .\ImageFiles\Others REM use "candle.exe" to create the "object" file candle.exe "%NUT-XML-FILE%" -out "%wixobjName%" >"log.txt" From cd633147ca0bab12bb0b8430ca304ebef0520090 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 18 Mar 2011 14:50:02 +0000 Subject: [PATCH 093/218] Remove regex2.dll dependency. Fossil-ID: SVN r2949 --- scripts/Windows/Installer/NUT-Installer.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index a2eaed5ea1..7ebd117701 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1264,9 +1264,6 @@ Public License instead of this License. - - - @@ -1677,7 +1674,6 @@ Public License instead of this License. - From 109d00f4e0506ed814746fd61e064046cffa3d1e Mon Sep 17 00:00:00 2001 From: Praveen Kumar Date: Tue, 22 Mar 2011 14:31:09 +0000 Subject: [PATCH 094/218] Removed binary files (DLL & ibd) and Updated with icons and .bmp images... ...for NUT windows Installer. Fossil-ID: SVN r2953 --- .../Installer/ImageFiles/Binary/bannrbmp.ibd | Bin 94554 -> 0 bytes .../Installer/ImageFiles/Binary/dlgbmp.ibd | Bin 79246 -> 0 bytes .../ImageFiles/Images/NUT_wix_horizontal.bmp | Bin 0 -> 94554 bytes .../ImageFiles/Images/NUT_wix_vertical.bmp | Bin 0 -> 474822 bytes .../ImageFiles/Others/DeRegister.bat | 2 - .../{Binary/New.ibd => icons/New.ico} | Bin .../{Binary/Up.ibd => icons/Up.ico} | Bin .../completi.ibd => icons/completi.ico} | Bin .../custicon.ibd => icons/custicon.ico} | Bin .../exclamic.ibd => icons/exclamic.ico} | Bin .../{Binary/info.ibd => icons/info.ico} | Bin .../insticon.ibd => icons/insticon.ico} | Bin .../removico.ibd => icons/removico.ico} | Bin .../repairic.ibd => icons/repairic.ico} | Bin .../ImageFiles/libusb/libusb_win32.exe | Bin 616278 -> 0 bytes scripts/Windows/Installer/NUT-Installer.xml | 207 ++++++++++-------- 16 files changed, 111 insertions(+), 98 deletions(-) delete mode 100644 scripts/Windows/Installer/ImageFiles/Binary/bannrbmp.ibd delete mode 100644 scripts/Windows/Installer/ImageFiles/Binary/dlgbmp.ibd create mode 100644 scripts/Windows/Installer/ImageFiles/Images/NUT_wix_horizontal.bmp create mode 100644 scripts/Windows/Installer/ImageFiles/Images/NUT_wix_vertical.bmp delete mode 100644 scripts/Windows/Installer/ImageFiles/Others/DeRegister.bat rename scripts/Windows/Installer/ImageFiles/{Binary/New.ibd => icons/New.ico} (100%) rename scripts/Windows/Installer/ImageFiles/{Binary/Up.ibd => icons/Up.ico} (100%) rename scripts/Windows/Installer/ImageFiles/{Binary/completi.ibd => icons/completi.ico} (100%) rename scripts/Windows/Installer/ImageFiles/{Binary/custicon.ibd => icons/custicon.ico} (100%) rename scripts/Windows/Installer/ImageFiles/{Binary/exclamic.ibd => icons/exclamic.ico} (100%) rename scripts/Windows/Installer/ImageFiles/{Binary/info.ibd => icons/info.ico} (100%) rename scripts/Windows/Installer/ImageFiles/{Binary/insticon.ibd => icons/insticon.ico} (100%) rename scripts/Windows/Installer/ImageFiles/{Binary/removico.ibd => icons/removico.ico} (100%) rename scripts/Windows/Installer/ImageFiles/{Binary/repairic.ibd => icons/repairic.ico} (100%) delete mode 100644 scripts/Windows/Installer/ImageFiles/libusb/libusb_win32.exe diff --git a/scripts/Windows/Installer/ImageFiles/Binary/bannrbmp.ibd b/scripts/Windows/Installer/ImageFiles/Binary/bannrbmp.ibd deleted file mode 100644 index 77fe2b6762c20ab47d7ad13b2fa81fa032086591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 94554 zcmeI)O>(1F6b4ZD1~TpiWRMkPnyQ{>1KCA(;H71dCH367ybD(d5Jn)yROzV72tD2p z99$naswFBAV7e?K>>C9K|sR^5Fl_q0d@QN?uj!ZK!Ctu0d@OfLK6@mK;Ucw>h`nU z5$8jI0D%VxsM{ZaXbJ)Z2%Jkm-F~k7;cN&HAn*_Yb^AjYO+tVGfinrH+s|}2oC^U0 z1Rf-?w{CxbfB&bw=I0U3aWr1_;JE9bHJDGRg#ZBp1nv^3_-z^g$tL1Da=YfQ3~xbx z+06TVGVgHM-=&tV9RdUh91>``x~Z-nmWdGG)c^WlhS@i2SkpTJ0t5)$ArR4?K|R#Y z3-4KnXO+Hi_(oF~=EJLIxY4(7R<{pe-U$#Oa7>`Z>Pj7+vv04uW4=j5=h#csZ(H%$ zRT)iy0D+els3>lUJKZGBv~|Ph`pP{becV0UCymu%@=$o`8{^^$5Fl_wpatt<-JY|? z@x`Mn?Ny?8JG1%w*q^mm&m&i3ECB)p2!udIbj#YyCKLGb`JTOmy;YpYOwl3cpHJDx zyBkA*009CA1zN&Z&D;fVwtRdnR^1CduV<)lT^4)xMSDBvTk{{hAj1g|AV8qPyd`wM z*^5Jee<Hlf&Bt4UMCfGeUUzywrjucA00BxC+*Q|y(Ola z&z7Smi~2}_009E`3RDQU%)V^K^F#{GG_B$7VYyn`^Uj}ZTkcW5FoHapat^0 z#_o#h)&I*qm+Dgb#tbX%IX1>E_Sta}h7ce?fWTOw0=6ae)h4@LH4Pu~P~`v6aL0Q- zH5Lc-Q9nLE`veFOAh1KAh3sPe97p>3uKQdTxo+?Jf7X)0zFzHL=C?RX2NkAoeTVF&>N1PF`;S{7H0 z9iLYACkY?99WC=$=6NoXeOBh2uQ)zC`veFOAh1KAqP1oG)=lPl-Ax6b-Q0m0t5&=Mxf>D#)`Tg1W)b%nCmhN0RjYG zSfJv1sGYy^UETh|zlkoL0D*@Jv@CyW9bS)*jjKHL@=Qj60D)H&sNns|dVN@1-TsQd zg07hWfoBM`T-{hv*Ms1x{hx7_<|IIXz)K1IKXHBEDlc^dTr2?s1fC(FZhwZVISCLT pK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PB}!_z!MT%8CF0 diff --git a/scripts/Windows/Installer/ImageFiles/Binary/dlgbmp.ibd b/scripts/Windows/Installer/ImageFiles/Binary/dlgbmp.ibd deleted file mode 100644 index bcbd5ed535bdd2f3d46720ec41c597c30ff6bc8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79246 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 literal 0 HcmV?d00001 diff --git a/scripts/Windows/Installer/ImageFiles/Others/DeRegister.bat b/scripts/Windows/Installer/ImageFiles/Others/DeRegister.bat deleted file mode 100644 index a67511b470..0000000000 --- a/scripts/Windows/Installer/ImageFiles/Others/DeRegister.bat +++ /dev/null @@ -1,2 +0,0 @@ -cd bin -nut.exe -U \ No newline at end of file diff --git a/scripts/Windows/Installer/ImageFiles/Binary/New.ibd b/scripts/Windows/Installer/ImageFiles/icons/New.ico similarity index 100% rename from scripts/Windows/Installer/ImageFiles/Binary/New.ibd rename to scripts/Windows/Installer/ImageFiles/icons/New.ico diff --git a/scripts/Windows/Installer/ImageFiles/Binary/Up.ibd b/scripts/Windows/Installer/ImageFiles/icons/Up.ico similarity index 100% rename from scripts/Windows/Installer/ImageFiles/Binary/Up.ibd rename to scripts/Windows/Installer/ImageFiles/icons/Up.ico diff --git a/scripts/Windows/Installer/ImageFiles/Binary/completi.ibd b/scripts/Windows/Installer/ImageFiles/icons/completi.ico similarity index 100% rename from scripts/Windows/Installer/ImageFiles/Binary/completi.ibd rename to scripts/Windows/Installer/ImageFiles/icons/completi.ico diff --git a/scripts/Windows/Installer/ImageFiles/Binary/custicon.ibd b/scripts/Windows/Installer/ImageFiles/icons/custicon.ico similarity index 100% rename from scripts/Windows/Installer/ImageFiles/Binary/custicon.ibd rename to scripts/Windows/Installer/ImageFiles/icons/custicon.ico diff --git a/scripts/Windows/Installer/ImageFiles/Binary/exclamic.ibd b/scripts/Windows/Installer/ImageFiles/icons/exclamic.ico similarity index 100% rename from scripts/Windows/Installer/ImageFiles/Binary/exclamic.ibd rename to scripts/Windows/Installer/ImageFiles/icons/exclamic.ico diff --git a/scripts/Windows/Installer/ImageFiles/Binary/info.ibd b/scripts/Windows/Installer/ImageFiles/icons/info.ico similarity index 100% rename from scripts/Windows/Installer/ImageFiles/Binary/info.ibd rename to scripts/Windows/Installer/ImageFiles/icons/info.ico diff --git a/scripts/Windows/Installer/ImageFiles/Binary/insticon.ibd b/scripts/Windows/Installer/ImageFiles/icons/insticon.ico similarity index 100% rename from scripts/Windows/Installer/ImageFiles/Binary/insticon.ibd rename to scripts/Windows/Installer/ImageFiles/icons/insticon.ico diff --git a/scripts/Windows/Installer/ImageFiles/Binary/removico.ibd b/scripts/Windows/Installer/ImageFiles/icons/removico.ico similarity index 100% rename from scripts/Windows/Installer/ImageFiles/Binary/removico.ibd rename to scripts/Windows/Installer/ImageFiles/icons/removico.ico diff --git a/scripts/Windows/Installer/ImageFiles/Binary/repairic.ibd b/scripts/Windows/Installer/ImageFiles/icons/repairic.ico similarity index 100% rename from scripts/Windows/Installer/ImageFiles/Binary/repairic.ibd rename to scripts/Windows/Installer/ImageFiles/icons/repairic.ico diff --git a/scripts/Windows/Installer/ImageFiles/libusb/libusb_win32.exe b/scripts/Windows/Installer/ImageFiles/libusb/libusb_win32.exe deleted file mode 100644 index c4b2d86ab4a871f09e659adfc8fba7d5173f57df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616278 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

    _=j6^tGnWdd25;!iXjHu zrq_$IZY~rE${e&=Mps6WSn8BE5V=u4=22Q1K=6}POfPb1IS7QlSXK>G?(IQq%1Vkx z0BuYSj}TK8#8c$41&#=*WuA*=LVe8xsPg+2I7F$oFF!azVz2o!ejW!`N1uh|GW{Of z-3*rchLEdq+O|_^h9)2efp_%P9`?wDkveH9DUe3(P8?{w(4^SLRQDvO9KQDOxnA6A zf&@`hn%Bu8{0F#95$~kaSD6jov#sGo6uR^k6EcoEc-t(c1y!@&&(b>}#8A!qCD8hS z4RpE(yVkjmCtr*_a^lUYhFjO63_m(CIVHS!Nu<8Xh-UWVZKWCQ@iO=4HpGf`>8@0u zSrBu(vR3LOl3mI2vVbrKcIRq+V{4;q#0{1U_Hvp6!nx_3#YuD=Y>VlvK=ux11Ap~u2RjT|q3Gx{L820ip zPn3A6AaUUc!~xY4-O`H3YKOuOJEgkO$Uij{j9NbY4LRQ2$a)7W&vxE856@sGifkIt*MI4614dK)EjDFo zi^Q$t6*=8Df$1mU{A&;Wkd}}9V58H#I2oh+#%9DKM4~^^CCK6#iF7t7u|7xHkpWz( zW<%J5JB*7J0k17S&}ojd5Z$vf2Cug1`pkFTaPS_)?P{g4&J?;s&AAD6{1mj&N^)$$GovK904%u~+D;L9T~^gDrdB(GA6p z)fzSFy@|>-g5!Rwjm4)vR5fT27Lrn{tQpbE|G;-3C2(W3J0*%m@VX|PElPlC1f2m@nKM|E8klQ zkStjr8h+4~gc5M@#R4;t&Km`5pfNGP4I$V#WWr~}ZM){{q4m)I)ya8E_2r(A?@F>0 z+qPKKWkw0S9L}Xlw5%`7vAK00Bmmvv0+r}Mupq+iqL;6n2?p=1FNc4QGzky-1Ycuv z(xeR;SxK_x@CMH|VK6OuH9)tLIP0pJ&C)#3%iq;ig?aXy(rmoi-wsURp$I6F4i-}B zal0(jgr=85oxiF4k`x2nNC{J`TmKL}d|`=ZXHJY7d}~BTOe=#ms^>|d$C6KTq^cFG zj*K{Ru*s(JpCgb$E{oF#bXkt%B5&8QtHuFQoVeAhdb_n`eFoS4ti5Q~@Xg~;SF*YB zO-_wZvmki581YzU4o_a+7@@}hruvum4FF~+L6FnjY>i93O>VSK<%SpxXg!;@ObjRS zQ!6D>Eou~o0S19{r9*jdbFy#bse?s%YJ~i16JI*Wc0=T{=5>IrM#a{@HE?1%lVsAy znubOn@#4g4C^{dJSC5~kw~#7?7SlQ;<>{r%DH@w`Ye0Ck_HGPeJmeT>c}Loy>DIL0 zf6Bx=;7Ah`lz3fJ zdAN3g;~=pD1d81|5`;tZh$@cF-UXW^|h+a9@z;CCaph`8vMo z)tm%gY#@b={=7{@sTEFqiVU~QCJDJQjWM=UvfeYV*G`v-?6L^>)Y#YF{MlGV25LAo zkj|k-i@B$3Z|KTF(ulw})4e3mMFPB{->azN_oAR&lyBD-PCoYY9jZ*_&KC~SKFJ#q z$)q(O=gTgHc+X}(697K#x@!h8b|7o1Xi+o@yQ?M_T&2nJ2Lx&?9P#*i`1iZ#S3HAx zcFoRgQT2z}s{5RD1Y+@=Sx?CXaA){Z=;SqqOt9yw1SnP13B1jcqi)t6xobd3YMdx~ z3&f;j`7m=9uQev1X$Y`$&i=;f#x`o~xi98@e;QyU6s81wA{M454|2))v6YLJzD^He z1_9)SKf4M7p%xNl&!rWfi-q+>#tu^TPh0SoPJ7*ERB6RrKYXz0gj=FjulhBgl4nh{5r|E!t8~oFWnF@RD3cvQ` z;pOSAV#6@K#?IWXJgBBRnAV)suE6Pbl55dpkt~wDt?Pc7>X5_=_9Vi>2?!k^l9=oA znedySuf-MOH8DTwtv5t>Cf}Ff8;Y|`oO|}uLYCilQ~FvHr!7<5IZ0BEn*kM4$=sD} zx-Ixt(FBBh&EIGf?_&dYJJ>cJS9V>iR#uA z;Pu0$@cgMHu|k8sz_%lkU4r#lCO=w$lMy5qSh6yEsT=A(EEr{XKmbaJlho%L{Gvhk z<;$@u_>S1djO?gMhdtB@sYJjWi@al;@uuhJkAEHh86GLU?dw`1%g2VR6MGZzp4L_} zXpU@|8q>5z-)Tilo-tD`#)6zET3#YioI4VUnFNTQX`=6RyL@cOKd*+0z^>8q)X=;{ zj{@zIEDw9EP^O}2*dHVPq%U*JmHuYsdl*!17yiiK_(_&5z`QU=X~~WeO|r_s^gXpN zv-_DJ$AQ3VahK}ZC%SHo(|vhubb7Gyks!ke4p`QQd*tJZjD@j#E}*abOwut6)sKV9 zS(zT`OrmAfLPbv<9_1#KKMV*O~~IP?IQ5~!UrmjNS4oHa4jxJ*>7S{ZyIvQdloFrPT-wieeJ z9L9O4*VRB6f<~`jrHMCW*eP=2Npesyvc5zW&)VAPJ}sN={#s!Ki%1I+(Sfj8 zBoM032fbwch}p@f_aM;DY~?j{m>2C|pOxMSA5_$R3F{+jhtP}X79`OcUdYE>T=T)7 zsbQJp$mzZ-X0QlpV`=2Z;x`|93dRY8JWK&UqDQEGt_O;AI-M)O7y4o+j+J4`CE!R# zjFqNfOpMf);omD6stG%Yg=%a3AtlE{Ob)dLTT%jht_Ia-j9I>1_f%lUJf4QgbcnaP z5&88IZF~Txn$ja5cVV}gF(>TC@d>(n3Bo1VTQ@>-v=c5Z>@ngw84w}oz?20+kofqK z0;akzwrBmMAmRV?4Ea8!U)02ZxMp3uOPnf?4`q&N7C|h19kZjagmxOY?~mER1KV(Q zco@nbPLFVhZQ6ff^zDJdtpALJD#jlcODgMe$~DqzLl9j~SxvVH(K(^UnIV_U1YJ#N zav1oZjh3*tGuZ> zl6juZ*o8$)UAoGF8nfGn%l6;4YNB7OAy_;UdlNiDR_y#Jr;6n8$IxZeV(u6^-xh+? zesRykJ{MJ+A^7oO0&!8=*rqtjc1I7j&TQ3=?^sYyRAatFDU)Y62bWvNc(&zOd(1q7L*0Js>gp0Q&@ zNlaCN`0?v0@10fi6NgXA$2WNYqx$Ff-x;0cfMGRP_S(+dWKgy;&`2k|QB&XcBT#L0 zhR!II&*~G-a*U2uiE|r+Sh(l-?KmsLomjdZFpG=bli%gcg%Z`48fI~C)1vM2{cVI7 zh^p@Q!e)&=+E&&XjPiX-%^3G=1YxtE)Ps`pUQ$ClUynVvfzY8cr#NU>=la|JYd_pNyV@QH+4N-llOo3F(#ty zSnzoYOO+!vf}Tfq!s^@z0*<^?653+yXr~xO-6U?0FWjlXi!^kH*b$b z`1g8#(ij&C%&bb@o$o-Ntyc&m-pXr~j9a@F%*u2+4|H-c_{0epset-Lv|4Z?5NEgO zT*q+DGN8wo#$-XI1cc{KijwRL{UW@_W94zz3(;yx{p}oh^}A-)nm$h++i};t=h_#v z9`mRock9ua_a)C$_=Br@-Als@*7{ZGvYYqtj^)!W5P!kQ7yedua;m-BllKwJSsN^4OJEo(2 z=C*6y_AR={Zugyi9!-F zemL4a0*>G(WrIrnffY`vHN{B$*x}Q+_X)JRLh;_Zfj|Rx{sPq+vD~?}`)^*6A{Ndh z3oqrz6z2?SlA#W6K#`mB2{yFvz*Ld<7XKiB8kiuX*wqD$ygh<1#bci~L(EXYKFuGv z0Ft=^$j4;0tQ4#E@RZu+a6K92Gz0D8SYynQ*J?a!SL&~I+SpmBx$Xp|^OaXC!PjCP2!r_yI?hN!D-;eR?Tclib+9#9Qp^p17t)~+b_w;rg<1oUdUM} zBROp;SZc%^V?U^IB1Wn3=ldjNxtQ;C=GOtA!#RgxO&!N;>+P3kMnZ4>5ru4Cm zlhuVYvDoc~1I5({;3zh_Lnx`4wpX=W#NhD5ys(_wIa)4RddD1HP0dQDb#B`uu3=bk zJtgfRx(;XIYyjpHj9?O-9wn8x=3O&~XvI5uECi*%(ZIool2SL1pb1hRW+A!jy4t`gofvcbN14p`$pgy`S@#0DOzt6E2fY2s zKEJgf%&HMDfjXBb9ulgG9PJE~4Nrg+Otph0j0%t*{0-`b=(a&x*tXTohDUI6W{MK| zUU_HIRq$;ST;y zyYdJqQ1WJ+9@FFG`8UqCxb(z_T@H&PBn-d$AB67;a(>^wXEf&&eQjVP`H5p!30Iid z<0zp)KF7OfINz!U+l2LR?arLIx$NI%uAycQe=?yb#ZqTv*OF!$H0W2eJx->7cEsDV z{VQ5#IKAui<|w;~^REqLVVzU>5jMv0jJu!}Pqu%&(HtsMF^wbm7edr{Dy!H4KYX8B zh-+sv4(O!i#}RE1Ck3B$uM^O6sWZck1Wq5;X=apz5$WiJ<#S}KU^l7S6u<~A`gf1Q z1IB-ho-o)wau#Q_P)#)>J)cpq4%ejRfQSKsMeEv~^)1I@*{=NdzcwvPr5wR0Y?8uR z@77A(@CF7dno_;zw-&6^$ws!+um*@FT+$BUj!#1;=rLEp4eI|qrAXtZ6#SJ$tmrk@ zIHqa+@)p7BcCd&azfu#sKQaFJR-sxOgcC88T66svia zBYTrkZCU);oFt-ngu^pPP)}Kv6_~FcUV7FLj<(`pMMT|u7uugs)JD+}pTIfLZKxrk zXQ>NVdd_FGo0)eiAnZgGlYvd=nu=Cy-MZ%@Q~%VcBlt#nCpmm6ox8m1ncDXlT=6pr zsKAzdDQ<=N#l+qRPo-2hs>om`7n@9ziZ`a%Z-^quHuz@aCO?`lKmI*6o4r&#+@j%wk1%SMOgbF>s`%|4IVe+s8)I zpBcN0eQ&nYTyrEk2Z-(N3Fpkc%59EA-nf{0X0B4fP~qiXj4gfmP|LgIL(4EzM_j6z=v(hDx<}-)@$_f`)wZK19`UdiC@u~qFomHa2 za4VSjWt}bcrHsoCpbH9eXZC9r+vW(Mfk3t`sjV{q6|P^j73GO`n0r`KiJF_bDkr6g zO${veN(QjJvdowc7#;i-2+e$+AuLA0$RMRCcd;X$4lw{JAf?JAYkj%gKlk<-`IL>5 zo6>x)kn(Ec)kJ^VT9WDWxrV-A9SXF{q*7xO5M{IegC;X7Bt#duWQpp8W~>-efcEuh zuLfDYKckl*Z?mI@L?UB1SdVW$|1|9DEBR$)?bvhV9Rx_}>#z`ISeXjd<1y=Yutp9$ zSw05#HY;cU+-Fz`$q&Yvkm$5fi3+SFV+{jaIWKrj6n2%1cazK-AmsC^)hJgw&CF_< zXn$|b4m_KqM2<2cf71eKp+R(Xxhp-KF&rW?ZSS4BB=~Z`+AuQ(?4#);K4eqQ6+A@c z|IU-c!O}M30n^_|DfvKv-{cajPG<49b@HSNvKjpKPHufX#^=A3Qj}%zEdd0|a9G=X zLqBz!y#=g@iFZLlGrl4?(|E;Qt^}Rw`95fmqdJ={&_C6q6rJyB;J*Kk{5v79Ol%OL z=+za;c@C&ze${iSYnxsEx`Zw%VIkqaYOyo^xLlL20+5SZ6|ofb0JK=HBciK1*)|(q zV*Vd7b+lbOllTdft)UXDM2TkKAGa36|AwUkxgYe(1Yz_yYiG9wu6}m;Bz9@!L>q4Z zcZt8SW(Pj|8pwpw!EN3GEMv8YuU||4zrF}nHbm@guwZ$NTtSGfokzZPZS{!c?bx?s z*A1wvNqzOeeZhDxQH|XiCNkhca{BP~_~egg&TaFcFwyyB3U0r+!%J)r>sKi=0L{kb3sR6o>67W zSb{1>MCE@3Th?)8CM`CM#WT+!MeBGUGlW-PhnK_>ct6VH&`M%trUrc{=_1QRbRywG zI~W0`p&`XIM#`KeA@Fq`-(AZu%d--c@EQPwfcJMoy@G%##7(^Zg=aokV50QzqPe( zFN$^khm@Nvda&DDKn3o03v2%wb;*VW|GwU7aX^EMtzxk@go4vdmU#%&&fBxSXj2G5 z^nUe2G;4OS23=O!vo&o&5Y~1gOo?k*7!WX&5vleT4He)7(J^K?phu-na*^!%x8PuI z3AQLY-ho8pm#sj7YE8qCSLn%4{(P^-PrKy-9G2Y+GjL{_*{s}{?$nnMAc-GNblC+m z*bvH|VrY9$bAjlLHnFo-#-><2+oU?^Q);P$ISMb8xE$h@EDRfoY)4+il<@O0!sL?* zER`-n4m8ws|9Rg1AKM%OBuPKLfM((=`rTVyq~%~jv#gGt(UBpr#byr6t{3gvsAT)j zV-}_;=#JLwu624WxHn+U!)fvg=?Rme3egUzG*_ab#M*8)UnxMiHwMsY$c(4Th7X;B z($sMtF@McLLfRM$R8DJlmCVv(oZ(A<-{10J{SG-I1X?TFS`y8!?%Y_vsC%jP+3TTW zvR;Ruc{o;t9{&G`ycb|te!dvjrx=F%7RI>i{#L@WUlbDXDc!Tdk;9Rav46*@W?256 zS&7nz`aVJt9ns+-@2=xYnFL(yr&_{W8C^&2A|Yg+5}v@fts>y8W7uiiuUyGMx%(f< zF3c-8VBO>QaIjtFSiF?Q(5SAnl#j&Bl8|$M5eVYJR@N!{GEmMt_?=-QH4qVMm?ubg z3G%Bu0KJ*hazKkEyA?hM62CxO8J>o&l=)s^1%XV)>VwW(L^+A z{p$q7HNmER7KAhMVPW4vqMi(8Ut}dYzO;imd<0mjYE^ld)}>8Wwx0u3Q$?smYLSXG z20t0MAFe+1O5B5n6sdHafPUW9H{LA z>WdySgpz_oB6Zx_MtQW3%<$};VGH%}H2kas+4d8l&A;{b+=yy1>%Bj~s{{%0YHhB& zVO@n0vHa4xuw(p5=nSbbeh4sHD-a+XUL%vpq(e?N|KXZ&R)qHDg)%bYOnwc7E~L+N z3rM@YbIQH)-5==oY&jOUgh@lXpK3#h%nl%vH_}~4nsqO}05Se&NbP=i?2Wn+ek(c@ zKv`!c2R~CM2GkU~ENx4mm?A4)m7Xa^ry@P^o*}Qnu7Y#&-L03|?Z%2^yHq@?QZekn z1Qj$el2;l>P?(5F`-SgL8(K7Ez(mlz)y;puG!2_pLoG6X?wxxvXzg#&q8wA2TG+YRvlx7&I}d-2pMzjLeEd zpB>}*&r+T6zk*PV3H3-2dn`+--#JI_pC$wwJ($GXUI29#?^XSd0AC$$4iZ+ArN)CjYy#+O3 ze+E)SwtLCI-vm0E4YJ0r`#(WzSmvrk>fnWpFvR)ILomqSXQR~G{BBW-%ZbnqUqe7I z+qhtWH6I=#2@?|Q2iTa{9=qgg8|NM)LfYU)odc`!4%ME5P3!12V-X5JN0?IT;FRHM z(1K)GC}Q(e;3@R3dBtZy9W0zsw12b$-J;Z#P8cPu6RZK$4QrPL^~7oaJj24d?k_N# zLM_^61Oaf&qCi!Qh+gp@7sO=abyf1P(QRJlV<5w7GBu|)Uko1F!ZZX!n`sJ;ZF!`E zBYv5+kKLX0?mL+vlnGLN^lHygBNB28rp`?{W1|?p^vHSE4qMtTz`RQF3F&S;bz?gh z%2rCZZs{=+-5LN>4uY9_m~sY=iID>i;_LD1t#ioAt; z{l1|n>r_~wi;oo@M~->7rLx5+bmNdvkH@BL4t52J??Py=JKC3zW#N)CCDMCoJ#I9$ z8gn>T0c5*5yQb;+%W`i=QCAChanoTyetTTxt3cEIUay-EDFh2%BKGCpwA*v=p5YLi zc~h+i!z6do4KEM^VEOX_i>Oruj1J5x0=mhJD%l39+dajI$6fztCQ@+nIiWk) zMU@6&IedtveOnO(*d*DryQ!fx`+fq+e+n5IPf@~?Nviz2YdYfm0Py=lujKGo{@jpC z$_jD^`Imiwc29kpw{grJ{od{giMVzMvBFk7JMtOLLUB-oI;=6JN-80aWwkxL8qSh- zvd8|*pte>Np*UGU-1=s(6)eU7({4MLg|%8~9TzhlKYp|CtwK)s35cCk=)rn|mg7$X2ZLwJXjchEUCBLf~Qp_20P znF?J2%3L%k1!V3LJEMDjk4cKnm85s2=7^-})OONRm+_Gv`3R6^D>z!8R~pA%5Kl>} zBP5t*h$f#E19==7)ELO@$xF8X;#d2~VhhC;eFFwu6wxfPeH?b_*@-wV z!Vn)YA$5g)T4fBzEtZme3&;@NO&pU8TPK^c7?aS9$h~foFd}mTwzIAt3AAP!u23iA zJqLZpuQE+pRA2TYRz~jnFA-7f@XjN0phw}0idK^jj;{TfSC{u2)J3;+5q=_~&N^ZN^7`_)kdV`F!L}II+zU3deU^Wmw z@33o*=xw-J|DNGL?~b-q)Z3~89KSw3e8(47Fb&TkWsu#eREP1jB&0YrJ-ZTYwyWCD zFNQOLLY**-c@`c+gd`ULFF?@0EXB0UGVd9VD(1-yR)#XPXbsi=l#i1bH(Hk0m?<^n zwI0d8Ns)2LhL$}d7NHE5Qs^N$1+VfZvrpg01>;BkAg=+rJQfc5W!--^*@=?h39}1+yGF>t#aNml{XIE2mU0Xnwk^wX59Qyod!d1FXKOHRwsmSsaW>h zqeCh=NSH)9md{=)WArVy#c+2@z!sW*U+^kA0}3!8Fgl`CSkiql#Jf?4b9aFvG`a5~HObj6t?N0$06s&OLGzAiVX0oPI~ z)6Wh;Wl$*3HL}`kZYwc8Msc7nh2|nP&FedJ3a0C8SahV`;P($fItPv59UeB^Z1tMV zY7Git0RnN(IL8FEKIp1%dW0C&-A1E1bs*LYmAAOn~07J#RSfY(!U28rLG;# z)T-pr5Mg9i(OE}q+G+Du=o1Mi3W*1EM)uF9x(G|ytg85=b?9bb9D;}6r!A~+-^j?C z9=VGh{srfG&;QDBSk5=5Lm~1dMae!UEB)0yKIkZ zpM-ol*=;?xKX#vO@+WP)t*mKjEoW`C0-U=#>_d!Zp(6958et2-SC$f!`0(i>@kV5V zLnZ8tCOR{VhXa~fPOsl&NCJRV@%0mnZ(J!3`v}F_HeK&%IA0&-FO|M`!-*7{b|7lK z?e1t`3AtXAX&}BNz9_;#OY$BltRnhC!?xTCE5fG!7z=Lk2|_LMLf4ZGm?nr0`bS@^ z&C0TqJmWUD7oUOJVpckz2}Dwrx}S>1=LCvgI(Ca7s4;*W5} zjOLkD{XY!YxF;aoLV8Msg4toa1s%Z6h%NzrLPL;#QtQfn2CUeV5#-YPP0P8tk00He z@l952mR%ii*3R+54s0}E-Kc*l>Y(5Vr#AZ`Y3RXy;J68}WB#zn{iskWF*1V`M7)sO zT=D+1s!ji{mHep@2%n?J>;}9=TJpUG00tR&bgkL7K5AWOM3PwH4v5MCknCg1g<*R~ zgy5kSr|(+vpl6avYzTn8q{Lj5u!X@14cx^(-&o1=el`{c9O{Z{0-YjtfTlA{vLCzF z&$K2TAv(KPsCOp38g@IZSr6z1@76)AfC;h!OHx2~xGo+r>n9VV?`GH*ujyW1F!h>v za#=7-O6s^e`x~B&--s5hI}8o*zynKGv(Gu~9FW6YGb3(NIs2p*Kw7}Y3$^Z%P*v<6 z_gXnO%iYX*3L)w(fW(}2m&*ch+hW15Wi|nkW!9~&2=Us4MAM@%&XYlNWoja|)_fxO zC4EL-q0*0bZBua0X0w<6graS%leh}O1v9g3e_7_Gg)`s)=nnPZQ9{GKjq zSG`PuMAwL>LpT&BV?AF}xp%4x4r~eEhTZP&L1W)bG|U{{mct3LXhFT?58nRtY65(! z6LMaH)l%O8^MU1CRJrS4pE(Zl-9el5=#hyH2U@r}Y4%djb`w%qyd;9yA zQxp}(JVgD3yG}!Bv!obDa(VThHWAn4uy-4KNUI^;VNn_R}iCgm+HB$0q5TI<yDq(sE--P${S=; zX_?5H<-i8mc@-!$0BayZyWz=mz@%sGtd3Zx)w*U?kmJtZY#t9IptnWm7@~e((hd9i zz8E}@gRLME#ME@2iw(W9rg4h3;33k-9vap(b$BEg>r&p=gm4Yib7wO>bOgV|@e)8v z%!Sn)cqOpeRJHok_MwaGdqtrzYZEYFSTzd| z$Ko~ovXWGdJ=5eC$DeL*c3(3q;kd!!OURY4u}y+@;=KyuM7u6VfH}E4I0bwBKKNS6SUnh<#7P&+Vew6pT)`7(G{WV(_+0)6pmP zxL=()6=i#WfU~k9r;T+2F?gtNVAS)7=`p41n!%~lFlX>58kav7$C_lgUHyfTklXDx z)rxz@j=zb0-PZgYdGpJC&cRn8ZZ};-E`agSpNpqC#IHWegw+0R zjdM2h&z!=YBxzGl84NTC=PE)7P>qprJ@G(Y1Z5o8ft*MLWAw-tAq12W5jkRqLL+0$ zq%gdtT6*dwizTt551@yNQNDQT?p_^6bB6gQXo`a3je;;#sAxyXDjD&vv%aUim?~>0 zPek9036~lqBxkcFlDrYS8fU6<>)rl}-PjhB|kn$(*>e-q@FV#pvg?kx;z7X6+#F zC`Cm&*iv}C<9qHP<4On#*%-(2&-#!JrU@BND~t;$%w&ygQ#)Sr&b)Za){*5k1sa;3 zqAw+2zwjsq__?&>FXcCIq@dm&JPw%9*FPag`@*gagqO5m?rll8G<(zjth;gF)B=_b zF#Kb?^Und*EZZBvqDo*v4RJ$E_advZ9Nx`Emzhr=w8Hjig=?8|}myt%bDf z#Dbf;BD7nijTmH6bybo$2BUD#<8xTFvvgjaIzN_-S^;E+iIw1feK3o|uOD!IDC2|U z*{Bw!k0gbame0Pca`DdH#yLbhH+d& zEeSHee5;$OxbzenqlbD{vi|+IjlVS40j^l7`>Ka;fDcC-4*O4 z5-+N#|8H8l*(TGwiDtjK9L)n%XR6W#9;Cg+r1*Ioq_??JY2vX#D96I`g{spESrbO2 z4NcKw6u$;TuXZmsbNl2Gf`{$i?Y}{Q7gsZF9KvAv-ax!X-93-tCL7@6bjo(fk1DI3 zr`bmSI5y}a>fmBwTIWSd_NX%(VeC^NEV9b`|3Q@JVR*&XEFD7yLc>vS+43XK3#G?N+|D zlAk3YQ>Drr66KvS&qx=u?XizadZd35W-`nUGKFJ?yn-2#VKNY-$0h=QYlu%68vwki z9i5qW`~C$b&D9p1ckvwtNf4r#CJqEM;AL+w_!q*X_?{}kelXmaJCchS-;i_sjcHhgi=rWWm^ZtWX~0Wqc;ZcSPT?-3 z^}bWAu?Nf?iynNd0LRIf$8|yP&vnP9FF+9E1>=wv*($ammMDm7OQ)9m04xqajsj<1 z)g!`nfp#63j8>XkIFrwtTdCwRPDXxkV%)g-?+et> zkXFa&H}I)WT%G8jQ$Zy+6u^Nu`oVF6dL2 zX6C*G;}9oSW}pq6K3_oKj3}|~Kz9*%+?4;z(%I!RY1`Bug!us?S@+0LtY!h%B-&Dq zz0t+%zs`O`am&+V8fYWUo#6RRokkRFi^DE-_1}^>VnzXS=SnWL(t1R-);jFsf{09p zsvBTY*~S~b4cW_)@>TA!4=yJpQ!uqW4r$~k@shVu`5#$lOQ<%c#8#%q#R1o%!dAci zYpLqEqafkLbgHy~xc9rji$ij^l!*2UppikZ_*fE#Un((S#P`!_$G+sK)(BA2ux^MZr&LGR7lPe(eQaqxoV(eYC*{rdew?2 zN_HY+m(dx2>|fu`3kGJ#Kz{r-9BbM`NAw_xD!)#SIDESVm4m zY<+v0e6FB%EqBRpMGFw0_o{?$X)Wj(Ed>6$+3&Pto~0>QDeIKZL(KxtOIpBKX8 z*u6@$h^V{a3Qr89t+O(UcPtp%66rnB3!ahwf->V-ml11LABOCXo!xs2U6QBj9AKv+*)<8EDOp6WP4ey6Oe;z|1Wle`1i zKbCOZ!c5kYAennFAi-}IF~Sfl(R-0=AMlb^Bva;+{dmPWB%5YRIlvg${Pne{H{*^8 zCrB`wQ>83c-r-C1pY9cT_9Mufi)aWC$Fo^b)a@j8N}NE;U3;#Gww>ph3a;x92`!Jv zMR@ax)~Lr}F*<2&zB`k3DYs$6I#&KE+ch>_t+FwW)a!yTs4e3|Wm&uEtPARAc8gZF zn#h=ZZ{RmSTVN4G&yEJx_q)R-iW#r~1Erz3yx!l)@@hL1+tn2IjmaBS-=2)UtA=b) zspF)lPr9&x37S|=@Jb$bYyc!uc`^a-$cI5HTPu?uJ@7{jHfUrTUcz>$4UO$Ft;3xFeX9cBj@k}G4~mM9m3V{Jux)C1A= zU`w78UWwjDdq(rdN@~{{%#<i66 z!K04$j7ot&4rVg)9H(6M}bEG+h^?3dO@adz|Ew9^I2z z^1J6JNKN4lm6plxqkm9?XEUgwcI0FIbJnI?kKs_#opD-7Sj*C1g9xi4sP`J=M|dga zm9D1B*n<_I2JVJK^|88Eu5-TlvXLU1v#Znpl`Af`tVhJ_8plBy46`Nc_QTHgJX-{| z!$BBSMP8%fZ~D|IyS}FLHay)5v{?)!y=5>Y`QFEgx(`hMbx<_hic9T4RwvY}op~w- z3Tc6gfDItNbnUVl9%mnECP3;+lw!!;BLPE0Z;oJ$85~<`N&0A|xEb%<00Ce@ zNUu!VQ%M>(t&Y?o0c%+qq>jICra)El?JvOG>+p(1$|2AQMnX^@zy4wNMWP5mE>OnC z6bvK^f_G~Z&%$|M*Z#}aZeT*OjHn{S^;lzik-Viw4F3fk={{`CC}imso$Zx;N(!-I zyEVL-&73?7qWRlpA{21wel#lb1Y2KqaZ)yX z@lf6&DqJ-ZD5BZzV?@+XZ*lxHy8Cx~qyzLboX#tfcN{|wbEYzP0~<;lGKVru?%K7^ z-h)IqYSTDEZ*|zva_=p{BGAn-aGm&?F&L0)S>IXo{d?EDijDqP1x)e|D>4DY9Ztqv zLDp&^1|mP9bX0jSZ8n4RB?5wN)Jdqoibi`OE}7uQ7Z1mo^UQwHKLaUuh87H4{{8Yr z{iRT0CyR*4;L9MHRkdMF-%d@kf6@^W!p5QT7iwY5JU%G`xGQs!;l=q@ykWjbAr31C zXLfE+qG9%~H)LgtraMNKvP~^F4J6VWh>71s%XT(bwJTsBi$UeNe5rd1hiLbCa4D(HoYm`{s*!u7MSKx;G;^uv1IupqMNB) z%&eJaw7uJTcGQE(X|j8-RzGlh(3$e8Nb=6E8LG(Ky}d_<%NTsf zEOwib2hNqFWku)o$8uhiA>a;_4_Xl^p?AIjo|1lwTeLSTp?~|T3{Xv=CxrDB<2PUD z4lXudxn&al%G9uH@Pwp@G{>{xJ~}!&F)fo}{p7r!x?gw%rK*>CgN~QnP*to^+_& zCA(K*L#Q1+!^n}5Vy7__ATSMs{z%Kn1`=^8>g6B$1CTq3PweNuyjC$Lx+2_DgVzlR zRhYwWZ>J`DrdVG8ZaEZQ3l=`SDVvlwQY_xUR#0zak*#KRy69fPu`V4q(;0X3Ggla^ z73K;vjR+Fk{vjAVz|HB9}@0rs~E?1#d$87zhMPShafP!Q*P{gj)Exk955G7yYcMMxgpV1 za#xYHHknh9H+6{T?KPwQS4E5x&BlQwK!Wbje}3mq4E53&yCAS%#JqqD(*XW{1S3}+ z$~6=!jFqO17N9AYsc>E;iSHWEjBX;krirGU@5NdBA;r)c?^I~UbKfkR!j6?>-&#_} zvvMzWib3%W(!8^&>9gpU2BlrvO)XP69i2d_Wcu$lRMg^t4DwIy(SoqaSU!LCmW6}^ zDHPfLyt&eE6QYMt8kw+HsiDyRacQv$0diTu_tI?~h4R9D+?O8n+W=R|Opa+tOCrv3WO^Q|YL>1#Ae{jl({?0kmBXM*xCdOWEE)Z2-ci7SB- zA*xxi2n**u&*x`KukC=>Kcf~pRc437Equf+B0%rWvV4Ba`z?fX4t^}`?Y*`gIcF3z z)-#n9k*V;HW}^A4bzF*f@^&3GF$S}wRauXrShY-(@{t=spCoJ9DN$IY1_?b!CBN)q z08S-7j~R)PS>v8OqX}R}sbnd5@J>z)5Pm??kSrnp(?4?lHv(bj)dQHIMmkmj`Bt4* zDBUszrBsBjB20kfUn}YV`q1G2Bp^sV0&U8+X<-B>w9qHTKFAAO8NoWNs>?))Ygxva zOWO(!=|h6(TAn{2A{-OFg=fPtP~UlMMhpdpi!t(xG{Dx*PIW>jnVa#K-Oz0eh4%nb z39)o?de81b8)S{G@Cf@-L^)I=C_Cok&p7 z0XnpHTXJlBY#SiVtPET`laa+>=}~JqTaV&Weg|#4Ub_gh|9Hd}R3|y)Kba`7^WFir zEQAbg6kgLkBxwZ{b0YpqXhPG|@o=4|=t*l>D%}O8QclRhV(BOx7QNi881k%U0tW#hNd7y%#`*Mz3b}7wG zUvSK;n$(dC5+50Nl^ zo5}IWpCA9#3!|KyxOlxJ&>d48?l7gCoIGTP`RDcoCm2M4$|Fmz0Aa1j3EDiaimLJ} zaNDdq+JRgcO8$d!&pXwW8fmrxzlwd9C<$o^H>_BSr3b*=Ce{AsCd^JHDKkB~N;mAcH`}tr z`+MS!9riLOhj4df36#`U@vk-4l-zBm?>#6`unnR=MOrkhD=HmUnXgZsY#hVtd2Q2)y@7w9aKpT(i1!1vHm6%+adG2-W|z%$4?b z*fOo-k}^kDM5>VOhQ1YxxIdYWgXj|i>VRje$g?Me^qF+X%(oY`bB4G(F1C8FH?F8P zUJFUKUv~zq0oaim7;9z6tyl2|GcO#;h&o+-k&jEVN#phv5V?mP>`P3p=)bHre~!g=f`grb*`#~}8MQsAf}K~N2$IQ}7s&s2 zZ}Z-Yp%v(k7JLopDCMQPs}x`g!*Xl1W!1ZEF-H<^B_DXqEIZFU;?{8BJtE)(-|KSi z>~^DkTpQzS+$t!MP2_02Xd@+u=@n`BwN^=M1WZ{~s@U5g@YwUC6oDC9#3g1^sW+>%JNk~o&iB(5^o$p-K`5gLxI3=oVE)cwcm^xviA9O%|^&ANv^TNWTgO`BE^AdaU2Ritg=tyt ze%^bZBOw2)NxV82-i41ij519yayRQUoJl*V1{c&7cqV7<84p|l#Csnw(^CdZv>O#i zJ(n3wgt{Kzz)iqmE+}+)>Z+D1Z3?QPODmWx{pGq(^f$odh%FhqIte*85*FoNnX-Q2n+PQVmZs9HYZmOX`u+ z7ZGkOY;)==AK)L($)mH~BG6N`aj3=<5pDeOoKoZ>%3jJ8Q0l0=8(O_`o>W%N4$!c( z_FsCLhsNKqSX@rO2@beef9`0rapJDX4Esoxv0*>jGWfjH598W(XC7KXBsDA7ug9_rpr%kwKY;j0p#Wm%o-g*xTnb**_7PhqBZlA(SYwqqU%5jJ|4NAbve_L#y8*>0rFV}x{-*r% zhya8Z$w>nH2}`Vxlq;{+dl1zZZ-l@AV&T?vQAX zRxR5cwv9V`lMBC^aRvha(RIcwVk=U-pE1%j;6}*Y>D{c{Y~L+9{`1-#JB+7MY@qW` z*-^w9ox0M!Q8&~o&*3;bX_xkie_XQXZLJfN^wIG+_)4-|sPqis$(%S7@}{^gTT+qw zp#ZP3!k~97?~|XFSe>LgISB(#yz;Kft2At3tHWE1Nc5KCmQ|Z!@f|_SkMCK#F{On5jt<1X8D=*F9dm}U&*5p_@#B7GX)Y7{XRX99n1x=y zZ=5$NZb~wlRJIl`8`G&7)O~z5@Xq z_fJ-u9$f+}g$4R~kYiY@%V3E?z~Hw7SpVj#=#JY=+|{&o;*0%90}t=I-*6oWiY6K^ zA9#e4U_Dt0wtU+w!cFSY1lhj22ZP_KRajKIPex)TQ^K-ti`#0X4ZZ%1?5rgA(X=u> zq!FHtNB(LvyqUFJ^qO>1Qe|7-_GV{bJQD-|nDvS0X})%L^SpTjcZW@BVTUct18Gss%xcEEnVZ+T>C7JYNdD7dpFH-73@sm8TUuCmhJ7Vgx!=CuvV$yePr7>RY1<|;8bRAO=R;jan`uiDTXd$EPdClCaV z)`wn4(|pmuiPGACU-WRG!M_26hs;Esq<^1>!EhSK|3O@dcCV-cKt3$7*ALM$jJgY$ zbaePM;iGK-65qFx{~RJE|CnI~tymoqPdk)6IJFEL0BBWbN7xiXnf{MT)HdN}(g26S z^XpHt(+CJ8h|PM9)#cfA8av`SK3%y=2{0T1b0d-M1FMSpI^m7G5!ze4IjzU__ zFY)(0#ApLc^7Jt>dqA|gL-RYw&6{9;(dDp)h6R^2?hJcD4BO)*j(An~(^BL|z#FQv zx7L>JX6!B7m$zbAi{=xG>{H_IlF1-Bz!ewpM}Up07z9XigX7h_QxH#q9RXPU0orS8 zy@P^h^=!)P1)6ev#TZd+IQH}l5bX&JuS0-Yn$?}dVn^~JnH7U@)A2Ci0U+Gy7lg*1 z`e)7Wv9SCN%UemQrs}XhE`p~le@31uA{tr${0o0IM;ci+NOvmEFL~_d^yFs(tAFqm zk(>8Us>4~2RYGGr_Wy^2p2##wJH_L{eB6&GWsAhu@q0iGaq=|D&AbCCt*}C1UI=C) z-H{O>o4AUoUkH*e_Pv5k>>Pp}Q1YLQAjo+tek0Cg`1qPjrgG;beuPp>4NVbar%Rm1 zpjeB+GyeVAE*t;nk8448;TucjDm3@+2Wi!cnF?tu-=MerJpa^rr<7n+{bIi%v9 zZwF42Z)h0>bJ7nDbEV&5;y>1jcpiBAwmeB1Z0zv=gk{KNVf$-Xq1zl#)WPHNzePe# z(dKFSpdiOaLjglF+_~l9)9?j~YS#HLakTP0oI5 zf%&bGNO`5wzlo<_6s)#Lb&#t=;a-*YAxo+j{FO$V^-SH$V^l`Pi1jnb9>TH5%vM&3 zHqHt7ewxr7zH}Ub71%`><;)1F%{X7DO(UZ|z-aJ)dfXP{!LHHpO=UPokGY^?V{56oTqE@lLfPB`GQ1QW{~jYh|+*PdBp7zgOad#;!KzM04o{ zQIBurRSOI`-Cu@2duJq9lpUO`c&@mr!7sDol*sd^!UN8pg8|!oyKHTRa+fmQmtu^bxlRFt`y=*IOde}XRP*y{J@5ytHlm0Kc ztCo^o8L4R9JCU`FZu2eH3ip11B#S4wRC94a85_pWk$}eJ*9G>yM-&)JLnA8QbQmG0 zVPth1Ru~-z17^;B@^*#$f?xH#%2az%gyF(VyJu61=N+nAs>iB}O+#Uc_UWJq zHEDcHQ-1VE3WAG%hGiG)$dZLQuX1U zbiakL))`j^p%O1e8uWK@0yk=ogqf!i$h3~hXgj@F%T$<&W0Nhc+J+K1;NtezNllO< z_+!L&5p)D{ZvqXIPxZ-jtp~*%?&+Pg@nwvpN3OS|4g|l-&-%KsROC*{m!J&R^VVcm2gtNpH!tR#EGK^Rr9wbyRbTt`20@6+n=BwEoDKNOGWP7KtPd?! zNFeF7IDFA6GA(%yid1UWobJIU=NjIEV*K`^+kMLHS{J+Pr7CMmOOJrBPJgq-@>lwH z=xfSeC~NLZ$AeEg?T@6!Bq~@6R~AZ()1H@9umh}$>iCWvl@vOO{m!2Q*Ax9(@+g$a zYPPMEZeXdY-!OXYc}lJ`hk1X7Qc!19ZjMFp&@}cG(!1-kKs$A%r?|x!2Huo9urscp z7kr#cR3*cgu5g*TR1^mdBa4*99H2It>Z2#s!tU(v7U$xoRWKl#3O0s~ODn0OtG(s) zluTo_QzR&-N?ywMEbdDzOCK~~SZ8*CpL#N91W!0;7nw4gl5Cc(ntFlguyA!Sv)wr{ zP(AKUFOB5zB#lR5(@c+XmS~N#|MX5Wu_pRr;V#joQVkDt_!B@~Uvc{+t>J?)fg6V5 z)7A^Dw49`?pHL*0lxaszaS7ZLO0-D@vQ$*iE^Bbxsd%C>+#I%Zz0v_=5$U zQPYImE4No;biB_m39VY#0V;BZ5ua73uOm*i7Uahm4+@uM|8%8`eLbrUWWL+GV&$O9#L$bF-srDRF9^Wfm2{Qe|sZ@|vl$ zV=RkSDM1b6i`ac79NT@o$u-o~DsYpV;dKyGcD2L=d`sy7&JvV+SEacDEM;(Xk!b8wI z)1h@juPv=WC!9g_o?dXP2n#_giE{Dn3wwfCg2QyGdmpxB1@TYSXI3CPo2^T%n_jTf zi5S;PwGrpfmrzLoU0YmDGpH8&Xv59hXKGnsG`PrnL1I z@SeJE85JdXK>7+TVl6^Qm6t|MHGCn&_u3w$VjymDxW7w{ALWSt_!ghv))=+@7vd<6 z^gj9C`ZtR+I@rZ6sH}|mB;%?u@*9boy7ODZc8gof+ARLlSPrWW#nU{C@Tf=RG zGd>q2mb;2e1v%aYkm6`qyXckcZP>D+JGB)Eu>@pfP6tbG#S*o4E%NF=R1vFwiLh$E zMH`uEo#%fIN57eF7GO7{VeRM-fem=V1*4_1%{;t-&D4gADM0-_a`=84O|7lQfAU)< zt0&{1c_OF=xgCIWr`}>k*F0zTxuo1UM=i2jJX(ml zA$4;XpNQ0Zeb{<9*r*nVJS*Nwi}jVj!=5T=LIG9jqKC3s6+uE>z*`5lPu~X4>tUZ9 z;@QKWfHn|c5Ty#Ocmz~e}k;4ud@WkWQH_lQ9FIz#~ zbm$WI_Ak7isZEu-tJh;jp7_`~(Qbib+SQ6feA6X5sECY@$^tL)sIq8*xE-&=(ap3c{wr-B(- z0mD>YS%m~P-nFI;JYZ{G3wkBC-_Yt+c>I(@@b%zsUFyWLJ+W!5e>eR4z~#eek7Lvi z-gOE8D03$6bo@Ig;6{5Z*3dV16)MZhnqE&*wTo@Kh#+bzIO?_h7HCh2dI2FjH{RQE zDozhsGTZ-kP!hnPNwT)N|3ZW&qhQkNmYuhr+4mzDy!~i!;f?oZ6+u{9y z&T&92Q^i5}lH5>4)12?lhD_GxbdAoQRoZOwW;tIAN&4__4D>^GC?^Th?g|4y-?()6 zeR(y!R&$DL5JM=O2pp|xF%cy;;oT+w6^RuWgBuK){gj?+ZY7{T3>E!cm=hy3;rTZ` z2WJN8S>FAp(wAo@CwGW0?!ZfxR%kHUs$>om}VpXsU9V~rE zvY%I7TXmL!NW6+0K=%JyhP~J1FJAw^1AU@4B-G=@s=W`3&8JXaPRTt_$|LSLjj!Qk z%=Ou+M{miUYV?dkbu`n*eO3}+W1F5tK6Y`+YjuQOK`PYLz=My@y^2J$Ii~`V&3*lB zd?LoNxOyb`R7GvAq=wbYHu*AU}<3`lR$@gs`PT>nZM3w=O zV`6)iLy*5?*l#|Vj&IB%bZ`bEnQ$pHTZ9IgHo&fvc-OuCWqK!}ee>Zi*qw3XA5$=| zHWwL^oL-oBB9fb3f{ax&2_^4~v1yT>D^ukNX6~2fd6@KEX*0#J0FdiaOP(M7c&F~5 zg-r-ZW&3(#nA60(i4dwmSf9s(tvoErQ}dGazXt)TB*Yc)Gg?e-?j?xYR5LX8$u=Lu z3&p?>n#%A@xujuI?3@fpvl7+7qsa!(i_=bHd#Xzz`4~QI$B5T>)#XxhyS;3=xI54k z&E~gZtw*)VI?e0knvS6LV055S17)L(`Y_*_qy1N9Y^u49oR3f zn1+ms>U1&&`}PlX)V0No<2r=Tfq5=^o{f{>@!Az(L&Jq+1Cge4Uo?a>V(qfBgQFy( z;sjlfH3ze3pN%Q!FE}n6VHr&vWIB0eG zlpROk9J9c#~h~ z#~v_R$(!Y(K5#+9>`EdEHrSw6r%o3q!K2uP{nd>rRg&pp?lKt8-)^}Y**8bHpt!d1 zk`}pkgmS)&({DCBr4$epyq4?Y@ zfo%>XiMM%`Apb*q5eiSM6-&0yoYqLz9naP6JTFc6irfG>ZcnGMahvx|ZvAstfCU$? zukG)fe$Nj!LNE}Z-i{Y--dDjLY3`S8$g@JV>ac#3G7a7;^~FZlz8wfkRi;xHsk)Iy zV{yaLCv3d?`krAO3}ST(5Pf0%jLj#)BOP)qu`PTyR9HiEwB*5Y>)IR=r%dKC@*kp< zNmO2Kf)wIG*AHcDW|1%lA6bb~$1J)WX%X@9#gp@MQ5M2?3Rmd3M;~3}CWEWz(qc{S zn)emjK4K$yxg-WCQXXS#m%F+-1;^Sg8*xH~3cKClKJM3#<|OrsJf`-i?1jQwLFp;d5Ea5@^S<)Ij@w&7cx_>yj; znx#G+l~dKK3kwtamyI9ac`Z;Q$7A}dci5+zjZ z0}91e`EZQqdd{h+R+k6>Q(Mv#n~gc zPtmu+oq{`*&(WB=xY|4-CLI~mihs2T+&*~1k}@C;Lj>=Fj(72C`zt~Y>GuPuaUkp8 zO#stDD(?e!XX>hpmBrD?)gzKJo%m2yZH-)I&T@j+xwEum)j3X09a+wlGaYEY z{Y#{URo9A!El~gX1<T+t-XbWRJY6U!1r}#q38<>8 z&kO)z57t_NCH=F`*#fMWqF)83RRfLZM`netxl5*20F9Xx*!94JUVa|N0-uyw^u6x3 z4}f@LLT(Q*ZO&}h2L~dVP?1bwoc}n4nR-{tG(c63EGTXTuwDrk@Iq^-)s3ojs4(mx z9=ft+$>2q3uQT@#LhFEe>Sg#TXd>;A&EM)xH*0|!d(9%ez^7e+*vk|jmjQERiqBR6 zV7Adq;gHH)c=R0j{RcU1PoLypraZI_4N z(H#Hu%C*>-2TSB>%eBPno=+(`EL>G0Xh_%G+b0Z6l&G@!;tHD&ai-8TF+cV)K8{6@ zFs6;_*Q>By@rxUJIVD!mIzmvP#FZQK42QxI!WVkN&7z;D*5Zg&X@?s~EAi zmyFCGcK%s4LhnZBB8sj)dj;3M$1%O(1cpVQYZ}lny%#;#qnoGdg=*{>k&=$fuNO{) zisbw|Xb-qt2K$O6Z3SxO%qXU&edSVE#jp5Jrp}_UE<+pFXoRIIpF(eN?P={Nb2BGe z*irxfm#>y|nbk=?!Ro^gCSdOXJ3z$0Hc&M?NCEc?!qcS&_x7fLFoyM4jOWSy5-nP6M56Rc+Qo@)6x@qnF z>cNl>Pjm9MhSE}am9oeCLB{Lgp(-GGF{j?l9$k4EmtBB5TjB+WIxD*@@9Gk&d=&k5 zh&{TqSbL$x#upw~7AMS>NM~!yxaX!GvQPtVMyJWeY7<@D&dl5+14Lrqc+wKC*H|zsxh`{_AN-k874)-~{X3DwG|3vAn(G0yI7f z=W7CvScUE0^pZH%$AVCGS{Mc1?}6uJq67?DB;2#QXfq5$hOmQe}M z_EShXBngyH0DnjLr@l&}6F}Y;3*bd90&Se$)|{|>k^iRgMa9z1Gqm&DJ~qkdLTnhO zsL#zNOYmVrEH}A#=bD7NDfGFkhSVmEAFVg2feIDIq8?OHmsEAVq|>DOmrmw$mn_kt zdY#<7gUu>5E)a9|asuK_{I~hen|H$cfvQR()-$}aao!s9B&GOy(Tv5NfDntw%=Wi+ zfGI=88{&yWTgPVrNdOFjTKH`*^C>{0^oi2aiBIghL~LHE=U2``GLOkR(`y&L_er(8 z{|?Z*5|EZlY{XC~3>{Fb>KgFqssXcqD-^eRx*Db1pRM|kii(TwB4h!lmR{r)J<|Ww znr{QNMYBh`TkQW%!b|%ek|IBGFxi=M<10oyut)Hh(W9!h^XNn!4#`XWYU)JUhcZSI z#n;MYHc=^NFgPb!wS9B3&`l=0bH;=liZ0l9hzhT_t&3`>y-))Ogrw?kwu)9|Z*E5> z4x!1?G4_zy_4iACdEUngIi`|dw<#OvdkhR(VFxrwI3@Gh^Eta@m^e!EELW%ghvO%W*t@O$n# zI#O)fTLFGBkRPi@fli+!jw^A%Rr-ez>2t)n;rxfzl)?hjO4#x>+|S|#gx@OpZ`QNG z4hyXOIH_X+pZA6BD^$qk>iW3UMgDTg!HSlZaN>J4zx>mo1zeaypYTI4)|gJxmcg?L zL5_I%#)n~TI_d61+slc46T>vFz-JyGVZ11Y*03i^PKz$}D#(E1_vC6-ZU=EFe;Y8! zMrv)Tcadrwy#>sS@ht)jS6p3 zeG$c9k{^Q8j!5*!hsWg8<}yhHE`4=TU@7N>Zdt@32}qs3!}N{?b*cc$M)VNt0aKh~ zIoVe4pKqC?pu&n$II3unyxh_}9C`$=z7mOmN zt`qf;Cdc0j>@H*|i1O6}T3%kvPe#H3nco zY|hBl4?qWIsmjKc5d{aU+-~8!_qVpw7bTCZR(v-=9Le&O^sA3?Q7cFB?s-<5w!;(* z3SR5Hj2W}8=`B3RcBElykhtD-NGxc`c+#l<(}hDV_^Ny08#3A2@o%P`$m}c)!v7T_ zyGW&VBildUSAdp3-3JcY1TIn15tu83-{X^#*={}H5}D7n(5J|*^%vxgXKW0c8zDDRPWeO|E#38;?42Tr`g>9&L z-+94Mwn(d%ZlJMOlYCK2PL-1glI(XYw)MG=eP$Kc{>l=e1y|-=J_qctXa3iZZ5Ya$ zy^0zieQQq~7F|~fkk_nv6EVo2<76fX{0lG!xd-pyt-P}pzIXU83(P*!0+)2e=fjWZb) z2K71-@4Jp~YE>jg`mffyH8_?hUdoTN zAUtctw<2qepJ1u`8S2A6*J{#RuEYj9s6Ij%8=)WXVx?uMkeS(0KH;^)j7s+%2w5aU z{KqNQhDGRjt`i~c#T7zBipIF=Ag}MkbKg*b4GZHEZ0bu8%Z()vRnMs5W(tW*M-dmEtTU zJUsrtz@eeKG@@Owr>N-Zy^76z56)4RIh9Ik;k2xXJW3ePng&+`URy59>#43Yi5*7ZkFv+E2OWm48}{u27QKVVf>_CmiH?pfIX8YKQ(W-rx7~j_BWW45*p2@@alfl?)r}{e8^YuM%# z5r+=CYkojGxoVDdGoZWDfv2dc%(FL;Kla2J1f(^loW8op0iTw;G(O%7?$f_p2h8u@DnZpPhymeR*uvIenm<- z^@0pnNB_n}qvEC2q*^C^q4 z?Ysn*F)GgP+b{~jDmghiFYK`?)kGI-b^mpNY)4ZIER_~3thboTF^<=+c3gKq&-SIJ ziCZSnyw4jZB=i~c@6trkgiVU3bkFX$@;Ln!&f(v5#z}CGpDD4Q@UiY5)5S_&HD{SM z=I&G*1KIw|Z@`=NRLhC$FG@;;?0bsWR?J;7V?B%+Z|$6F9ofU~{9EOPNlin|r5ysS@%h+TeZQk$TEBdHHR6#2>+Y-wOm9OdYD?3Q?gc zq=pbU*zd$fDeq8Gk;u}|2S@y>m;rv75jB=DVa)rWT=YaPz|edDszsLvv1pw~BXUv& z)WWI*f(vni)R5YjisVb-q!@ZCBaq#(@-0q=bcp#F#Sd87c`{vTUzj1D%S3z% zeMip^n)ine$OgvCoRQU_Aj65Mzcm=p_q^h)RFA~D+4RlmrnL+WFH9I3|JAK;!;AE5 zT3ym`!~?+&&NI6dBaEv+(a+;x8Fsz@QXSx`Vc~kW>Bz7-&5Z)W6-=;0Bj`nRt4Avz z`e>ZqD@_Tf4HRAWm3AL6+O*x7Y+EB3_*@ zcXLackAPp(u|nXneNaRms1F5m+=;*3pu0-wvQOv4_4o&2*V~>@G@owTnR{uDZqR|fJ1+L?@M=`Sj`2Y zY7b>4$&Trf1i1R?s5d*mn*krEDc2ILtO+Z-gj;F%Tq(meSTQffzWA- z)7|_fgea?2mPsmYy`CyD-q)alsTcXP$-zj8^Y5rWnzI6dFfm_6lzTyaX>D@@)Bf}s z1Y&o=wMfvg8gTM)kaEr_zhAK$5+mjoW#>6peSUeZypQ0~8ggW6aN#0NUE%S_)Ozv> z2JPurI&a`cHhTQN!YsVxB=3%Vv~yrf#K?_B`E|*0s@z;F-7|f#&|UTl0Ps=4|6{ft z0PK3uO|E$DZY@l6#_e9z92g$a>7l+xfOGt{)VpUiF9GZ_ZKgu&k|(?t)xCg1`*9V| z>fkk{9&*Wvyg}O6K!)du-}3Et#%{;zFs#%;f1Qu5ny$#eM{Dt5~K~Sl`6cd|#zY zzxW_Xf^;i(m2rIkx<*!{;AX}9_l$!oi!LY$*-!xc=$alAa2>6XfncM0|bDj zvUU~#?=29D|3QIVNa{w*=PM0W!4RojRCYEPA&8Aukr<_C{&tqYXjuLn=$=`e8@_Qc z_tc#%#Kp$xd@};L41cwON~KMCmuA?e^~w-eN7)QIZnPus(;)aF5-^4^IZNS|p4s2- zw|}{ny+dA6azQT=;6Vln*kaeQJIJ1X!eun32Ri5pU^Itl{t#k!7f2p}ObpiZ!_wxj zmo7c*xiP@NOv1U6g9~~%7cpSXvB2+wm`7KlSD)5N5kR;}yT!*rK}a&qskNX3=@3{V zCe*Mxo|avWj$A;4f}}fHz*#wSy0IGacHu7le}MZA&}`Dxsn%AFxzLgF(u!lWs~aA7 zVE1^@RII9SAC(we6L0t;Gabjq zOz+}Vdg-VJg4zC9ijOG|x)+DVu+>fuI|uo6SfIV7MTNQQ2DzH+a%1A4m;Hj|eY#g} zX3wZjjuk=`lX~qj@l$=8eGPs8uMMx=s_EaNLkF+2*s@O;ag2V){}opQAGUf$8KI#p zX1@VobE8+)H;A|#otgTuy$sSQSI27)+3fiY$@nWL-Ndr~B0*7rpBQK>P71iQ)G%P# zfg-FrZx^IBv@`EKzg0iEHXm{H;HhELDg9dhwiyR=xMuce%)q)_eL^VqcEYq#0O zy2T)1STmDVO@7J(Z?XndhKtS#aqYUy4JSR;s@yR zh-=NYh?~5cVk{s;$dG>1s~cF+00;Ovt7t0#!w{)MR;bA9Ox$C67f5A7`jvWu9omMN z*rpBKk28$PS4E%boRZwVlqc7H;208T)w=to=}>VD6_lo3(@0bRp&(TpX=K1A z`QkL>kmOyh@UBgtN>U)qBkXpJt8?x>0rrs_tdch%*zd73@3WqHr|SPug7yN7!Tza=KQ2p` z;Eh_=TQcc_9UWRyZ9e=QhU4YCd_uepx&hsx^KKR|DlsxMa(#`Wm~N50=b=?Iqs2KR~RPQl-uw&f<4RuwtS-cj=vv~ajx zoSta;cea4fQhOnqI^sZn+Yp;cb*Lq}Q{oLwMe+rM?WBNWBR`pFbpt3vsRd9u1*aWXEv@qiduTryQ-?-R0RZpBnnfP;2P zqfY9>CoMwkN5aaNXYhfLH&qIGC(zy7aZl}>f-BdieqYrH@NG4e6zQ}^ugq5L*3CGs z4K`ZWp+^+#u}E$k2A%5OZfC182$OcqeUdu1G;rkc9WZ6qYfHpFztI<5az^_u6MuX> z$Lz|ju*imlT8oSX((}2~i%Tfq{`0VTaaWojPZ}(SvEMt<0uUown#LllQPv(j*Ybf6 z%QM=iLCThw$1-bH#qS8r)evC#nW#+eU!TA$bWv^&X@7?H&38A@WD}mlV8^eleUQqP zzmc4z=E^w(ipOLf3dK(Z|8?7hICeb*1*SeV?q05h~ zENHYJ#;EVZFoKXLA`O^4wF{Z|toDRaCRvN-L#b(cz|;8L;Arm;;;N%@aA^UDXeCsp zmt8!xLh7^UBoma;UuaSfxXEz)pWcwtC99l*{Yyb}t6*L<|+MTe2CvTq|{s zs!0xu4eO=FJ0vbxV06&@mq>y+Bz;VAX|yZ43uQJ87j!RL?xuhuuN{KKWW|C*L_Umw zDip|(4ze}7heL1`&JZzrua<4nE~(%Gzb76+L`~oV@yo|JVNmEAH_y5hD23O+)e3!F z-gGR~6*^LkHI$4iR%$i>S8>nlzU*IbyU>7h+6v1@j+k5|;%L6+MuG(hj{oz(oQ4w+ zF1L~MCjd#OCmIUU(R#?;s*?|zI4hpgM3?FWg`3F`Q2%ES>CK~%tBPj-osF#{IWsO@ zF{B}i_iakE``BaDVb$*OCN42a$`*^$+2$hs$Uway&)8((na`@!=z|q>(#}@a&rylwGm&yAB^;2 zVW@6{qioJuJLuE7HA!n1D>nET*}Evq;-0~4{o-txlIJ>d9%!NlCE^1rJ><{m&MP*_ zBmO28=(H5sBm-(9+-L7Y;)t_wop6ziPq5cGvJU_^=jK3l*X$WW+iw6WS8Q_`v1$-K zu}AyPb=x=`flR2W(T$tzijH= zbn}5o%G*%6YST1(J{Z&Xo@?{(D~+P_nkuq!wpN!P-D*XIJ_%nNqD#+?dTmpD_BhyX zy}WX`%GK>Xc03~BXy4!Mkd|`MCTou=Ed~&N?bK#Ds1U5DWv|3)?uD->0Ou)~xCND1 z(sTZlfDpp%>(iptytcA0PG>v-v{_Q9fb{*n2N}d&yX=}c6ZFP6j%J;^1RHJ*cArVq zk}Pj)F}U5QdURX29=O1f3;#k&Bw6MTy~J>$-+vPHQXJ?Zo-%wGLbUJlPvuM*tF~YEPG3{R0`Ktk~ zdSsOWcaBiy!}C-U7bRxmsjk#roja#+4?Cbzk}(a8T`!BrJM<-B%~j z7{o$1vpp&f&E0n}Wm~s#};Q{dt8Cn*yt9XMQEI=jRjkfAnzrIhE@PX`? zzNdWDv6=a}+z5VF8r|4Z^>wEKHbO!H@GCL#9@)KHR?={)CdrNJ+gpWnc*$Geo|MWs z5`C~q?kF6cY9PTMaZDiP{V^D=S3sB$Pkuw2M)=8>ypv($O9AeJMcrOvW6B>AK}mWF zDGP^JIv*<1IN_WC+Gq7=r9_ZTaG#UQ156f+exNYWNXr1L#CR51Dn$qabFB86_tKN0SG*-e&9kb-1>%gV8DV9BC>KcA6n`=?nG9)zr!q zHZ6In%BdOP1;UMOp%A9eCVemdMIm8HR2Q9CwzGF~=iXieNo;39HuH2U!}4;*2VWoHZF=^%;j7ra)t6H! zKN{uues2e`*MeGTR~%571#Q(lCMMG->hg$#ciEeb{p8WpR4<@H`Ph&BI>>{#Z&AG{ zwF0BsCKO0BqHiuoF-4Jh&xj8L@~u|89~v1X^B1Ac!dBV)$R$WEWQX#a9gpklp-O;g zJ^MK)!_qASTqJXW4)kPWNJLkqrfG)xfwZH^5HQ#0d-=zKK(mzMxg-;tMJ(QFz2Bss zCoJ{jaOn7G=cW_Ue2&8R0^(g^loKu>Y88EGC^m9@yV1jI=acAOX z*b`;YEZ2k2grM+_G_wJ~&Zb)�ylRVUo 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

    ^w_2~-IofBEH{Gm53^o-YmCFf(3 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

    &UYUiVm9v*E zdXjF-KKyZOqq8RSqUuoSHnm9GBa-R%Rxle`g*&^lIa&*IoZmiS7VyktT zld!9by2nHRA_yaia!}(g<9An{Dgj63Jy;z(U4L|yR}GZMK7j_NkqlffyDRdmy(Diuv~7!7cL6qY49C#vCdPY{MdPn*7wwL z+!H}3=5-4clhxcRWd<%V2b;>ZQ5?!=8EzJT=_=m{he~0AYDIKe-`CTj8YasGEkN|( z9ATttb&vn*PDj$yp)6tP=&Gs4ngw(6)W!QR5)s#tY;@o|gS9}<%nwLFOi;;LZzOEl zg}|aOqr4YovBc=%_xe-p}eC%wjG+_Me!Vpv7 zXak&NQv%V6TKNaT@pD|~8-@k3lY_lj;2pr0DwXf~usX zY3wu>@%MS{22-fJ+V5iQ%&-IJh&acJi77iM{W8q8M{d@~KVESHDXfPs{HdhLC11}m zlPEpyKx}*kZ?*~?Z(e56H_mOp;3?P6gPa2Mk27T^eo^c_67z0Uf!#=FX=GyK13MJS zNB4I=C(7E3a_WSgsKJy{)Z`+Zw~=zt{}qZ3_qh6|#Z5beoObb?EcPeA^i18~{p}5t z5+;|j%tj^TXl^B?$GdEmq`v=N!Gu)S;Z%_dogcSE-_VT4`h8ltFxN7aTVp^2WpaIe z~7g(=4H3Y2m27WkJ7HK18gbsE(YJ5+kWC6fposNFO~(eyb}E5A(O!r);e3rzVm;-joIjN`=LCIH8dRam>IRyNfdcHS-I{)8}#6MU?1)duED_qQY!iO+VUyLEE&5@P7b2n>}$Li%ID z%NpY!T2C%%qoP}RGF(-DYlP@*b-{lb!8*kXuxG440od@bqPcEkGve?-)JiMh*L`BM z+PPC49KWHw7`P3IU)6uB$VY;A^BYJpTTl09U$)RlZ2n_*=>$LlmPoB1MT8fr>%Fav zBGHQ!7u=?Tmu*OLis!=Aw#JW~i_1DJF^K|waFrh)W^%_7x?~J^OfpDajtcWIrk5{r z1ioe@m-F5+MKdnqz;-Ic#Ma)$7|VKtdY&ILHK{Bw=DVzxQ~vWVYDXL#@FFvSZWkN! z-Oj}#J|)j3dTan?s#m4S2rEe80^Ui&x${E`UesU325FsPD}z_6=9-VTdJTCqzH$zo zl}G?hV&j7QoUWJkn`i&KGuhUe+cLs!0{{R40*O$$T>tX_IA*lI$M-}x>3zLdABsKzWE1EQpZ!*-*@ZK z>s>}L!V>ywysw1Q&MzM{nc-3i+!=i33%Q@w%4BFbrVe(|pL;E~CtYeWMwF4eQH*YT zyO;P+m8DP-8O{wp$4T4SBb{50yt}{CeF)O2-wE_m)?S=-SBqzMByQOJ)iHFXhMpiK zJT3izXL)`m=76N@HyZVJ=p zw+GZIiX*L}74iKmounl**ZnF5$^b^l4xyG8h_>PjB){#YlljpyHx9JiK=Lp=e$MByE#?`Hp!( z_7cpE;e21m(QWZ8e2GD4bijhjY=TV^DU(GixhVz|YB?B1a#AQP%dJE1vc*C8D*!;^ zP0h7@?))J|z=!wkgSYlUq;5*+evKBkp1W+|nrg3acmSP=<#y$zi%w}97Z6r>vl%rC zkFE?{5=y8e)+CFEj;XCs(>t>uG-rEGTQsbe~Q5b`3rb0kJ~n>W34Fs zX0t8GJ*8oi%UaI@95;(TNjy^Axa&{+gz+ed-X9Cq{39!jdE=P zpAx+oEv2B&#1TcbF$*5-^*?$e= zkD;5kkQUKU3uB#kn8;$8xE^HlrCu(^bd^6A+ghX2AzTr zp{x|s+m`G+>=;#jwI^SgL>`UG{HKXtSG22MnamC6%8>1M`^RCaZlNW9rT6Rqwa?WK zdH1=}FYAO@f91X+C-!ESB9IXW?*5vkYn8tLwX3-jt+n%S8;IcJSJ)EN4?ph9TIKy& z+Ef*(2id3x#+B>9m=!gh#hYLO%AERKotBEGp8MDf{Lu%sRHW-L^L=laID}DcoBV8C z63scEHl;F(YKnspkdwQFR4>(D=EizG&z)RZHv?`rh@o4(2|&UHJTI*HOOE2>xq(lR<6j73-8QZ97%a>q2EgiP0w8o|e)w zGU`uOkU|8QWYf=jt|bqLziyHsXRDmf))GiVu1WuV;#W4J3}P4aVs~RmiX*9LpTkly zU%gfrLM$m&Y_}XYoK0lkJC5to1+Ug*TBeE*=zXN8JleZtx=j4FXoGoXvQ;Snkn*Mw z)4Z^v!4*&X05}L`rRW`dXl?92{Zo4Vwj2$43dWIbKJDeNIMnT#(vYvyJ02o#gO^!< zt2qC1_?@`UcGPy0uNt?FQ4xt2+EqDhwD%%mIQNNa8`}WnNql7@2@8$ysg(jRp zZ-bgn$yDb?v_plHH1lyuWgHe8mspis&0k&UdJH?KMJ=8t?uwwkJRArHm_3E(4E`#p z?8{B#oJ2oZ*Q196V1%I(Y+%s{Fm6{M#F)5G4Q>d<^>rGF9*H!loz&71YK<`=|AM2* zNTrIjE3vL4V5BNr0Ps0Wu`KNP_8qH#DorS)Zxu$b;g@^#&N*Qo=Wju1Na!=qAS*F- z(U*UhCt1Ez8Q4+VQK$$#!|`&Tu^|fbzv^pWk4zk7s&4cd8gpZmOGEZfJ*uhTYLSAK zs2?aFRw#tFm137aYPee9Fp=-2A<5<#Ukf-0%Za{oBPeM=;P`v}B?Rt~knNfi*Y8-6 zp?^gAwyIGPau~2oDsEc;m;Kctq`I0pRMX(esED8bg2(GHs=DD`B7aS=m|Ze{^9H zN^50AIs$5fp#Mtr=YXnrQ-mHM_<_&8Oaa$Qq0Y^V^TmX>@jiCM$~N~u?;{B`-Yz>b zs3H_gsRC>masa@mV`TTR!+)yHm!zzCk!Fstnl5AF{HVE|0c8Xj;!cDum|X|{?ljMe zBf82Zbt43x5fSc)ppnML)JpMGnFyiUUZUd7buGM31dj~=eLb^4Yc zKhD|P{v=h@9YR7lm6?FsAcWBmP2Hy1$})X?sL>LE8RG#%A&G9d7L>-t5hMoleZl_^tIImsP61di($Qx})vy!6nN`kYRJ-w42Emn@anqH?% zXA7{}sL(D4|F%1Zxu7_4=E^u8J{GYMd}S`@WUVs5kWGf* zQGYq$)G*OcOU4*Iw53V7?~SEK+x}4~8@&S6sgz8!umGdR4p5PV1slTqlN6k|JO&M| z9{|1oJiti+!W$44Jv)|ZINI5MXdu(?2B(~KyC<$G(uR8Wn)#@vKjOO=WzqO38mR{F zq(p05B63A=+-gf1vz&Y0KzH!0eu=bZqlzWn&f)LO3FZI%V<7yMt~Xs57D&=5=vu;M zC8sDWe-j%@zKIe3;r(9@)_H%^52^s<@UvEci)-Z!M>zV-U++kV`QFBvbm|?Ko$fZt zZ=!a`gQL-s9o?O7J;bg@G(XNnVxUXV{1KaklC_!H1T9z#^SU?K-*)^9r+N{9qtM>c zf@4@CHRFV8jn2ZuEg932<#9s`GGWwW{Nn*jhQ8^=jEI5_0k2!iHh^uAvVqa=7_wCs z#C7!7(466V@1Q4y)rM*B?p%(8jH$Z|3{+!dJkXroA@f)ocjl4n&W^*p=iVl&o<^*Q z@50Btm!E+JM11G2_!){{d(BI-nRVnTsXUE_)M24E(M$kDg0lG~wHI3setO}K!w-eN z%i52i-=-si3mBNo?Q|XOWE(Z=DHix2Md@~VZh%=F%q%mRihbU+7^ICeaSr{o z1ic)lV+e+XA*#D0QrgaOPoQeR?t7EMeY+anza4SBWF!9fE6HFHg=nq;zG=Bmk zeT_*8m^KgN8G=ZU0c1*;Hg{LT%E%b0|9bt8G-31f_X+VEl|arZ(X?d_T5EidCKkrg zL*=h*)aEYwM4t22S_ZTRZjqK(zHr8_pHSo*uq14NoV(U69LVLnUGN_QnZG-XSk2Lz zmIzi35;fUzgeo3SOgAU8BhKQ;#uu!^_~L}MdSf2T;vhTxQwYQjI(syMeY=MYHrEZm zfVRXgv;xl6nI>%`Y;thMWzEjWNmu5sYo+-f6R&UZ7t9_{kV7mTTRt$;+mcX_{OIu3|JLX~;tO1?AyEga_$PWL#-UNL7OFz%lOl`%8 z8}Qp1J<`oE&Rz2@mH{sAv^rY%{H?T1 z3gch@FY0Fp0CKSljsXr7J0$t8g38bFMG1{NdYj(^Tj&>%GL<(;jEDy<5K8Z{CRN#g0kD2|?g);EoL)EDxa~HEY+UeL_65M%_R)aY=P$ zEf&%EX(o#45>Z^h7_SqEJ;_qCEO*=e(Y`eN@8#)AVN2s98I-$~(R~9ba&Ybq6nKRM zI6g|eidwaw-cC0UmuZ8CY1k0&up(TqEb?K)_8;jU%atjjzPMueHK_hSa@}s>oFl?Z zb-8uuM`6nA0k+;AQ1k$<{p}~_Wac=plUZe2`MtdB)z(NPyIOs9Xg_y*>k<*QYiNO}^hXcHOg+Ag1Y5kzz*l%Yf5FA?!PV zJW;zU_ENKH6`&=crC@szi#3T8JrWZ~|G$K<{(OoGRRM z+b!`x;Bb4}4;&*f=C6_>TO&56ku)bjgmDUS+AgcOZ|uGrY8d3>CnoVEa4gSCJM zA?{{lO`xed>Q1UT-tdDoRe_-XC6q?PAURTTignYA(?Yit%|=NvM8@AQCCU%+!gQx2?SYbKct>$Ty?Z;B zyN8EjJShfJ@c|Pykn6s>m?#P#J{NJw$dW9_40g9ZY76C}oPda) z*FO|lw8oRpk4mJxd_sQ5d$Eo}WAT-IAYMP(P87`oERo%8PivPAew64_M5Y(1S&1(Z zr&G~<(AYR*M${m2Z)9^_j3!3QoLUBKcH%phmVZwZDJbg#6ogGLvw z+*k2s!nh_r2MTCaO1*DDO&4_ov!Y+I)%yY>jzJkdYaI3q%mLv%;%*&!ou;%z86MNQ9A> zC>qz4-=4tX(jJ8-#Q%lTzl%*S+e#FZBQ>&2~;nQlnOs2jj+WJ&?E@50YPnjR!Jmlvb` zo$VdsRdSu=#f-kK|ws%_F3aG-5d_=e>OZV%MoC4 zsVbvX-|6i7OBML1umjN3IK6kYSbsvmj^4YuE|A&bqBCY@#gnC9({gl*5#l)LbwW>D zGp9j)V!T>>0Amdj=xjs~40i09`%E~nxP{9m9a!nMX=5+Gld)%S95Nuo!&}FG*5JmTi zM%@Y!FVH$$^M5vfiLVWGhT|DAcXA?l{EY@fn72Icxpx9L=Xji(z`i@%Wvy%IY&CCT zShLTpJ0?S@bj}4sSn@n%sPt2ODA_CGXq6imr`KE%ff&&DPR0`dV{L_6>KskW#Om+t zg6r!K(L62GR*~4r)uUs{ST3%k?_bl?ll8oYZOyoO236(RXQiIIR-cRMLd54sXO`3j zo@yotH}F)56R(Gv9VjU#(8HtJQm+WcRH$SBfe6aCbvLD;z#0KLY*+8O#ck2T$*ipz z%_qw0;In$Fwu5jv2bHh|sRy~~7FayEkJ-`KO=p;Qcq?qd;}U*Kk~A&p|H%?7_nnQo zO~}6X#dc(GKK@g(NXDTo=;P6_H1ruwknb;3C$W1yz7a5H_RFlFPGJ)Yg&VfGSw;4t zh-@}ebRC-2~STFfS+db+{J_FEwqWc5FRu%4*NhAs1KWqnq zJo#?Qlskr9qnXVW#K1g)?C?8&(%~$V>*42;SL5X)EU8q0ow8W`pG>#_5mp$W}`Hs zqzI)_S#LgPkA|1?`Q2e}V|2QM34H|2?`=JdPc}WVFd;Klg^?ek6f_^L-Le0Ss79x$~ckc+OS;A3L1kf z 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%0Axtb!cU4MFFI?y#t!oL@{ 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 - + - -

    + + - - + + - - [DlgTitleFont][ProductName] relies on libUSB as a prerequisite, you have to install it. + + [DlgTitleFont]In order to use a USB UPS with [ProductName], you must install libUSB-win32 from + + + https://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/ + + + [DlgTitleFont]and install the corresponding device driver using libUSB's Inf Wizard. + + + Click Next to continue [Wizard]. + + + + + + + + + + + + + - - If you plan to use NUT for UPS with USB connectivity, do not forget to install the corresponding libUSB's device driver using libUSB's Inf Wizard. + + + + + + [DlgTitleFont][ProductName] installs the following libraries, location of licenses are - - + Click Next to continue [Wizard]. + + 1. msys-1.0.dll - http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/msys-core/msys-1.0.16-1/ + + + 2. msys-ssl-1.0.0.dll and msys-crypto-1.0.0.dll - http://sourceforge.net/projects/mingw/files/MSYS/openssl/openssl-1.0.0-1/ + + + 3. libgnurx-0.dll - http://sourceforge.net/projects/mingw/files/UserContributed/regex/mingw-regex-2.5.1/ + @@ -90,22 +125,22 @@ - - - Please wait while the [Wizard] [Progress2] [ProductName]. This may take several minutes. + + + + Please wait while the [Wizard] [Progress2] [ProductName]. This may take several minutes. - - + [DlgTitleFont][Progress1] [ProductName] - + - + - + @@ -134,25 +169,25 @@ - - + + - + - + - + - - + + - + Browse to the destination folder - + [DlgTitleFont]Change current destination folder @@ -208,19 +243,19 @@ - - + + + The following applications are using files that need to be updated by this setup. Close these applications and then click Retry to continue the installation or Cancel to exit it. - - + Some files that need to be updated are currently in use. - + [DlgTitleFont]Files in Use - + @@ -235,7 +270,8 @@ - + + {\rtf1\ansi\ansicpg1252\deff0\deftab720 {\fonttbl{\f0\froman\fprq2 Times New Roman;}} @@ -595,30 +631,23 @@ Public License instead of this License. } - - - Please read the following license agreement carefully - - - [DlgTitleFont]End-User License Agreement - - + [DlgTitleFont]Re&pair - + - + [DlgTitleFont]&Remove - + @@ -631,19 +660,19 @@ Public License instead of this License. - - + + - + Select the operation you wish to perform. - + [DlgTitleFont]Repair or Remove installation - + Removes [ProductName] from your computer. - + Repairs errors in the most recent installation state - fixes missing or corrupt files, shortcuts and registry entries. @@ -693,19 +722,19 @@ Public License instead of this License. - + + - + Click Install to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. - - + The [Wizard] is ready to begin the [InstallMode] installation - + [DlgTitleFont]Ready to Install @@ -723,16 +752,16 @@ Public License instead of this License. - - + + + Click Remove to remove [ProductName] from your computer. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. - - + You have chosen to remove the program from your computer. - + [DlgTitleFont]Remove [ProductName] @@ -748,19 +777,19 @@ Public License instead of this License. - + + - + Click Repair to repair the installation of [ProductName]. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. - - + The [Wizard] is ready to begin the repair of [ProductName]. - + [DlgTitleFont]Repair [ProductName] @@ -772,7 +801,8 @@ Public License instead of this License. - + + @@ -1124,24 +1154,24 @@ Public License instead of this License. - + TARGETDIR="" - - - - - - - - - - - + + + + + + + + + + + @@ -1628,13 +1658,6 @@ Public License instead of this License. - - - - - - - @@ -1793,18 +1816,10 @@ Public License instead of this License. - - - - - - @@ -1816,7 +1831,7 @@ Public License instead of this License. TARGETDIR="" - + @@ -1824,4 +1839,4 @@ Public License instead of this License. - + \ No newline at end of file From 5cc3998402aa321c48fb0feb27e0e092dcf251f4 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 22 Mar 2011 15:14:44 +0000 Subject: [PATCH 095/218] Correctly sized banner for Windows installer Fossil-ID: SVN r2954 --- .../ImageFiles/Images/NUT_wix_horizontal.bmp | Bin 94554 -> 85894 bytes .../ImageFiles/Images/NUT_wix_vertical.bmp | Bin 474822 -> 461814 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/scripts/Windows/Installer/ImageFiles/Images/NUT_wix_horizontal.bmp b/scripts/Windows/Installer/ImageFiles/Images/NUT_wix_horizontal.bmp index 90d4745a886f2f1773695db3915be21cf8f84c2f..b0b066336d61d88f24c75bc60410e98fcf944962 100644 GIT binary patch literal 85894 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 nxtjzRWE#;lVIQ literal 94554 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 H0qXw%1JS?` literal 474822 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 From 47943fae9b60a08578fa95babcf36f6cf864af5b Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 22 Mar 2011 15:25:13 +0000 Subject: [PATCH 096/218] commit again a small typo Fossil-ID: SVN r2955 --- scripts/Windows/Installer/NUT-Installer.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index 3dd3210398..7957eec095 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1,6 +1,6 @@ - + @@ -1839,4 +1839,4 @@ Public License instead of this License. - \ No newline at end of file + From 6d8b6b6c60fb04d4a9d33df7c22bbc6b730b55e2 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 23 Mar 2011 09:48:11 +0000 Subject: [PATCH 097/218] Add information on installation Fossil-ID: SVN r2958 --- INSTALL | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/INSTALL b/INSTALL index 7762f5baec..119787fe23 100644 --- a/INSTALL +++ b/INSTALL @@ -313,6 +313,26 @@ Optionaly, you can also install the following ports: - sysutils/nut-usb, for the USB drivers, - sysutils/nut-libupsclient, for the upsclient library. +[[Windows]] +Windows +~~~~~~~ + +NUT comes in a .msi file. If you are using Windows 95, 98 or Me, you should install +link:http://www.microsoft.com/downloads/en/details.aspx?familyid=cebbacd8-c094-4255-b702-de3bb768148f&displaylang=en[Windows Installer 2.0] +from Microsoft site. +If you are using Windows 2000 or NT 4.0, you can +link:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=4b6140f9-2d36-4977-8fa1-6f8a0f5dca8f&DisplayLang=en[download it here] +. + + +Run NUT-Installer.msi and follow the wizard indications. + +If you plan to use an UPS which is locally connected to an USB port, you have to install +link:https://sourceforge.net/projects/libusb-win32/files/[libUSB-win32] +on your system. Then you must install your device via libUSB's "Inf Wizard". + +If you have selected default directory, all configuration files are located in C:\Program Files\NUT\ups\etc + You are now ready to configure NUT, and start testing and using it. From 08f7acd98ab690ca56b171031f1c6811c8e8e69b Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 28 Mar 2011 09:49:47 +0000 Subject: [PATCH 098/218] Merge with trunk Fossil-ID: SVN r2959 --- drivers/apcsmart.c | 5 +++++ drivers/dstate.c | 1 + include/nut_stdint.h | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 include/nut_stdint.h diff --git a/drivers/apcsmart.c b/drivers/apcsmart.c index 018b29dd63..83d714f1ea 100644 --- a/drivers/apcsmart.c +++ b/drivers/apcsmart.c @@ -1616,6 +1616,11 @@ static void upsdrv_shutdown_advanced(void) if (sdlist[val[i] - '0'](arg) == STAT_INSTCMD_HANDLED) break; /* finish if command succeeded */ } + + if (testvar("advorder") && strcasecmp(getval("advorder"), "no")) + upsdrv_shutdown_advanced(status); + else + upsdrv_shutdown_simple(status); } /* power down the attached load immediately */ diff --git a/drivers/dstate.c b/drivers/dstate.c index 1fb87a3387..16014d6e15 100644 --- a/drivers/dstate.c +++ b/drivers/dstate.c @@ -47,6 +47,7 @@ static OVERLAPPED connect_overlapped; static char *pipename = NULL; #endif + static int ignorelb = 0; static char status_buf[ST_MAX_VALUE_LEN], alarm_buf[ST_MAX_VALUE_LEN]; static st_tree_t *dtree_root = NULL; static conn_t *connhead = NULL; diff --git a/include/nut_stdint.h b/include/nut_stdint.h new file mode 100644 index 0000000000..35292ee501 --- /dev/null +++ b/include/nut_stdint.h @@ -0,0 +1,34 @@ +/* + * nut_stdint.h - Network UPS Tools sets of integer types having specified widths + * + * Copyright (C) 2011 Arjen de Korte + * + * 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 NUT_STDINT_H_SEEN +#define NUT_STDINT_H_SEEN + +#include "config.h" + +#if defined HAVE_INTTYPES_H +# include +#endif + +#if defined HAVE_STDINT_H +# include +#endif + +#endif /* NUT_STDINT_H_SEEN */ From e219af1045e8e2f4f31a18968f0ac250b1f2610f Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 6 Apr 2011 12:54:36 +0000 Subject: [PATCH 099/218] NUT is automatically started during system startup Fossil-ID: SVN r2965 --- scripts/Windows/wininit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index eaa66905ec..09f593ae9c 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -392,7 +392,7 @@ static int SvcInstall(const char * SvcName, const char * args) SvcName, /* service name to display */ SERVICE_ALL_ACCESS, /* desired access */ SERVICE_WIN32_OWN_PROCESS, /* service type */ - SERVICE_DEMAND_START, /* start type */ + SERVICE_AUTO_START, /* start type */ SERVICE_ERROR_NORMAL, /* error control type */ Path, /* path to service binary */ NULL, /* no load ordering group */ From 408daa2a1bf7fce97935dcd99d351f851fbacbe1 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 6 Apr 2011 13:45:58 +0000 Subject: [PATCH 100/218] fix "upsdrvctl shutdown" command Fossil-ID: SVN r2966 --- drivers/upsdrvctl.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/upsdrvctl.c b/drivers/upsdrvctl.c index 11af0d5d8c..d53fb6d201 100644 --- a/drivers/upsdrvctl.c +++ b/drivers/upsdrvctl.c @@ -350,7 +350,11 @@ static void shutdown_driver(const ups_t *ups) upsdebugx(1, "Shutdown UPS: %s", ups->upsname); +#ifndef WIN32 snprintf(dfn, sizeof(dfn), "%s/%s", driverpath, ups->driver); +#else + snprintf(dfn, sizeof(dfn), "%s/%s.exe", driverpath, ups->driver); +#endif argv[arg++] = dfn; argv[arg++] = (char *)"-a"; /* FIXME: cast away const */ From be0c131fb084eacac3e95f42ef0df47a02550be7 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 7 Apr 2011 12:51:34 +0000 Subject: [PATCH 101/218] More generic wrong MODE handling + log same message as Linux version. Fossil-ID: SVN r2967 --- scripts/Windows/wininit.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index 09f593ae9c..555daedf2d 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -310,6 +310,7 @@ static int parse_nutconf(BOOL start_flag) char fn[SMALLBUF]; FILE *nutf; char buf[SMALLBUF]; + char fullname[SMALLBUF]; snprintf(fn,sizeof(fn),"%s/nut.conf",confpath()); @@ -322,11 +323,6 @@ static int parse_nutconf(BOOL start_flag) while( fgets(buf,sizeof(buf),nutf) != NULL ) { if(buf[0] != '#') { - if( strstr(buf,"none") != NULL ) { - print_event(LOG_ERR, "NUT is configured to \"none\" in nut.conf, nothing is to be started.\n"); - return 0; - - } if( strstr(buf,"standalone") != NULL || strstr(buf,"netserver") != NULL ) { if( start_flag == NUT_START ) { @@ -357,7 +353,9 @@ static int parse_nutconf(BOOL start_flag) } } - print_event(LOG_ERR,"No valid MODE in nut.conf"); + GetFullPathName(fn,sizeof(fullname),fullname,NULL); + snprintf(buf,sizeof(buf),"nut disabled, please adjust the configuration to your needs. Then set MODE to a suitable value in %s to enable it.",fullname); + print_event(LOG_ERR,buf); return 0; } From 6511930005ffe7a4dd7e9581a7363bbd1875aaf0 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 7 Apr 2011 13:07:01 +0000 Subject: [PATCH 102/218] Update NUT version (by Praveen Kumar) Fossil-ID: SVN r2968 --- scripts/Windows/Installer/NUT-Installer.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index 7957eec095..f2861c892a 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1,6 +1,6 @@ - + From 8dcbc1d456eeb8cfa986d86cd6e15ad92a9b1eed Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 2 May 2011 14:30:59 +0000 Subject: [PATCH 103/218] Makes the call to "wall" function non blocking, ... ...or else the automatic power-fail shutdown is blocked waiting for the MessageBox to be clicked. Fossil-ID: SVN r2980 --- clients/upsmon.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/clients/upsmon.c b/clients/upsmon.c index a7a07da62c..62336a3c90 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -110,6 +110,15 @@ static int flag_isset(int num, int flag) return ((num & flag) == flag); } +#ifdef WIN32 +static unsigned __stdcall async_wall(LPVOID param) +{ + char * text = (char *)param; + MessageBox(NULL,text,SVCNAME,MB_OK|MB_ICONEXCLAMATION|MB_SERVICE_NOTIFICATION); + free(text); +} +#endif + static void wall(const char *text) { #ifndef WIN32 @@ -125,7 +134,15 @@ static void wall(const char *text) fprintf(wf, "%s\n", text); pclose(wf); #else - MessageBox(NULL,text,SVCNAME,MB_OK|MB_ICONEXCLAMATION|MB_SERVICE_NOTIFICATION); + char * data = strdup(text); + _beginthreadex( + NULL, /* security FIXME */ + 0, /* stack size */ + async_wall, + (void *)data, + 0, /* Creation flags */ + NULL /* thread id */ + ); #endif } @@ -149,7 +166,7 @@ static unsigned __stdcall async_notify(LPVOID param) if (flag_isset(data->flags, NOTIFY_WALL)) { snprintf(notice,LARGEBUF,"%s: %s", data->date, data->notice); - wall(notice); + MessageBox(NULL,notice,SVCNAME,MB_OK|MB_ICONEXCLAMATION|MB_SERVICE_NOTIFICATION); } if (flag_isset(data->flags, NOTIFY_EXEC)) { From ca40ae3984ec75eb2e15f711a47db15f7d4245e5 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 3 May 2011 14:07:30 +0000 Subject: [PATCH 104/218] Add a call to "upsdrvctl shutdown" if POWERDOWNFLAG is set when service exits. Fossil-ID: SVN r2981 --- scripts/Windows/wininit.c | 68 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index 555daedf2d..76289cc881 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -304,6 +304,69 @@ static void stop_upsmon() } } +/* Return 0 if powerdown flag is set */ +static DWORD test_powerdownflag() +{ + char command[MAX_PATH]; + char *path; + STARTUPINFO StartupInfo; + PROCESS_INFORMATION ProcessInformation; + BOOL res; + DWORD LastError; + DWORD status; + int i = 10; + int timeout = 500; + + path = getfullpath(PATH_SBIN); + snprintf(command,sizeof(command),"%s\\upsmon.exe -K",path); + free(path); + + memset(&StartupInfo,0,sizeof(STARTUPINFO)); + + res = CreateProcess( + NULL, + command, + NULL, + NULL, + FALSE, + CREATE_NEW_PROCESS_GROUP, + NULL, + NULL, + &StartupInfo, + &ProcessInformation + ); + LastError = GetLastError(); + + if( res == 0 ) { + print_event(LOG_ERR, "Can't create process %s : %d", command, LastError); + return 1; + } + + while( i > 0) { + res = GetExitCodeProcess(ProcessInformation.hProcess, &status); + if( res != 0) { + if( status != STILL_ACTIVE) { + return status; + } + } + Sleep(timeout); + i--; + } + + return 1; +} + +static DWORD shutdown_ups() +{ + char command[MAX_PATH]; + char *path; + + path = getfullpath(PATH_BIN); + snprintf(command,sizeof(command),"%s\\upsdrvctl.exe shutdown",path); + free(path); + return create_process(command); +} + /* return 0 on failure */ static int parse_nutconf(BOOL start_flag) { @@ -337,6 +400,11 @@ static int parse_nutconf(BOOL start_flag) stop_upsd(); stop_drivers(); stop_upsmon(); + /* Give a chance to upsmon to write the POWERDOWNFLAG file */ + Sleep(1000); + if( test_powerdownflag() == 0 ) { + shutdown_ups(); + } return 1; } } From 8f7a019f3374ee9dee7170e2dfddd73da50c6160 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 11 May 2011 08:30:57 +0000 Subject: [PATCH 105/218] Using named pipe for a better port of signals. Fossil-ID: SVN r2982 --- clients/upsmon.c | 79 ++++++++++++++++-- clients/upsmon.h | 7 +- common/wincompat.c | 171 ++++++++++++++++++++++++++++++++++++++ include/common.h | 2 + include/wincompat.h | 21 +++++ scripts/Windows/wininit.c | 162 +++++------------------------------- server/upsd.c | 95 ++++++++++++--------- server/upsd.h | 6 +- 8 files changed, 358 insertions(+), 185 deletions(-) diff --git a/clients/upsmon.c b/clients/upsmon.c index 62336a3c90..b74dcabc9c 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -116,6 +116,7 @@ static unsigned __stdcall async_wall(LPVOID param) char * text = (char *)param; MessageBox(NULL,text,SVCNAME,MB_OK|MB_ICONEXCLAMATION|MB_SERVICE_NOTIFICATION); free(text); + return 0; } #endif @@ -152,7 +153,7 @@ typedef struct async_notify_s { int flags; char *ntype; char *upsname; - char *date } async_notify_t; + char *date; } async_notify_t; static unsigned __stdcall async_notify(LPVOID param) { @@ -1474,6 +1475,8 @@ static void setup_signals(void) sa.sa_handler = set_reload_flag; sigaction(SIGCMD_RELOAD, &sa, NULL); +#else + pipe_create(UPSMON_PIPE_NAME); #endif } @@ -1975,6 +1978,10 @@ int main(int argc, char *argv[]) const char *prog = xbasename(argv[0]); #ifdef WIN32 + HANDLE handles[MAXIMUM_WAIT_OBJECTS]; + int maxhandle = 0; + pipe_conn_t *conn; + /* remove trailing .exe */ char * drv_name; drv_name = (char *)xbasename(argv[0]); @@ -1991,7 +1998,13 @@ int main(int argc, char *argv[]) } #endif - int i, cmd = 0, checking_flag = 0; + int i, checking_flag = 0; +#ifndef WIN32 + int cmd = 0; +#else + const char * cmd = NULL; + DWORD ret; +#endif printf("Network UPS Tools %s %s\n", prog, UPS_VERSION); @@ -2004,7 +2017,6 @@ int main(int argc, char *argv[]) while ((i = getopt(argc, argv, "+Dhic:f:pu:VK46")) != -1) { switch (i) { -#ifndef WIN32 case 'c': if (!strncmp(optarg, "fsd", strlen(optarg))) cmd = SIGCMD_FSD; @@ -2017,7 +2029,6 @@ int main(int argc, char *argv[]) if (cmd == 0) help(argv[0]); break; -#endif case 'D': nut_debug_level++; break; @@ -2054,7 +2065,11 @@ int main(int argc, char *argv[]) } if (cmd) { +#ifndef WIN32 sendsignal(prog, cmd); +#else + send_to_named_pipe(UPSMON_PIPE_NAME,cmd); +#endif exit(EXIT_SUCCESS); } @@ -2154,9 +2169,63 @@ int main(int argc, char *argv[]) #ifndef WIN32 /* reap children that have exited */ waitpid(-1, NULL, WNOHANG); -#endif sleep(sleepval); +#else + maxhandle = 0; + memset(&handles,0,sizeof(handles)); + + /* Wait on the read IO of each connections */ + for (conn = pipe_connhead; conn; conn = conn->next) { + handles[maxhandle] = conn->overlapped.hEvent; + maxhandle++; + } + /* Add the new pipe connected event */ + handles[maxhandle] = pipe_connection_overlapped.hEvent; + maxhandle++; + + ret = WaitForMultipleObjects(maxhandle,handles,FALSE,INFINITE); + + if (ret == WAIT_FAILED) { + upslogx(LOG_ERR, "Wait failed"); + exit(EXIT_FAILURE); + } + + /* Retrieve the signaled connection */ + for(conn = pipe_connhead; conn != NULL; conn = conn->next) { + if( conn->overlapped.hEvent == handles[ret-WAIT_OBJECT_0]) { + break; + } + } + /* a new pipe connection has been signaled */ + if (handles[ret] == pipe_connection_overlapped.hEvent) { + pipe_connect(); + } + /* one of the read event handle has been signaled */ + else { + if( conn != NULL) { + if ( pipe_ready(conn) ) { + if (!strncmp(conn->buf, SIGCMD_FSD, sizeof(SIGCMD_FSD))) { + user_fsd(1); + } + + else if (!strncmp(conn->buf, SIGCMD_RELOAD, sizeof(SIGCMD_RELOAD))) { + set_reload_flag(1); + } + + else if (!strncmp(conn->buf, SIGCMD_STOP, sizeof(SIGCMD_STOP))) { + set_exit_flag(1); + } + + else { + upslogx(LOG_ERR,"Unknown signal"); + } + + pipe_disconnect(conn); + } + } + } +#endif } upslogx(LOG_INFO, "Signal %d: exiting", exit_flag); diff --git a/clients/upsmon.h b/clients/upsmon.h index dfd3f6e6dc..32dbdbb6ff 100644 --- a/clients/upsmon.h +++ b/clients/upsmon.h @@ -113,10 +113,15 @@ struct { }; /* values for signals passed between processes */ - +#ifndef WIN32 #define SIGCMD_FSD SIGUSR1 #define SIGCMD_STOP SIGTERM #define SIGCMD_RELOAD SIGHUP +#else +#define SIGCMD_FSD COMMAND_FSD +#define SIGCMD_STOP COMMAND_STOP +#define SIGCMD_RELOAD COMMAND_RELOAD +#endif /* various constants */ diff --git a/common/wincompat.c b/common/wincompat.c index c70bbfc0f5..92f75582d4 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -164,6 +164,177 @@ void syslog(int priority, const char *fmt, ...) CloseHandle(pipe); } +/* Signal emulation via NamedPipe */ + +static HANDLE pipe_connection_handle; +OVERLAPPED pipe_connection_overlapped; +pipe_conn_t *pipe_connhead = NULL; +static const char *named_pipe_name=NULL; + +void pipe_create(const char * pipe_name) +{ + BOOL ret; + + /* save pipe name for further use in pipe_connect */ + if( pipe_name == NULL ) { + if( named_pipe_name == NULL ) { + return; + } + } + else { + named_pipe_name = pipe_name; + } + + if( pipe_connection_overlapped.hEvent != 0 ) { + CloseHandle(pipe_connection_overlapped.hEvent); + } + memset(&pipe_connection_overlapped,0,sizeof(pipe_connection_overlapped)); + pipe_connection_handle = CreateNamedPipe( + named_pipe_name, + PIPE_ACCESS_INBOUND | /* to server only */ + FILE_FLAG_OVERLAPPED, /* async IO */ + PIPE_TYPE_MESSAGE | + PIPE_READMODE_MESSAGE | + PIPE_WAIT, + PIPE_UNLIMITED_INSTANCES, /* max. instances */ + LARGEBUF, /* output buffer size */ + LARGEBUF, /* input buffer size */ + 0, /* client time-out */ + NULL); /* FIXME: default security attribute */ + + if (pipe_connection_handle == INVALID_HANDLE_VALUE) { + upslogx(LOG_ERR,"Error creating named pipe"); + fatal_with_errno(EXIT_FAILURE, "Can't create a state socket (windows named pipe)"); + } + + /* Prepare an async wait on a connection on the pipe */ + pipe_connection_overlapped.hEvent = CreateEvent(NULL, /*Security*/ + FALSE, /* auto-reset*/ + FALSE, /* inital state = non signaled*/ + NULL /* no name*/); + if(pipe_connection_overlapped.hEvent == NULL ) { + upslogx(LOG_ERR,"Error creating event"); + fatal_with_errno(EXIT_FAILURE, "Can't create event"); + } + + /* Wait for a connection */ + ret = ConnectNamedPipe(pipe_connection_handle,&pipe_connection_overlapped); + if(ret == 0 && GetLastError() != ERROR_IO_PENDING ) { + upslogx(LOG_ERR,"ConnectNamedPipe error"); + } +} + +void pipe_connect() +{ + /* We have detected a connection on the opened pipe. So we start by saving its handle and create a new pipe for future connections */ + pipe_conn_t *conn; + + conn = xcalloc(1,sizeof(*conn)); + conn->handle = pipe_connection_handle; + + /* restart a new listening pipe */ + pipe_create(NULL); + + /* A new pipe waiting for new client connection has been created. We could manage the current connection now */ + /* Start a read operation on the newly connected pipe so we could wait on the event associated to this IO */ + memset(&conn->overlapped,0,sizeof(conn->overlapped)); + memset(conn->buf,0,sizeof(conn->buf)); + conn->overlapped.hEvent = CreateEvent(NULL, /*Security*/ + FALSE, /* auto-reset*/ + FALSE, /* inital state = non signaled*/ + NULL /* no name*/); + if(conn->overlapped.hEvent == NULL ) { + upslogx(LOG_ERR,"Can't create event for reading event log"); + return; + } + + ReadFile (conn->handle,conn->buf,sizeof(conn->buf)-1,NULL,&(conn->overlapped)); /* -1 to be sure to have a trailling 0 */ + + if (pipe_connhead) { + conn->next = pipe_connhead; + pipe_connhead->prev = conn; + } + + pipe_connhead = conn; +} + +void pipe_disconnect(pipe_conn_t *conn) +{ + if( conn->overlapped.hEvent != INVALID_HANDLE_VALUE) { + CloseHandle(conn->overlapped.hEvent); + conn->overlapped.hEvent = INVALID_HANDLE_VALUE; + } + if( conn->handle != INVALID_HANDLE_VALUE) { + CloseHandle(conn->handle); + conn->handle = INVALID_HANDLE_VALUE; + } + if ( DisconnectNamedPipe(conn->handle) == 0 ) { + upslogx(LOG_ERR,"DisconnectNamedPipe"); + } + + if (conn->prev) { + conn->prev->next = conn->next; + } else { + pipe_connhead = conn->next; + } + + if (conn->next) { + conn->next->prev = conn->prev; + } else { + /* conntail = conn->prev; */ + } + + free(conn); +} + +int pipe_ready(pipe_conn_t *conn) +{ + DWORD bytesRead; + BOOL res; + + res = GetOverlappedResult(conn->handle, &conn->overlapped, &bytesRead, FALSE); + if( res == 0 ) { + upslogx(LOG_ERR, "Pipe read error"); + pipe_disconnect(conn); + return 0; + } + return 1; +} + +/* return 1 on error, 0 if OK */ +int send_to_named_pipe(const char * pipe_name, const char * data) +{ + HANDLE pipe; + BOOL result = FALSE; + DWORD bytesWritten = 0; + + pipe = CreateFile( + pipe_name, + GENERIC_WRITE, + 0, /* no sharing */ + NULL, /* default security attributes FIXME */ + OPEN_EXISTING, /* opens existing pipe */ + FILE_FLAG_OVERLAPPED, /* enable async IO */ + NULL); /* no template file */ + + + if (pipe == INVALID_HANDLE_VALUE) { + upslogx(LOG_ERR, "Cannot connect to upsmon Named Pipe"); + return 1; + } + + result = WriteFile (pipe,data,strlen(data)+1,&bytesWritten,NULL); + + if (result == 0 || bytesWritten != strlen(data)+1 ) { + upslogx(LOG_ERR, "Error writing to %s Named Pipe",pipe_name); + CloseHandle(pipe); + return 1; + } + + CloseHandle(pipe); + return 0; +} + /* Serial port wrapper inspired by : http://serial-programming-in-win32-os.blogspot.com/2008/07/convert-linux-code-to-windows-serial.html */ diff --git a/include/common.h b/include/common.h index d94b175bf6..9cfda3578e 100644 --- a/include/common.h +++ b/include/common.h @@ -196,6 +196,8 @@ extern int optind; #define SVCNAME TEXT("Network UPS Tools") #define EVENTLOG_PIPE_NAME TEXT("\\\\.\\pipe\\nut") +#define UPSMON_PIPE_NAME TEXT("\\\\.\\pipe\\upsmon") +#define UPSD_PIPE_NAME TEXT("\\\\.\\pipe\\upsd") char * getfullpath(char * relative_path); #define PATH_ETC "\\..\\etc" diff --git a/include/wincompat.h b/include/wincompat.h index 32c57c5c66..b4b1a1200c 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -70,6 +70,27 @@ void syslog(int priority, const char *fmt, ...); extern const char * EventLogName; +/* Signal emulation via named pipe */ +typedef struct pipe_conn_s { + HANDLE handle; + OVERLAPPED overlapped; + char buf[LARGEBUF]; + struct pipe_conn_s *prev; + struct pipe_conn_s *next; +} pipe_conn_t; + +extern pipe_conn_t *pipe_connhead; +extern OVERLAPPED pipe_connection_overlapped; +void pipe_create(const char * pipe_name); +void pipe_connect(); +void pipe_disconnect(pipe_conn_t *conn); +int pipe_ready(pipe_conn_t *conn); +int send_to_named_pipe(const char * pipe_name, const char * data); + +#define COMMAND_FSD "COMMAND_FSD" +#define COMMAND_STOP "COMMAND_STOP" +#define COMMAND_RELOAD "COMMAND_RELOAD" + /* serial function compatibility */ typedef unsigned char cc_t; diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index 76289cc881..cbd0535f4f 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -22,6 +22,7 @@ #include "common.h" #include "config.h" #include "winevent.h" +#include "wincompat.h" #define NUT_START TRUE #define NUT_STOP FALSE @@ -36,9 +37,6 @@ typedef struct conn_s { static DWORD upsd_pid = 0; static DWORD upsmon_pid = 0; -static HANDLE pipe_connection_handle; -static OVERLAPPED pipe_connection_overlapped; -static conn_t *connhead = NULL; static BOOL service_flag = TRUE; HANDLE svc_stop = NULL; static SERVICE_STATUS SvcStatus; @@ -86,130 +84,6 @@ static void print_event(DWORD priority, const char * fmt, ...) free(buf); } -static void pipe_create() -{ - BOOL ret; - - if( pipe_connection_overlapped.hEvent != 0 ) { - CloseHandle(pipe_connection_overlapped.hEvent); - } - memset(&pipe_connection_overlapped,0,sizeof(pipe_connection_overlapped)); - pipe_connection_handle = CreateNamedPipe( - EVENTLOG_PIPE_NAME, /* pipe name */ - PIPE_ACCESS_INBOUND | /* to server only */ - FILE_FLAG_OVERLAPPED, /* async IO */ - PIPE_TYPE_MESSAGE | - PIPE_READMODE_MESSAGE | - PIPE_WAIT, - PIPE_UNLIMITED_INSTANCES, /* max. instances */ - LARGEBUF, /* output buffer size */ - LARGEBUF, /* input buffer size */ - 0, /* client time-out */ - NULL); /* FIXME: default security attribute */ - - if (pipe_connection_handle == INVALID_HANDLE_VALUE) { - print_event(LOG_ERR,"Error creating named pipe"); - fatal_with_errno(EXIT_FAILURE, "Can't create a state socket (windows named pipe)"); - } - - /* Prepare an async wait on a connection on the pipe */ - pipe_connection_overlapped.hEvent = CreateEvent(NULL, /*Security*/ - FALSE, /* auto-reset*/ - FALSE, /* inital state = non signaled*/ - NULL /* no name*/); - if(pipe_connection_overlapped.hEvent == NULL ) { - print_event(LOG_ERR,"Error creating event"); - fatal_with_errno(EXIT_FAILURE, "Can't create event"); - } - - /* Wait for a connection */ - ret = ConnectNamedPipe(pipe_connection_handle,&pipe_connection_overlapped); - if(ret == 0 && GetLastError() != ERROR_IO_PENDING ) { - print_event(LOG_ERR,"ConnectNamedPipe error"); - } -} - -static void pipe_connect() -{ - /* We have detected a connection on the opened pipe. So we start by saving its handle and create a new pipe for future connections */ - conn_t *conn; - - conn = xcalloc(1,sizeof(*conn)); - conn->handle = pipe_connection_handle; - - /* restart a new listening pipe */ - pipe_create(); - - /* A new pipe waiting for new client connection has been created. We could manage the current connection now */ - /* Start a read operation on the newly connected pipe so we could wait on the event associated to this IO */ - memset(&conn->overlapped,0,sizeof(conn->overlapped)); - memset(conn->buf,0,sizeof(conn->buf)); - conn->overlapped.hEvent = CreateEvent(NULL, /*Security*/ - FALSE, /* auto-reset*/ - FALSE, /* inital state = non signaled*/ - NULL /* no name*/); - if(conn->overlapped.hEvent == NULL ) { - print_event(LOG_ERR,"Can't create event for reading event log"); - return; - } - - ReadFile (conn->handle,conn->buf,sizeof(conn->buf)-1,NULL,&(conn->overlapped)); /* -1 to be sure to have a trailling 0 */ - - if (connhead) { - conn->next = connhead; - connhead->prev = conn; - } - - connhead = conn; -} - -static void pipe_disconnect(conn_t *conn) -{ - if( conn->overlapped.hEvent != INVALID_HANDLE_VALUE) { - CloseHandle(conn->overlapped.hEvent); - conn->overlapped.hEvent = INVALID_HANDLE_VALUE; - } - if ( DisconnectNamedPipe(conn->handle) == 0 ) { - print_event(LOG_ERR,"DisconnectNamedPipe"); - } - - if (conn->prev) { - conn->prev->next = conn->next; - } else { - connhead = conn->next; - } - - if (conn->next) { - conn->next->prev = conn->prev; - } else { - /* conntail = conn->prev; */ - } - - free(conn); -} - -static void pipe_read(conn_t *conn) -{ - DWORD bytesRead; - BOOL res; - char *buf = conn->buf; - DWORD priority; - - res = GetOverlappedResult(conn->handle, &conn->overlapped, &bytesRead, FALSE); - if( res == 0 ) { - print_event(LOG_ERR, "Read error"); - pipe_disconnect(conn); - return; - } - - /* a frame is a DWORD indicating priority followed by an array of char (not necessarily followed by a terminal 0 */ - priority =*((DWORD *)buf); - buf = buf + sizeof(DWORD); - print_event(priority,buf); - - pipe_disconnect(conn); -} - /* returns PID of the newly created process or 0 on failure */ static DWORD create_process(char * command) { @@ -280,8 +154,8 @@ static void run_upsd() static void stop_upsd() { - if ( GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,upsd_pid) == 0 ) { - print_event(LOG_ERR, "Error sendind CTRL_BREAK to upsd"); + if ( send_to_named_pipe( UPSD_PIPE_NAME, COMMAND_STOP ) ) { + print_event(LOG_ERR, "Error stoping upsd"); } } @@ -299,7 +173,7 @@ static void run_upsmon() static void stop_upsmon() { - if ( GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,upsmon_pid) == 0 ) { + if ( send_to_named_pipe( UPSMON_PIPE_NAME, COMMAND_STOP ) ) { print_event(LOG_ERR, "Error sendind CTRL_BREAK to upsmon"); } } @@ -605,12 +479,10 @@ static void SvcReady(void) static void close_all(void) { - conn_t *conn; + pipe_conn_t *conn; - CloseHandle(pipe_connection_handle); - for (conn = connhead; conn; conn = conn->next) { - CloseHandle(conn->overlapped.hEvent); - CloseHandle(conn->handle); + for (conn = pipe_connhead; conn; conn = conn->next) { + pipe_disconnect(conn); } } @@ -621,7 +493,9 @@ static void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) DWORD ret; HANDLE handles[MAXIMUM_WAIT_OBJECTS]; int maxhandle = 0; - conn_t *conn; + pipe_conn_t *conn; + DWORD priority; + char * buf; if(service_flag) { SvcStart(SVCNAME); @@ -635,7 +509,7 @@ static void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) print_event(LOG_INFO,"Starting"); /* pipe for event log proxy */ - pipe_create(); + pipe_create(EVENTLOG_PIPE_NAME); /* parse nut.conf and start relevant processes */ if ( parse_nutconf(NUT_START) == 0 ) { @@ -655,7 +529,7 @@ static void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) memset(&handles,0,sizeof(handles)); /* Wait on the read IO of each connections */ - for (conn = connhead; conn; conn = conn->next) { + for (conn = pipe_connhead; conn; conn = conn->next) { handles[maxhandle] = conn->overlapped.hEvent; maxhandle++; } @@ -687,7 +561,7 @@ static void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) } /* Retrieve the signaled connection */ - for(conn = connhead; conn != NULL; conn = conn->next) { + for(conn = pipe_connhead; conn != NULL; conn = conn->next) { if( conn->overlapped.hEvent == handles[ret-WAIT_OBJECT_0]) { break; } @@ -699,7 +573,15 @@ static void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) /* one of the read event handle has been signaled */ else { if( conn != NULL) { - pipe_read(conn); + if( pipe_ready(conn) ) { + buf = conn->buf; + /* a frame is a DWORD indicating priority followed by an array of char (not necessarily followed by a terminal 0 */ + priority =*((DWORD *)buf); + buf = buf + sizeof(DWORD); + print_event(priority,buf); + + pipe_disconnect(conn); + } } } } diff --git a/server/upsd.c b/server/upsd.c index 58ed3929df..5804c9c318 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -86,6 +86,10 @@ typedef enum { DRIVER = 1, CLIENT, SERVER +#ifdef WIN32 + ,NAMED_PIPE +#endif + } handler_type_t; typedef struct { @@ -98,7 +102,6 @@ typedef struct { static struct pollfd *fds = NULL; #else static HANDLE *fds = NULL; -static HANDLE stop_event; #endif static handler_t *handler = NULL; @@ -732,6 +735,11 @@ static void set_exit_flag(int sig) exit_flag = sig; } +static void set_reload_flag(int sig) +{ + reload_flag = 1; +} + /* service requests and check on new data */ static void mainloop(void) { @@ -740,6 +748,7 @@ static void mainloop(void) #else DWORD ret; int nfds = 0; + pipe_conn_t * conn; #endif upstype_t *ups; @@ -946,8 +955,17 @@ static void mainloop(void) nfds++; } - /* Add asynchronous exit request (CTRL+C) */ - fds[nfds] = stop_event; + /* Wait on the read IO on named pipe */ + for (conn = pipe_connhead; conn; conn = conn->next) { + fds[nfds] = conn->overlapped.hEvent; + handler[nfds].type = NAMED_PIPE; + handler[nfds].data = (void *)conn; + nfds++; + } + /* Add the new named pipe connected event */ + fds[nfds] = pipe_connection_overlapped.hEvent; + handler[nfds].type = NAMED_PIPE; + handler[nfds].data = NULL; nfds++; upsdebugx(2, "%s: wait for %d filedescriptors", __func__, nfds); @@ -966,10 +984,6 @@ static void mainloop(void) return; } - if( fds[ret] == stop_event ) { - return; - } - switch(handler[ret].type) { case DRIVER: sstate_readline((upstype_t *)handler[ret].data); @@ -980,6 +994,30 @@ static void mainloop(void) case SERVER: client_connect((stype_t *)handler[ret].data); break; + case NAMED_PIPE: + /* a new pipe connection has been signaled */ + if (fds[ret] == pipe_connection_overlapped.hEvent) { + pipe_connect(); + } + /* one of the read event handle has been signaled */ + else { + pipe_conn_t * conn = handler[ret].data; + if ( pipe_ready(conn) ) { + if (!strncmp(conn->buf, SIGCMD_STOP, sizeof(SIGCMD_STOP))) { + set_exit_flag(1); + } + else if (!strncmp(conn->buf, SIGCMD_RELOAD, sizeof(SIGCMD_RELOAD))) { + set_reload_flag(1); + } + else { + upslogx(LOG_ERR,"Unknown signal" + ); + } + + pipe_disconnect(conn); + } + } + break; default: upsdebugx(2, "%s: has data available", __func__); break; @@ -1008,28 +1046,6 @@ static void help(const char *progname) exit(EXIT_SUCCESS); } -#ifndef WIN32 -static void set_reload_flag(int sig) -{ - reload_flag = 1; -} -#endif - -#ifdef WIN32 -BOOL WINAPI CtrlEvent( DWORD dwCtrlType ) -{ - if( dwCtrlType == CTRL_BREAK_EVENT || dwCtrlType == CTRL_C_EVENT ) { - set_exit_flag(1); - SetEvent(stop_event); - /* Wait for the mainloop to exit */ - while(1) {}; - return TRUE; - } - - return FALSE; -} -#endif - static void setup_signals(void) { #ifndef WIN32 @@ -1053,11 +1069,7 @@ static void setup_signals(void) sa.sa_handler = set_reload_flag; sigaction(SIGHUP, &sa, NULL); #else - stop_event = CreateEvent(NULL, /* security */ - FALSE, /* auto-reset */ - FALSE, /* initial test = non signaled */ - NULL /*no name */); - SetConsoleCtrlHandler(CtrlEvent,TRUE); + pipe_create(UPSD_PIPE_NAME); #endif } @@ -1082,7 +1094,12 @@ void check_perms(const char *fn) int main(int argc, char **argv) { - int i, cmd = 0; + int i; +#ifndef WIN32 + int cmd = 0; +#else + const char * cmd = NULL; +#endif char *chroot_path = NULL; const char *user = RUN_AS_USER; struct passwd *new_uid = NULL; @@ -1124,7 +1141,6 @@ int main(int argc, char **argv) case 'V': /* do nothing - we already printed the banner */ exit(EXIT_SUCCESS); -#ifndef WIN32 case 'c': if (!strncmp(optarg, "reload", strlen(optarg))) cmd = SIGCMD_RELOAD; @@ -1135,7 +1151,6 @@ int main(int argc, char **argv) if (cmd == 0) help(progname); break; -#endif case 'D': nut_debug_level++; break; @@ -1154,7 +1169,11 @@ int main(int argc, char **argv) } if (cmd) { +#ifndef WIN32 sendsignalfn(pidfn, cmd); +#else + send_to_named_pipe(UPSD_PIPE_NAME,cmd); +#endif exit(EXIT_SUCCESS); } @@ -1194,7 +1213,7 @@ int main(int argc, char **argv) /* default to system limit (may be overridden in upsd.conf */ maxconn = sysconf(_SC_OPEN_MAX); #else - maxconn = 64; /*FIXME : silly value just to compile */ + maxconn = 64; /*FIXME : arbitrary value, need adjustement */ #endif /* handle upsd.conf */ diff --git a/server/upsd.h b/server/upsd.h index f6880d828c..626f7debbe 100644 --- a/server/upsd.h +++ b/server/upsd.h @@ -78,9 +78,13 @@ extern upstype_t *firstups; extern nut_ctype_t *firstclient; /* map commands onto signals */ - +#ifndef WIN32 #define SIGCMD_STOP SIGTERM #define SIGCMD_RELOAD SIGHUP +#else +#define SIGCMD_STOP COMMAND_STOP +#define SIGCMD_RELOAD COMMAND_RELOAD +#endif /* awkward way to make a string out of a numeric constant */ From 704ac40c550cbc8deb439cc7ac0d392e91f2969e Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 11 May 2011 09:29:58 +0000 Subject: [PATCH 106/218] forgot to change wait duration. Fossil-ID: SVN r2983 --- clients/upsmon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clients/upsmon.c b/clients/upsmon.c index b74dcabc9c..995d1e9147 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -2184,7 +2184,7 @@ int main(int argc, char *argv[]) handles[maxhandle] = pipe_connection_overlapped.hEvent; maxhandle++; - ret = WaitForMultipleObjects(maxhandle,handles,FALSE,INFINITE); + ret = WaitForMultipleObjects(maxhandle,handles,FALSE,sleepval); if (ret == WAIT_FAILED) { upslogx(LOG_ERR, "Wait failed"); From 186b80af48cb09ad265737ebbb2e1a543cfbed39 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 16 May 2011 13:39:15 +0000 Subject: [PATCH 107/218] [Installer] Include documentation in HTML format Fossil-ID: SVN r2985 --- scripts/Windows/Installer/NUT-Installer.xml | 972 +++++++++++--------- 1 file changed, 538 insertions(+), 434 deletions(-) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index f2861c892a..414b2f0db8 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1176,454 +1176,524 @@ Public License instead of this License. - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + - - - - + + - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + @@ -1636,7 +1706,7 @@ Public License instead of this License. - + @@ -1646,12 +1716,15 @@ Public License instead of this License. - + - + + + + @@ -1748,65 +1821,7 @@ Public License instead of this License. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1816,10 +1831,99 @@ Public License instead of this License. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From eac694e6bef29077057bc6c17924b4aff1fc2807 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 17 May 2011 12:41:15 +0000 Subject: [PATCH 108/218] Add hints to configure SHUTDOWNCMD and POWERDOWNFLAG Fossil-ID: SVN r2986 --- conf/upsmon.conf.sample.in | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/conf/upsmon.conf.sample.in b/conf/upsmon.conf.sample.in index cc34a027f3..b9475c4454 100644 --- a/conf/upsmon.conf.sample.in +++ b/conf/upsmon.conf.sample.in @@ -107,6 +107,9 @@ MINSUPPLIES 1 # upsmon runs this command when the system needs to be brought down. # # This should work just about everywhere ... if it doesn't, well, change it. +# +# For Windows setup use something like: +# SHUTDOWNCMD "C:\\WINDOWS\\system32\\shutdown.exe -s -t 0" SHUTDOWNCMD "/sbin/shutdown -h +0" @@ -194,6 +197,9 @@ DEADTIME 15 # to shut down the load. You should check for this file's existence in # your shutdown scripts and run 'upsdrvctl shutdown' if it exists. # +# For Windows setup use something like: +# POWERDOWNFLAG "C:\\killpower" +# # See the shutdown.txt file in the docs subdirectory for more information. POWERDOWNFLAG @CONFPATH@/killpower From 4f8abbdb958b774b13e9f41552e161fd83039dc7 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 17 May 2011 13:06:46 +0000 Subject: [PATCH 109/218] Add a check box for launching the automatic libUSB drivers installation Fossil-ID: SVN r2987 --- scripts/Windows/Installer/NUT-Installer.xml | 32 ++++++++++++++------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index 414b2f0db8..6a0a1a691e 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -20,19 +20,22 @@ - - [DlgTitleFont]In order to use a USB UPS with [ProductName], you must install libUSB-win32 from - - - https://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/ - - - [DlgTitleFont]and install the corresponding device driver using libUSB's Inf Wizard. + + If the automatic USB driver installation fails, you can try to install a driver manually. For this go to : + +https://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/ + +After installling libusb-win32, run libUSB's Inf Wizard and choose your device. Click Next to continue [Wizard]. + + + + If you use a USB UPS, please plug it in now, so that we can try to install the relevant driver. +

    @@ -49,7 +52,7 @@ - + [DlgTitleFont][ProductName] installs the following libraries, location of licenses are - @@ -1183,6 +1186,9 @@ Public License instead of this License. + + + @@ -1818,6 +1824,9 @@ Public License instead of this License. + + + @@ -1924,6 +1933,7 @@ Public License instead of this License. + @@ -1933,6 +1943,7 @@ Public License instead of this License. + TARGETDIR="" @@ -1941,6 +1952,7 @@ Public License instead of this License. + LIBUSBINSTALL=1 - + \ No newline at end of file From 9b7c20ad04a393f0f5c7ff11ae707b95721debf8 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 17 May 2011 14:35:14 +0000 Subject: [PATCH 110/218] Add source files and a note on how to compile the automatic driver installer. Fossil-ID: SVN r2988 --- scripts/Windows/DriverInstaller/README.txt | 1 + scripts/Windows/DriverInstaller/nutscan-usb.h | 108 ++++++++++++++++ scripts/Windows/DriverInstaller/wdi-simple.c | 115 ++++++++++++++++++ 3 files changed, 224 insertions(+) create mode 100644 scripts/Windows/DriverInstaller/README.txt create mode 100644 scripts/Windows/DriverInstaller/nutscan-usb.h create mode 100644 scripts/Windows/DriverInstaller/wdi-simple.c diff --git a/scripts/Windows/DriverInstaller/README.txt b/scripts/Windows/DriverInstaller/README.txt new file mode 100644 index 0000000000..4f33026fa0 --- /dev/null +++ b/scripts/Windows/DriverInstaller/README.txt @@ -0,0 +1 @@ +To easily compile wdi-simple.exe, unzip a copy of libwdi on your disk, then copy wdi-simple.c and nutscan-usb.h into the "examples" subdirectory of libwdi directory. Then run ddk_build.cmd from the root of the libwdi directory. diff --git a/scripts/Windows/DriverInstaller/nutscan-usb.h b/scripts/Windows/DriverInstaller/nutscan-usb.h new file mode 100644 index 0000000000..20c4fcd75e --- /dev/null +++ b/scripts/Windows/DriverInstaller/nutscan-usb.h @@ -0,0 +1,108 @@ +/* nutscan-usb + * Copyright (C) 2011 - Arnaud Quette + * + * 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 DEVSCAN_USB_H +#define DEVSCAN_USB_H + +typedef struct { + unsigned short vendorID; + unsigned short productID; + char* driver_name; +} usb_device_id_t; + +/* USB IDs device table */ +static usb_device_id_t usb_device_table[] = { + + { 0x0001, 0x0000, "blazer_usb" }, + { 0x03f0, 0x1f01, "bcmxcp_usb" }, + { 0x03f0, 0x1f02, "bcmxcp_usb" }, + { 0x03f0, 0x1f06, "usbhid-ups" }, + { 0x03f0, 0x1f08, "usbhid-ups" }, + { 0x03f0, 0x1f09, "usbhid-ups" }, + { 0x03f0, 0x1f0a, "usbhid-ups" }, + { 0x03f0, 0x1fe0, "usbhid-ups" }, + { 0x03f0, 0x1fe1, "usbhid-ups" }, + { 0x0463, 0x0001, "usbhid-ups" }, + { 0x0463, 0xffff, "usbhid-ups" }, + { 0x047c, 0xffff, "usbhid-ups" }, + { 0x050d, 0x0375, "usbhid-ups" }, + { 0x050d, 0x0551, "usbhid-ups" }, + { 0x050d, 0x0750, "usbhid-ups" }, + { 0x050d, 0x0751, "usbhid-ups" }, + { 0x050d, 0x0900, "usbhid-ups" }, + { 0x050d, 0x0910, "usbhid-ups" }, + { 0x050d, 0x0912, "usbhid-ups" }, + { 0x050d, 0x0980, "usbhid-ups" }, + { 0x050d, 0x1100, "usbhid-ups" }, + { 0x051d, 0x0002, "usbhid-ups" }, + { 0x051d, 0x0003, "usbhid-ups" }, + { 0x0592, 0x0002, "bcmxcp_usb" }, + { 0x05b8, 0x0000, "blazer_usb" }, + { 0x0665, 0x5161, "blazer_usb" }, + { 0x06da, 0x0002, "bcmxcp_usb" }, + { 0x06da, 0x0003, "blazer_usb" }, + { 0x06da, 0xffff, "usbhid-ups" }, + { 0x075d, 0x0300, "usbhid-ups" }, + { 0x0764, 0x0005, "usbhid-ups" }, + { 0x0764, 0x0501, "usbhid-ups" }, + { 0x0764, 0x0601, "usbhid-ups" }, + { 0x0925, 0x1234, "richcomm_usb" }, + { 0x09ae, 0x0001, "tripplite_usb" }, + { 0x09ae, 0x1003, "usbhid-ups" }, + { 0x09ae, 0x1007, "usbhid-ups" }, + { 0x09ae, 0x1008, "usbhid-ups" }, + { 0x09ae, 0x1009, "usbhid-ups" }, + { 0x09ae, 0x1010, "usbhid-ups" }, + { 0x09ae, 0x2005, "usbhid-ups" }, + { 0x09ae, 0x2007, "usbhid-ups" }, + { 0x09ae, 0x2008, "usbhid-ups" }, + { 0x09ae, 0x2009, "usbhid-ups" }, + { 0x09ae, 0x2010, "usbhid-ups" }, + { 0x09ae, 0x2011, "usbhid-ups" }, + { 0x09ae, 0x2012, "usbhid-ups" }, + { 0x09ae, 0x2013, "usbhid-ups" }, + { 0x09ae, 0x2014, "usbhid-ups" }, + { 0x09ae, 0x3008, "usbhid-ups" }, + { 0x09ae, 0x3009, "usbhid-ups" }, + { 0x09ae, 0x3010, "usbhid-ups" }, + { 0x09ae, 0x3011, "usbhid-ups" }, + { 0x09ae, 0x3012, "usbhid-ups" }, + { 0x09ae, 0x3013, "usbhid-ups" }, + { 0x09ae, 0x3014, "usbhid-ups" }, + { 0x09ae, 0x3015, "usbhid-ups" }, + { 0x09ae, 0x4001, "usbhid-ups" }, + { 0x09ae, 0x4002, "usbhid-ups" }, + { 0x09ae, 0x4003, "usbhid-ups" }, + { 0x09ae, 0x4004, "usbhid-ups" }, + { 0x09ae, 0x4005, "usbhid-ups" }, + { 0x09ae, 0x4006, "usbhid-ups" }, + { 0x09ae, 0x4007, "usbhid-ups" }, + { 0x09ae, 0x4008, "usbhid-ups" }, + { 0x0d9f, 0x00a2, "usbhid-ups" }, + { 0x0d9f, 0x00a3, "usbhid-ups" }, + { 0x0d9f, 0x00a4, "usbhid-ups" }, + { 0x0d9f, 0x00a5, "usbhid-ups" }, + { 0x0d9f, 0x00a6, "usbhid-ups" }, + { 0x0f03, 0x0001, "blazer_usb" }, + { 0x10af, 0x0001, "usbhid-ups" }, + { 0xffff, 0x0000, "blazer_usb" }, + /* Terminating entry */ + { -1, -1, NULL } +}; +#endif /* DEVSCAN_USB_H */ + diff --git a/scripts/Windows/DriverInstaller/wdi-simple.c b/scripts/Windows/DriverInstaller/wdi-simple.c new file mode 100644 index 0000000000..ad8567fd38 --- /dev/null +++ b/scripts/Windows/DriverInstaller/wdi-simple.c @@ -0,0 +1,115 @@ +/* + wdi-simple.c: Console Driver Installer for NUT USB devices + Copyright (c) 2010 Pete Batard + Copyright (c) 2011 Frederic Bohe + + 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 +*/ + +#include +#include +#include +#ifdef _MSC_VER +#include "getopt/getopt.h" +#else +#include +#endif +#include "libwdi.h" +#include "nutscan-usb.h" + +#define oprintf(...) do {if (!opt_silent) printf(__VA_ARGS__);} while(0) + +#define DESC "NUT USB driver" +#define INF_NAME "usb_device.inf" +#define DEFAULT_DIR "usb_driver" + + +int __cdecl main(int argc, char** argv) +{ + char desc[128] = DESC; + struct wdi_device_info *ldev, *ldev_start, dev = {NULL, 0, 0, false, 0, DESC, NULL, NULL, NULL}; + struct wdi_options_create_list ocl = { 0 }; + struct wdi_options_prepare_driver opd = { 0 }; + struct wdi_options_install_driver oid = { 0 }; + int c, r; + int opt_silent = 0, opt_extract = 0, log_level = WDI_LOG_LEVEL_WARNING; +// int opt_silent = 0, opt_extract = 0, log_level = WDI_LOG_LEVEL_DEBUG; + char *inf_name = INF_NAME; + char *ext_dir = DEFAULT_DIR; + bool matching_device_found; + int index = 0; + + ocl.list_all = true; + ocl.list_hubs = true; + ocl.trim_whitespaces = true; + opd.driver_type = WDI_LIBUSB0; +// opd.driver_type = WDI_WINUSB; + + wdi_set_log_level(log_level); + + oprintf("NUT UPS driver installer.\n"); + oprintf("-------------------------\n\n"); + oprintf("Searching for known UPS...\n"); + + // Try to match against a plugged device + matching_device_found = false; + if (wdi_create_list(&ldev, &ocl) == WDI_SUCCESS) { + r = WDI_SUCCESS; + ldev_start = ldev; + while( usb_device_table[index].vendorID != 0xFFFF || usb_device_table[index].productID != 0xFFFF) { + dev.next = NULL; + dev.vid = usb_device_table[index].vendorID; + dev.pid = usb_device_table[index].productID; + dev.is_composite = false; + dev.mi = 0; + dev.desc = desc; + dev.driver = NULL; + dev.device_id = NULL; + dev.hardware_id = NULL; +// oprintf("NUT device : vid : %0X - pid : %0X\n",dev.vid, dev.pid); + + for (ldev = ldev_start; (ldev != NULL) && (r == WDI_SUCCESS); ldev = ldev->next) { +// oprintf("trying vid : %0X - pid : %0X\n",ldev->vid, ldev->pid); + if ( (ldev->vid == dev.vid) && (ldev->pid == dev.pid) && (ldev->mi == dev.mi) ) { + oprintf("Found UPS : vendor ID = %0X - Product ID = %0X\n",ldev->vid, ldev->pid, ldev->mi); + dev.hardware_id = ldev->hardware_id; + dev.device_id = ldev->device_id; + matching_device_found = true; + + oprintf("Extracting driver files...\n"); + r = wdi_prepare_driver(&dev, ext_dir, inf_name, &opd); + oprintf(" %s\n", wdi_strerror(r)); + if ((r != WDI_SUCCESS) || (opt_extract)) + return r; + + oprintf(" %s: ", dev.hardware_id); + fflush(stdout); + oprintf("Installing driver\n"); + r = wdi_install_driver(&dev, ext_dir, inf_name, &oid); + oprintf("%s\n", wdi_strerror(r)); + } + } + index++; + } + } + + // No plugged USB device matches + if (!matching_device_found) { + oprintf("No known UPS device found.\nTry installing libUSB manually.\nHit a key to continue\n"); + getc(stdin); + } + + return r; +} From e9b33e118d8fd87aa6d02b972c2e305958d98203 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 20 May 2011 07:05:17 +0000 Subject: [PATCH 111/218] This doesn't make it through the previous merge from trunk Fossil-ID: SVN r2992 --- drivers/Makefile.am | 8 ++++---- m4/nut_check_libusb.m4 | 9 ++------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/drivers/Makefile.am b/drivers/Makefile.am index 736bcb232c..bf08c5d24c 100644 --- a/drivers/Makefile.am +++ b/drivers/Makefile.am @@ -170,19 +170,19 @@ USBHID_UPS_SUBDRIVERS = apc-hid.c belkin-hid.c cps-hid.c explore-hid.c \ openups-hid.c usbhid_ups_SOURCES = usbhid-ups.c libhid.c libusb.c hidparser.c \ usb-common.c $(USBHID_UPS_SUBDRIVERS) -usbhid_ups_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) +usbhid_ups_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) tripplite_usb_SOURCES = tripplite_usb.c libusb.c usb-common.c -tripplite_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) -lm +tripplite_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) -lm bcmxcp_usb_SOURCES = bcmxcp_usb.c bcmxcp.c usb-common.c -bcmxcp_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) +bcmxcp_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) blazer_usb_SOURCES = blazer.c blazer_usb.c libusb.c usb-common.c blazer_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) -lm richcomm_usb_SOURCES = richcomm_usb.c usb-common.c -richcomm_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LDFLAGS) +richcomm_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) riello_usb_SOURCES = riello.c riello_usb.c libusb.c usb-common.c riello_usb_LDADD = $(LDADD_DRIVERS) $(LIBUSB_LIBS) -lm diff --git a/m4/nut_check_libusb.m4 b/m4/nut_check_libusb.m4 index 469c2f3799..efbf18690c 100644 --- a/m4/nut_check_libusb.m4 +++ b/m4/nut_check_libusb.m4 @@ -8,28 +8,24 @@ AC_DEFUN([NUT_CHECK_LIBUSB], if test -z "${nut_have_libusb_seen}"; then nut_have_libusb_seen=yes - dnl save CFLAGS, LDFLAGS and LIBS + dnl save CFLAGS and LIBS CFLAGS_ORIG="${CFLAGS}" - LDFLAGS_ORIG="${LDFLAGS}" LIBS_ORIG="${LIBS}" AC_MSG_CHECKING(for libusb version via pkg-config) LIBUSB_VERSION="`pkg-config --silence-errors --modversion libusb 2>/dev/null`" if test "$?" = "0" -a -n "${LIBUSB_VERSION}"; then CFLAGS="`pkg-config --silence-errors --cflags libusb 2>/dev/null`" - LDFLAGS="" LIBS="`pkg-config --silence-errors --libs libusb 2>/dev/null`" else AC_MSG_CHECKING(via libusb-config) LIBUSB_VERSION="`libusb-config --version 2>/dev/null`" if test "$?" = "0" -a -n "${LIBUSB_VERSION}"; then CFLAGS="`libusb-config --cflags 2>/dev/null`" - LDFLAGS="" LIBS="`libusb-config --libs 2>/dev/null`" else LIBUSB_VERSION="none" CFLAGS="" - LDFLAGS="" LIBS="-lusb" fi fi @@ -75,12 +71,11 @@ if test -z "${nut_have_libusb_seen}"; then dnl Check for libusb "force driver unbind" availability AC_CHECK_FUNCS(usb_detach_kernel_driver_np) LIBUSB_CFLAGS="${CFLAGS}" - LIBUSB_LDFLAGS="${LDFLAGS} ${LIBS}" + LIBUSB_LIBS="${LIBS}" fi dnl restore original CFLAGS and LIBS CFLAGS="${CFLAGS_ORIG}" - LDFLAGS="${LDFLAGS_ORIG}" LIBS="${LIBS_ORIG}" fi ]) From 62ad0bf18839bb3ce5b3b9d562555f02212de5f5 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 23 May 2011 12:02:03 +0000 Subject: [PATCH 112/218] Remove useless empty directories Fossil-ID: SVN r2995 --- scripts/Windows/Installer/NUT-Installer.xml | 24 --------------------- 1 file changed, 24 deletions(-) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index 6a0a1a691e..f4eec16912 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1363,11 +1363,6 @@ Public License instead of this License. - - - - - @@ -1388,16 +1383,6 @@ Public License instead of this License. - - - - - - - - - - @@ -1405,11 +1390,6 @@ Public License instead of this License. - - - - - @@ -1832,10 +1812,6 @@ Public License instead of this License. - - - - From 6f88e4d1c25325bad96a8cfebe0924b890d76554 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 24 May 2011 08:27:25 +0000 Subject: [PATCH 113/218] nut_check_socketlib.m4 has been removed from trunk, ...but Win32 still needs it for winsock Fossil-ID: SVN r2996 --- m4/nut_check_socketlib.m4 | 213 +++++++------------------------------- 1 file changed, 39 insertions(+), 174 deletions(-) diff --git a/m4/nut_check_socketlib.m4 b/m4/nut_check_socketlib.m4 index 144c00a593..ece1d97a58 100644 --- a/m4/nut_check_socketlib.m4 +++ b/m4/nut_check_socketlib.m4 @@ -1,174 +1,39 @@ -dnl Copyright (C) 2008-2010 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl NUT_CHECK_SOCKETLIB -dnl Determines the library to use for socket functions. -dnl Sets and AC_SUBSTs NETLIBS. - -dnl This code comes from gnulib trunk (4 Nov. 2010). - -AC_DEFUN([NUT_CHECK_SOCKETLIB], -[ - NUT_PREREQ_SYS_H_SOCKET dnl for HAVE_WINSOCK2_H - NETLIBS= - if test $HAVE_WINSOCK2_H = 1; then - dnl Native Windows API (not Cygwin). - AC_CACHE_CHECK([if we need to call WSAStartup in winsock2.h and -lws2_32], - [nut_cv_func_wsastartup], [ - nut_save_LIBS="$LIBS" - LIBS="$LIBS -lws2_32" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -#ifdef HAVE_WINSOCK2_H -# include -#endif]], [[ - WORD wVersionRequested = MAKEWORD(1, 1); - WSADATA wsaData; - int err = WSAStartup(wVersionRequested, &wsaData); - WSACleanup ();]])], - nut_cv_func_wsastartup=yes, nut_cv_func_wsastartup=no) - LIBS="$nut_save_LIBS" - ]) - if test "$nut_cv_func_wsastartup" = "yes"; then - AC_DEFINE([WINDOWS_SOCKETS], [1], [Define if WSAStartup is needed.]) - NETLIBS='-lws2_32' - fi - else - dnl Unix API. - dnl Solaris has most socket functions in libsocket and libnsl. - dnl Haiku has most socket functions in libnetwork. - dnl BeOS has most socket functions in libnet. - AC_CACHE_CHECK([for library containing setsockopt], [nut_cv_lib_socket], [ - nut_cv_lib_socket= - AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern -#ifdef __cplusplus -"C" -#endif -char setsockopt();]], [[setsockopt();]])], - [], - [nut_save_LIBS="$LIBS" - LIBS="$nut_save_LIBS -lsocket" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern -#ifdef __cplusplus -"C" -#endif -char setsockopt();]], [[setsockopt();]])], - [nut_cv_lib_socket="-lsocket -lnsl"]) - if test -z "$nut_cv_lib_socket"; then - LIBS="$nut_save_LIBS -lnetwork" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern -#ifdef __cplusplus -"C" -#endif -char setsockopt();]], [[setsockopt();]])], - [nut_cv_lib_socket="-lnetwork"]) - if test -z "$nut_cv_lib_socket"; then - LIBS="$nut_save_LIBS -lnet" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern -#ifdef __cplusplus -"C" -#endif -char setsockopt();]], [[setsockopt();]])], - [nut_cv_lib_socket="-lnet"]) - fi - fi - LIBS="$nut_save_LIBS" - ]) - if test -z "$nut_cv_lib_socket"; then - nut_cv_lib_socket="none needed" - fi - ]) - if test "$nut_cv_lib_socket" != "none needed"; then - NETLIBS="$nut_cv_lib_socket" - fi - fi - AC_SUBST([NETLIBS]) -]) -dnl Copyright (C) 2008-2010 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl NUT_CHECK_SOCKETLIB -dnl Determines the library to use for socket functions. -dnl Sets and AC_SUBSTs NETLIBS. - -dnl This code comes from gnulib trunk (4 Nov. 2010). - -AC_DEFUN([NUT_CHECK_SOCKETLIB], -[ - NUT_PREREQ_SYS_H_SOCKET dnl for HAVE_WINSOCK2_H - NETLIBS= - if test $HAVE_WINSOCK2_H = 1; then - dnl Native Windows API (not Cygwin). - AC_CACHE_CHECK([if we need to call WSAStartup in winsock2.h and -lws2_32], - [nut_cv_func_wsastartup], [ - nut_save_LIBS="$LIBS" - LIBS="$LIBS -lws2_32" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -#ifdef HAVE_WINSOCK2_H -# include -#endif]], [[ - WORD wVersionRequested = MAKEWORD(1, 1); - WSADATA wsaData; - int err = WSAStartup(wVersionRequested, &wsaData); - WSACleanup ();]])], - nut_cv_func_wsastartup=yes, nut_cv_func_wsastartup=no) - LIBS="$nut_save_LIBS" - ]) - if test "$nut_cv_func_wsastartup" = "yes"; then - AC_DEFINE([WINDOWS_SOCKETS], [1], [Define if WSAStartup is needed.]) - NETLIBS='-lws2_32' - fi - else - dnl Unix API. - dnl Solaris has most socket functions in libsocket and libnsl. - dnl Haiku has most socket functions in libnetwork. - dnl BeOS has most socket functions in libnet. - AC_CACHE_CHECK([for library containing setsockopt], [nut_cv_lib_socket], [ - nut_cv_lib_socket= - AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern -#ifdef __cplusplus -"C" -#endif -char setsockopt();]], [[setsockopt();]])], - [], - [nut_save_LIBS="$LIBS" - LIBS="$nut_save_LIBS -lsocket" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern -#ifdef __cplusplus -"C" -#endif -char setsockopt();]], [[setsockopt();]])], - [nut_cv_lib_socket="-lsocket -lnsl"]) - if test -z "$nut_cv_lib_socket"; then - LIBS="$nut_save_LIBS -lnetwork" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern -#ifdef __cplusplus -"C" -#endif -char setsockopt();]], [[setsockopt();]])], - [nut_cv_lib_socket="-lnetwork"]) - if test -z "$nut_cv_lib_socket"; then - LIBS="$nut_save_LIBS -lnet" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern -#ifdef __cplusplus -"C" -#endif -char setsockopt();]], [[setsockopt();]])], - [nut_cv_lib_socket="-lnet"]) - fi - fi - LIBS="$nut_save_LIBS" - ]) - if test -z "$nut_cv_lib_socket"; then - nut_cv_lib_socket="none needed" - fi - ]) - if test "$nut_cv_lib_socket" != "none needed"; then - NETLIBS="$nut_cv_lib_socket" - fi - fi - AC_SUBST([NETLIBS]) -]) +dnl Copyright (C) 2008-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl NUT_CHECK_SOCKETLIB +dnl Determines the library to use for socket functions. +dnl Sets and AC_SUBSTs NETLIBS. + +dnl This code comes from gnulib trunk (4 Nov. 2010). + +AC_DEFUN([NUT_CHECK_SOCKETLIB], +[ + NUT_PREREQ_SYS_H_SOCKET dnl for HAVE_WINSOCK2_H + NETLIBS= + if test $HAVE_WINSOCK2_H = 1; then + dnl Native Windows API (not Cygwin). + AC_CACHE_CHECK([if we need to call WSAStartup in winsock2.h and -lws2_32], + [nut_cv_func_wsastartup], [ + nut_save_LIBS="$LIBS" + LIBS="$LIBS -lws2_32" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +#ifdef HAVE_WINSOCK2_H +# include +#endif]], [[ + WORD wVersionRequested = MAKEWORD(1, 1); + WSADATA wsaData; + int err = WSAStartup(wVersionRequested, &wsaData); + WSACleanup ();]])], + nut_cv_func_wsastartup=yes, nut_cv_func_wsastartup=no) + LIBS="$nut_save_LIBS" + ]) + if test "$nut_cv_func_wsastartup" = "yes"; then + AC_DEFINE([WINDOWS_SOCKETS], [1], [Define if WSAStartup is needed.]) + NETLIBS='-lws2_32' + fi + fi + AC_SUBST([NETLIBS]) +]) From ccb488b202d36898bb6ddfc50ba51f60501511ef Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 24 May 2011 12:32:40 +0000 Subject: [PATCH 114/218] Add files in the project's root (README, INSTALL...) Fossil-ID: SVN r2998 --- scripts/Windows/Installer/NUT-Installer.xml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index f4eec16912..e84808e7ab 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1682,6 +1682,18 @@ Public License instead of this License. + + + + + + + + + + + + @@ -1905,6 +1917,7 @@ Public License instead of this License. + From 604caa561e8d10f1fd0a257d9e29b1a855e538f4 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 24 May 2011 12:57:17 +0000 Subject: [PATCH 115/218] convert end of line to unix style Fossil-ID: SVN r2999 --- m4/nut_check_socketlib.m4 | 78 +++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/m4/nut_check_socketlib.m4 b/m4/nut_check_socketlib.m4 index ece1d97a58..8be63596de 100644 --- a/m4/nut_check_socketlib.m4 +++ b/m4/nut_check_socketlib.m4 @@ -1,39 +1,39 @@ -dnl Copyright (C) 2008-2010 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl NUT_CHECK_SOCKETLIB -dnl Determines the library to use for socket functions. -dnl Sets and AC_SUBSTs NETLIBS. - -dnl This code comes from gnulib trunk (4 Nov. 2010). - -AC_DEFUN([NUT_CHECK_SOCKETLIB], -[ - NUT_PREREQ_SYS_H_SOCKET dnl for HAVE_WINSOCK2_H - NETLIBS= - if test $HAVE_WINSOCK2_H = 1; then - dnl Native Windows API (not Cygwin). - AC_CACHE_CHECK([if we need to call WSAStartup in winsock2.h and -lws2_32], - [nut_cv_func_wsastartup], [ - nut_save_LIBS="$LIBS" - LIBS="$LIBS -lws2_32" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[ -#ifdef HAVE_WINSOCK2_H -# include -#endif]], [[ - WORD wVersionRequested = MAKEWORD(1, 1); - WSADATA wsaData; - int err = WSAStartup(wVersionRequested, &wsaData); - WSACleanup ();]])], - nut_cv_func_wsastartup=yes, nut_cv_func_wsastartup=no) - LIBS="$nut_save_LIBS" - ]) - if test "$nut_cv_func_wsastartup" = "yes"; then - AC_DEFINE([WINDOWS_SOCKETS], [1], [Define if WSAStartup is needed.]) - NETLIBS='-lws2_32' - fi - fi - AC_SUBST([NETLIBS]) -]) +dnl Copyright (C) 2008-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl NUT_CHECK_SOCKETLIB +dnl Determines the library to use for socket functions. +dnl Sets and AC_SUBSTs NETLIBS. + +dnl This code comes from gnulib trunk (4 Nov. 2010). + +AC_DEFUN([NUT_CHECK_SOCKETLIB], +[ + NUT_PREREQ_SYS_H_SOCKET dnl for HAVE_WINSOCK2_H + NETLIBS= + if test $HAVE_WINSOCK2_H = 1; then + dnl Native Windows API (not Cygwin). + AC_CACHE_CHECK([if we need to call WSAStartup in winsock2.h and -lws2_32], + [nut_cv_func_wsastartup], [ + nut_save_LIBS="$LIBS" + LIBS="$LIBS -lws2_32" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +#ifdef HAVE_WINSOCK2_H +# include +#endif]], [[ + WORD wVersionRequested = MAKEWORD(1, 1); + WSADATA wsaData; + int err = WSAStartup(wVersionRequested, &wsaData); + WSACleanup ();]])], + nut_cv_func_wsastartup=yes, nut_cv_func_wsastartup=no) + LIBS="$nut_save_LIBS" + ]) + if test "$nut_cv_func_wsastartup" = "yes"; then + AC_DEFINE([WINDOWS_SOCKETS], [1], [Define if WSAStartup is needed.]) + NETLIBS='-lws2_32' + fi + fi + AC_SUBST([NETLIBS]) +]) From 5de231d9418052bc65e08882c3b64d92463ba7d7 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 25 May 2011 07:42:08 +0000 Subject: [PATCH 116/218] merge from trunk [[SVN:2990]] to [[SVN:2997]] [[SVN:2990]] = 2011-05-19T18:34:09Z!arnaud.quette@free.fr [[SVN:2997]] = 2011-05-24T10:11:56Z!msoltyspl-guest@alioth.debian.org Fossil-ID: SVN r3000 --- drivers/blazer_usb.c | 4 ++-- drivers/usb-common.h | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/blazer_usb.c b/drivers/blazer_usb.c index cf10bfa4b4..fead3dcc7d 100644 --- a/drivers/blazer_usb.c +++ b/drivers/blazer_usb.c @@ -351,8 +351,8 @@ static void *phoenix_subdriver(USBDevice_t *device) static usb_device_id_t blazer_usb_id[] = { { USB_DEVICE(0x05b8, 0x0000), &cypress_subdriver }, /* Agiler UPS */ - { USB_DEVICE(0x0001, 0x0000), &krauler_subdriver }, /* Krauler UP-M500VA */ - { USB_DEVICE(0xffff, 0x0000), &krauler_subdriver }, /* Ablerex 625L USB */ + { 0x0001, 0x0000, &krauler_subdriver }, /* Krauler UP-M500VA */ + { 0xffff, 0x0000, &krauler_subdriver }, /* Ablerex 625L USB */ { USB_DEVICE(0x0665, 0x5161), &cypress_subdriver }, /* Belkin F6C1200-UNV */ { USB_DEVICE(0x06da, 0x0002), &cypress_subdriver }, /* Online Yunto YQ450 */ { USB_DEVICE(0x06da, 0x0003), &ippon_subdriver }, /* Mustek Powermust */ diff --git a/drivers/usb-common.h b/drivers/usb-common.h index e160e761c2..30c0889ef3 100644 --- a/drivers/usb-common.h +++ b/drivers/usb-common.h @@ -71,7 +71,10 @@ void USBFreeExactMatcher(USBDeviceMatcher_t *matcher); void USBFreeRegexMatcher(USBDeviceMatcher_t *matcher); /* dummy USB function and macro, inspired from the Linux kernel - * this allows USB information extraction */ + * this allows USB information extraction + * CAUTION: only use with *valid* device identifiers, Ie the following is not + * valid (from blazer_usb, krauler subdriver): 0x0001:0x0000 + */ #define USB_DEVICE(vendorID, productID) vendorID, productID typedef struct { From 3be1d872be0c66840fcac61f7bf8b03e3c118b11 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 25 May 2011 08:08:37 +0000 Subject: [PATCH 117/218] Converting some files to Unix-style line endings Fossil-ID: SVN r3001 --- scripts/Windows/DriverInstaller/README.txt | 2 +- scripts/Windows/DriverInstaller/nutscan-usb.h | 216 +- scripts/Windows/DriverInstaller/wdi-simple.c | 230 +- scripts/Windows/Installer/BuildInstaller.bat | 66 +- scripts/Windows/Installer/NUT-Installer.xml | 3892 ++++++++--------- scripts/Windows/Makefile.am | 62 +- scripts/Windows/wininit.c | 1256 +++--- 7 files changed, 2862 insertions(+), 2862 deletions(-) diff --git a/scripts/Windows/DriverInstaller/README.txt b/scripts/Windows/DriverInstaller/README.txt index 4f33026fa0..2ca6e5afc8 100644 --- a/scripts/Windows/DriverInstaller/README.txt +++ b/scripts/Windows/DriverInstaller/README.txt @@ -1 +1 @@ -To easily compile wdi-simple.exe, unzip a copy of libwdi on your disk, then copy wdi-simple.c and nutscan-usb.h into the "examples" subdirectory of libwdi directory. Then run ddk_build.cmd from the root of the libwdi directory. +To easily compile wdi-simple.exe, unzip a copy of libwdi on your disk, then copy wdi-simple.c and nutscan-usb.h into the "examples" subdirectory of libwdi directory. Then run ddk_build.cmd from the root of the libwdi directory. diff --git a/scripts/Windows/DriverInstaller/nutscan-usb.h b/scripts/Windows/DriverInstaller/nutscan-usb.h index 20c4fcd75e..0308dec293 100644 --- a/scripts/Windows/DriverInstaller/nutscan-usb.h +++ b/scripts/Windows/DriverInstaller/nutscan-usb.h @@ -1,108 +1,108 @@ -/* nutscan-usb - * Copyright (C) 2011 - Arnaud Quette - * - * 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 DEVSCAN_USB_H -#define DEVSCAN_USB_H - -typedef struct { - unsigned short vendorID; - unsigned short productID; - char* driver_name; -} usb_device_id_t; - -/* USB IDs device table */ -static usb_device_id_t usb_device_table[] = { - - { 0x0001, 0x0000, "blazer_usb" }, - { 0x03f0, 0x1f01, "bcmxcp_usb" }, - { 0x03f0, 0x1f02, "bcmxcp_usb" }, - { 0x03f0, 0x1f06, "usbhid-ups" }, - { 0x03f0, 0x1f08, "usbhid-ups" }, - { 0x03f0, 0x1f09, "usbhid-ups" }, - { 0x03f0, 0x1f0a, "usbhid-ups" }, - { 0x03f0, 0x1fe0, "usbhid-ups" }, - { 0x03f0, 0x1fe1, "usbhid-ups" }, - { 0x0463, 0x0001, "usbhid-ups" }, - { 0x0463, 0xffff, "usbhid-ups" }, - { 0x047c, 0xffff, "usbhid-ups" }, - { 0x050d, 0x0375, "usbhid-ups" }, - { 0x050d, 0x0551, "usbhid-ups" }, - { 0x050d, 0x0750, "usbhid-ups" }, - { 0x050d, 0x0751, "usbhid-ups" }, - { 0x050d, 0x0900, "usbhid-ups" }, - { 0x050d, 0x0910, "usbhid-ups" }, - { 0x050d, 0x0912, "usbhid-ups" }, - { 0x050d, 0x0980, "usbhid-ups" }, - { 0x050d, 0x1100, "usbhid-ups" }, - { 0x051d, 0x0002, "usbhid-ups" }, - { 0x051d, 0x0003, "usbhid-ups" }, - { 0x0592, 0x0002, "bcmxcp_usb" }, - { 0x05b8, 0x0000, "blazer_usb" }, - { 0x0665, 0x5161, "blazer_usb" }, - { 0x06da, 0x0002, "bcmxcp_usb" }, - { 0x06da, 0x0003, "blazer_usb" }, - { 0x06da, 0xffff, "usbhid-ups" }, - { 0x075d, 0x0300, "usbhid-ups" }, - { 0x0764, 0x0005, "usbhid-ups" }, - { 0x0764, 0x0501, "usbhid-ups" }, - { 0x0764, 0x0601, "usbhid-ups" }, - { 0x0925, 0x1234, "richcomm_usb" }, - { 0x09ae, 0x0001, "tripplite_usb" }, - { 0x09ae, 0x1003, "usbhid-ups" }, - { 0x09ae, 0x1007, "usbhid-ups" }, - { 0x09ae, 0x1008, "usbhid-ups" }, - { 0x09ae, 0x1009, "usbhid-ups" }, - { 0x09ae, 0x1010, "usbhid-ups" }, - { 0x09ae, 0x2005, "usbhid-ups" }, - { 0x09ae, 0x2007, "usbhid-ups" }, - { 0x09ae, 0x2008, "usbhid-ups" }, - { 0x09ae, 0x2009, "usbhid-ups" }, - { 0x09ae, 0x2010, "usbhid-ups" }, - { 0x09ae, 0x2011, "usbhid-ups" }, - { 0x09ae, 0x2012, "usbhid-ups" }, - { 0x09ae, 0x2013, "usbhid-ups" }, - { 0x09ae, 0x2014, "usbhid-ups" }, - { 0x09ae, 0x3008, "usbhid-ups" }, - { 0x09ae, 0x3009, "usbhid-ups" }, - { 0x09ae, 0x3010, "usbhid-ups" }, - { 0x09ae, 0x3011, "usbhid-ups" }, - { 0x09ae, 0x3012, "usbhid-ups" }, - { 0x09ae, 0x3013, "usbhid-ups" }, - { 0x09ae, 0x3014, "usbhid-ups" }, - { 0x09ae, 0x3015, "usbhid-ups" }, - { 0x09ae, 0x4001, "usbhid-ups" }, - { 0x09ae, 0x4002, "usbhid-ups" }, - { 0x09ae, 0x4003, "usbhid-ups" }, - { 0x09ae, 0x4004, "usbhid-ups" }, - { 0x09ae, 0x4005, "usbhid-ups" }, - { 0x09ae, 0x4006, "usbhid-ups" }, - { 0x09ae, 0x4007, "usbhid-ups" }, - { 0x09ae, 0x4008, "usbhid-ups" }, - { 0x0d9f, 0x00a2, "usbhid-ups" }, - { 0x0d9f, 0x00a3, "usbhid-ups" }, - { 0x0d9f, 0x00a4, "usbhid-ups" }, - { 0x0d9f, 0x00a5, "usbhid-ups" }, - { 0x0d9f, 0x00a6, "usbhid-ups" }, - { 0x0f03, 0x0001, "blazer_usb" }, - { 0x10af, 0x0001, "usbhid-ups" }, - { 0xffff, 0x0000, "blazer_usb" }, - /* Terminating entry */ - { -1, -1, NULL } -}; -#endif /* DEVSCAN_USB_H */ - +/* nutscan-usb + * Copyright (C) 2011 - Arnaud Quette + * + * 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 DEVSCAN_USB_H +#define DEVSCAN_USB_H + +typedef struct { + unsigned short vendorID; + unsigned short productID; + char* driver_name; +} usb_device_id_t; + +/* USB IDs device table */ +static usb_device_id_t usb_device_table[] = { + + { 0x0001, 0x0000, "blazer_usb" }, + { 0x03f0, 0x1f01, "bcmxcp_usb" }, + { 0x03f0, 0x1f02, "bcmxcp_usb" }, + { 0x03f0, 0x1f06, "usbhid-ups" }, + { 0x03f0, 0x1f08, "usbhid-ups" }, + { 0x03f0, 0x1f09, "usbhid-ups" }, + { 0x03f0, 0x1f0a, "usbhid-ups" }, + { 0x03f0, 0x1fe0, "usbhid-ups" }, + { 0x03f0, 0x1fe1, "usbhid-ups" }, + { 0x0463, 0x0001, "usbhid-ups" }, + { 0x0463, 0xffff, "usbhid-ups" }, + { 0x047c, 0xffff, "usbhid-ups" }, + { 0x050d, 0x0375, "usbhid-ups" }, + { 0x050d, 0x0551, "usbhid-ups" }, + { 0x050d, 0x0750, "usbhid-ups" }, + { 0x050d, 0x0751, "usbhid-ups" }, + { 0x050d, 0x0900, "usbhid-ups" }, + { 0x050d, 0x0910, "usbhid-ups" }, + { 0x050d, 0x0912, "usbhid-ups" }, + { 0x050d, 0x0980, "usbhid-ups" }, + { 0x050d, 0x1100, "usbhid-ups" }, + { 0x051d, 0x0002, "usbhid-ups" }, + { 0x051d, 0x0003, "usbhid-ups" }, + { 0x0592, 0x0002, "bcmxcp_usb" }, + { 0x05b8, 0x0000, "blazer_usb" }, + { 0x0665, 0x5161, "blazer_usb" }, + { 0x06da, 0x0002, "bcmxcp_usb" }, + { 0x06da, 0x0003, "blazer_usb" }, + { 0x06da, 0xffff, "usbhid-ups" }, + { 0x075d, 0x0300, "usbhid-ups" }, + { 0x0764, 0x0005, "usbhid-ups" }, + { 0x0764, 0x0501, "usbhid-ups" }, + { 0x0764, 0x0601, "usbhid-ups" }, + { 0x0925, 0x1234, "richcomm_usb" }, + { 0x09ae, 0x0001, "tripplite_usb" }, + { 0x09ae, 0x1003, "usbhid-ups" }, + { 0x09ae, 0x1007, "usbhid-ups" }, + { 0x09ae, 0x1008, "usbhid-ups" }, + { 0x09ae, 0x1009, "usbhid-ups" }, + { 0x09ae, 0x1010, "usbhid-ups" }, + { 0x09ae, 0x2005, "usbhid-ups" }, + { 0x09ae, 0x2007, "usbhid-ups" }, + { 0x09ae, 0x2008, "usbhid-ups" }, + { 0x09ae, 0x2009, "usbhid-ups" }, + { 0x09ae, 0x2010, "usbhid-ups" }, + { 0x09ae, 0x2011, "usbhid-ups" }, + { 0x09ae, 0x2012, "usbhid-ups" }, + { 0x09ae, 0x2013, "usbhid-ups" }, + { 0x09ae, 0x2014, "usbhid-ups" }, + { 0x09ae, 0x3008, "usbhid-ups" }, + { 0x09ae, 0x3009, "usbhid-ups" }, + { 0x09ae, 0x3010, "usbhid-ups" }, + { 0x09ae, 0x3011, "usbhid-ups" }, + { 0x09ae, 0x3012, "usbhid-ups" }, + { 0x09ae, 0x3013, "usbhid-ups" }, + { 0x09ae, 0x3014, "usbhid-ups" }, + { 0x09ae, 0x3015, "usbhid-ups" }, + { 0x09ae, 0x4001, "usbhid-ups" }, + { 0x09ae, 0x4002, "usbhid-ups" }, + { 0x09ae, 0x4003, "usbhid-ups" }, + { 0x09ae, 0x4004, "usbhid-ups" }, + { 0x09ae, 0x4005, "usbhid-ups" }, + { 0x09ae, 0x4006, "usbhid-ups" }, + { 0x09ae, 0x4007, "usbhid-ups" }, + { 0x09ae, 0x4008, "usbhid-ups" }, + { 0x0d9f, 0x00a2, "usbhid-ups" }, + { 0x0d9f, 0x00a3, "usbhid-ups" }, + { 0x0d9f, 0x00a4, "usbhid-ups" }, + { 0x0d9f, 0x00a5, "usbhid-ups" }, + { 0x0d9f, 0x00a6, "usbhid-ups" }, + { 0x0f03, 0x0001, "blazer_usb" }, + { 0x10af, 0x0001, "usbhid-ups" }, + { 0xffff, 0x0000, "blazer_usb" }, + /* Terminating entry */ + { -1, -1, NULL } +}; +#endif /* DEVSCAN_USB_H */ + diff --git a/scripts/Windows/DriverInstaller/wdi-simple.c b/scripts/Windows/DriverInstaller/wdi-simple.c index ad8567fd38..57e170d348 100644 --- a/scripts/Windows/DriverInstaller/wdi-simple.c +++ b/scripts/Windows/DriverInstaller/wdi-simple.c @@ -1,115 +1,115 @@ -/* - wdi-simple.c: Console Driver Installer for NUT USB devices - Copyright (c) 2010 Pete Batard - Copyright (c) 2011 Frederic Bohe - - 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 -*/ - -#include -#include -#include -#ifdef _MSC_VER -#include "getopt/getopt.h" -#else -#include -#endif -#include "libwdi.h" -#include "nutscan-usb.h" - -#define oprintf(...) do {if (!opt_silent) printf(__VA_ARGS__);} while(0) - -#define DESC "NUT USB driver" -#define INF_NAME "usb_device.inf" -#define DEFAULT_DIR "usb_driver" - - -int __cdecl main(int argc, char** argv) -{ - char desc[128] = DESC; - struct wdi_device_info *ldev, *ldev_start, dev = {NULL, 0, 0, false, 0, DESC, NULL, NULL, NULL}; - struct wdi_options_create_list ocl = { 0 }; - struct wdi_options_prepare_driver opd = { 0 }; - struct wdi_options_install_driver oid = { 0 }; - int c, r; - int opt_silent = 0, opt_extract = 0, log_level = WDI_LOG_LEVEL_WARNING; -// int opt_silent = 0, opt_extract = 0, log_level = WDI_LOG_LEVEL_DEBUG; - char *inf_name = INF_NAME; - char *ext_dir = DEFAULT_DIR; - bool matching_device_found; - int index = 0; - - ocl.list_all = true; - ocl.list_hubs = true; - ocl.trim_whitespaces = true; - opd.driver_type = WDI_LIBUSB0; -// opd.driver_type = WDI_WINUSB; - - wdi_set_log_level(log_level); - - oprintf("NUT UPS driver installer.\n"); - oprintf("-------------------------\n\n"); - oprintf("Searching for known UPS...\n"); - - // Try to match against a plugged device - matching_device_found = false; - if (wdi_create_list(&ldev, &ocl) == WDI_SUCCESS) { - r = WDI_SUCCESS; - ldev_start = ldev; - while( usb_device_table[index].vendorID != 0xFFFF || usb_device_table[index].productID != 0xFFFF) { - dev.next = NULL; - dev.vid = usb_device_table[index].vendorID; - dev.pid = usb_device_table[index].productID; - dev.is_composite = false; - dev.mi = 0; - dev.desc = desc; - dev.driver = NULL; - dev.device_id = NULL; - dev.hardware_id = NULL; -// oprintf("NUT device : vid : %0X - pid : %0X\n",dev.vid, dev.pid); - - for (ldev = ldev_start; (ldev != NULL) && (r == WDI_SUCCESS); ldev = ldev->next) { -// oprintf("trying vid : %0X - pid : %0X\n",ldev->vid, ldev->pid); - if ( (ldev->vid == dev.vid) && (ldev->pid == dev.pid) && (ldev->mi == dev.mi) ) { - oprintf("Found UPS : vendor ID = %0X - Product ID = %0X\n",ldev->vid, ldev->pid, ldev->mi); - dev.hardware_id = ldev->hardware_id; - dev.device_id = ldev->device_id; - matching_device_found = true; - - oprintf("Extracting driver files...\n"); - r = wdi_prepare_driver(&dev, ext_dir, inf_name, &opd); - oprintf(" %s\n", wdi_strerror(r)); - if ((r != WDI_SUCCESS) || (opt_extract)) - return r; - - oprintf(" %s: ", dev.hardware_id); - fflush(stdout); - oprintf("Installing driver\n"); - r = wdi_install_driver(&dev, ext_dir, inf_name, &oid); - oprintf("%s\n", wdi_strerror(r)); - } - } - index++; - } - } - - // No plugged USB device matches - if (!matching_device_found) { - oprintf("No known UPS device found.\nTry installing libUSB manually.\nHit a key to continue\n"); - getc(stdin); - } - - return r; -} +/* + wdi-simple.c: Console Driver Installer for NUT USB devices + Copyright (c) 2010 Pete Batard + Copyright (c) 2011 Frederic Bohe + + 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 +*/ + +#include +#include +#include +#ifdef _MSC_VER +#include "getopt/getopt.h" +#else +#include +#endif +#include "libwdi.h" +#include "nutscan-usb.h" + +#define oprintf(...) do {if (!opt_silent) printf(__VA_ARGS__);} while(0) + +#define DESC "NUT USB driver" +#define INF_NAME "usb_device.inf" +#define DEFAULT_DIR "usb_driver" + + +int __cdecl main(int argc, char** argv) +{ + char desc[128] = DESC; + struct wdi_device_info *ldev, *ldev_start, dev = {NULL, 0, 0, false, 0, DESC, NULL, NULL, NULL}; + struct wdi_options_create_list ocl = { 0 }; + struct wdi_options_prepare_driver opd = { 0 }; + struct wdi_options_install_driver oid = { 0 }; + int c, r; + int opt_silent = 0, opt_extract = 0, log_level = WDI_LOG_LEVEL_WARNING; +// int opt_silent = 0, opt_extract = 0, log_level = WDI_LOG_LEVEL_DEBUG; + char *inf_name = INF_NAME; + char *ext_dir = DEFAULT_DIR; + bool matching_device_found; + int index = 0; + + ocl.list_all = true; + ocl.list_hubs = true; + ocl.trim_whitespaces = true; + opd.driver_type = WDI_LIBUSB0; +// opd.driver_type = WDI_WINUSB; + + wdi_set_log_level(log_level); + + oprintf("NUT UPS driver installer.\n"); + oprintf("-------------------------\n\n"); + oprintf("Searching for known UPS...\n"); + + // Try to match against a plugged device + matching_device_found = false; + if (wdi_create_list(&ldev, &ocl) == WDI_SUCCESS) { + r = WDI_SUCCESS; + ldev_start = ldev; + while( usb_device_table[index].vendorID != 0xFFFF || usb_device_table[index].productID != 0xFFFF) { + dev.next = NULL; + dev.vid = usb_device_table[index].vendorID; + dev.pid = usb_device_table[index].productID; + dev.is_composite = false; + dev.mi = 0; + dev.desc = desc; + dev.driver = NULL; + dev.device_id = NULL; + dev.hardware_id = NULL; +// oprintf("NUT device : vid : %0X - pid : %0X\n",dev.vid, dev.pid); + + for (ldev = ldev_start; (ldev != NULL) && (r == WDI_SUCCESS); ldev = ldev->next) { +// oprintf("trying vid : %0X - pid : %0X\n",ldev->vid, ldev->pid); + if ( (ldev->vid == dev.vid) && (ldev->pid == dev.pid) && (ldev->mi == dev.mi) ) { + oprintf("Found UPS : vendor ID = %0X - Product ID = %0X\n",ldev->vid, ldev->pid, ldev->mi); + dev.hardware_id = ldev->hardware_id; + dev.device_id = ldev->device_id; + matching_device_found = true; + + oprintf("Extracting driver files...\n"); + r = wdi_prepare_driver(&dev, ext_dir, inf_name, &opd); + oprintf(" %s\n", wdi_strerror(r)); + if ((r != WDI_SUCCESS) || (opt_extract)) + return r; + + oprintf(" %s: ", dev.hardware_id); + fflush(stdout); + oprintf("Installing driver\n"); + r = wdi_install_driver(&dev, ext_dir, inf_name, &oid); + oprintf("%s\n", wdi_strerror(r)); + } + } + index++; + } + } + + // No plugged USB device matches + if (!matching_device_found) { + oprintf("No known UPS device found.\nTry installing libUSB manually.\nHit a key to continue\n"); + getc(stdin); + } + + return r; +} diff --git a/scripts/Windows/Installer/BuildInstaller.bat b/scripts/Windows/Installer/BuildInstaller.bat index efc3f28489..9c8d7735d1 100644 --- a/scripts/Windows/Installer/BuildInstaller.bat +++ b/scripts/Windows/Installer/BuildInstaller.bat @@ -1,33 +1,33 @@ -::This script can be used to Create and Build NUT installer using WiX. - -@echo off - -SET BATDIR=%~dp0 -cd /d %BATDIR% - -SET MSYS_BIN_DIR=c:\mingw\msys\1.0\bin\ -SET MINGW_BIN_DIR=c:\mingw\bin\ -SET NUT-XML-FILE=NUT-Installer.xml -SET wixobjName=NUT-Installer.wixobj -SET msiPackageName=NUT-Installer.msi - -REM copy DLL files from system -copy /Y %MSYS_BIN_DIR%msys-1.0.dll .\ImageFiles\Others -copy /Y %MSYS_BIN_DIR%msys-crypto-1.0.0.dll .\ImageFiles\Others -copy /Y %MSYS_BIN_DIR%msys-ssl-1.0.0.dll .\ImageFiles\Others -copy /Y %MINGW_BIN_DIR%libgnurx-0.dll .\ImageFiles\Others - -REM use "candle.exe" to create the "object" file -candle.exe "%NUT-XML-FILE%" -out "%wixobjName%" >"log.txt" -@echo ========================================================= -@echo Please wait as MSI package creation in progress... - -@echo off -REM use "light.exe" to create the "MSi" package -light.exe "%wixobjName%" -out "%msiPackageName%" >>"log.txt" - -@echo ========================================================= -@echo MSI package "%msiPackageName%" complete -@echo ========================================================= -@echo Check output file "log.txt" for status of completion... -@echo ========================================================= +::This script can be used to Create and Build NUT installer using WiX. + +@echo off + +SET BATDIR=%~dp0 +cd /d %BATDIR% + +SET MSYS_BIN_DIR=c:\mingw\msys\1.0\bin\ +SET MINGW_BIN_DIR=c:\mingw\bin\ +SET NUT-XML-FILE=NUT-Installer.xml +SET wixobjName=NUT-Installer.wixobj +SET msiPackageName=NUT-Installer.msi + +REM copy DLL files from system +copy /Y %MSYS_BIN_DIR%msys-1.0.dll .\ImageFiles\Others +copy /Y %MSYS_BIN_DIR%msys-crypto-1.0.0.dll .\ImageFiles\Others +copy /Y %MSYS_BIN_DIR%msys-ssl-1.0.0.dll .\ImageFiles\Others +copy /Y %MINGW_BIN_DIR%libgnurx-0.dll .\ImageFiles\Others + +REM use "candle.exe" to create the "object" file +candle.exe "%NUT-XML-FILE%" -out "%wixobjName%" >"log.txt" +@echo ========================================================= +@echo Please wait as MSI package creation in progress... + +@echo off +REM use "light.exe" to create the "MSi" package +light.exe "%wixobjName%" -out "%msiPackageName%" >>"log.txt" + +@echo ========================================================= +@echo MSI package "%msiPackageName%" complete +@echo ========================================================= +@echo Check output file "log.txt" for status of completion... +@echo ========================================================= diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index e84808e7ab..b5361ad037 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1,1947 +1,1947 @@ - - - - - - - - - - - - - - - - - - - - - - - - If the automatic USB driver installation fails, you can try to install a driver manually. For this go to : - -https://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/ - -After installling libusb-win32, run libUSB's Inf Wizard and choose your device. - - - Click Next to continue [Wizard]. - - - - - - If you use a USB UPS, please plug it in now, so that we can try to install the relevant driver. - - - - - - - - - - - - - - - - - - - [DlgTitleFont][ProductName] installs the following libraries, location of licenses are - - - - Click Next to continue [Wizard]. - - - - 1. msys-1.0.dll - http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/msys-core/msys-1.0.16-1/ - - - 2. msys-ssl-1.0.0.dll and msys-crypto-1.0.0.dll - http://sourceforge.net/projects/mingw/files/MSYS/openssl/openssl-1.0.0-1/ - - - 3. libgnurx-0.dll - http://sourceforge.net/projects/mingw/files/UserContributed/regex/mingw-regex-2.5.1/ - - - - - - - - - - - - - Click the Finish button to exit the [Wizard]. - - - {\VerdanaBold13}Completing the [ProductName] [Wizard] - - - - - - - - - - - - {\VerdanaBold13}[ProductName] [Wizard] ended prematurely - - - [ProductName] setup ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again. - - - Click the Finish button to exit the [Wizard]. - - - - - - - - - - Please wait while the [Wizard] prepares to guide you through the installation. - - - {\VerdanaBold13}Welcome to the [ProductName] [Wizard] - - - - - - - - - - - - - - - - - - Please wait while the [Wizard] [Progress2] [ProductName]. This may take several minutes. - - - - [DlgTitleFont][Progress1] [ProductName] - - - - - - - - - - - - - - - - - - - - {\VerdanaBold13}[ProductName] [Wizard] was interrupted - - - [ProductName] setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again. - - - Click the Finish button to exit the [Wizard]. - - - - - - - - - - - - - - - - - - - - - - - - - - - Browse to the destination folder - - - [DlgTitleFont]Change current destination folder - - - - - - - - - - - - - - - - Are you sure you want to cancel [ProductName] installation? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The following applications are using files that need to be updated by this setup. Close these applications and then click Retry to continue the installation or Cancel to exit it. - - - - Some files that need to be updated are currently in use. - - - [DlgTitleFont]Files in Use - - - - - - - - - - - "Yes"]]> - - - - - - - - - {\rtf1\ansi\ansicpg1252\deff0\deftab720 - {\fonttbl{\f0\froman\fprq2 Times New Roman;}} - {\colortbl\red0\green0\blue0;} - \deflang1033\horzdoc{\*\fchars }{\*\lchars } - \pard\plain\f0\fs18 \par - GNU GENERAL PUBLIC LICENSE \par - Version 2, June 1991 - \par \par -Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. \par - - Preamble \par -The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. \par - -\par -When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - \par -To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - \par - \par -For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their rights. - \par - \par -We protect your rights with two steps: -\par (1) copyright the software, and -\par (2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - \par - \par -Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - \par - \par -Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - \par - \par -The precise terms and conditions for copying, distribution and -modification follow. - \par - \par - GNU GENERAL PUBLIC LICENSE - \par \par - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - \par \par - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - \par \par - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - \par \par - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - \par \par -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - \par \par - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - \par \par - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - \par \par - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - \par \par - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - \par \par -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - \par \par -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - \par \par -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - \par \par - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - \par \par - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - \par \par - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - \par \par - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - \par \par -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - \par \par -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - \par \par - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - \par \par - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - \par \par - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - \par \par - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - \par \par -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - \par \par -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - \par \par -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - \par \par - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - \par \par - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - \par \par -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - \par \par - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - \par \par - NO WARRANTY - \par \par - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - \par \par - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - \par \par - END OF TERMS AND CONDITIONS - \par \par - How to Apply These Terms to Your New Programs - \par \par - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - \par \par - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - \par \par - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - \par \par - 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. - \par \par - 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. - \par \par - 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., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - \par \par -Also add information on how to contact you by electronic and paper mail. - \par \par -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - \par \par - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - \par -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - \par \par -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - \par \par - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - \par \par - <signature of Ty Coon>, 1 April 1989 - \par - Ty Coon, President of Vice - \par \par -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. - \par \par - - } - - - - - - - - [DlgTitleFont]Re&pair - - - - - - - - - [DlgTitleFont]&Remove - - - - - - - - - - - - - - - - - - - Select the operation you wish to perform. - - - [DlgTitleFont]Repair or Remove installation - - - Removes [ProductName] from your computer. - - - Repairs errors in the most recent installation state - fixes missing or corrupt files, shortcuts and registry entries. - - - - - - - - - - - - - - - The [Wizard] will allow you to change the way [ProductName] features are installed on your computer or even to remove [ProductName] from your computer. Click Next to continue or Cancel to exit the [Wizard]. - - - {\VerdanaBold13}Welcome to the [ProductName] [Wizard] - - - - - 1]]> - - - - - - - - - - - The [Wizard] will complete the installation of [ProductName] on your computer. Click Install to continue or Cancel to exit the [Wizard]. - - - {\VerdanaBold13}Resuming the [ProductName] [Wizard] - - - - - 1]]> - - - - - - - - - - - - - Click Install to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. - - - - The [Wizard] is ready to begin the [InstallMode] installation - - - [DlgTitleFont]Ready to Install - - - - - - - - - 1]]> - 1]]> - - - - - - - - - - Click Remove to remove [ProductName] from your computer. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. - - - - You have chosen to remove the program from your computer. - - - [DlgTitleFont]Remove [ProductName] - - - - - - 1]]> - 1]]> - 1]]> - - - - - - - - - - - - - Click Repair to repair the installation of [ProductName]. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. - - - - The [Wizard] is ready to begin the repair of [ProductName]. - - - [DlgTitleFont]Repair [ProductName] - - - - - - - - - - - - - - - - The [Wizard] will install [ProductName] on your computer. Click Next to continue or Cancel to exit the [Wizard]. - - - {\VerdanaBold13}Welcome to the [ProductName] [Wizard] - - - - - - - - - - - bytes - GB - KB - MB - Entire feature will be unavailable - Feature will be installed when required - Entire feature will be installed to run from CD - Entire feature will be installed on local hard drive - Entire feature will be installed to run from network - Will be installed to run from CD - Will be installed on local hard drive - Will be installed to run from network - Gathering required information... - This feature will remain uninstalled - This feature will be set to be installed when required - This feature will be installed to run from CD - This feature will be installed on the local hard drive - This feature will be installed to run from the network - This feature will become unavailable - Will be installed when required - This feature will be available to run from CD - This feature will be installed on your local hard drive - This feature will be available to run from the network - This feature will be uninstalled completely, you won't be able to run it from CD - This feature will change from run from CD state to set to be installed when required - This feature will remain to be run from CD - This feature will change from run from CD state to be installed on the local hard drive - This feature frees up [1] on your hard drive. - This feature requires [1] on your hard drive. - Compiling cost for this feature... - This feature will be completely removed - This feature will be removed from your local hard drive, but will be set to be installed when required - This feature will be removed from your local hard drive, but will be still available to run from CD - This feature will remain on you local hard drive - This feature will be removed from your local hard drive, but will be still available to run from the network - This feature will be uninstalled completely, you won't be able to run it from the network - This feature will change from run from network state to set to be installed when required - This feature will change from run from network state to be installed on the local hard drive - This feature will remain to be run from the network - This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive. - This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive. - This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive. - This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive. - Time remaining: {[1] minutes }{[2] seconds} - Available - Difference - Required - Disk Size - Volume - Validating install - Copying new files - Copying network install files - Computing space requirements - Computing space requirements - Computing space requirements - Creating shortcuts - Publishing Qualified Components - Publishing Product Features - Publishing product information - Registering Class servers - Registering extension servers - Registering MIME info - Registering program identifiers - Allocating registry space - Searching for installed applications - Binding executables - Searching for qualifying products - Creating folders - Deleting services - Creating duplicate files - Searching for related applications - Installing ODBC components - Installing new services - Evaluating launch conditions - Migrating feature states from related applications - Moving files - Patching files - Updating component registration - Registering COM+ Applications and Components - Registering fonts - Registering product - Registering type libraries - Registering user - Removing duplicated files - Updating environment strings - Removing applications - Removing files - Removing folders - Removing INI files entries - Removing ODBC components - Removing system registry values - Removing shortcuts - Searching for qualifying products - Registering modules - Unregistering modules - Initializing ODBC directories - Starting services - Stopping services - Unpublishing Qualified Components - Unpublishing Product Features - Unregister Class servers - Unregistering COM+ Applications and Components - Unregistering extension servers - Unregistering fonts - Unregistering MIME info - Unregistering program identifiers - Unregistering type libraries - Updating environment strings - Writing INI files values - Writing system registry values - Advertising application - Generating script operations for action: - Installing system catalog - Publishing assembly information - Unpublishing assembly information - Rolling back action: - Removing backup files - Removing moved files - Unpublishing product information - {{Fatal error: }} - {{Error [1]. }} - Warning [1]. - - Info [1]. - The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}} - - {{Disk full: }} - Action [Time]: [1]. [2] - [ProductName] - {[2]}{, [3]}{, [4]} - Message type: [1], Argument: [2] - === Logging started: [Date] [Time] === - === Logging stopped: [Date] [Time] === - Action start [Time]: [1]. - Action ended [Time]: [1]. Return value [2]. - Time remaining: {[1] minutes }{[2] seconds} - Out of memory. Shut down other applications before retrying. - Installer is no longer responding. - Installer stopped prematurely. - Please wait while Windows configures [ProductName] - Gathering required information... - Removing older versions of this application... - Preparing to remove older versions of this application... - {[ProductName] }Setup completed successfully. - {[ProductName] }Setup failed. - Error reading from file: [2]. {{ System error [3].}} Verify that the file exists and that you can access it. - Cannot create the file '[2]'. A directory with this name already exists. Cancel the install and try installing to a different location. - Please insert the disk: [2] - The installer has insufficient privileges to access this directory: [2]. The installation cannot continue. Log on as administrator or contact your system administrator. - Error writing to file: [2]. Verify that you have access to that directory. - Error reading from file [2]. {{ System error [3].}} Verify that the file exists and that you can access it. - Another application has exclusive access to the file '[2]'. Please shut down all other applications, then click Retry. - There is not enough disk space to install this file: [2]. Free some disk space and click Retry, or click Cancel to exit. - Source file not found: [2]. Verify that the file exists and that you can access it. - Error reading from file: [3]. {{ System error [2].}} Verify that the file exists and that you can access it. - Error writing to file: [3]. {{ System error [2].}} Verify that you have access to that directory. - Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it. - Cannot create the directory '[2]'. A file with this name already exists. Please rename or remove the file and click retry, or click Cancel to exit. - The volume [2] is currently unavailable. Please select another. - The specified path '[2]' is unavailable. - Unable to write to the specified folder: [2]. - A network error occurred while attempting to read from the file: [2] - An error occurred while attempting to create the directory: [2] - A network error occurred while attempting to create the directory: [2] - A network error occurred while attempting to open the source file cabinet: [2] - The specified path is too long: [2] - The Installer has insufficient privileges to modify this file: [2]. - A portion of the folder path '[2]' is invalid. It is either empty or exceeds the length allowed by the system. - The folder path '[2]' contains words that are not valid in folder paths. - The folder path '[2]' contains an invalid character. - '[2]' is not a valid short file name. - Error getting file security: [3] GetLastError: [2] - Invalid Drive: [2] - Error applying patch to file [2]. It has probably been updated by other means, and can no longer be modified by this patch. For more information contact your patch vendor. {{System Error: [3]}} - A file that is required cannot be installed because the cabinet file [2] is not digitally signed. This may indicate that the cabinet file is corrupt. - A file that is required cannot be installed because the cabinet file [2] has an invalid digital signature. This may indicate that the cabinet file is corrupt.{{ Error [3] was returned by WinVerifyTrust.}} - Failed to correctly copy [2] file: CRC error. - Failed to correctly move [2] file: CRC error. - Failed to correctly patch [2] file: CRC error. - The file '[2]' cannot be installed because the file cannot be found in cabinet file '[3]'. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package. - The cabinet file '[2]' required for this installation is corrupt and cannot be used. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package. - There was an error creating a temporary file that is needed to complete this installation.{{ Folder: [3]. System error code: [2]}} - Could not create key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not open key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not delete value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not delete key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not read value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not write value [2] to key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not get value names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not get sub key names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not read security information for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not increase the available registry space. [2] KB of free registry space is required for the installation of this application. - Another installation is in progress. You must complete that installation before continuing this one. - Error accessing secured data. Please make sure the Windows Installer is configured properly and try the install again. - User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product. Your current install will now continue. - User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product. - Out of disk space -- Volume: '[2]'; required space: [3] KB; available space: [4] KB. Free some disk space and retry. - Are you sure you want to cancel? - The file [2][3] is being held in use{ by the following process: Name: [4], Id: [5], Window Title: '[6]'}. Close that application and retry. - The product '[2]' is already installed, preventing the installation of this product. The two products are incompatible. - There is not enough disk space on the volume '[2]' to continue the install with recovery enabled. [3] KB are required, but only [4] KB are available. Click Ignore to continue the install without saving recovery information, click Retry to check for available space again, or click Cancel to quit the installation. - Could not access network location [2]. - The following applications should be closed before continuing the install: - Could not find any previously installed compliant products on the machine for installing this product. - An error occurred while applying security settings. [2] is not a valid user or group. This could be a problem with the package, or a problem connecting to a domain controller on the network. Check your network connection and click Retry, or Cancel to end the install. {{Unable to locate the user's SID, system error [3]}} - The key [2] is not valid. Verify that you entered the correct key. - The installer must restart your system before configuration of [2] can continue. Click Yes to restart now or No if you plan to manually restart later. - You must restart your system for the configuration changes made to [2] to take effect. Click Yes to restart now or No if you plan to manually restart later. - An installation for [2] is currently suspended. You must undo the changes made by that installation to continue. Do you want to undo those changes? - A previous installation for this product is in progress. You must undo the changes made by that installation to continue. Do you want to undo those changes? - An installation package for the product [2] cannot be found. Try the installation again using a valid copy of the installation package '[3]'. - Installation completed successfully. - Installation failed. - Product: [2] -- [3] - You may either restore your computer to its previous state or continue the install later. Would you like to restore? - An error occurred while writing installation information to disk. Check to make sure enough disk space is available, and click Retry, or Cancel to end the install. - One or more of the files required to restore your computer to its previous state could not be found. Restoration will not be possible. - [2] cannot install one of its required products. Contact your technical support group. {{System Error: [3].}} - The older version of [2] cannot be removed. Contact your technical support group. {{System Error [3].}} - Installed [2] - Configured [2] - Removed [2] - File [2] was rejected by digital signature policy. - The Windows Installer Service could not be accessed. This can occur if you are running Windows in safe mode, or if the Windows Installer is not correctly installed. Contact your support personnel for assistance. - There is a problem with this Windows Installer package. A script required for this install to complete could not be run. Contact your support personnel or package vendor. {{Custom action [2] script error [3], [4]: [5] Line [6], Column [7], [8] }} - There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action: [2], location: [3], command: [4] }} - There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor. {{Action [2], location: [3], command: [4] }} - There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action [2], entry: [3], library: [4] }} - Removal completed successfully. - Removal failed. - Advertisement completed successfully. - Advertisement failed. - Configuration completed successfully. - Configuration failed. - You must be an Administrator to remove this application. To remove this application, you can log on as an Administrator, or contact your technical support group for assistance. - The path [2] is not valid. Please specify a valid path. - Out of memory. Shut down other applications before retrying. - There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to go back to the previously selected volume. - There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to return to the browse dialog and select a different volume. - The folder [2] does not exist. Please enter a path to an existing folder. - You have insufficient privileges to read this folder. - A valid destination folder for the install could not be determined. - Error attempting to read from the source install database: [2]. - Scheduling reboot operation: Renaming file [2] to [3]. Must reboot to complete operation. - Scheduling reboot operation: Deleting file [2]. Must reboot to complete operation. - Module [2] failed to register. HRESULT [3]. Contact your support personnel. - Module [2] failed to unregister. HRESULT [3]. Contact your support personnel. - Failed to cache package [2]. Error: [3]. Contact your support personnel. - Could not register font [2]. Verify that you have sufficient permissions to install fonts, and that the system supports this font. - Could not unregister font [2]. Verify that you that you have sufficient permissions to remove fonts. - Could not create Shortcut [2]. Verify that the destination folder exists and that you can access it. - Could not remove Shortcut [2]. Verify that the shortcut file exists and that you can access it. - Could not register type library for file [2]. Contact your support personnel. - Could not unregister type library for file [2]. Contact your support personnel. - Could not update the ini file [2][3]. Verify that the file exists and that you can access it. - Could not schedule file [2] to replace file [3] on reboot. Verify that you have write permissions to file [3]. - Error removing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel. - Error installing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel. - Error removing ODBC driver: [4], ODBC error [2]: [3]. Verify that you have sufficient privileges to remove ODBC drivers. - Error installing ODBC driver: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it. - Error configuring ODBC data source: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it. - Service '[2]' ([3]) failed to start. Verify that you have sufficient privileges to start system services. - Service '[2]' ([3]) could not be stopped. Verify that you have sufficient privileges to stop system services. - Service '[2]' ([3]) could not be deleted. Verify that you have sufficient privileges to remove system services. - Service '[2]' ([3]) could not be installed. Verify that you have sufficient privileges to install system services. - Could not update environment variable '[2]'. Verify that you have sufficient privileges to modify environment variables. - You do not have sufficient privileges to complete this installation for all users of the machine. Log on as administrator and then retry this installation. - Could not set file security for file '[3]'. Error: [2]. Verify that you have sufficient privileges to modify the security permissions for this file. - Component Services (COM+ 1.0) are not installed on this computer. This installation requires Component Services in order to complete successfully. Component Services are available on Windows 2000. - Error registering COM+ Application. Contact your support personnel for more information. - Error unregistering COM+ Application. Contact your support personnel for more information. - The description for service '[2]' ([3]) could not be changed. - The Windows Installer service cannot update the system file [2] because the file is protected by Windows. You may need to update your operating system for this program to work correctly. {{Package version: [3], OS Protected version: [4]}} - The Windows Installer service cannot update the protected Windows file [2]. {{Package version: [3], OS Protected version: [4], SFP Error: [5]}} - The Windows Installer service cannot update one or more protected Windows files. {{SFP Error: [2]. List of protected files:\r\n[3]}} - User installations are disabled via policy on the machine. - An error occured during the installation of assembly component [2]. HRESULT: [3]. {{assembly interface: [4], function: [5], assembly name: [6]}} - - TARGETDIR="" - - - - - - - - - - - - - - - TARGETDIR="" - - - - - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - @@@@@]]> - - - - - - - - - - - TARGETDIR="" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TARGETDIR="" - - - - - - - LIBUSBINSTALL=1 - - + + + + + + + + + + + + + + + + + + + + + + + + If the automatic USB driver installation fails, you can try to install a driver manually. For this go to : + +https://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/ + +After installling libusb-win32, run libUSB's Inf Wizard and choose your device. + + + Click Next to continue [Wizard]. + + + + + + If you use a USB UPS, please plug it in now, so that we can try to install the relevant driver. + + + + + + + + + + + + + + + + + + + [DlgTitleFont][ProductName] installs the following libraries, location of licenses are - + + + Click Next to continue [Wizard]. + + + + 1. msys-1.0.dll - http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/msys-core/msys-1.0.16-1/ + + + 2. msys-ssl-1.0.0.dll and msys-crypto-1.0.0.dll - http://sourceforge.net/projects/mingw/files/MSYS/openssl/openssl-1.0.0-1/ + + + 3. libgnurx-0.dll - http://sourceforge.net/projects/mingw/files/UserContributed/regex/mingw-regex-2.5.1/ + + + + + + + + + + + + + Click the Finish button to exit the [Wizard]. + + + {\VerdanaBold13}Completing the [ProductName] [Wizard] + + + + + + + + + + + + {\VerdanaBold13}[ProductName] [Wizard] ended prematurely + + + [ProductName] setup ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again. + + + Click the Finish button to exit the [Wizard]. + + + + + + + + + + Please wait while the [Wizard] prepares to guide you through the installation. + + + {\VerdanaBold13}Welcome to the [ProductName] [Wizard] + + + + + + + + + + + + + + + + + + Please wait while the [Wizard] [Progress2] [ProductName]. This may take several minutes. + + + + [DlgTitleFont][Progress1] [ProductName] + + + + + + + + + + + + + + + + + + + + {\VerdanaBold13}[ProductName] [Wizard] was interrupted + + + [ProductName] setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again. + + + Click the Finish button to exit the [Wizard]. + + + + + + + + + + + + + + + + + + + + + + + + + + + Browse to the destination folder + + + [DlgTitleFont]Change current destination folder + + + + + + + + + + + + + + + + Are you sure you want to cancel [ProductName] installation? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The following applications are using files that need to be updated by this setup. Close these applications and then click Retry to continue the installation or Cancel to exit it. + + + + Some files that need to be updated are currently in use. + + + [DlgTitleFont]Files in Use + + + + + + + + + + + "Yes"]]> + + + + + + + + + {\rtf1\ansi\ansicpg1252\deff0\deftab720 + {\fonttbl{\f0\froman\fprq2 Times New Roman;}} + {\colortbl\red0\green0\blue0;} + \deflang1033\horzdoc{\*\fchars }{\*\lchars } + \pard\plain\f0\fs18 \par + GNU GENERAL PUBLIC LICENSE \par + Version 2, June 1991 + \par \par +Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. \par + + Preamble \par +The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. \par + +\par +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + \par +To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + \par + \par +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their rights. + \par + \par +We protect your rights with two steps: +\par (1) copyright the software, and +\par (2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + \par + \par +Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + \par + \par +Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + \par + \par +The precise terms and conditions for copying, distribution and +modification follow. + \par + \par + GNU GENERAL PUBLIC LICENSE + \par \par + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + \par \par + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + \par \par + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + \par \par + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + \par \par +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + \par \par + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + \par \par + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + \par \par + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + \par \par + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + \par \par +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + \par \par +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + \par \par +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + \par \par + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + \par \par + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + \par \par + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + \par \par + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + \par \par +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + \par \par +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + \par \par + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + \par \par + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + \par \par + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + \par \par + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + \par \par +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + \par \par +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + \par \par +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + \par \par + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + \par \par + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + \par \par +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + \par \par + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + \par \par + NO WARRANTY + \par \par + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + \par \par + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + \par \par + END OF TERMS AND CONDITIONS + \par \par + How to Apply These Terms to Your New Programs + \par \par + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + \par \par + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + \par \par + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + \par \par + 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. + \par \par + 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. + \par \par + 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., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + \par \par +Also add information on how to contact you by electronic and paper mail. + \par \par +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + \par \par + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + \par +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + \par \par +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + \par \par + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + \par \par + <signature of Ty Coon>, 1 April 1989 + \par + Ty Coon, President of Vice + \par \par +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + \par \par + + } + + + + + + + + [DlgTitleFont]Re&pair + + + + + + + + + [DlgTitleFont]&Remove + + + + + + + + + + + + + + + + + + + Select the operation you wish to perform. + + + [DlgTitleFont]Repair or Remove installation + + + Removes [ProductName] from your computer. + + + Repairs errors in the most recent installation state - fixes missing or corrupt files, shortcuts and registry entries. + + + + + + + + + + + + + + + The [Wizard] will allow you to change the way [ProductName] features are installed on your computer or even to remove [ProductName] from your computer. Click Next to continue or Cancel to exit the [Wizard]. + + + {\VerdanaBold13}Welcome to the [ProductName] [Wizard] + + + + + 1]]> + + + + + + + + + + + The [Wizard] will complete the installation of [ProductName] on your computer. Click Install to continue or Cancel to exit the [Wizard]. + + + {\VerdanaBold13}Resuming the [ProductName] [Wizard] + + + + + 1]]> + + + + + + + + + + + + + Click Install to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. + + + + The [Wizard] is ready to begin the [InstallMode] installation + + + [DlgTitleFont]Ready to Install + + + + + + + + + 1]]> + 1]]> + + + + + + + + + + Click Remove to remove [ProductName] from your computer. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. + + + + You have chosen to remove the program from your computer. + + + [DlgTitleFont]Remove [ProductName] + + + + + + 1]]> + 1]]> + 1]]> + + + + + + + + + + + + + Click Repair to repair the installation of [ProductName]. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. + + + + The [Wizard] is ready to begin the repair of [ProductName]. + + + [DlgTitleFont]Repair [ProductName] + + + + + + + + + + + + + + + + The [Wizard] will install [ProductName] on your computer. Click Next to continue or Cancel to exit the [Wizard]. + + + {\VerdanaBold13}Welcome to the [ProductName] [Wizard] + + + + + + + + + + + bytes + GB + KB + MB + Entire feature will be unavailable + Feature will be installed when required + Entire feature will be installed to run from CD + Entire feature will be installed on local hard drive + Entire feature will be installed to run from network + Will be installed to run from CD + Will be installed on local hard drive + Will be installed to run from network + Gathering required information... + This feature will remain uninstalled + This feature will be set to be installed when required + This feature will be installed to run from CD + This feature will be installed on the local hard drive + This feature will be installed to run from the network + This feature will become unavailable + Will be installed when required + This feature will be available to run from CD + This feature will be installed on your local hard drive + This feature will be available to run from the network + This feature will be uninstalled completely, you won't be able to run it from CD + This feature will change from run from CD state to set to be installed when required + This feature will remain to be run from CD + This feature will change from run from CD state to be installed on the local hard drive + This feature frees up [1] on your hard drive. + This feature requires [1] on your hard drive. + Compiling cost for this feature... + This feature will be completely removed + This feature will be removed from your local hard drive, but will be set to be installed when required + This feature will be removed from your local hard drive, but will be still available to run from CD + This feature will remain on you local hard drive + This feature will be removed from your local hard drive, but will be still available to run from the network + This feature will be uninstalled completely, you won't be able to run it from the network + This feature will change from run from network state to set to be installed when required + This feature will change from run from network state to be installed on the local hard drive + This feature will remain to be run from the network + This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive. + This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive. + This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive. + This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive. + Time remaining: {[1] minutes }{[2] seconds} + Available + Difference + Required + Disk Size + Volume + Validating install + Copying new files + Copying network install files + Computing space requirements + Computing space requirements + Computing space requirements + Creating shortcuts + Publishing Qualified Components + Publishing Product Features + Publishing product information + Registering Class servers + Registering extension servers + Registering MIME info + Registering program identifiers + Allocating registry space + Searching for installed applications + Binding executables + Searching for qualifying products + Creating folders + Deleting services + Creating duplicate files + Searching for related applications + Installing ODBC components + Installing new services + Evaluating launch conditions + Migrating feature states from related applications + Moving files + Patching files + Updating component registration + Registering COM+ Applications and Components + Registering fonts + Registering product + Registering type libraries + Registering user + Removing duplicated files + Updating environment strings + Removing applications + Removing files + Removing folders + Removing INI files entries + Removing ODBC components + Removing system registry values + Removing shortcuts + Searching for qualifying products + Registering modules + Unregistering modules + Initializing ODBC directories + Starting services + Stopping services + Unpublishing Qualified Components + Unpublishing Product Features + Unregister Class servers + Unregistering COM+ Applications and Components + Unregistering extension servers + Unregistering fonts + Unregistering MIME info + Unregistering program identifiers + Unregistering type libraries + Updating environment strings + Writing INI files values + Writing system registry values + Advertising application + Generating script operations for action: + Installing system catalog + Publishing assembly information + Unpublishing assembly information + Rolling back action: + Removing backup files + Removing moved files + Unpublishing product information + {{Fatal error: }} + {{Error [1]. }} + Warning [1]. + + Info [1]. + The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}} + + {{Disk full: }} + Action [Time]: [1]. [2] + [ProductName] + {[2]}{, [3]}{, [4]} + Message type: [1], Argument: [2] + === Logging started: [Date] [Time] === + === Logging stopped: [Date] [Time] === + Action start [Time]: [1]. + Action ended [Time]: [1]. Return value [2]. + Time remaining: {[1] minutes }{[2] seconds} + Out of memory. Shut down other applications before retrying. + Installer is no longer responding. + Installer stopped prematurely. + Please wait while Windows configures [ProductName] + Gathering required information... + Removing older versions of this application... + Preparing to remove older versions of this application... + {[ProductName] }Setup completed successfully. + {[ProductName] }Setup failed. + Error reading from file: [2]. {{ System error [3].}} Verify that the file exists and that you can access it. + Cannot create the file '[2]'. A directory with this name already exists. Cancel the install and try installing to a different location. + Please insert the disk: [2] + The installer has insufficient privileges to access this directory: [2]. The installation cannot continue. Log on as administrator or contact your system administrator. + Error writing to file: [2]. Verify that you have access to that directory. + Error reading from file [2]. {{ System error [3].}} Verify that the file exists and that you can access it. + Another application has exclusive access to the file '[2]'. Please shut down all other applications, then click Retry. + There is not enough disk space to install this file: [2]. Free some disk space and click Retry, or click Cancel to exit. + Source file not found: [2]. Verify that the file exists and that you can access it. + Error reading from file: [3]. {{ System error [2].}} Verify that the file exists and that you can access it. + Error writing to file: [3]. {{ System error [2].}} Verify that you have access to that directory. + Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it. + Cannot create the directory '[2]'. A file with this name already exists. Please rename or remove the file and click retry, or click Cancel to exit. + The volume [2] is currently unavailable. Please select another. + The specified path '[2]' is unavailable. + Unable to write to the specified folder: [2]. + A network error occurred while attempting to read from the file: [2] + An error occurred while attempting to create the directory: [2] + A network error occurred while attempting to create the directory: [2] + A network error occurred while attempting to open the source file cabinet: [2] + The specified path is too long: [2] + The Installer has insufficient privileges to modify this file: [2]. + A portion of the folder path '[2]' is invalid. It is either empty or exceeds the length allowed by the system. + The folder path '[2]' contains words that are not valid in folder paths. + The folder path '[2]' contains an invalid character. + '[2]' is not a valid short file name. + Error getting file security: [3] GetLastError: [2] + Invalid Drive: [2] + Error applying patch to file [2]. It has probably been updated by other means, and can no longer be modified by this patch. For more information contact your patch vendor. {{System Error: [3]}} + A file that is required cannot be installed because the cabinet file [2] is not digitally signed. This may indicate that the cabinet file is corrupt. + A file that is required cannot be installed because the cabinet file [2] has an invalid digital signature. This may indicate that the cabinet file is corrupt.{{ Error [3] was returned by WinVerifyTrust.}} + Failed to correctly copy [2] file: CRC error. + Failed to correctly move [2] file: CRC error. + Failed to correctly patch [2] file: CRC error. + The file '[2]' cannot be installed because the file cannot be found in cabinet file '[3]'. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package. + The cabinet file '[2]' required for this installation is corrupt and cannot be used. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package. + There was an error creating a temporary file that is needed to complete this installation.{{ Folder: [3]. System error code: [2]}} + Could not create key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not open key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not delete value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not delete key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not read value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not write value [2] to key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not get value names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not get sub key names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not read security information for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not increase the available registry space. [2] KB of free registry space is required for the installation of this application. + Another installation is in progress. You must complete that installation before continuing this one. + Error accessing secured data. Please make sure the Windows Installer is configured properly and try the install again. + User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product. Your current install will now continue. + User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product. + Out of disk space -- Volume: '[2]'; required space: [3] KB; available space: [4] KB. Free some disk space and retry. + Are you sure you want to cancel? + The file [2][3] is being held in use{ by the following process: Name: [4], Id: [5], Window Title: '[6]'}. Close that application and retry. + The product '[2]' is already installed, preventing the installation of this product. The two products are incompatible. + There is not enough disk space on the volume '[2]' to continue the install with recovery enabled. [3] KB are required, but only [4] KB are available. Click Ignore to continue the install without saving recovery information, click Retry to check for available space again, or click Cancel to quit the installation. + Could not access network location [2]. + The following applications should be closed before continuing the install: + Could not find any previously installed compliant products on the machine for installing this product. + An error occurred while applying security settings. [2] is not a valid user or group. This could be a problem with the package, or a problem connecting to a domain controller on the network. Check your network connection and click Retry, or Cancel to end the install. {{Unable to locate the user's SID, system error [3]}} + The key [2] is not valid. Verify that you entered the correct key. + The installer must restart your system before configuration of [2] can continue. Click Yes to restart now or No if you plan to manually restart later. + You must restart your system for the configuration changes made to [2] to take effect. Click Yes to restart now or No if you plan to manually restart later. + An installation for [2] is currently suspended. You must undo the changes made by that installation to continue. Do you want to undo those changes? + A previous installation for this product is in progress. You must undo the changes made by that installation to continue. Do you want to undo those changes? + An installation package for the product [2] cannot be found. Try the installation again using a valid copy of the installation package '[3]'. + Installation completed successfully. + Installation failed. + Product: [2] -- [3] + You may either restore your computer to its previous state or continue the install later. Would you like to restore? + An error occurred while writing installation information to disk. Check to make sure enough disk space is available, and click Retry, or Cancel to end the install. + One or more of the files required to restore your computer to its previous state could not be found. Restoration will not be possible. + [2] cannot install one of its required products. Contact your technical support group. {{System Error: [3].}} + The older version of [2] cannot be removed. Contact your technical support group. {{System Error [3].}} + Installed [2] + Configured [2] + Removed [2] + File [2] was rejected by digital signature policy. + The Windows Installer Service could not be accessed. This can occur if you are running Windows in safe mode, or if the Windows Installer is not correctly installed. Contact your support personnel for assistance. + There is a problem with this Windows Installer package. A script required for this install to complete could not be run. Contact your support personnel or package vendor. {{Custom action [2] script error [3], [4]: [5] Line [6], Column [7], [8] }} + There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action: [2], location: [3], command: [4] }} + There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor. {{Action [2], location: [3], command: [4] }} + There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action [2], entry: [3], library: [4] }} + Removal completed successfully. + Removal failed. + Advertisement completed successfully. + Advertisement failed. + Configuration completed successfully. + Configuration failed. + You must be an Administrator to remove this application. To remove this application, you can log on as an Administrator, or contact your technical support group for assistance. + The path [2] is not valid. Please specify a valid path. + Out of memory. Shut down other applications before retrying. + There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to go back to the previously selected volume. + There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to return to the browse dialog and select a different volume. + The folder [2] does not exist. Please enter a path to an existing folder. + You have insufficient privileges to read this folder. + A valid destination folder for the install could not be determined. + Error attempting to read from the source install database: [2]. + Scheduling reboot operation: Renaming file [2] to [3]. Must reboot to complete operation. + Scheduling reboot operation: Deleting file [2]. Must reboot to complete operation. + Module [2] failed to register. HRESULT [3]. Contact your support personnel. + Module [2] failed to unregister. HRESULT [3]. Contact your support personnel. + Failed to cache package [2]. Error: [3]. Contact your support personnel. + Could not register font [2]. Verify that you have sufficient permissions to install fonts, and that the system supports this font. + Could not unregister font [2]. Verify that you that you have sufficient permissions to remove fonts. + Could not create Shortcut [2]. Verify that the destination folder exists and that you can access it. + Could not remove Shortcut [2]. Verify that the shortcut file exists and that you can access it. + Could not register type library for file [2]. Contact your support personnel. + Could not unregister type library for file [2]. Contact your support personnel. + Could not update the ini file [2][3]. Verify that the file exists and that you can access it. + Could not schedule file [2] to replace file [3] on reboot. Verify that you have write permissions to file [3]. + Error removing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel. + Error installing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel. + Error removing ODBC driver: [4], ODBC error [2]: [3]. Verify that you have sufficient privileges to remove ODBC drivers. + Error installing ODBC driver: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it. + Error configuring ODBC data source: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it. + Service '[2]' ([3]) failed to start. Verify that you have sufficient privileges to start system services. + Service '[2]' ([3]) could not be stopped. Verify that you have sufficient privileges to stop system services. + Service '[2]' ([3]) could not be deleted. Verify that you have sufficient privileges to remove system services. + Service '[2]' ([3]) could not be installed. Verify that you have sufficient privileges to install system services. + Could not update environment variable '[2]'. Verify that you have sufficient privileges to modify environment variables. + You do not have sufficient privileges to complete this installation for all users of the machine. Log on as administrator and then retry this installation. + Could not set file security for file '[3]'. Error: [2]. Verify that you have sufficient privileges to modify the security permissions for this file. + Component Services (COM+ 1.0) are not installed on this computer. This installation requires Component Services in order to complete successfully. Component Services are available on Windows 2000. + Error registering COM+ Application. Contact your support personnel for more information. + Error unregistering COM+ Application. Contact your support personnel for more information. + The description for service '[2]' ([3]) could not be changed. + The Windows Installer service cannot update the system file [2] because the file is protected by Windows. You may need to update your operating system for this program to work correctly. {{Package version: [3], OS Protected version: [4]}} + The Windows Installer service cannot update the protected Windows file [2]. {{Package version: [3], OS Protected version: [4], SFP Error: [5]}} + The Windows Installer service cannot update one or more protected Windows files. {{SFP Error: [2]. List of protected files:\r\n[3]}} + User installations are disabled via policy on the machine. + An error occured during the installation of assembly component [2]. HRESULT: [3]. {{assembly interface: [4], function: [5], assembly name: [6]}} + + TARGETDIR="" + + + + + + + + + + + + + + + TARGETDIR="" + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + @@@@@]]> + + + + + + + + + + + TARGETDIR="" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TARGETDIR="" + + + + + + + LIBUSBINSTALL=1 + + \ No newline at end of file diff --git a/scripts/Windows/Makefile.am b/scripts/Windows/Makefile.am index c0010b0ba2..25d1480e7c 100644 --- a/scripts/Windows/Makefile.am +++ b/scripts/Windows/Makefile.am @@ -1,31 +1,31 @@ -# Network UPS Tools: script/Windows - -AM_CFLAGS = -I$(top_srcdir)/include - -../include/nut_version.h: FORCE - (cd ../include/ && $(MAKE) $(AM_MAKEFLAGS) nut_version.h) - -FORCE: - -if HAVE_MINGW_RESGEN - -winevent.rc winevent.h: winevent.mc - $(WINDMC) $< - -winevent.o: winevent.rc winevent.h - $(WINDRES) winevent.rc winevent.o - -wininit.$(OBJEXT): winevent.h - -bin_PROGRAMS = nut halt - -nut_SOURCES = wininit.c -nut_LDADD = ../../common/libcommon.la winevent.o - -halt_SOURCES = halt.c - -EXTRA_DIST = winevent.mc -CLEANFILES = winevent.rc winevent.o winevent.h - -endif HAVE_MINGW_RESGEN - +# Network UPS Tools: script/Windows + +AM_CFLAGS = -I$(top_srcdir)/include + +../include/nut_version.h: FORCE + (cd ../include/ && $(MAKE) $(AM_MAKEFLAGS) nut_version.h) + +FORCE: + +if HAVE_MINGW_RESGEN + +winevent.rc winevent.h: winevent.mc + $(WINDMC) $< + +winevent.o: winevent.rc winevent.h + $(WINDRES) winevent.rc winevent.o + +wininit.$(OBJEXT): winevent.h + +bin_PROGRAMS = nut halt + +nut_SOURCES = wininit.c +nut_LDADD = ../../common/libcommon.la winevent.o + +halt_SOURCES = halt.c + +EXTRA_DIST = winevent.mc +CLEANFILES = winevent.rc winevent.o winevent.h + +endif HAVE_MINGW_RESGEN + diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index cbd0535f4f..1f7ae5b95d 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -1,628 +1,628 @@ -/* wininit.c - MS Windows service which replace the init script - - Copyright (C) - 2010 Frederic Bohe - - 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 -*/ -#ifdef WIN32 - -#include "common.h" -#include "config.h" -#include "winevent.h" -#include "wincompat.h" - -#define NUT_START TRUE -#define NUT_STOP FALSE - -typedef struct conn_s { - HANDLE handle; - OVERLAPPED overlapped; - char buf[LARGEBUF]; - struct conn_s *prev; - struct conn_s *next; -} conn_t; - -static DWORD upsd_pid = 0; -static DWORD upsmon_pid = 0; -static BOOL service_flag = TRUE; -HANDLE svc_stop = NULL; -static SERVICE_STATUS SvcStatus; -static SERVICE_STATUS_HANDLE SvcStatusHandle; - -static void print_event(DWORD priority, const char * fmt, ...) -{ - HANDLE EventSource; - va_list ap; - CHAR * buf; - int ret; - - buf = xmalloc(LARGEBUF); - - va_start(ap, fmt); - ret = vsnprintf(buf, LARGEBUF, fmt, ap); - va_end(ap); - - if(ret<0) { - return; - } - - if( !service_flag ) { - upslogx(LOG_ERR, "EventLog : %s\n",buf); - } - - EventSource = RegisterEventSource(NULL, SVCNAME); - - if( NULL != EventSource ) { - ReportEvent( EventSource, /* event log handle */ - priority, /* event type */ - 0, /* event category */ - SVC_EVENT, /* event identifier */ - NULL, /* no security identifier*/ - 1, /* size of string array */ - 0, /* no binary data */ - &buf, /* array of string */ - NULL); /* no binary data */ - - DeregisterEventSource(EventSource); - - } - - if( buf ) - free(buf); -} - -/* returns PID of the newly created process or 0 on failure */ -static DWORD create_process(char * command) -{ - STARTUPINFO StartupInfo; - PROCESS_INFORMATION ProcessInformation; - BOOL res; - DWORD LastError; - - memset(&StartupInfo,0,sizeof(STARTUPINFO)); - - res = CreateProcess( - NULL, - command, - NULL, - NULL, - FALSE, - CREATE_NEW_PROCESS_GROUP, - NULL, - NULL, - &StartupInfo, - &ProcessInformation - ); - LastError = GetLastError(); - - if( res == 0 ) { - print_event(LOG_ERR, "Can't create process %s : %d", command, LastError); - return 0; - } - - return ProcessInformation.dwProcessId; -} - -/* return PID of created process or 0 on failure */ -static DWORD run_drivers() -{ - char command[MAX_PATH]; - char *path; - - path = getfullpath(PATH_BIN); - snprintf(command,sizeof(command),"%s\\upsdrvctl.exe start",path); - free(path); - return create_process(command); -} - -/* return PID of created process or 0 on failure */ -static DWORD stop_drivers() -{ - char command[MAX_PATH]; - char *path; - - path = getfullpath(PATH_BIN); - snprintf(command,sizeof(command),"%s\\upsdrvctl.exe stop",path); - free(path); - return create_process(command); -} - -/* return PID of created process or 0 on failure */ -static void run_upsd() -{ - char command[MAX_PATH]; - char *path; - - path = getfullpath(PATH_SBIN); - snprintf(command,sizeof(command),"%s\\upsd.exe",path); - free(path); - upsd_pid = create_process(command); -} - -static void stop_upsd() -{ - if ( send_to_named_pipe( UPSD_PIPE_NAME, COMMAND_STOP ) ) { - print_event(LOG_ERR, "Error stoping upsd"); - } -} - -/* return PID of created process or 0 on failure */ -static void run_upsmon() -{ - char command[MAX_PATH]; - char *path; - - path = getfullpath(PATH_SBIN); - snprintf(command,sizeof(command),"%s\\upsmon.exe",path); - free(path); - upsmon_pid = create_process(command); -} - -static void stop_upsmon() -{ - if ( send_to_named_pipe( UPSMON_PIPE_NAME, COMMAND_STOP ) ) { - print_event(LOG_ERR, "Error sendind CTRL_BREAK to upsmon"); - } -} - -/* Return 0 if powerdown flag is set */ -static DWORD test_powerdownflag() -{ - char command[MAX_PATH]; - char *path; - STARTUPINFO StartupInfo; - PROCESS_INFORMATION ProcessInformation; - BOOL res; - DWORD LastError; - DWORD status; - int i = 10; - int timeout = 500; - - path = getfullpath(PATH_SBIN); - snprintf(command,sizeof(command),"%s\\upsmon.exe -K",path); - free(path); - - memset(&StartupInfo,0,sizeof(STARTUPINFO)); - - res = CreateProcess( - NULL, - command, - NULL, - NULL, - FALSE, - CREATE_NEW_PROCESS_GROUP, - NULL, - NULL, - &StartupInfo, - &ProcessInformation - ); - LastError = GetLastError(); - - if( res == 0 ) { - print_event(LOG_ERR, "Can't create process %s : %d", command, LastError); - return 1; - } - - while( i > 0) { - res = GetExitCodeProcess(ProcessInformation.hProcess, &status); - if( res != 0) { - if( status != STILL_ACTIVE) { - return status; - } - } - Sleep(timeout); - i--; - } - - return 1; -} - -static DWORD shutdown_ups() -{ - char command[MAX_PATH]; - char *path; - - path = getfullpath(PATH_BIN); - snprintf(command,sizeof(command),"%s\\upsdrvctl.exe shutdown",path); - free(path); - return create_process(command); -} - -/* return 0 on failure */ -static int parse_nutconf(BOOL start_flag) -{ - char fn[SMALLBUF]; - FILE *nutf; - char buf[SMALLBUF]; - char fullname[SMALLBUF]; - - snprintf(fn,sizeof(fn),"%s/nut.conf",confpath()); - - nutf = fopen(fn, "r"); - if(nutf == NULL) { - snprintf(buf,sizeof(buf),"Error opening %s",fn); - print_event(LOG_ERR,buf); - return 0; - } - - while( fgets(buf,sizeof(buf),nutf) != NULL ) { - if(buf[0] != '#') { - if( strstr(buf,"standalone") != NULL || - strstr(buf,"netserver") != NULL ) { - if( start_flag == NUT_START ) { - run_drivers(); - run_upsd(); - /* Wait a moment for the drivers to start */ - Sleep(5000); - run_upsmon(); - return 1; - } - else { - stop_upsd(); - stop_drivers(); - stop_upsmon(); - /* Give a chance to upsmon to write the POWERDOWNFLAG file */ - Sleep(1000); - if( test_powerdownflag() == 0 ) { - shutdown_ups(); - } - return 1; - } - } - if( strstr(buf,"netclient") != NULL ) { - if( start_flag == NUT_START ) { - run_upsmon(); - return 1; - } - else { - stop_upsmon(); - return 1; - } - } - } - } - - GetFullPathName(fn,sizeof(fullname),fullname,NULL); - snprintf(buf,sizeof(buf),"nut disabled, please adjust the configuration to your needs. Then set MODE to a suitable value in %s to enable it.",fullname); - print_event(LOG_ERR,buf); - return 0; -} - -static int SvcInstall(const char * SvcName, const char * args) -{ - SC_HANDLE SCManager; - SC_HANDLE Service; - TCHAR Path[MAX_PATH]; - - if( !GetModuleFileName( NULL, Path, MAX_PATH ) ) { - printf("Cannot install service (%d)\n", (int)GetLastError()); - return EXIT_FAILURE; - } - - if( args != NULL ) { - snprintfcat(Path, sizeof(Path), " %s", args); - } - - SCManager = OpenSCManager( - NULL, /* local computer */ - NULL, /* ServiceActive database */ - SC_MANAGER_ALL_ACCESS); /* full access rights */ - - if (NULL == SCManager) { - upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); - return EXIT_FAILURE; - } - - Service = CreateService( - SCManager, /* SCM database */ - SvcName, /* name of service */ - SvcName, /* service name to display */ - SERVICE_ALL_ACCESS, /* desired access */ - SERVICE_WIN32_OWN_PROCESS, /* service type */ - SERVICE_AUTO_START, /* start type */ - SERVICE_ERROR_NORMAL, /* error control type */ - Path, /* path to service binary */ - NULL, /* no load ordering group */ - NULL, /* no tag identifier */ - NULL, /* no dependencies */ - NULL, /* LocalSystem account */ - NULL); /* no password */ - - if (Service == NULL) { - upslogx(LOG_ERR, "CreateService failed (%d)\n", (int)GetLastError()); - CloseServiceHandle(SCManager); - return EXIT_FAILURE; - } - else { - upslogx(LOG_INFO, "Service installed successfully\n"); - } - - CloseServiceHandle(Service); - CloseServiceHandle(SCManager); - - return EXIT_SUCCESS; -} - -static int SvcUninstall(const char * SvcName) -{ - SC_HANDLE SCManager; - SC_HANDLE Service; - - SCManager = OpenSCManager( - NULL, /* local computer */ - NULL, /* ServicesActive database */ - SC_MANAGER_ALL_ACCESS); /* full access rights */ - - if (NULL == SCManager) { - upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); - return EXIT_FAILURE; - } - - Service = OpenService( - SCManager, /* SCM database */ - SvcName, /* name of service */ - DELETE); /* need delete access */ - - if (Service == NULL) { - upslogx(LOG_ERR, "OpenService failed (%d)\n", (int)GetLastError()); - CloseServiceHandle(SCManager); - return EXIT_FAILURE; - } - - if (! DeleteService(Service) ) { - upslogx(LOG_ERR,"DeleteService failed (%d)\n", (int)GetLastError()); - } - else { - upslogx(LOG_ERR,"Service deleted successfully\n"); - } - - CloseServiceHandle(Service); - CloseServiceHandle(SCManager); - - return EXIT_SUCCESS; -} - -static void ReportSvcStatus( DWORD CurrentState, - DWORD Win32ExitCode, - DWORD WaitHint) -{ - static DWORD CheckPoint = 1; - - SvcStatus.dwCurrentState = CurrentState; - SvcStatus.dwWin32ExitCode = Win32ExitCode; - SvcStatus.dwWaitHint = WaitHint; - - if (CurrentState == SERVICE_START_PENDING) - SvcStatus.dwControlsAccepted = 0; - else SvcStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN; - - if ( (CurrentState == SERVICE_RUNNING) || - (CurrentState == SERVICE_STOPPED) ) { - SvcStatus.dwCheckPoint = 0; - } - else { - SvcStatus.dwCheckPoint = CheckPoint++; - } - - /* report the status of the service to the SCM */ - SetServiceStatus( SvcStatusHandle, &SvcStatus ); -} - -static void WINAPI SvcCtrlHandler( DWORD Ctrl ) -{ - switch(Ctrl) - { - case SERVICE_CONTROL_STOP: - case SERVICE_CONTROL_SHUTDOWN: - ReportSvcStatus(SERVICE_STOP_PENDING, NO_ERROR, 0); - - /* Signal the service to stop */ - SetEvent(svc_stop); - ReportSvcStatus(SvcStatus.dwCurrentState, NO_ERROR, 0); - - return; - - case SERVICE_CONTROL_INTERROGATE: - break; - - default: - break; - } -} - -static void SvcStart(char * SvcName) -{ - /* Register the handler function for the service */ - SvcStatusHandle = RegisterServiceCtrlHandler( - SvcName, - SvcCtrlHandler); - - if( !SvcStatusHandle ) { - upslogx(LOG_ERR, "RegisterServiceCtrlHandler\n"); - return; - } - - SvcStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS; - SvcStatus.dwServiceSpecificExitCode = 0; - - /* Report initial status to the SCM */ - ReportSvcStatus( SERVICE_START_PENDING, NO_ERROR, 3000 ); -} - -static void SvcReady(void) -{ - svc_stop = CreateEvent( - NULL, /* default security attributes */ - TRUE, /* manual reset event */ - FALSE, /* not signaled */ - NULL); /* no name */ - - if( svc_stop == NULL ) { - ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); - return; - } - ReportSvcStatus( SERVICE_RUNNING, NO_ERROR, 0); -} - -static void close_all(void) -{ - pipe_conn_t *conn; - - for (conn = pipe_connhead; conn; conn = conn->next) { - pipe_disconnect(conn); - } - -} - -static void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) -{ - - DWORD ret; - HANDLE handles[MAXIMUM_WAIT_OBJECTS]; - int maxhandle = 0; - pipe_conn_t *conn; - DWORD priority; - char * buf; - - if(service_flag) { - SvcStart(SVCNAME); - } - - /* A service has no console, so do has its children. */ - /* So if we want to be able to send CTRL+BREAK signal we must */ - /* create a console which will be inheritated by children */ - AllocConsole(); - - print_event(LOG_INFO,"Starting"); - - /* pipe for event log proxy */ - pipe_create(EVENTLOG_PIPE_NAME); - - /* parse nut.conf and start relevant processes */ - if ( parse_nutconf(NUT_START) == 0 ) { - print_event(LOG_INFO, "exiting"); - if( service_flag ) { - ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); - } - return; - } - - if(service_flag) { - SvcReady(); - } - - while (1) { - maxhandle = 0; - memset(&handles,0,sizeof(handles)); - - /* Wait on the read IO of each connections */ - for (conn = pipe_connhead; conn; conn = conn->next) { - handles[maxhandle] = conn->overlapped.hEvent; - maxhandle++; - } - /* Add the new pipe connected event */ - handles[maxhandle] = pipe_connection_overlapped.hEvent; - maxhandle++; - - /* Add SCM event handler in service mode*/ - if(service_flag) { - handles[maxhandle] = svc_stop; - maxhandle++; - } - - ret = WaitForMultipleObjects(maxhandle,handles,FALSE,INFINITE); - - if (ret == WAIT_FAILED) { - print_event(LOG_ERR, "Wait failed"); - return; - } - - if( handles[ret] == svc_stop && service_flag ) { - parse_nutconf(NUT_STOP); - if(service_flag) { - print_event(LOG_INFO, "Exiting"); - close_all(); - ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); - } - return; - } - - /* Retrieve the signaled connection */ - for(conn = pipe_connhead; conn != NULL; conn = conn->next) { - if( conn->overlapped.hEvent == handles[ret-WAIT_OBJECT_0]) { - break; - } - } - /* a new pipe connection has been signaled */ - if (handles[ret] == pipe_connection_overlapped.hEvent) { - pipe_connect(); - } - /* one of the read event handle has been signaled */ - else { - if( conn != NULL) { - if( pipe_ready(conn) ) { - buf = conn->buf; - /* a frame is a DWORD indicating priority followed by an array of char (not necessarily followed by a terminal 0 */ - priority =*((DWORD *)buf); - buf = buf + sizeof(DWORD); - print_event(priority,buf); - - pipe_disconnect(conn); - } - } - } - } -} - -int main(int argc, char **argv) -{ - int i; - while ((i = getopt(argc, argv, "+IUN")) != -1) { - switch (i) { - case 'I': - return SvcInstall(SVCNAME,NULL); - case 'U': - return SvcUninstall(SVCNAME); - case 'N': - service_flag = FALSE; - upslogx(LOG_ERR, "Running in non-service mode\n"); - break; - default: - break; - } - } - - optind = 0; - - SERVICE_TABLE_ENTRY DispatchTable[] = - { - { SVCNAME, (LPSERVICE_MAIN_FUNCTION) SvcMain }, - { NULL, NULL } - }; - /* This call returns when the service has stopped */ - if(service_flag ) { - if (!StartServiceCtrlDispatcher( DispatchTable )) - { - print_event(LOG_ERR, "StartServiceCtrlDispatcher failed : exiting, this is a Windows service which can't be run as a regular application by default. Try -N to start it as a regular application"); - } - } - else { - SvcMain(argc,argv); - } - - return EXIT_SUCCESS; -} -#endif /* WIN32 */ +/* wininit.c - MS Windows service which replace the init script + + Copyright (C) + 2010 Frederic Bohe + + 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 +*/ +#ifdef WIN32 + +#include "common.h" +#include "config.h" +#include "winevent.h" +#include "wincompat.h" + +#define NUT_START TRUE +#define NUT_STOP FALSE + +typedef struct conn_s { + HANDLE handle; + OVERLAPPED overlapped; + char buf[LARGEBUF]; + struct conn_s *prev; + struct conn_s *next; +} conn_t; + +static DWORD upsd_pid = 0; +static DWORD upsmon_pid = 0; +static BOOL service_flag = TRUE; +HANDLE svc_stop = NULL; +static SERVICE_STATUS SvcStatus; +static SERVICE_STATUS_HANDLE SvcStatusHandle; + +static void print_event(DWORD priority, const char * fmt, ...) +{ + HANDLE EventSource; + va_list ap; + CHAR * buf; + int ret; + + buf = xmalloc(LARGEBUF); + + va_start(ap, fmt); + ret = vsnprintf(buf, LARGEBUF, fmt, ap); + va_end(ap); + + if(ret<0) { + return; + } + + if( !service_flag ) { + upslogx(LOG_ERR, "EventLog : %s\n",buf); + } + + EventSource = RegisterEventSource(NULL, SVCNAME); + + if( NULL != EventSource ) { + ReportEvent( EventSource, /* event log handle */ + priority, /* event type */ + 0, /* event category */ + SVC_EVENT, /* event identifier */ + NULL, /* no security identifier*/ + 1, /* size of string array */ + 0, /* no binary data */ + &buf, /* array of string */ + NULL); /* no binary data */ + + DeregisterEventSource(EventSource); + + } + + if( buf ) + free(buf); +} + +/* returns PID of the newly created process or 0 on failure */ +static DWORD create_process(char * command) +{ + STARTUPINFO StartupInfo; + PROCESS_INFORMATION ProcessInformation; + BOOL res; + DWORD LastError; + + memset(&StartupInfo,0,sizeof(STARTUPINFO)); + + res = CreateProcess( + NULL, + command, + NULL, + NULL, + FALSE, + CREATE_NEW_PROCESS_GROUP, + NULL, + NULL, + &StartupInfo, + &ProcessInformation + ); + LastError = GetLastError(); + + if( res == 0 ) { + print_event(LOG_ERR, "Can't create process %s : %d", command, LastError); + return 0; + } + + return ProcessInformation.dwProcessId; +} + +/* return PID of created process or 0 on failure */ +static DWORD run_drivers() +{ + char command[MAX_PATH]; + char *path; + + path = getfullpath(PATH_BIN); + snprintf(command,sizeof(command),"%s\\upsdrvctl.exe start",path); + free(path); + return create_process(command); +} + +/* return PID of created process or 0 on failure */ +static DWORD stop_drivers() +{ + char command[MAX_PATH]; + char *path; + + path = getfullpath(PATH_BIN); + snprintf(command,sizeof(command),"%s\\upsdrvctl.exe stop",path); + free(path); + return create_process(command); +} + +/* return PID of created process or 0 on failure */ +static void run_upsd() +{ + char command[MAX_PATH]; + char *path; + + path = getfullpath(PATH_SBIN); + snprintf(command,sizeof(command),"%s\\upsd.exe",path); + free(path); + upsd_pid = create_process(command); +} + +static void stop_upsd() +{ + if ( send_to_named_pipe( UPSD_PIPE_NAME, COMMAND_STOP ) ) { + print_event(LOG_ERR, "Error stoping upsd"); + } +} + +/* return PID of created process or 0 on failure */ +static void run_upsmon() +{ + char command[MAX_PATH]; + char *path; + + path = getfullpath(PATH_SBIN); + snprintf(command,sizeof(command),"%s\\upsmon.exe",path); + free(path); + upsmon_pid = create_process(command); +} + +static void stop_upsmon() +{ + if ( send_to_named_pipe( UPSMON_PIPE_NAME, COMMAND_STOP ) ) { + print_event(LOG_ERR, "Error sendind CTRL_BREAK to upsmon"); + } +} + +/* Return 0 if powerdown flag is set */ +static DWORD test_powerdownflag() +{ + char command[MAX_PATH]; + char *path; + STARTUPINFO StartupInfo; + PROCESS_INFORMATION ProcessInformation; + BOOL res; + DWORD LastError; + DWORD status; + int i = 10; + int timeout = 500; + + path = getfullpath(PATH_SBIN); + snprintf(command,sizeof(command),"%s\\upsmon.exe -K",path); + free(path); + + memset(&StartupInfo,0,sizeof(STARTUPINFO)); + + res = CreateProcess( + NULL, + command, + NULL, + NULL, + FALSE, + CREATE_NEW_PROCESS_GROUP, + NULL, + NULL, + &StartupInfo, + &ProcessInformation + ); + LastError = GetLastError(); + + if( res == 0 ) { + print_event(LOG_ERR, "Can't create process %s : %d", command, LastError); + return 1; + } + + while( i > 0) { + res = GetExitCodeProcess(ProcessInformation.hProcess, &status); + if( res != 0) { + if( status != STILL_ACTIVE) { + return status; + } + } + Sleep(timeout); + i--; + } + + return 1; +} + +static DWORD shutdown_ups() +{ + char command[MAX_PATH]; + char *path; + + path = getfullpath(PATH_BIN); + snprintf(command,sizeof(command),"%s\\upsdrvctl.exe shutdown",path); + free(path); + return create_process(command); +} + +/* return 0 on failure */ +static int parse_nutconf(BOOL start_flag) +{ + char fn[SMALLBUF]; + FILE *nutf; + char buf[SMALLBUF]; + char fullname[SMALLBUF]; + + snprintf(fn,sizeof(fn),"%s/nut.conf",confpath()); + + nutf = fopen(fn, "r"); + if(nutf == NULL) { + snprintf(buf,sizeof(buf),"Error opening %s",fn); + print_event(LOG_ERR,buf); + return 0; + } + + while( fgets(buf,sizeof(buf),nutf) != NULL ) { + if(buf[0] != '#') { + if( strstr(buf,"standalone") != NULL || + strstr(buf,"netserver") != NULL ) { + if( start_flag == NUT_START ) { + run_drivers(); + run_upsd(); + /* Wait a moment for the drivers to start */ + Sleep(5000); + run_upsmon(); + return 1; + } + else { + stop_upsd(); + stop_drivers(); + stop_upsmon(); + /* Give a chance to upsmon to write the POWERDOWNFLAG file */ + Sleep(1000); + if( test_powerdownflag() == 0 ) { + shutdown_ups(); + } + return 1; + } + } + if( strstr(buf,"netclient") != NULL ) { + if( start_flag == NUT_START ) { + run_upsmon(); + return 1; + } + else { + stop_upsmon(); + return 1; + } + } + } + } + + GetFullPathName(fn,sizeof(fullname),fullname,NULL); + snprintf(buf,sizeof(buf),"nut disabled, please adjust the configuration to your needs. Then set MODE to a suitable value in %s to enable it.",fullname); + print_event(LOG_ERR,buf); + return 0; +} + +static int SvcInstall(const char * SvcName, const char * args) +{ + SC_HANDLE SCManager; + SC_HANDLE Service; + TCHAR Path[MAX_PATH]; + + if( !GetModuleFileName( NULL, Path, MAX_PATH ) ) { + printf("Cannot install service (%d)\n", (int)GetLastError()); + return EXIT_FAILURE; + } + + if( args != NULL ) { + snprintfcat(Path, sizeof(Path), " %s", args); + } + + SCManager = OpenSCManager( + NULL, /* local computer */ + NULL, /* ServiceActive database */ + SC_MANAGER_ALL_ACCESS); /* full access rights */ + + if (NULL == SCManager) { + upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); + return EXIT_FAILURE; + } + + Service = CreateService( + SCManager, /* SCM database */ + SvcName, /* name of service */ + SvcName, /* service name to display */ + SERVICE_ALL_ACCESS, /* desired access */ + SERVICE_WIN32_OWN_PROCESS, /* service type */ + SERVICE_AUTO_START, /* start type */ + SERVICE_ERROR_NORMAL, /* error control type */ + Path, /* path to service binary */ + NULL, /* no load ordering group */ + NULL, /* no tag identifier */ + NULL, /* no dependencies */ + NULL, /* LocalSystem account */ + NULL); /* no password */ + + if (Service == NULL) { + upslogx(LOG_ERR, "CreateService failed (%d)\n", (int)GetLastError()); + CloseServiceHandle(SCManager); + return EXIT_FAILURE; + } + else { + upslogx(LOG_INFO, "Service installed successfully\n"); + } + + CloseServiceHandle(Service); + CloseServiceHandle(SCManager); + + return EXIT_SUCCESS; +} + +static int SvcUninstall(const char * SvcName) +{ + SC_HANDLE SCManager; + SC_HANDLE Service; + + SCManager = OpenSCManager( + NULL, /* local computer */ + NULL, /* ServicesActive database */ + SC_MANAGER_ALL_ACCESS); /* full access rights */ + + if (NULL == SCManager) { + upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); + return EXIT_FAILURE; + } + + Service = OpenService( + SCManager, /* SCM database */ + SvcName, /* name of service */ + DELETE); /* need delete access */ + + if (Service == NULL) { + upslogx(LOG_ERR, "OpenService failed (%d)\n", (int)GetLastError()); + CloseServiceHandle(SCManager); + return EXIT_FAILURE; + } + + if (! DeleteService(Service) ) { + upslogx(LOG_ERR,"DeleteService failed (%d)\n", (int)GetLastError()); + } + else { + upslogx(LOG_ERR,"Service deleted successfully\n"); + } + + CloseServiceHandle(Service); + CloseServiceHandle(SCManager); + + return EXIT_SUCCESS; +} + +static void ReportSvcStatus( DWORD CurrentState, + DWORD Win32ExitCode, + DWORD WaitHint) +{ + static DWORD CheckPoint = 1; + + SvcStatus.dwCurrentState = CurrentState; + SvcStatus.dwWin32ExitCode = Win32ExitCode; + SvcStatus.dwWaitHint = WaitHint; + + if (CurrentState == SERVICE_START_PENDING) + SvcStatus.dwControlsAccepted = 0; + else SvcStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN; + + if ( (CurrentState == SERVICE_RUNNING) || + (CurrentState == SERVICE_STOPPED) ) { + SvcStatus.dwCheckPoint = 0; + } + else { + SvcStatus.dwCheckPoint = CheckPoint++; + } + + /* report the status of the service to the SCM */ + SetServiceStatus( SvcStatusHandle, &SvcStatus ); +} + +static void WINAPI SvcCtrlHandler( DWORD Ctrl ) +{ + switch(Ctrl) + { + case SERVICE_CONTROL_STOP: + case SERVICE_CONTROL_SHUTDOWN: + ReportSvcStatus(SERVICE_STOP_PENDING, NO_ERROR, 0); + + /* Signal the service to stop */ + SetEvent(svc_stop); + ReportSvcStatus(SvcStatus.dwCurrentState, NO_ERROR, 0); + + return; + + case SERVICE_CONTROL_INTERROGATE: + break; + + default: + break; + } +} + +static void SvcStart(char * SvcName) +{ + /* Register the handler function for the service */ + SvcStatusHandle = RegisterServiceCtrlHandler( + SvcName, + SvcCtrlHandler); + + if( !SvcStatusHandle ) { + upslogx(LOG_ERR, "RegisterServiceCtrlHandler\n"); + return; + } + + SvcStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS; + SvcStatus.dwServiceSpecificExitCode = 0; + + /* Report initial status to the SCM */ + ReportSvcStatus( SERVICE_START_PENDING, NO_ERROR, 3000 ); +} + +static void SvcReady(void) +{ + svc_stop = CreateEvent( + NULL, /* default security attributes */ + TRUE, /* manual reset event */ + FALSE, /* not signaled */ + NULL); /* no name */ + + if( svc_stop == NULL ) { + ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); + return; + } + ReportSvcStatus( SERVICE_RUNNING, NO_ERROR, 0); +} + +static void close_all(void) +{ + pipe_conn_t *conn; + + for (conn = pipe_connhead; conn; conn = conn->next) { + pipe_disconnect(conn); + } + +} + +static void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) +{ + + DWORD ret; + HANDLE handles[MAXIMUM_WAIT_OBJECTS]; + int maxhandle = 0; + pipe_conn_t *conn; + DWORD priority; + char * buf; + + if(service_flag) { + SvcStart(SVCNAME); + } + + /* A service has no console, so do has its children. */ + /* So if we want to be able to send CTRL+BREAK signal we must */ + /* create a console which will be inheritated by children */ + AllocConsole(); + + print_event(LOG_INFO,"Starting"); + + /* pipe for event log proxy */ + pipe_create(EVENTLOG_PIPE_NAME); + + /* parse nut.conf and start relevant processes */ + if ( parse_nutconf(NUT_START) == 0 ) { + print_event(LOG_INFO, "exiting"); + if( service_flag ) { + ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); + } + return; + } + + if(service_flag) { + SvcReady(); + } + + while (1) { + maxhandle = 0; + memset(&handles,0,sizeof(handles)); + + /* Wait on the read IO of each connections */ + for (conn = pipe_connhead; conn; conn = conn->next) { + handles[maxhandle] = conn->overlapped.hEvent; + maxhandle++; + } + /* Add the new pipe connected event */ + handles[maxhandle] = pipe_connection_overlapped.hEvent; + maxhandle++; + + /* Add SCM event handler in service mode*/ + if(service_flag) { + handles[maxhandle] = svc_stop; + maxhandle++; + } + + ret = WaitForMultipleObjects(maxhandle,handles,FALSE,INFINITE); + + if (ret == WAIT_FAILED) { + print_event(LOG_ERR, "Wait failed"); + return; + } + + if( handles[ret] == svc_stop && service_flag ) { + parse_nutconf(NUT_STOP); + if(service_flag) { + print_event(LOG_INFO, "Exiting"); + close_all(); + ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); + } + return; + } + + /* Retrieve the signaled connection */ + for(conn = pipe_connhead; conn != NULL; conn = conn->next) { + if( conn->overlapped.hEvent == handles[ret-WAIT_OBJECT_0]) { + break; + } + } + /* a new pipe connection has been signaled */ + if (handles[ret] == pipe_connection_overlapped.hEvent) { + pipe_connect(); + } + /* one of the read event handle has been signaled */ + else { + if( conn != NULL) { + if( pipe_ready(conn) ) { + buf = conn->buf; + /* a frame is a DWORD indicating priority followed by an array of char (not necessarily followed by a terminal 0 */ + priority =*((DWORD *)buf); + buf = buf + sizeof(DWORD); + print_event(priority,buf); + + pipe_disconnect(conn); + } + } + } + } +} + +int main(int argc, char **argv) +{ + int i; + while ((i = getopt(argc, argv, "+IUN")) != -1) { + switch (i) { + case 'I': + return SvcInstall(SVCNAME,NULL); + case 'U': + return SvcUninstall(SVCNAME); + case 'N': + service_flag = FALSE; + upslogx(LOG_ERR, "Running in non-service mode\n"); + break; + default: + break; + } + } + + optind = 0; + + SERVICE_TABLE_ENTRY DispatchTable[] = + { + { SVCNAME, (LPSERVICE_MAIN_FUNCTION) SvcMain }, + { NULL, NULL } + }; + /* This call returns when the service has stopped */ + if(service_flag ) { + if (!StartServiceCtrlDispatcher( DispatchTable )) + { + print_event(LOG_ERR, "StartServiceCtrlDispatcher failed : exiting, this is a Windows service which can't be run as a regular application by default. Try -N to start it as a regular application"); + } + } + else { + SvcMain(argc,argv); + } + + return EXIT_SUCCESS; +} +#endif /* WIN32 */ From 2e009f773c2c20c9351a1da7702fedbdffa36ed6 Mon Sep 17 00:00:00 2001 From: Arnaud Quette Date: Wed, 25 May 2011 13:03:26 +0000 Subject: [PATCH 118/218] Fix Winsock2 testing and result publication Fossil-ID: SVN r3004 --- m4/nut_type_socklen_t.m4 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/m4/nut_type_socklen_t.m4 b/m4/nut_type_socklen_t.m4 index 4012d302a8..21e3b7a8ba 100644 --- a/m4/nut_type_socklen_t.m4 +++ b/m4/nut_type_socklen_t.m4 @@ -69,6 +69,7 @@ AC_DEFUN([NUT_PREREQ_SYS_H_SOCKET], if test $ac_cv_header_sys_socket_h = yes; then HAVE_SYS_SOCKET_H=1 HAVE_WS2TCPIP_H=0 + HAVE_WINSOCK2_H=0 else HAVE_SYS_SOCKET_H=0 dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make @@ -87,8 +88,8 @@ AC_DEFUN([NUT_PREREQ_SYS_H_SOCKET], else HAVE_WINSOCK2_H=0 fi - AC_SUBST([HAVE_WINSOCK2_H]) fi + AC_SUBST([HAVE_WINSOCK2_H]) AC_SUBST([HAVE_SYS_SOCKET_H]) AC_SUBST([HAVE_WS2TCPIP_H]) ]) From 9f4d3497b14f538cd4cca1e8d8e31525b3050b9a Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 24 Jun 2011 11:28:11 +0000 Subject: [PATCH 119/218] Correct configuration value for usb_set_configuration Fossil-ID: SVN r3058 --- drivers/bcmxcp_usb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/bcmxcp_usb.c b/drivers/bcmxcp_usb.c index a59a0ab7e6..5086ea6462 100644 --- a/drivers/bcmxcp_usb.c +++ b/drivers/bcmxcp_usb.c @@ -419,7 +419,7 @@ usb_dev_handle *nutusb_open(const char *port) errout = 0; #ifdef WIN32 - if (usb_set_configuration(dev_h, 0) < 0) + if (usb_set_configuration(dev_h, 1) < 0) { upsdebugx(1, "Can't set POWERWARE USB configuration: %s", usb_strerror()); errout = 1; From a6a1ab1c47d0f0940625d7fab318ddcad0037de7 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 24 Jun 2011 12:45:04 +0000 Subject: [PATCH 120/218] Merge from trunk [[SVN:3002]] to [[SVN:3057]] [[SVN:3002]] = 2011-05-25T11:30:37Z!arnaud.quette@free.fr [[SVN:3057]] = 2011-06-23T17:26:22Z!adkorte-guest@alioth.debian.org Fossil-ID: SVN r3059 --- configure.in | 5 +++++ drivers/main.c | 34 +++++++++++++++++++++++++++++- scripts/upower/95-upower-hid.rules | 4 ++++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/configure.in b/configure.in index 3ee90fa576..b9306ff7b1 100644 --- a/configure.in +++ b/configure.in @@ -220,8 +220,13 @@ dnl ---------------------------------------------------------------------- dnl check for --with-all (or --without-all, or --with-all=auto) flag AC_MSG_CHECKING(for --with-all) +<<<<<<< HEAD AC_ARG_WITH(all, AS_HELP_STRING([--with-all], [enable serial, usb, snmp, neon, ipmi, powerman, cgi, dev, avahi]), +======= +AC_ARG_WITH(all, + AS_HELP_STRING([--with-all], [enable serial, usb, snmp, neon, powerman, cgi, dev]), +>>>>>>> Merge from trunk [[SVN:3002]] to [[SVN:3057]] [ if test -n "${withval}"; then dnl Note: we allow "no" as a positive value, because diff --git a/drivers/main.c b/drivers/main.c index 68c3d03f5c..0f17415683 100644 --- a/drivers/main.c +++ b/drivers/main.c @@ -646,7 +646,39 @@ int main(int argc, char **argv) writepid(pidfn); /* before backgrounding */ } #endif - setup_signals(); + /* Setup signals to communicate with driver once backgrounded. */ + if ((nut_debug_level == 0) && (!do_forceshutdown)) { + char buffer[SMALLBUF]; + + setup_signals(); + + snprintf(buffer, sizeof(buffer), "%s/%s-%s.pid", altpidpath(), progname, upsname); + + /* Try to prevent that driver is started multiple times. If a PID file */ + /* already exists, send a TERM signal to the process and try if it goes */ + /* away. If not, retry a couple of times. */ + for (i = 0; i < 3; i++) { + struct stat st; + + if (stat(buffer, &st) != 0) { + /* PID file not found */ + break; + } + + if (sendsignalfn(buffer, SIGTERM) != 0) { + /* Can't send signal to PID, assume invalid file */ + break; + } + + upslogx(LOG_WARNING, "Duplicate driver instance detected! Terminating other driver!"); + + /* Allow driver some time to quit */ + sleep(5); + } + + pidfn = xstrdup(buffer); + writepid(pidfn); /* before backgrounding */ + } /* clear out callback handler data */ memset(&upsh, '\0', sizeof(upsh)); diff --git a/scripts/upower/95-upower-hid.rules b/scripts/upower/95-upower-hid.rules index 512f0d7981..1799181a33 100644 --- a/scripts/upower/95-upower-hid.rules +++ b/scripts/upower/95-upower-hid.rules @@ -72,7 +72,11 @@ ATTRS{idVendor}=="051d", ATTRS{idProduct}=="0003", ENV{UPOWER_BATTERY_TYPE}="ups # Powerware ATTRS{idVendor}=="0592", ATTRS{idProduct}=="0004", ENV{UPOWER_BATTERY_TYPE}="ups" +<<<<<<< HEAD # Phoenixtec Power Co., Ltd +======= +# Phoenixtec +>>>>>>> Merge from trunk [[SVN:3002]] to [[SVN:3057]] ATTRS{idVendor}=="06da", ATTRS{idProduct}=="ffff", ENV{UPOWER_BATTERY_TYPE}="ups" # iDowell From 4d95c13275819ef89ab2813a7171788673c03046 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 29 Jun 2011 13:57:49 +0000 Subject: [PATCH 121/218] Fix timeout being in seconds instead of milliseconds Fossil-ID: SVN r3107 --- drivers/dstate.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/dstate.c b/drivers/dstate.c index 16014d6e15..615482c263 100644 --- a/drivers/dstate.c +++ b/drivers/dstate.c @@ -818,6 +818,7 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) HANDLE rfds[32]; conn_t *conn; struct timeval now; + DWORD timeout_ms; /* if (extrafd != -1) { @@ -843,6 +844,8 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) timeout.tv_usec -= now.tv_usec; } + timeout_ms = (timeout.tv_sec * 1000) + (timeout.tv_usec / 1000); + /* Wait on the read IO of each connections */ for (conn = connhead; conn; conn = conn->next) { rfds[maxfd] = conn->read_overlapped.hEvent; @@ -851,12 +854,11 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) /* Add the connect event */ rfds[maxfd] = connect_overlapped.hEvent; maxfd++; - ret = WaitForMultipleObjects( - maxfd, // number of objects in array - rfds, // array of objects - FALSE, // wait for any object - timeout.tv_sec); // five-second wait + maxfd, /* number of objects in array */ + rfds, /* array of objects */ + FALSE, /* wait for any object */ + timeout_ms); /* timeout in millisecond */ if (ret == WAIT_TIMEOUT) { return 1; /* timer expired */ From 029d1a5105c717e200ef686512028d005841a087 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 29 Jun 2011 13:59:10 +0000 Subject: [PATCH 122/218] Add WIN32 specific error case for detecting disconnection Fossil-ID: SVN r3108 --- drivers/usbhid-ups.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/usbhid-ups.c b/drivers/usbhid-ups.c index ce6d94ab5c..dea08ecc83 100644 --- a/drivers/usbhid-ups.c +++ b/drivers/usbhid-ups.c @@ -1257,6 +1257,10 @@ static bool_t hid_ups_walk(walkmode_t mode) case -EIO: /* I/O error */ case -ENXIO: /* No such device or address */ case -ENOENT: /* No such file or directory */ +#ifdef WIN32 + case -EINVAL: /* Invalid argument */ + case -ENOMEM: /* Out of memory */ +#endif /* Uh oh, got to reconnect! */ hd = NULL; return FALSE; From f4a947da2f5765edad89dddfdbea8aad45c33eca Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 30 Jun 2011 09:36:09 +0000 Subject: [PATCH 123/218] Change timeout from seconds to milliseconds (from David Bolen) Fossil-ID: SVN r3110 --- clients/upsmon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clients/upsmon.c b/clients/upsmon.c index 995d1e9147..de254ca12e 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -2184,7 +2184,7 @@ int main(int argc, char *argv[]) handles[maxhandle] = pipe_connection_overlapped.hEvent; maxhandle++; - ret = WaitForMultipleObjects(maxhandle,handles,FALSE,sleepval); + ret = WaitForMultipleObjects(maxhandle,handles,FALSE,sleepval*1000); if (ret == WAIT_FAILED) { upslogx(LOG_ERR, "Wait failed"); From 0785ad8a1e7147821788a673485852639418b8f7 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 30 Jun 2011 11:03:40 +0000 Subject: [PATCH 124/218] Revert [[SVN:3108]]. Correct errno management should be enough [[SVN:3108]] = 2011-06-29T13:59:10Z!fbohe-guest@alioth.debian.org Fossil-ID: SVN r3111 --- drivers/usbhid-ups.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/usbhid-ups.c b/drivers/usbhid-ups.c index dea08ecc83..ce6d94ab5c 100644 --- a/drivers/usbhid-ups.c +++ b/drivers/usbhid-ups.c @@ -1257,10 +1257,6 @@ static bool_t hid_ups_walk(walkmode_t mode) case -EIO: /* I/O error */ case -ENXIO: /* No such device or address */ case -ENOENT: /* No such file or directory */ -#ifdef WIN32 - case -EINVAL: /* Invalid argument */ - case -ENOMEM: /* Out of memory */ -#endif /* Uh oh, got to reconnect! */ hd = NULL; return FALSE; From acfc00c50eadc33c7b61f24d5e675c114d2cd825 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 30 Jun 2011 13:48:17 +0000 Subject: [PATCH 125/218] Make sure errno is set to an actual error code (thanks to David Bolen) Fossil-ID: SVN r3112 --- drivers/libusb.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/libusb.c b/drivers/libusb.c index 1ef7eefddd..f0811816bb 100644 --- a/drivers/libusb.c +++ b/drivers/libusb.c @@ -417,6 +417,10 @@ static int libusb_get_report(usb_dev_handle *udev, int ReportId, unsigned char * ReportId+(0x03<<8), /* HID_REPORT_TYPE_FEATURE */ 0, raw_buf, ReportSize, USB_TIMEOUT); +#ifdef WIN32 + errno = -ret; +#endif + /* Ignore "protocol stall" (for unsupported request) on control endpoint */ if (ret == -EPIPE) { return 0; @@ -439,6 +443,10 @@ static int libusb_set_report(usb_dev_handle *udev, int ReportId, unsigned char * ReportId+(0x03<<8), /* HID_REPORT_TYPE_FEATURE */ 0, raw_buf, ReportSize, USB_TIMEOUT); +#ifdef WIN32 + errno = -ret; +#endif + /* Ignore "protocol stall" (for unsupported request) on control endpoint */ if (ret == -EPIPE) { return 0; @@ -457,6 +465,10 @@ static int libusb_get_string(usb_dev_handle *udev, int StringIdx, char *buf, siz ret = usb_get_string_simple(udev, StringIdx, buf, buflen); +#ifdef WIN32 + errno = -ret; +#endif + return libusb_strerror(ret, __func__); } @@ -471,6 +483,9 @@ static int libusb_get_interrupt(usb_dev_handle *udev, unsigned char *buf, int bu /* FIXME: hardcoded interrupt EP => need to get EP descr for IF descr */ ret = usb_interrupt_read(udev, 0x81, (char *)buf, bufsize, timeout); +#ifdef WIN32 + errno = -ret; +#endif /* Clear stall condition */ if (ret == -EPIPE) { ret = usb_clear_halt(udev, 0x81); From dcd40a03b2a835f466e8e4f4f1fee4a2b8b57070 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 30 Jun 2011 13:49:58 +0000 Subject: [PATCH 126/218] Make sure serial functions set errno to an actual error code (which might not be the most relevant one, but it's better than nothing) Fossil-ID: SVN r3113 --- common/wincompat.c | 57 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 50 insertions(+), 7 deletions(-) diff --git a/common/wincompat.c b/common/wincompat.c index 92f75582d4..86c786f018 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -352,6 +352,8 @@ int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen, DWORD timeou HANDLE w4; DWORD minchars = sh->vmin_ ?: ulen; + errno = 0; + w4 = sh->io_status.hEvent; upsdebugx(4,"w32_serial_read : ulen %d, vmin_ %d, vtime_ %d, hEvent %p", ulen, sh->vmin_, sh->vtime_,sh->io_status.hEvent); @@ -413,6 +415,7 @@ int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen, DWORD timeou sh->overlapped_armed = 0; ResetEvent (sh->io_status.hEvent); upsdebugx(4,"w32_serial_read : timeout %d ms ellapsed", (int)timeout); + errno = EIO; return 0; default: goto err; @@ -449,6 +452,7 @@ int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen, DWORD timeou num = 0; else { + errno = EIO; tot = -1; break; } @@ -464,6 +468,8 @@ int w32_serial_write (serial_handler_t * sh, const void *ptr, size_t len) DWORD bytes_written; OVERLAPPED write_status; + errno = 0; + memset (&write_status, 0, sizeof (write_status)); write_status.hEvent = CreateEvent (NULL, TRUE, FALSE, NULL); @@ -494,6 +500,7 @@ int w32_serial_write (serial_handler_t * sh, const void *ptr, size_t len) err: CloseHandle(write_status.hEvent); + errno = EIO; return -1; } @@ -503,6 +510,8 @@ serial_handler_t * w32_serial_open (const char *name, int flags) interface as POSIX open */ COMMTIMEOUTS to; + errno = 0; + upslogx(LOG_INFO,"w32_serial_open (%s)",name); serial_handler_t * sh; @@ -514,6 +523,7 @@ serial_handler_t * w32_serial_open (const char *name, int flags) if(sh->handle == INVALID_HANDLE_VALUE) { upslogx(LOG_ERR,"could not open %s",name); + errno = EPERM; return NULL; } @@ -569,6 +579,8 @@ int w32_serial_close (serial_handler_t * sh) } free(sh); + errno = 0; + return 0; } @@ -579,17 +591,23 @@ int tcsendbreak (serial_handler_t * sh, int duration) { unsigned int sleeptime = 300000; + errno = 0; + if (duration > 0) sleeptime *= duration; - if (SetCommBreak (sh->handle) == 0) + if (SetCommBreak (sh->handle) == 0) { + errno = EIO; return -1; + } /* FIXME: need to send zero bits during duration */ usleep (sleeptime); - if (ClearCommBreak (sh->handle) == 0) + if (ClearCommBreak (sh->handle) == 0) { + errno = EIO; return -1; + } upslogx(LOG_DEBUG,"0 = tcsendbreak (%d)", duration); @@ -599,8 +617,12 @@ int tcsendbreak (serial_handler_t * sh, int duration) /* tcdrain: POSIX 7.2.2.1 */ int tcdrain (serial_handler_t * sh) { - if (FlushFileBuffers (sh->handle) == 0) + errno = 0; + + if (FlushFileBuffers (sh->handle) == 0) { + errno = EIO; return -1; + } return 0; } @@ -612,6 +634,8 @@ int tcflow (serial_handler_t * sh, int action) DCB dcb; char xchar; + errno = 0; + upslogx(LOG_DEBUG,"action %d", action); switch (action) @@ -639,8 +663,10 @@ int tcflow (serial_handler_t * sh, int action) break; } - if (EscapeCommFunction (sh->handle, win32action) == 0) + if (EscapeCommFunction (sh->handle, win32action) == 0) { + errno = EIO; return -1; + } return 0; } @@ -650,6 +676,8 @@ int tcflush (serial_handler_t * sh, int queue) { int max; + errno = 0; + if (queue == TCOFLUSH || queue == TCIOFLUSH) PurgeComm (sh->handle, PURGE_TXABORT | PURGE_TXCLEAR); @@ -684,6 +712,8 @@ TCSAFLUSH: flush output and discard input, then change attributes. DCB ostate, state; unsigned int ovtime = sh->vtime_, ovmin = sh->vmin_; + errno = 0; + upslogx(LOG_DEBUG, "action %d", action); if ((action == TCSADRAIN) || (action == TCSAFLUSH)) { @@ -694,8 +724,10 @@ TCSAFLUSH: flush output and discard input, then change attributes. PurgeComm (sh->handle, (PURGE_RXABORT | PURGE_RXCLEAR)); /* get default/last comm state */ - if (!GetCommState (sh->handle, &ostate)) + if (!GetCommState (sh->handle, &ostate)) { + errno = EIO; return -1; + } state = ostate; @@ -745,6 +777,7 @@ TCSAFLUSH: flush output and discard input, then change attributes. default: /* Unsupported baud rate! */ upslogx(LOG_ERR,"Invalid t->c_ospeed %d", t->c_ospeed); + errno = EINVAL; return -1; } @@ -768,6 +801,7 @@ TCSAFLUSH: flush output and discard input, then change attributes. /* Unsupported byte size! */ upslogx(LOG_ERR,"Invalid t->c_cflag byte size %d", t->c_cflag & CSIZE); + errno = EINVAL; return -1; } @@ -935,8 +969,10 @@ TCSAFLUSH: flush output and discard input, then change attributes. upslogx(LOG_DEBUG,"vtime %d, vmin %d\n", sh->vtime_, sh->vmin_); - if (ovmin == sh->vmin_ && ovtime == sh->vtime_) + if (ovmin == sh->vmin_ && ovtime == sh->vtime_) { + errno = EINVAL; return 0; + } memset (&to, 0, sizeof (to)); @@ -973,6 +1009,7 @@ TCSAFLUSH: flush output and discard input, then change attributes. if (!res) { upslogx(LOG_ERR,"SetCommTimeout failed"); + errno = EIO; return -1; } @@ -984,9 +1021,13 @@ int tcgetattr (serial_handler_t * sh, struct termios *t) { DCB state; + errno = 0; + /* Get current Win32 comm state */ - if (GetCommState (sh->handle, &state) == 0) + if (GetCommState (sh->handle, &state) == 0) { + errno = EIO; return -1; + } /* for safety */ memset (t, 0, sizeof (*t)); @@ -1035,6 +1076,7 @@ int tcgetattr (serial_handler_t * sh, struct termios *t) default: /* Unsupported baud rate! */ upslogx(LOG_ERR,"Invalid baud rate %d", (int)state.BaudRate); + errno = EINVAL; return -1; } @@ -1057,6 +1099,7 @@ int tcgetattr (serial_handler_t * sh, struct termios *t) default: /* Unsupported byte size! */ upslogx(LOG_ERR,"Invalid byte size %d", state.ByteSize); + errno = EINVAL; return -1; } From 1a72ce848a4f51f3e136acd2578cf7de239740e0 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 30 Jun 2011 13:51:21 +0000 Subject: [PATCH 127/218] Add the error message associated with GetLastError to the error string. This may be helpful for support. Fossil-ID: SVN r3114 --- common/common.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/common/common.c b/common/common.c index d956bd670e..e8f74a313e 100644 --- a/common/common.c +++ b/common/common.c @@ -417,8 +417,26 @@ static void vupslog(int priority, const char *fmt, va_list va, int use_strerror) LARGEBUF); - if (use_strerror) + if (use_strerror) { snprintfcat(buf, sizeof(buf), ": %s", strerror(errno)); +#ifdef WIN32 + LPVOID WinBuf; + DWORD WinErr = GetLastError(); + FormatMessage( + FORMAT_MESSAGE_MAX_WIDTH_MASK | + FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + WinErr, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR) &WinBuf, + 0, NULL ); + + snprintfcat(buf, sizeof(buf), " [%s]", WinBuf); + LocalFree(WinBuf); +#endif + } if (nut_debug_level > 0) { static struct timeval start = { 0 }; From fd32d6ad5a728747bbc9cbd9a00db8df01e49105 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 4 Jul 2011 08:06:51 +0000 Subject: [PATCH 128/218] Add a notification to unplug and re-plug the device... ...so that Windows uses the newly installed driver. Fossil-ID: SVN r3116 --- scripts/Windows/DriverInstaller/wdi-simple.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/Windows/DriverInstaller/wdi-simple.c b/scripts/Windows/DriverInstaller/wdi-simple.c index 57e170d348..9cc3d29f87 100644 --- a/scripts/Windows/DriverInstaller/wdi-simple.c +++ b/scripts/Windows/DriverInstaller/wdi-simple.c @@ -99,6 +99,8 @@ int __cdecl main(int argc, char** argv) oprintf("Installing driver\n"); r = wdi_install_driver(&dev, ext_dir, inf_name, &oid); oprintf("%s\n", wdi_strerror(r)); + oprintf("You should now unplug and re-plug your device to finish driver's installation.\nHit enter when it's done.\n"); + getc(stdin); } } index++; @@ -107,7 +109,7 @@ int __cdecl main(int argc, char** argv) // No plugged USB device matches if (!matching_device_found) { - oprintf("No known UPS device found.\nTry installing libUSB manually.\nHit a key to continue\n"); + oprintf("No known UPS device found.\nTry installing libUSB manually.\nHit enter to continue\n"); getc(stdin); } From 0dc2036c022a04071438248704af1fb504c77547 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 4 Jul 2011 08:48:28 +0000 Subject: [PATCH 129/218] Change from libgnurx-0.dll to msys-regex-1.dll for the sake of coherency (use only msys DLLs) Fossil-ID: SVN r3117 --- scripts/Windows/Installer/BuildInstaller.bat | 2 +- scripts/Windows/Installer/NUT-Installer.xml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/Windows/Installer/BuildInstaller.bat b/scripts/Windows/Installer/BuildInstaller.bat index 9c8d7735d1..174b8ee99c 100644 --- a/scripts/Windows/Installer/BuildInstaller.bat +++ b/scripts/Windows/Installer/BuildInstaller.bat @@ -15,7 +15,7 @@ REM copy DLL files from system copy /Y %MSYS_BIN_DIR%msys-1.0.dll .\ImageFiles\Others copy /Y %MSYS_BIN_DIR%msys-crypto-1.0.0.dll .\ImageFiles\Others copy /Y %MSYS_BIN_DIR%msys-ssl-1.0.0.dll .\ImageFiles\Others -copy /Y %MINGW_BIN_DIR%libgnurx-0.dll .\ImageFiles\Others +copy /Y %MSYS_BIN_DIR%msys-regex-1.dll .\ImageFiles\Others REM use "candle.exe" to create the "object" file candle.exe "%NUT-XML-FILE%" -out "%wixobjName%" >"log.txt" diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index b5361ad037..21594bd86c 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -65,8 +65,8 @@ After installling libusb-win32, run libUSB's Inf Wizard and choose your device.< 2. msys-ssl-1.0.0.dll and msys-crypto-1.0.0.dll - http://sourceforge.net/projects/mingw/files/MSYS/openssl/openssl-1.0.0-1/ - - 3. libgnurx-0.dll - http://sourceforge.net/projects/mingw/files/UserContributed/regex/mingw-regex-2.5.1/ + + 3. msys-regex-1.dll - http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/regex/regex-1.20090805-2/ @@ -1191,8 +1191,8 @@ Public License instead of this License. - - + + @@ -1731,7 +1731,7 @@ Public License instead of this License. - + @@ -1944,4 +1944,4 @@ Public License instead of this License. LIBUSBINSTALL=1 - \ No newline at end of file + From b4c144e37c8c121401b25231a1388ee263af0472 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 8 Aug 2011 08:51:04 +0000 Subject: [PATCH 130/218] The stock msys-regex-1.dll is crashing. So now we bundle libregex-1.dll which is a binary compiled from sources Fossil-ID: SVN r3151 --- scripts/Windows/Installer/NUT-Installer.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index 21594bd86c..835767e5b9 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1,7 +1,7 @@ - + @@ -66,7 +66,7 @@ After installling libusb-win32, run libUSB's Inf Wizard and choose your device.< 2. msys-ssl-1.0.0.dll and msys-crypto-1.0.0.dll - http://sourceforge.net/projects/mingw/files/MSYS/openssl/openssl-1.0.0-1/ - 3. msys-regex-1.dll - http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/regex/regex-1.20090805-2/ + 3. libregex-1.dll - http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/regex/regex-1.20090805-2/ @@ -1191,8 +1191,8 @@ Public License instead of this License. - - + + @@ -1731,7 +1731,7 @@ Public License instead of this License. - + @@ -1944,4 +1944,4 @@ Public License instead of this License. LIBUSBINSTALL=1 - + \ No newline at end of file From c9c39fd8d6f97329e8eb21290853074b387222f3 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 8 Aug 2011 08:52:36 +0000 Subject: [PATCH 131/218] This seems to be the correct way to set and reset DTR and RTS with Win32 API Fossil-ID: SVN r3152 --- drivers/serial.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/drivers/serial.c b/drivers/serial.c index 0eafb1de5a..d4ed1c0f14 100644 --- a/drivers/serial.c +++ b/drivers/serial.c @@ -217,22 +217,28 @@ int ser_set_rts(int fd, int state) #else int ser_set_dtr(serial_handler_t * fd, int state) { - DCB dcb; - - GetCommState(fd->handle, &dcb); - dcb.fDtrControl = state; + DWORD action; - return SetCommState(fd->handle,&dcb); + if(state == 0) { + action = CLRDTR; + } + else { + action = SETDTR; + } + return EscapeCommFunction(fd->handle,action); } int ser_set_rts(serial_handler_t * fd, int state) { - DCB dcb; - - GetCommState(fd->handle, &dcb); - dcb.fRtsControl = state; + DWORD action; - return SetCommState(fd->handle,&dcb); + if(state == 0) { + action = CLRRTS; + } + else { + action = SETRTS; + } + return EscapeCommFunction(fd->handle,action); } #endif From 2940efd71b7a81da3b2c67b7f0d0529f00670d7e Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 8 Aug 2011 13:39:39 +0000 Subject: [PATCH 132/218] Add some more hints on how to compile wdi-simple.exe Fossil-ID: SVN r3153 --- scripts/Windows/DriverInstaller/README.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/Windows/DriverInstaller/README.txt b/scripts/Windows/DriverInstaller/README.txt index 2ca6e5afc8..9eec3d7a82 100644 --- a/scripts/Windows/DriverInstaller/README.txt +++ b/scripts/Windows/DriverInstaller/README.txt @@ -1 +1,3 @@ -To easily compile wdi-simple.exe, unzip a copy of libwdi on your disk, then copy wdi-simple.c and nutscan-usb.h into the "examples" subdirectory of libwdi directory. Then run ddk_build.cmd from the root of the libwdi directory. +To easily compile wdi-simple.exe, unzip a copy of libwdi on your disk. +Then set it up to be able to build following http://sourceforge.net/apps/mediawiki/libwdi/index.php?title=Install +Then copy wdi-simple.c and nutscan-usb.h into the "examples" subdirectory of libwdi directory. Finally run ddk_build.cmd from the root of the libwdi directory. From d38e09bc5c4c24d2ce14d4c79f622da6d18d014a Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 8 Aug 2011 13:40:36 +0000 Subject: [PATCH 133/218] Print an error message when driver's installation has failed. Fossil-ID: SVN r3154 --- scripts/Windows/DriverInstaller/wdi-simple.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/Windows/DriverInstaller/wdi-simple.c b/scripts/Windows/DriverInstaller/wdi-simple.c index 9cc3d29f87..ef83b9ac39 100644 --- a/scripts/Windows/DriverInstaller/wdi-simple.c +++ b/scripts/Windows/DriverInstaller/wdi-simple.c @@ -99,7 +99,12 @@ int __cdecl main(int argc, char** argv) oprintf("Installing driver\n"); r = wdi_install_driver(&dev, ext_dir, inf_name, &oid); oprintf("%s\n", wdi_strerror(r)); - oprintf("You should now unplug and re-plug your device to finish driver's installation.\nHit enter when it's done.\n"); + if( r == WDI_SUCCESS ) { + oprintf("You should now unplug and re-plug your device to finish driver's installation.\nHit enter when it's done.\n"); + } + else { + oprintf("An error occured while installing driver.\nTry installing libUSB manually.\nHit enter to continue\n"); + } getc(stdin); } } From e134eaadb6a23d9ea697ebe04ba44b284b9364e5 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 11 Aug 2011 06:39:31 +0000 Subject: [PATCH 134/218] Correct handling of timeout Fossil-ID: SVN r3155 --- clients/upsmon.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/clients/upsmon.c b/clients/upsmon.c index de254ca12e..0597675712 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -2191,6 +2191,10 @@ int main(int argc, char *argv[]) exit(EXIT_FAILURE); } + if (ret == WAIT_TIMEOUT) { + continue; + } + /* Retrieve the signaled connection */ for(conn = pipe_connhead; conn != NULL; conn = conn->next) { if( conn->overlapped.hEvent == handles[ret-WAIT_OBJECT_0]) { From 40688afdcc30740e1f1c1c9eac06aea5a6b24d22 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 15 Nov 2011 10:14:21 +0000 Subject: [PATCH 135/218] Merge from trunk [[SVN:3060]] to [[SVN:3318]] [[SVN:3060]] = 2011-06-27T13:56:51Z!fbohe-guest@alioth.debian.org [[SVN:3318]] = 2011-11-12T13:48:57Z!arnaud.quette@free.fr Fossil-ID: SVN r3319 --- clients/Makefile.am | 4 +- clients/upsclient.c | 38 +- common/Makefile.am | 1 + common/common.c | 1 + common/wincompat.c | 3 +- conf/upsmon.conf.sample.in | 4 + configure.in | 78 ++- docs/Makefile.am | 6 + docs/man/Makefile.am | 2 + drivers/apc-mib.c | 11 + drivers/apcsmart-old.h | 2 + drivers/apcsmart.c | 9 +- drivers/bcmxcp.c | 6 + drivers/mge-mib.c | 3 + drivers/netvision-mib.c | 2 + drivers/nut-ipmipsu.c | 3 + drivers/snmp-ups.c | 1 - scripts/Makefile.am | 2 +- scripts/java/Makefile.am | 15 + scripts/java/README | 19 + scripts/java/jNut/.gitignore | 1 + scripts/java/jNut/README | 77 +++ scripts/java/jNut/pom.xml | 40 ++ .../java/org/networkupstools/jnut/Client.java | 619 ++++++++++++++++++ .../org/networkupstools/jnut/Command.java | 100 +++ .../java/org/networkupstools/jnut/Device.java | 279 ++++++++ .../networkupstools/jnut/NutException.java | 107 +++ .../org/networkupstools/jnut/Scanner.java | 590 +++++++++++++++++ .../jnut/StringLineSocket.java | 137 ++++ .../org/networkupstools/jnut/Variable.java | 120 ++++ .../org/networkupstools/jnut/ClientTest.java | 113 ++++ .../org/networkupstools/jnut/ScannerTest.java | 178 +++++ scripts/java/jNutList/README | 30 + scripts/java/jNutList/pom.xml | 62 ++ .../org/networkupstools/jnutlist/AppList.java | 112 ++++ scripts/java/jNutWebAPI/README | 104 +++ scripts/java/jNutWebAPI/pom.xml | 93 +++ .../jnutwebapi/NutRestProvider.java | 206 ++++++ .../jnutwebapi/RestWSApplication.java | 38 ++ .../jnutwebapi/ScannerProvider.java | 85 +++ .../src/main/webapp/WEB-INF/web.xml | 41 ++ scripts/systemd/nut-driver.service.in | 2 + scripts/upower/95-upower-hid.rules | 10 - server/Makefile.am | 2 +- server/ssl.c | 18 +- server/upsd.c | 4 +- tools/git-svn.authors | 19 + tools/nut-scanner/nut-scanner.c | 4 + tools/nut-scanner/nutscan-ip.c | 5 + tools/nut-scanner/nutscan-ip.h | 4 + tools/nut-scanner/scan_avahi.c | 1 + tools/nut-scanner/scan_nut.c | 17 +- tools/nut-scanner/scan_snmp.c | 11 + tools/nut-scanner/scan_xml_http.c | 17 +- 54 files changed, 3412 insertions(+), 44 deletions(-) create mode 100644 scripts/java/Makefile.am create mode 100644 scripts/java/README create mode 100644 scripts/java/jNut/.gitignore create mode 100644 scripts/java/jNut/README create mode 100644 scripts/java/jNut/pom.xml create mode 100644 scripts/java/jNut/src/main/java/org/networkupstools/jnut/Client.java create mode 100644 scripts/java/jNut/src/main/java/org/networkupstools/jnut/Command.java create mode 100644 scripts/java/jNut/src/main/java/org/networkupstools/jnut/Device.java create mode 100644 scripts/java/jNut/src/main/java/org/networkupstools/jnut/NutException.java create mode 100644 scripts/java/jNut/src/main/java/org/networkupstools/jnut/Scanner.java create mode 100644 scripts/java/jNut/src/main/java/org/networkupstools/jnut/StringLineSocket.java create mode 100644 scripts/java/jNut/src/main/java/org/networkupstools/jnut/Variable.java create mode 100644 scripts/java/jNut/src/test/java/org/networkupstools/jnut/ClientTest.java create mode 100644 scripts/java/jNut/src/test/java/org/networkupstools/jnut/ScannerTest.java create mode 100644 scripts/java/jNutList/README create mode 100644 scripts/java/jNutList/pom.xml create mode 100644 scripts/java/jNutList/src/main/java/org/networkupstools/jnutlist/AppList.java create mode 100644 scripts/java/jNutWebAPI/README create mode 100644 scripts/java/jNutWebAPI/pom.xml create mode 100644 scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/NutRestProvider.java create mode 100644 scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/RestWSApplication.java create mode 100644 scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/ScannerProvider.java create mode 100644 scripts/java/jNutWebAPI/src/main/webapp/WEB-INF/web.xml create mode 100644 tools/git-svn.authors diff --git a/clients/Makefile.am b/clients/Makefile.am index 7199ec262b..7fd85faacd 100644 --- a/clients/Makefile.am +++ b/clients/Makefile.am @@ -45,7 +45,7 @@ upsstats_cgi_SOURCES = upsstats.c upsclient.h status.h upsstats.h \ upsimagearg.h cgilib.c cgilib.h # not LDADD. -libupsclient_la_SOURCES = upsclient.c upsclient.h +libupsclient_la_SOURCES = upsclient.c upsclient.h ../common/wincompat.c ../common/common.c libupsclient_la_LIBADD = ../common/libparseconf.la if WITH_SSL libupsclient_la_LIBADD += $(LIBSSL_LIBS) @@ -53,7 +53,7 @@ endif # libupsclient version information # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html -libupsclient_la_LDFLAGS = -version-info 3:1:0 +libupsclient_la_LDFLAGS = -version-info 3:1:0 -no-undefined libnutclient_la_SOURCES = nutclient.h nutclient.cpp diff --git a/clients/upsclient.c b/clients/upsclient.c index b0d3197949..6e17f6a1e9 100644 --- a/clients/upsclient.c +++ b/clients/upsclient.c @@ -34,6 +34,7 @@ #include #include #include +#include #ifndef WIN32 #include #include @@ -849,9 +850,13 @@ int upscli_tryconnect(UPSCONN_t *ups, const char *host, int port, int flags,stru fd_set wfds; int error; socklen_t error_size; + +#ifndef WIN32 long fd_flags; +#else + HANDLE event = NULL; + unsigned long argp; -#ifdef WIN32 WSADATA WSAdata; WSAStartup(2,&WSAdata); #endif @@ -923,6 +928,7 @@ int upscli_tryconnect(UPSCONN_t *ups, const char *host, int port, int flags,stru /* non blocking connect */ if(timeout != NULL) { +#ifndef WIN32 fd_flags = fcntl(sock_fd, F_GETFL); fd_flags |= O_NONBLOCK; fcntl(sock_fd, F_SETFL, fd_flags); @@ -930,6 +936,24 @@ int upscli_tryconnect(UPSCONN_t *ups, const char *host, int port, int flags,stru while ((v = connect(sock_fd, ai->ai_addr, ai->ai_addrlen)) < 0) { if(errno == EINPROGRESS) { +#else + event = CreateEvent(NULL, /* Security */ + FALSE, /* auto-reset */ + FALSE, /* initial state */ + NULL); /* no name */ + + /* Associate socket event to the socket via its Event object */ + WSAEventSelect( sock_fd, event, FD_CONNECT ); + CloseHandle(event); + } +#endif + + while ((v = connect(sock_fd, ai->ai_addr, ai->ai_addrlen)) < 0) { +#ifndef WIN32 + if(errno == EINPROGRESS) { +#else + if(errno == WSAEWOULDBLOCK) { +#endif FD_ZERO(&wfds); FD_SET(sock_fd, &wfds); select(sock_fd+1,NULL,&wfds,NULL, @@ -972,11 +996,16 @@ int upscli_tryconnect(UPSCONN_t *ups, const char *host, int port, int flags,stru } /* switch back to blocking operation */ +#ifndef WIN32 if(timeout != NULL) { fd_flags = fcntl(sock_fd, F_GETFL); fd_flags &= ~O_NONBLOCK; fcntl(sock_fd, F_SETFL, fd_flags); } +#else + argp = 0; + ioctlsocket(sock_fd,FIONBIO,&argp); +#endif ups->fd = sock_fd; ups->upserror = 0; @@ -1513,9 +1542,6 @@ int upscli_disconnect(UPSCONN_t *ups) ups->host = NULL; if (ups->fd < 0) { -#ifdef WIN32 - WSACleanup(); -#endif return 0; } @@ -1540,10 +1566,6 @@ int upscli_disconnect(UPSCONN_t *ups) close(ups->fd); ups->fd = -1; -#ifdef WIN32 - WSACleanup(); -#endif - return 0; } diff --git a/common/Makefile.am b/common/Makefile.am index 11532acc1d..3ebb7502aa 100644 --- a/common/Makefile.am +++ b/common/Makefile.am @@ -1,6 +1,7 @@ # Network UPS Tools: common AM_CFLAGS = -I$(top_srcdir)/include +AM_LDFLAGS = -no-undefined noinst_LTLIBRARIES = libparseconf.la libcommon.la libparseconf_la_SOURCES = parseconf.c diff --git a/common/common.c b/common/common.c index e8f74a313e..e62bf5e20c 100644 --- a/common/common.c +++ b/common/common.c @@ -345,6 +345,7 @@ int sendsignalfn(const char *pidfn, int sig) return -1; } #endif + fclose(pidf); return 0; } diff --git a/common/wincompat.c b/common/wincompat.c index 86c786f018..b8b3ae4116 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -415,7 +415,8 @@ int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen, DWORD timeou sh->overlapped_armed = 0; ResetEvent (sh->io_status.hEvent); upsdebugx(4,"w32_serial_read : timeout %d ms ellapsed", (int)timeout); - errno = EIO; + SetLastError(WAIT_TIMEOUT); + errno = 0; return 0; default: goto err; diff --git a/conf/upsmon.conf.sample.in b/conf/upsmon.conf.sample.in index b9475c4454..98b3a92e01 100644 --- a/conf/upsmon.conf.sample.in +++ b/conf/upsmon.conf.sample.in @@ -110,6 +110,10 @@ MINSUPPLIES 1 # # For Windows setup use something like: # SHUTDOWNCMD "C:\\WINDOWS\\system32\\shutdown.exe -s -t 0" +# If you have command line using space character you have to add double quote to them, like this: +# SHUTDOWNCMD "\"C:\\Program Files\\some command.bat\" -first_arg -second_arg" +# Or use the old DOS 8.3 file name, like this: +# SHUTDOWNCMD "C:\\PROGRA~1\\SOMECO~1.bat -first_arg -second_arg" SHUTDOWNCMD "/sbin/shutdown -h +0" diff --git a/configure.in b/configure.in index b9306ff7b1..5a759525ec 100644 --- a/configure.in +++ b/configure.in @@ -220,13 +220,8 @@ dnl ---------------------------------------------------------------------- dnl check for --with-all (or --without-all, or --with-all=auto) flag AC_MSG_CHECKING(for --with-all) -<<<<<<< HEAD AC_ARG_WITH(all, AS_HELP_STRING([--with-all], [enable serial, usb, snmp, neon, ipmi, powerman, cgi, dev, avahi]), -======= -AC_ARG_WITH(all, - AS_HELP_STRING([--with-all], [enable serial, usb, snmp, neon, powerman, cgi, dev]), ->>>>>>> Merge from trunk [[SVN:3002]] to [[SVN:3057]] [ if test -n "${withval}"; then dnl Note: we allow "no" as a positive value, because @@ -456,6 +451,74 @@ AM_CONDITIONAL(WITH_FREEIPMI, test "${nut_with_freeipmi}" = "yes") dnl AM_CONDITIONAL(WITH_OPENIPMI, test "${nut_with_openipmi}" = "yes") +dnl ---------------------------------------------------------------------- +dnl Check for with-ipmi, and --with-freeipmi (or --with-openipmi) +dnl Only one can be enabled at a time, with a preference for FreeIPMI +dnl if both are available (since it is the only one supported ATM!!) + +nut_ipmi_lib="" + +NUT_ARG_WITH([ipmi], [build and install IPMI PSU driver], [auto]) +NUT_ARG_WITH([freeipmi], [enable IPMI support using FreeIPMI], [auto]) +dnl NUT_ARG_WITH([openipmi], [enable IPMI support using OpenIPMI], [auto]) + +dnl ${nut_with_ipmi}: any value except "yes" or "no" is treated as "auto". +if test "${nut_with_ipmi}" != "no"; then + dnl check if FreeIPMI (and maybe later OpenIPMI) was explicitly requested + if test "${nut_with_freeipmi}" = "yes"; then + NUT_CHECK_LIBFREEIPMI + if test "${nut_have_freeipmi}" != "yes"; then + AC_MSG_ERROR(["GNU FreeIPMI not found, required for IPMI support"]) + fi + dnl Implies --with-ipmi + nut_with_ipmi="yes" + dnl elif test "${nut_with_openipmi}" = "yes"; then + dnl AC_MSG_ERROR(["OpenIPMI is not yet supported"]) + dnl NUT_CHECK_LIBOPENIPMI + dnl if test "${nut_have_openipmi}" != "yes"; then + dnl AC_MSG_ERROR(["OpenIPMI not found, required for IPMI support"]) + dnl fi + dnl Implies --with-ipmi + dnl nut_with_ipmi="yes" + dnl AC_DEFINE(WITH_OPENIPMI, 1, [Define to enable IPMI support using OpenIPMI]) + else + dnl Prefer FreeIPMI over OpenIPMI otherwise + NUT_CHECK_LIBFREEIPMI + if test "${nut_have_freeipmi}" != "yes"; then + if test "${nut_with_ipmi}" = "yes"; then + AC_MSG_ERROR(["FreeIPMI not found, required for IPMI support"]) + fi + nut_with_ipmi="no" + dnl NUT_CHECK_OPENIPMI + dnl if test "${nut_have_openipmi}" != "yes"; then + dnl if test "${nut_with_ipmi}" = "yes"; then + dnl AC_MSG_ERROR(["GNU FreeIPMI and OpenIPMI neither found, required for IPMI support"]) + dnl fi + dnl nut_with_ipmi="no" + dnl else + dnl Implies --with-ipmi + dnl nut_with_ipmi="yes" + dnl nut_with_openipmi="yes" + dnl fi + else + dnl Implies --with-ipmi + nut_with_ipmi="yes" + nut_with_freeipmi="yes" + AC_DEFINE(WITH_FREEIPMI, 1, [Define to enable IPMI support using FreeIPMI]) + fi + fi +fi + + +NUT_REPORT_FEATURE([build IPMI driver], [${nut_with_ipmi}], [${nut_ipmi_lib}], + [WITH_IPMI], [Define to enable IPMI support]) + +dnl Note: we still have to manually enable complementary AC_DEFINEs (see above) +dnl and AM_CONDITIONALs (see below)... +AM_CONDITIONAL(WITH_FREEIPMI, test "${nut_with_freeipmi}" = "yes") +dnl AM_CONDITIONAL(WITH_OPENIPMI, test "${nut_with_openipmi}" = "yes") + + dnl ---------------------------------------------------------------------- dnl The Mac OS X meta-driver looks at IOKit Power Sources keys managed by dnl the internal USB UPS driver. @@ -730,6 +793,7 @@ fi dnl ---------------------------------------------------------------------- dnl checks related to --with-dev +AC_LIBTOOL_WIN32_DLL dnl We only init libtool there to allow AC_DISABLE_STATIC AC_PROG_LIBTOOL @@ -1241,6 +1305,7 @@ AC_OUTPUT([ scripts/avahi/nut.service man/Makefile scripts/Windows/Makefile + scripts/avahi/nut.service scripts/hal/Makefile scripts/hal/ups-nut-device.fdi scripts/hotplug/Makefile @@ -1258,6 +1323,9 @@ AC_OUTPUT([ scripts/Solaris/postinstall scripts/Solaris/preremove scripts/Solaris/nut + scripts/java/Makefile + scripts/python/Makefile + scripts/systemd/Makefile scripts/udev/Makefile scripts/udev/nut-ipmipsu.rules scripts/udev/nut-usbups.rules diff --git a/docs/Makefile.am b/docs/Makefile.am index 0b4a44f64d..06aba5f242 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -87,6 +87,12 @@ ups-html.txt: ../data/driver.list.in cd ../data && $(MAKE) $(AM_MAKEFLAGS) driver.list cd ../tools && $(MAKE) $(AM_MAKEFLAGS) website +# Static HCL is generated automatically +# This is more of a harness, since this file should have already been +# generated, due to the top level Makefile SUBDIRS ordering (tools before docs) +ups-html.txt: + cd ../tools; $(MAKE) $(AM_MAKEFLAGS) website + ### TODO: automatic dependency generation # Add other directory deps (not for local EXTRA_DIST) and generated contents FULL_USER_MANUAL_DEPS = $(USER_MANUAL_DEPS) $(SHARED_DEPS) ../README \ diff --git a/docs/man/Makefile.am b/docs/man/Makefile.am index 79ee763dae..87d07efa9b 100644 --- a/docs/man/Makefile.am +++ b/docs/man/Makefile.am @@ -525,6 +525,7 @@ MAN_MANS = \ $(MAN_POWERMAN_PAGES) \ $(MAN_IPMIPSU_PAGES) \ $(MAN_MACOSX_PAGES) + $(MAN_IPMIPSU_PAGES) # distribute everything, even those not installed by default # Note that 'dist' target requires AsciiDoc! @@ -557,6 +558,7 @@ HTML_MANS = \ $(HTML_POWERMAN_MANS) \ $(HTML_IPMIPSU_MANS) \ $(HTML_MACOSX_MANS) + $(HTML_IPMIPSU_MANS) all: diff --git a/drivers/apc-mib.c b/drivers/apc-mib.c index 8851a6fb06..4dd31a239d 100644 --- a/drivers/apc-mib.c +++ b/drivers/apc-mib.c @@ -55,6 +55,17 @@ * ref: ftp://ftp.apc.com/apc/public/software/pnetmib/mib/404/powernet404.mib */ +/* Other APC sysOID: + * + * examples found on the Net and other sources: + * 'enterprises.apc.products.system.smartUPS.smartUPS700' + * '.1.3.6.1.4.1.318.1.3.4.5': ApcRPDU, + * '.1.3.6.1.4.1.318.1.3.4.4': ApcMSP + */ + +/* TODO: find the right sysOID for this MIB + * Ie ".1.3.6.1.4.1.318.1.1.1" or ".1.3.6.1.4.1.318" or? */ + /* info elements */ #define APCC_OID_BATT_STATUS ".1.3.6.1.4.1.318.1.1.1.2.1.1.0" diff --git a/drivers/apcsmart-old.h b/drivers/apcsmart-old.h index f143cfa621..525e3045dd 100644 --- a/drivers/apcsmart-old.h +++ b/drivers/apcsmart-old.h @@ -19,7 +19,9 @@ */ #include +#ifndef WIN32 #include +#endif #include "serial.h" #include "timehead.h" diff --git a/drivers/apcsmart.c b/drivers/apcsmart.c index 83d714f1ea..8f6c296ba1 100644 --- a/drivers/apcsmart.c +++ b/drivers/apcsmart.c @@ -33,6 +33,12 @@ #include "apcsmart.h" #include "apcsmart_tabs.h" +#ifndef WIN32 +#define INVALID_HANDLE_VALUE -1 +#else +#define ECANCELED ERROR_CANCELLED +#endif + /* driver description structure */ upsdrv_info_t upsdrv_info = { DRIVER_NAME, @@ -565,8 +571,7 @@ static int apc_write_i(unsigned char code, const char *fn, unsigned int ln) { int ret; errno = 0; - - if (upsfd == -1) + if (upsfd == INVALID_HANDLE_VALUE) return 0; ret = ser_send_char(upsfd, code); diff --git a/drivers/bcmxcp.c b/drivers/bcmxcp.c index ad3c5ebb00..566a5baa44 100644 --- a/drivers/bcmxcp.c +++ b/drivers/bcmxcp.c @@ -1656,6 +1656,12 @@ static int instcmd(const char *cmdname, const char *extra) sddelay = atoi(varvalue); } + /* Get the shutdown delay, if any */ + snprintf(varname, sizeof(varname)-1, "outlet.%c.delay.shutdown", cmdname[7]); + if ((varvalue = dstate_getinfo(varname)) != NULL) { + sddelay = atoi(dstate_getinfo(varname)); + } + cbuf[0] = PW_LOAD_OFF_RESTART; cbuf[1] = sddelay & 0xff; cbuf[2] = sddelay >> 8; /* high byte of the 2 byte time argument */ diff --git a/drivers/mge-mib.c b/drivers/mge-mib.c index e19816b19d..051b01f67a 100644 --- a/drivers/mge-mib.c +++ b/drivers/mge-mib.c @@ -29,6 +29,9 @@ #define MGE_MIB_VERSION "0.5" +/* TODO: + * - MGE PDU MIB and sysOID (".1.3.6.1.4.1.705.2") */ + /* TODO: * - MGE PDU MIB and sysOID (".1.3.6.1.4.1.705.2") */ diff --git a/drivers/netvision-mib.c b/drivers/netvision-mib.c index 3b31e32a6a..8f990d5992 100644 --- a/drivers/netvision-mib.c +++ b/drivers/netvision-mib.c @@ -28,6 +28,8 @@ #define NETVISION_SYSOID ".1.3.6.1.4.1.4555.1.1.1" +#define NETVISION_SYSOID ".1.3.6.1.4.1.4555.1.1.1" + /* SNMP OIDs set */ #define NETVISION_OID_UPS_MIB ".1.3.6.1.4.1.4555.1.1.1.1" #define NETVISION_OID_UPSIDENTMODEL ".1.3.6.1.4.1.4555.1.1.1.1.1.1.0" diff --git a/drivers/nut-ipmipsu.c b/drivers/nut-ipmipsu.c index 2991cfc3c8..0d5948947f 100644 --- a/drivers/nut-ipmipsu.c +++ b/drivers/nut-ipmipsu.c @@ -63,6 +63,9 @@ void upsdrv_initinfo(void) ipmi_dev.manufacturer ? ipmi_dev.manufacturer : "unknown", ipmi_dev.product ? ipmi_dev.product : "unknown"); + dstate_setinfo("driver.version.data", "%s", DRIVER_NAME); + dstate_setinfo("driver.version.internal", DRIVER_VERSION); + dstate_setinfo ("device.type", "psu"); /* Publish information from the IPMI structure */ diff --git a/drivers/snmp-ups.c b/drivers/snmp-ups.c index 514c699480..fc4ccd9d4d 100644 --- a/drivers/snmp-ups.c +++ b/drivers/snmp-ups.c @@ -1127,7 +1127,6 @@ int base_snmp_outlet_index(const char *OID_template) if (nut_snmp_get(test_OID) != NULL) break; } - outlet_index_base = base_index; } upsdebugx(3, "base_snmp_outlet_index: %i", outlet_index_base); return base_index; diff --git a/scripts/Makefile.am b/scripts/Makefile.am index a59e89d674..0afa03afbb 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -24,4 +24,4 @@ upower/95-upower-hid.rules \ Windows/halt.c \ Windows/Makefile -SUBDIRS = augeas hal hotplug python systemd udev Solaris Windows +SUBDIRS = augeas hal hotplug java python systemd udev Solaris Windows diff --git a/scripts/java/Makefile.am b/scripts/java/Makefile.am new file mode 100644 index 0000000000..83f5c1d43e --- /dev/null +++ b/scripts/java/Makefile.am @@ -0,0 +1,15 @@ +# TODO: Java / Maven build integration + +EXTRA_DIST = README \ +jNut/pom.xml \ +jNut/README \ +jNut/src/main/java/org/networkupstools/jnut/Client.java \ +jNut/src/main/java/org/networkupstools/jnut/Command.java \ +jNut/src/main/java/org/networkupstools/jnut/Device.java \ +jNut/src/main/java/org/networkupstools/jnut/NutException.java \ +jNut/src/main/java/org/networkupstools/jnut/StringLineSocket.java \ +jNut/src/main/java/org/networkupstools/jnut/Variable.java \ +jNut/src/test/java/org/networkupstools/jnut/ClientTest.java \ +jNutList/pom.xml \ +jNutList/README \ +jNutList/src/main/java/org/networkupstools/jnutlist/AppList.java diff --git a/scripts/java/README b/scripts/java/README new file mode 100644 index 0000000000..6996f1d2c0 --- /dev/null +++ b/scripts/java/README @@ -0,0 +1,19 @@ +Java NUT Client files +~~~~~~~~~~~~~~~~~~~~~ + +This directory contains various NUT Client related java source files, written by +Emilien Kia, sponsored by Eaton, and released under GPL v2. + +* "jNut": this directory contains maven project and source files for jNut, +which is a Java abstraction bundle to access NUT server(s). +You can use it in Java programs to access NUT's upsd data server in a simple +way, without having to know the NUT protocol. + +* "jNutList": this directory contains maven project and source files for +jNutList, a simple Java example program using jNut which connect to an UPSD, +lists its ups and their variables and commands. + +* "jNutWebAPI": this directory contains maven project and source files for +jNutWebAPI, a simple Java web archive to access nut informations via REST +web services. + diff --git a/scripts/java/jNut/.gitignore b/scripts/java/jNut/.gitignore new file mode 100644 index 0000000000..eb5a316cbd --- /dev/null +++ b/scripts/java/jNut/.gitignore @@ -0,0 +1 @@ +target diff --git a/scripts/java/jNut/README b/scripts/java/jNut/README new file mode 100644 index 0000000000..b68eef2221 --- /dev/null +++ b/scripts/java/jNut/README @@ -0,0 +1,77 @@ +jNut library +~~~~~~~~~~~~ + +This directory contains source files for the jNut library, +which is a Java abstraction bundle to access NUT server(s). +You can use it in Java programs to access NUT's upsd data server in a simple +way, without having to know the NUT protocol. + +jNut building requirements +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +jNut requires to be build : +- A Java JDK 6 correctly set in environment (ie bin folder in path) +- A Maven 3 installation set in environment (ie bin folder in path) with +sufficient configuration (internet connection, local repository) to let maven +get all plugins to make processes. + +jNut is written in Java SE 1.4 and is tuned to be compiled to Java 1.4 code +level so most of environment can use it. + +jNut building +^^^^^^^^^^^^^ + +Once JDK and Maven installed and configured, just go into the jNut directory +and type: + + mvn install + +The produced package called 'jNut-x.x-xxx.jar' is located in 'target' +subdirectory. + +jNut javadoc +^^^^^^^^^^^^ + +You can generate jNut javadoc by typing: + + mvn javadoc:javadoc + +Documentation will be generated in 'target/site/apidocs' subdirectory and its +entry point is located at 'target/site/apidocs/index.html'. + +Workspace cleaning +^^^^^^^^^^^^^^^^^^ + +The jNut workspace can be cleaned by removing the 'target' subdirectory or by +typing: + + mvn clean + +Unit test notes +^^^^^^^^^^^^^^^ + +jNut sources embed some unit tests in the 'src/test/java' subdirectory. +These tests are based on JUnit and are executed between compilation and +packaging phases at each build. + +Implementation notes +^^^^^^^^^^^^^^^^^^^^ + +Currently, jNut is not thread safe. It is not protected against concurrent +queries but queries to different clients can be done in parallel as there are +done on different sockets. + +Moreover, jNut have no connection preservation system so servers can break down +connections due to timeout. +Application using retrieved data must forget them when a disconnection occurs. +If the application want to maintain the connection, it must implement a +ping-pong mecanism itself. + +At present time, jNut do not support SSL connection. It is planned for near +future. + +Changelog +^^^^^^^^^ +* "0.2": Add nut-scanner. +* "0.1": Initial version with basic dialog with UPSD. + diff --git a/scripts/java/jNut/pom.xml b/scripts/java/jNut/pom.xml new file mode 100644 index 0000000000..b53b426904 --- /dev/null +++ b/scripts/java/jNut/pom.xml @@ -0,0 +1,40 @@ + + 4.0.0 + + org.networkupstools + jNut + 0.2-SNAPSHOT + jar + + jNut + http://maven.apache.org + + + UTF-8 + + + + + junit + junit + 3.8.1 + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 2.3.2 + + 1.4 + 1.4 + + + + + + diff --git a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Client.java b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Client.java new file mode 100644 index 0000000000..474f812238 --- /dev/null +++ b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Client.java @@ -0,0 +1,619 @@ +/* Client.java + + Copyright (C) 2011 Eaton + + 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 +*/ +package org.networkupstools.jnut; + +import java.io.IOException; +import java.net.UnknownHostException; +import java.util.ArrayList; + +/** + * A jNut client is start point to dialog to UPSD. + * It can connect to an UPSD then retrieve its device list. + * It support authentication by login/password. + *

    + * You can directly create and connect a client by using the + * Client(String host, int port, String login, String passwd) constructor + * or use a three phase construction: + *

      + *
    • empty constructor + *
    • setting host, port, login and password with setters + *
    • call empty connect() + *
    + *

    + * Objects retrieved by Client are attached (directly or indirectly) to it. + * If the connection is closed, attached objects must not be used anymore (GC). + *

    + * Note: The jNut Client does not support any reconnection nor ping mechanism, + * so the calling application must know the UPSD can timeout the connection. + *

    + * Note: Retrieved values are not valid along the time, they are valid at the + * precise moment they are retrieved. + * + * @author Emilien Kia + */ +public class Client { + + /** + * Host to which connect. + * Network name or IP. + * Default to "127.0.0.1" + */ + private String host = "127.0.0.1"; + + /** + * IP port. + * Default to 3493 + */ + private int port = 3493; + + /** + * Login to use to connect to UPSD. + */ + private String login = null; + + /** + * Password to use to connect to UPSD. + */ + private String passwd = null; + + /** + * Communication socket + */ + private StringLineSocket socket = null; + + + /** + * Get the host name or address to which client is (or will be) connected. + * @return Host name or address. + */ + public String getHost() { + return host; + } + + /** + * Set the host name (or address) to which the client will intend to connect to at next connection. + * @param host New host name or address. + */ + public void setHost(String host) { + this.host = host; + } + + /** + * Get the login with which the client is (or will be connected). + * @return The login. + */ + public String getLogin() { + return login; + } + + /** + * Set the login with which the client will intend to connect. + * @param login New login. + */ + public void setLogin(String login) { + this.login = login; + } + + /** + * Get the password with which the client is (or will be connected). + * @return The password. + */ + public String getPasswd() { + return passwd; + } + + /** + * Set the password with which the client will intend to connect. + * @param passwd New password. + */ + public void setPasswd(String passwd) { + this.passwd = passwd; + } + + /** + * Get the port to which client is (or will be) connected. + * @return Port number. + */ + public int getPort() { + return port; + } + + /** + * Set the port to which client is (or will be) connected. + * @param port Port number. + */ + public void setPort(int port) { + this.port = port; + } + + + + /** + * Default constructor. + */ + public Client() + { + } + + /** + * Connection constructor. + * Construct the Client object and intend to connect. + * Throw an exception if cannot connect. + * @param host Host to which connect. + * @param port IP port. + * @param login Login to use to connect to UPSD. + * @param passwd Password to use to connect to UPSD. + */ + public Client(String host, int port, String login, String passwd) throws IOException, UnknownHostException, NutException + { + connect(host, port, login, passwd); + } + + /** + * Intent to connect and authenticate to an UPSD with specified parameters. + * Throw an exception if cannot connect. + * @param host Host to which connect. + * @param port IP port. + * @param login Login to use to connect to UPSD. + * @param passwd Password to use to connect to UPSD. + */ + public void connect(String host, int port, String login, String passwd) throws IOException, UnknownHostException, NutException + { + this.host = host; + this.port = port; + this.login = login; + this.passwd = passwd; + connect(); + } + + /** + * Intent to connect to an UPSD with specified parameters without authentication. + * Throw an exception if cannot connect. + * @param host Host to which connect. + * @param port IP port. + */ + public void connect(String host, int port) throws IOException, UnknownHostException, NutException + { + this.host = host; + this.port = port; + connect(); + } + + /** + * Connection to UPSD with already specified parameters. + * Throw an exception if cannot connect. + */ + public void connect() throws IOException, UnknownHostException, NutException + { + // Force disconnect if another connection is alive. + if(socket!=null) + disconnect(); + + socket = new StringLineSocket(host, port); + + authenticate(); + } + + /** + * Intend to authenticate with specified login and password, overriding + * already defined ones. + * @param login + * @param passwd + * @throws IOException + * @throws NutException + */ + public void authenticate(String login, String passwd) throws IOException, NutException + { + this.login = login; + this.passwd = passwd; + authenticate(); + } + + /** + * Intend to authenticate with alread set login and password. + * @throws IOException + * @throws NutException + */ + public void authenticate() throws IOException, NutException + { + // Send login + if(login!=null && !login.isEmpty()) + { + String res = query("USERNAME", login); + if(!res.startsWith("OK")) + { + // Normaly response should be OK or ERR and nothing else. + throw new NutException(NutException.UnknownResponse, "Unknown response in Client.connect (USERNAME) : " + res); + } + } + // Send password + if(passwd!=null && !passwd.isEmpty()) + { + String res = query("PASSWORD", passwd); + if(!res.startsWith("OK")) + { + // Normaly response should be OK or ERR and nothing else. + throw new NutException(NutException.UnknownResponse, "Unknown response in Client.connect (PASSWORD) : " + res); + } + } + } + + /** + * Test if the client is connected to the UPSD. + * Note: it does not detect if the connection have been closed by server. + * @return True if connected. + */ + public boolean isConnected() + { + return socket!=null && socket.isConnected(); + } + + /** + * Disconnect. + */ + public void disconnect() + { + if(socket!=null) + { + try + { + if(socket.isConnected()) + socket.close(); + } + catch(IOException e) + { + e.printStackTrace(); + } + socket = null; + } + } + + /** + * Log out. + */ + public void logout() + { + if(socket!=null) + { + try + { + if(socket.isConnected()) + { + socket.write("LOGOUT"); + socket.close(); + } + } + catch(IOException e) + { + e.printStackTrace(); + } + socket = null; + } + } + + /** + * Merge an array of stings into on string, with a space ' ' separator. + * @param str First string to merge + * @param strings Additionnal strings to merge + * @param sep Separator. + * @return The merged string, empty if no source string. + */ + static String merge(String str, String[] strings) + { + String res = str; + if(strings!=null) + { + for(int n=0; n ""'. + * @param source String source to split. + * @return String couple with name and value. + */ + static String[] splitNameValueString(String source) + { + int pos = source.indexOf(' '); + if(pos<1) + return null; + String name = source.substring(0, pos); + String value = extractDoublequotedValue(source.substring(pos+1)); + if(value==null) + return null; + String[] res = new String[2]; + res[0] = name; + res[1] = value; + return res; + } + + /** + * Intend to extract a value from its doublequoted and escaped representation. + * @param source Source string to convert. + * @return Extracted value + */ + static String extractDoublequotedValue(String source) + { + // Test doublequote at begin and end of string, then remove them. + if(!(source.startsWith("\"") && source.endsWith("\""))) + return null; + source = source.substring(1, source.length()-1); + // Unescape it. + return unescape(source); + } + + /** + * Escape string with backslashes. + * @param str String to escape. + * @return Escaped string. + */ + static String escape(String str) + { + // Replace a backslash by two backslash (regexp) + str = str.replaceAll("\\\\", "\\\\\\\\"); + // Replace a doublequote by backslash-doublequote (regexp) + str = str.replaceAll("\"", "\\\\\""); + return str; + } + + /** + * Unescape string with backslashes. + * @param str String to unescape. + * @return Unescaped string. + */ + static String unescape(String str) + { + // Replace a backslash-doublequote by doublequote (regexp) + str = str.replaceAll("\\\\\"", "\""); + // Replace two backslash by a backslash (regexp) + str = str.replaceAll("\\\\\\\\", "\\\\"); + return str; + } + + /** + * Detect an UPSD ERR line. + * If found, parse it, construct and throw an NutException + * @param str Line to analyse. + * @throws NutException + */ + private void detectError(String str) throws NutException + { + if(str.startsWith("ERR ")) + { + String[] arr = str.split(" ", 3); + switch(arr.length) + { + case 2: + throw new NutException(arr[1]); + case 3: + throw new NutException(arr[1], arr[2]); + default: + throw new NutException(); + } + } + } + + /** + * Send a query line then read the response. + * Helper around query(String). + * @param query Query to send. + * @param subquery Sub query to send. + * @return The reply. + * @throws IOException + */ + protected String query(String query, String subquery) throws IOException, NutException + { + return query(query + " " + subquery); + } + + /** + * Send a query line then read the response. + * Helper around query(String, String ...). + * @param query Query to send. + * @param subquery Sub query to send. + * @param params Optionnal additionnal parameters. + * @return The reply. + * @throws IOException + */ + protected String query(String query, String subquery, String[] params) throws IOException, NutException + { + return query(query + " " + subquery, params); + } + + /** + * Send a query line then read the response. + * @param query Query to send. + * @param params Optionnal additionnal parameters. + * @return The reply. + * @throws IOException + */ + protected String query(String query, String [] params) throws IOException, NutException + { + query = merge(query, params); + return query(query); + } + + /** + * Send a query line then read the response. + * @param query Query to send. + * @return The reply. + * @throws IOException + */ + protected String query(String query) throws IOException, NutException + { + if(!isConnected()) + return null; + + socket.write(query); + String res = socket.read(); + detectError(res); + return res; + } + + /** + * Send a GET query line then read the reply and validate the response. + * @param subcmd GET subcommand to send. + * @param param Extra parameters + * @return GET result return by UPSD, without the subcommand and param prefix. + * @throws IOException + */ + protected String get(String subcmd, String param) throws IOException, NutException + { + String[] params = {param}; + return get(subcmd, params); + } + + /** + * Send a GET query line then read the reply and validate the response. + * @param subcmd GET subcommand to send. + * @param params Eventual extra parameters. + * @return GET result return by UPSD, without the subcommand and param prefix. + * @throws IOException + */ + protected String get(String subcmd, String [] params) throws IOException, NutException + { + if(!isConnected()) + return null; + + subcmd = merge(subcmd, params); + socket.write("GET " + subcmd); + String res = socket.read(); + if(res==null) + return null; + detectError(res); + if(res.startsWith(subcmd + " ")) + { + return res.substring(subcmd.length()+1); + } + else + { + return null; + } + } + + /** + * Send a LIST query line then read replies and validate them. + * @param subcmd LIST subcommand to send. + * @return LIST results return by UPSD, without the subcommand and param prefix. + * @throws IOException + */ + protected String[] list(String subcmd) throws IOException, NutException + { + return list(subcmd, (String[])null); + } + + /** + * Send a LIST query line then read replies and validate them. + * @param subcmd LIST subcommand to send. + * @param param Extra parameters. + * @return LIST results return by UPSD, without the subcommand and param prefix. + * @throws IOException + */ + protected String[] list(String subcmd, String param) throws IOException, NutException + { + String[] params = {param}; + return list(subcmd, params); + } + + /** + * Send a LIST query line then read replies and validate them. + * @param subcmd LIST subcommand to send. + * @param params Eventual extra parameters. + * @return LIST results return by UPSD, without the subcommand and param prefix. + * @throws IOException + */ + protected String[] list(String subcmd, String [] params) throws IOException, NutException + { + if(!isConnected()) + return null; + + subcmd = merge(subcmd, params); + socket.write("LIST " + subcmd); + String res = socket.read(); + if(res==null) + return null; + detectError(res); + if(!res.startsWith("BEGIN LIST " + subcmd)) + return null; + + ArrayList/**/ list = new ArrayList/**/(); + int sz = subcmd.length()+1; + while(true) + { + res = socket.read(); + detectError(res); + if(!res.startsWith(subcmd + " ")) + break; + list.add(res.substring(sz)); + } + if(!res.equals("END LIST " + subcmd)) + return null; + + return (String[])list.toArray(new String[list.size()]); + } + + + /** + * Returns the list of available devices from the NUT server. + * @return List of devices, empty if nothing, + * null if not connected or failed. + * + */ + public Device[] getDeviceList() throws IOException, NutException + { + String[] res = list("UPS"); + if(res==null) + return null; + + ArrayList/**/ list = new ArrayList/**/(); + for(int i=0; i + * It can be used to retrieve description and execute commands. + * A Command object can be retrieved from Device instance and can not be constructed directly. + * + * @author Emilien Kia + */ +public class Command { + /** + * Device to which command is attached + */ + Device device = null; + + /** + * Command name + */ + String name = null; + + /** + * Internally create a command. + * @param name Command name. + * @param device Device to which the command is attached. + */ + protected Command(String name, Device device) + { + this.device = device; + this.name = name; + } + + /** + * Return the device to which the command can be executed. + * @return Attached device. + */ + public Device getDevice() { + return device; + } + + /** + * Return the command name. + * @return Command name. + */ + public String getName() { + return name; + } + + /** + * Retrieve the command description from UPSD and store it in cache. + * @return Command description + * @throws IOException + */ + public String getDescription() throws IOException, NutException { + if(device!=null && device.getClient()!=null) + { + String[] params = {device.getName(), name}; + String res = device.getClient().get("CMDDESC", params); + return res!=null?Client.extractDoublequotedValue(res):null; + } + return null; + } + + /** + * Execute the instant command. + * @throws IOException + */ + public void execute() throws IOException, NutException { + if(device!=null && device.getClient()!=null) + { + String[] params = {device.getName(), name}; + String res = device.getClient().query("INSTCMD", params); + if(!res.equals("OK")) + { + // Normaly response should be OK or ERR and nothing else. + throw new NutException(NutException.UnknownResponse, "Unknown response in Command.execute : " + res); + } + } + } +} diff --git a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Device.java b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Device.java new file mode 100644 index 0000000000..8f4fdc15d9 --- /dev/null +++ b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Device.java @@ -0,0 +1,279 @@ +/* Device.java + + Copyright (C) 2011 Eaton + + 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 +*/ +package org.networkupstools.jnut; + +import java.io.IOException; +import java.util.ArrayList; + +/** + * Class representing a device attached to a Client. + *

    + * It can retrieve its description, its number of logins, its variable and command lists. + * A Device object can be retrieved from Client instance and can not be constructed directly. + * + * @author Emilien Kia + */ +public class Device { + + /** + * Client to which device is attached + */ + Client client = null; + + /** + * Device name + */ + String name = null; + + /** + * Internally create a device. + * @param name Device name. + * @param client Client to which the device is attached. + */ + protected Device(String name, Client client) + { + this.client = client; + this.name = name; + } + + /** + * Return the client to which the device is connected. + * @return Attached client. + */ + public Client getClient() { + return client; + } + + /** + * Return the device name. + * @return Device name. + */ + public String getName() { + return name; + } + + /** + * Retrieve the device description from UPSD and store it in cache. + * @return Device description + * @throws IOException + */ + public String getDescription() throws IOException, NutException { + if(client!=null) + { + return client.get("UPSDESC", name); + } + return null; + } + + /** + * Log in to the ups. + *

    + * Use this to log the fact that a system is drawing power from this UPS. + * The upsmon master will wait until the count of attached systems reaches + * 1 - itself. This allows the slaves to shut down first. + *

    + * NOTE: You probably shouldn't send this command unless you are upsmon, + * or a upsmon replacement. + * @throws IOException + * @throws NutException + */ + public void login() throws IOException, NutException { + if(client!=null) + { + String res = client.query("LOGIN", name); + if(!res.startsWith("OK")) + { + // Normaly response should be OK or ERR and nothing else. + throw new NutException(NutException.UnknownResponse, "Unknown response in Device.login : " + res); + } + } + } + + /** + * This function doesn't do much by itself. It is used by upsmon to make + * sure that master-level functions like FSD are available if necessary + * @throws IOException + * @throws NutException + */ + public void master() throws IOException, NutException { + if(client!=null) + { + String res = client.query("MASTER", name); + if(!res.startsWith("OK")) + { + // Normaly response should be OK or ERR and nothing else. + throw new NutException(NutException.UnknownResponse, "Unknown response in Device.master : " + res); + } + } + } + + /** + * Set the "forced shutdown" flag. + *

    + * upsmon in master mode is the primary user of this function. It sets this + * "forced shutdown" flag on any UPS when it plans to power it off. This is + * done so that slave systems will know about it and shut down before the + * power disappears. + *

    + * Setting this flag makes "FSD" appear in a STATUS request for this UPS. + * Finding "FSD" in a status request should be treated just like a "OB LB". + *

    + * It should be noted that FSD is currently a latch - once set, there is + * no way to clear it short of restarting upsd or dropping then re-adding + * it in the ups.conf. This may cause issues when upsd is running on a + * system that is not shut down due to the UPS event. + * @throws IOException + * @throws NutException + */ + public void setForcedShutdown() throws IOException, NutException { + if(client!=null) + { + String res = client.query("FSD", name); + if(!res.startsWith("OK")) + { + // Normaly response should be OK or ERR and nothing else. + throw new NutException(NutException.UnknownResponse, "Unknown response in Device.setForcedShutdown : " + res); + } + } + } + + /** + * Return the number of clients which have done LOGIN for this UPS. + * Force to retrieve it from UPSD and store it in cache. + * @return Number of clients, -1 if error. + * @throws IOException + */ + public int getNumLogin() throws IOException, NutException { + if(client!=null) + { + String res = client.get("NUMLOGINS", name); + return res!=null?Integer.parseInt(res):-1; + } + return -1; + } + + + /** + * Return the list of device variables from the NUT server. + * @return List of variables, empty if nothing, + * null if not connected or failed. + * @throws IOException + */ + public Variable[] getVariableList() throws IOException, NutException { + if(client==null) + return null; + + String[] res = client.list("VAR", name); + if(res==null) + return null; + + ArrayList/**/ list = new ArrayList/**/(); + for(int i=0; i*/ list = new ArrayList/**/(); + for(int i=0; i*/ list = new ArrayList/**/(); + for(int i=0; i + * Instance are thrown when an UPSD returns an error with an "ERR" directive. + * Moreover it can ben thrown with some extra errors like: + *

      + *
    • UNKNOWN-RESPONSE : The response is not understood + *
    + *

    + * A Nut exception has a (standard java exception message) message which correspond + * to error code returns by UPSD (like 'ACCESS-DENIED', 'UNKNOWN-UPS' ...). + * An extra string embed a more descriptive english message. + * + * @author Emilien Kia + */ +public class NutException extends java.lang.Exception{ + + public static String UnknownResponse = "UNKNOWN-RESPONSE"; + + public static String DriverNotConnected = "DRIVER-NOT-CONNECTED"; + + public String extra = ""; + + public NutException() + { + } + + public NutException(String message) + { + super(message); + } + + public NutException(String message, String extra) + { + super(message); + this.extra = extra; + } + + public NutException(Throwable cause) + { + super(cause); + } + + public NutException(String message, Throwable cause) + { + super(message, cause); + } + + public NutException(String message, String extra, Throwable cause) + { + super(message, cause); + this.extra = extra; + } + + /** + * Returns the extra message. + * @return Extra message if any. + */ + public String getExtra() { + return extra; + } + + /** + * Set the extra message. + * @param extra The new extra message. + */ + public void setExtra(String extra) { + this.extra = extra; + } + + /** + * Test is the exception corresponds to the specified name. + * @param name Name to test + * @return True if exception corresponds. + */ + public boolean is(String name) { + return getMessage()!=null&&getMessage().equals(name); + } + + /** + * Format an exception message. + * @return Exception message + */ + public String toString() { + return "[" + getClass().getSimpleName() + "]" + getMessage() + " : " + getExtra(); + } +} diff --git a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Scanner.java b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Scanner.java new file mode 100644 index 0000000000..ef3006af21 --- /dev/null +++ b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Scanner.java @@ -0,0 +1,590 @@ +/* Scanner.java + +Copyright (C) 2011 Eaton + +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 + */ +package org.networkupstools.jnut; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * jNut scanner. + * Wrap calls to nut-scanner in java. + * + * Just, instantiate it, set options and nut-scanner path, then scan. + *

    + * Scanner scanner = new Scanner();
    + * scanner.setExecName("/usr/local/ups/bin/nut-scanner");
    + * scanner.setExecPath("/usr/local/ups/bin");
    + * scanner.setParam(Scanner.OPTION_MASK_CIDR, "192.168.1.1/24");
    + * Scanner.DiscoveredDevice[] devs = scanner.scan();
    + * 
    + * + * @author Emilien Kia + */ +public class Scanner { + + public static final int SCAN_USB = 1 /*<< 0*/; + public static final int SCAN_SNMP = 1 << 1; + public static final int SCAN_XML = 1 << 2; + public static final int SCAN_OLDNUT = 1 << 3; + public static final int SCAN_AVAHI = 1 << 4; + public static final int SCAN_IPMI = 1 << 5; + public static final int SCAN_COMPLETE = -1; + + public static final String OPTION_SCANNER_EXEC = "scanner_exec"; + public static final String OPTION_SCANNER_PATH = "scanner_path"; + public static final String OPTION_TIMEOUT = "timeout"; + public static final String OPTION_START_IP = "start_ip"; + public static final String OPTION_END_IP = "end_ip"; + public static final String OPTION_MASK_CIDR = "mask_cidr"; + public static final String OPTION_SNMPv1_COMMUNITY = "community"; + public static final String OPTION_SNMPv3_SECURITY_LEVEL = "secLevel"; + public static final String OPTION_SNMPv3_SECURITY_NAME = "secName"; + public static final String OPTION_SNMPv3_AUTHENTICATION_PROTOCOL = "authProtocol"; + public static final String OPTION_SNMPv3_AUTHENTICATION_PASSWORD = "authPassword"; + public static final String OPTION_SNMPv3_PRIVACY_PROTOCOL = "privProtocol"; + public static final String OPTION_SNMPv3_PRIVACY_PASSWORD = "privPassword"; + public static final String OPTION_NUT_UPSD_PORT = "port"; + + /** + * Result of a scan. + * @see Scanner#scan() + * Used to retrieve informations about devices found by a scan and + * their properties + */ + public static class DiscoveredDevice { + + String driver = null; + Map/**/ properties = new HashMap/**/(); + + /** + * Constructor. + * Can not be used by others than Scanner. + * @param drv Driver + * @param props Extra properties + */ + DiscoveredDevice(String drv, Map props) { + driver = drv; + if (props != null) { + properties = props; + } + } + + /** + * Retrieve the name of driver used by device. + * @return Driver name + */ + public String getDriver() { + return driver; + } + + /** + * Retrieve the map of device properties. + * @return Device property map + */ + public Map/**/ getProperties() { + return properties; + } + + /** + * Retrieve a device property if exists. + * @param name Name of the property to retrieve. + * @return Property value or null if not set. + */ + public String getProperty(String name) { + return (String) properties.get(name); + } + + /** + * Test if the device has a property. + * @param name Name of the property. + * @return True if the property is set. + */ + public boolean hasProperty(String name) { + return properties.containsKey(name); + } + } + + static final String NUT_SCANNNER_EXEC_NAME = "nut-scanner"; + static final String PARAM_PARSABLE = "-P"; + static final String PARAM_QUIET = "-q"; + static final String PARAM_SCAN_USB = "-U"; + static final String PARAM_SCAN_SNMP = "-S"; + static final String PARAM_SCAN_XML = "-M"; + static final String PARAM_SCAN_OLDNUT = "-O"; + static final String PARAM_SCAN_AVAHI = "-A"; + static final String PARAM_SCAN_IPMI = "-I"; + static final String PARAM_SCAN_COMPLETE = "-C"; + static final String PARAM_TIMEOUT = "-t"; + static final String PARAM_START_IP = "-s"; + static final String PARAM_END_IP = "-e"; + static final String PARAM_MASK_CIDR = "-m"; + static final String PARAM_SNMPv1_COMMUNITY = "-c"; + static final String PARAM_SNMPv3_SECURITY_LEVEL = "-l"; + static final String PARAM_SNMPv3_SECURITY_NAME = "-u"; + static final String PARAM_SNMPv3_AUTHENTICATION_PROTOCOL = "-a"; + static final String PARAM_SNMPv3_AUTHENTICATION_PASSWORD = "-A"; + static final String PARAM_SNMPv3_PRIVACY_PROTOCOL = "-x"; + static final String PARAM_SNMPv3_PRIVACY_PASSWORD = "-X"; + static final String PARAM_NUT_UPSD_PORT = "-p"; + static final String[] PARAM_COUPLE_DEFINITION = { + OPTION_TIMEOUT, PARAM_TIMEOUT, + OPTION_START_IP, PARAM_START_IP, + OPTION_END_IP, PARAM_END_IP, + OPTION_MASK_CIDR, PARAM_MASK_CIDR, + OPTION_SNMPv1_COMMUNITY, PARAM_SNMPv1_COMMUNITY, + OPTION_SNMPv3_SECURITY_LEVEL, PARAM_SNMPv3_SECURITY_LEVEL, + OPTION_SNMPv3_SECURITY_NAME, PARAM_SNMPv3_SECURITY_NAME, + OPTION_SNMPv3_AUTHENTICATION_PROTOCOL, PARAM_SNMPv3_AUTHENTICATION_PROTOCOL, + OPTION_SNMPv3_AUTHENTICATION_PASSWORD, PARAM_SNMPv3_AUTHENTICATION_PASSWORD, + OPTION_SNMPv3_PRIVACY_PROTOCOL, PARAM_SNMPv3_PRIVACY_PROTOCOL, + OPTION_SNMPv3_PRIVACY_PASSWORD, PARAM_SNMPv3_PRIVACY_PASSWORD, + OPTION_NUT_UPSD_PORT, PARAM_NUT_UPSD_PORT + }; + + /** Type of scan, union of SCAN_* flags. */ + int scanType = SCAN_COMPLETE; + /** Map of scan parameters. */ + Map/**/ config = null; + + /** + * Default constructor (scan for all device types). + */ + public Scanner() { + } + + /** + * Constructor with device types. + * Construct a scanner object with specifying what type of scan to do. + * @param scanType Type of scan, union of SCAN_* flags. + */ + public Scanner(int scanType) { + this.scanType = scanType; + } + + /** + * Constructor with device types and scan parameters. + * Construct a scanner object with specifying what type of scan to do and + * extra scan parameters. + * @param scanType Type of scan, union of SCAN_* flags. + * @param config Map of extra parameters, names are OPTION_*. + */ + public Scanner(int scanType, Map/**/ config) { + this.scanType = scanType; + this.config = config; + } + + /** + * Retrieve nut-scanner executable name (with location if any). + * Default to "nut-scanner". + * @return nut-scanner executable name + */ + public String getExecName() { + return config!=null?(String)config.get(OPTION_SCANNER_EXEC):null; + } + + /** + * Set nut-scanner executable name (with location if any). + * @param value nut-scanner executable name + */ + public void setExecName(String value) { + setParam(OPTION_SCANNER_EXEC, value); + } + + /** + * Retrieve nut-scanner executable path. + * The directory in which nut-scanner will be launched. + * @return nut-scanner executable path + */ + public String getExecPath() { + return config!=null?(String)config.get(OPTION_SCANNER_PATH):null; + } + + /** + * Set nut-scanner executable path. + * The directory in which nut-scanner will be launched. + * @param value nut-scanner executable path + */ + public void setExecPath(String value) { + setParam(OPTION_SCANNER_PATH, value); + } + + /** + * Retrieve scanner extra parameters like snmp community name or passwords. + * @return Map of parameters. + */ + public Map getConfig() { + return config; + } + + /** + * Set the scanner extra parameters. + * @param map Map of parameters. + */ + public void setConfig(Map config) { + this.config = config; + } + + /** + * Set a scanner extra parameter. + * @param name Name of the parameter. + * @param value Value of the parameter. + */ + public void setParam(String name, String value) { + if (config == null) { + config = new HashMap/**/(); + } + config.put(name, value); + } + + /** + * Remove a scanner extra parameter. + * @param name Name of the parameter to remove. + */ + public void removeParam(String name) { + if (config != null) { + config.remove(name); + } + } + + /** + * Retrieve a scanner extra parameter. + * @param name Name of the parameter. + * @return Value of the parameter, null if not found. + */ + public String getParam(String name) { + if (config == null) { + return (String)config.get(name); + } + return null; + } + + /** + * Test if a scanner has an extra parameter. + * @param name Name of the parameter. + * @return True if the scanner has the parameter set. + */ + public boolean hasParam(String name) { + if (config == null) { + return config.get(name)!=null; + } + return false; + } + + /** + * Retrieve the scan type. + * @return Union of SCAN_* flags. + */ + public int getScanType() { + return scanType; + } + + /** + * Set the scan type. + * @param scanType Union of SCAN_* flags. + */ + public void setScanType(int scanType) { + this.scanType = scanType; + } + + /** + * Execute the scan. + * @return Array of found DiscoveredDevice, null if a problem occurs, + * empty if no one found. + * @throws IOException + */ + public DiscoveredDevice[] scan() throws IOException { + // Launch the scanner in a slave process and parse the stdout result. + String[] params = generateCommandParameters(); + Runtime runtime = Runtime.getRuntime(); + Process process = null; + if (params != null && params.length > 0 && runtime != null) { + String localExecPath = getExecPath(); + File dir = null; + + if (localExecPath != null && !localExecPath.isEmpty()) { + dir = new File(localExecPath); + if (!dir.exists() || !dir.isDirectory()) { + dir = null; + } + } + if (dir != null) { + process = runtime.exec(params, null, dir); + } else { + process = runtime.exec(params); + } + } + if (process != null) { + DiscoveredDevice[] res = processScanResult(process); + try{ + if(process.exitValue()==0) + return res; + }catch(IllegalThreadStateException e){ + return res; + } + } + return null; + } + + /** + * Parse the result produced by the nut-scanner process and return it. + * @param process Process of nut-scanner. + * @return Array of found DiscoveredDevice, null if a problem occurs, + * empty if no one found + * @throws IOException + */ + DiscoveredDevice[] processScanResult(Process process) throws IOException { + List/**/ list = new ArrayList/**/(); + InputStream is = process.getInputStream(); + BufferedReader in = new BufferedReader(new InputStreamReader(is)); + String line; + for (line = in.readLine(); line != null; line = in.readLine()) { + DiscoveredDevice dev = scanLine(line); + if (dev != null) { + list.add(dev); + } + } + return (DiscoveredDevice[]) list.toArray(new DiscoveredDevice[list.size()]); + } + + /** + * Parse a line of result from nut-scanner and convert it to DiscoveredDevice. + * @param line Line of nut-scanner result. + * @return The corresponding DiscoveredDevice, or null if a problem occurs. + */ + static DiscoveredDevice scanLine(String line) { + String driver = null; + Map conf = new HashMap/**/(); + + + // Find driver name + int pos = line.indexOf(':'); + if (pos <= 0) { + // No driver name, it + return null; + } + driver = line.substring(0, pos); + pos++; + + // Process key[=value] pairs with Finished State Machine + int state = 0; + String temp = ""; + String key = ""; + char oldc = 0; + boolean isSpecial = false; + while (pos < line.length()) { + char c = line.charAt(pos++); + switch (state) { + case 0: // Initial, key content + { + if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c == '_')) { + temp += c; + } else if (c == '=') { + // Find the '=' key/value separator + if (temp.length() > 0) { + key = temp; + temp = ""; + state = 1; + }else{ + // Bad format + return null; + } + } else if (c == ',') { + // Find the ',' key/value separator (no value, key only) + conf.put(temp, null); + temp = ""; + }else{ + // Bad format + return null; + } + break; + } + case 1: // start value content + { + isSpecial = false; + if (c == '"') { + state = 2; // Quoted value + } else { + temp += c; + state = 3; // Unquoted value + } + break; + } + case 2: // Quoted value + { + if (isSpecial) { + temp += "\\"; + isSpecial = false; + temp += c; + } else if (c == '\\') { + isSpecial = true; + } else if (c == '"') { + conf.put(key, Client.unescape(temp)); + key = temp = ""; + state = 4; // Wait for a ',' separator + } else { + temp += c; + } + break; + } + case 3: // Unquoted value + { + if (c != ',') { + temp += c; + } else { + conf.put(key, temp); + key = temp = ""; + state = 0; // Wait for a new key + } + break; + } + case 4: // Wait for ',' separator + { + if (c == ',') { + state = 0; + } else { + // Bad format + return null; + } + break; + } + default: //Out of known states, must not occurs + { + // Bad format + return null; + } + } + } + // Out of FSM, end of line + switch (state) { + case 0: // Initial, key content + { + if (temp.length() > 0) { + conf.put(temp, null); // Add the last key-only key/value member + } + break; + } + case 1: // start value content + { + conf.put(temp, ""); // Add the last key/value with empty (not null) value + break; + } + case 2: // Quoted value + { + // should not occurs : not closed quoted value + conf.put(key, Client.unescape(temp)); + break; + } + case 3: // Unquoted value + { + // Correct end of string, store it. + conf.put(key, temp); + break; + } + case 4: // Wait for ',' separator + { + // Do nothing, thats ok + break; + } + default: //Out of known states, must not occurs + { + break; + } + } + + return new DiscoveredDevice(driver, conf); + } + + /** + * Generate an array of String representing command arguments to pass to + * nut-scanner, when launching it. + * @return Array of String of command arguments. + */ + String[] generateCommandParameters() { + ArrayList/**/ list = new ArrayList/**/(); + + // Command name + String localExecName = getExecName(); + if (localExecName != null && !localExecName.isEmpty()) { + list.add(localExecName); + } else { + list.add(NUT_SCANNNER_EXEC_NAME); + } + list.add(PARAM_PARSABLE); + list.add(PARAM_QUIET); + + // Scan Type + int type = getScanType(); + if (type == SCAN_COMPLETE) { + list.add(PARAM_SCAN_COMPLETE); + } else { + if ((type & SCAN_USB) != 0) { + list.add(PARAM_SCAN_USB); + } + if ((type & SCAN_SNMP) != 0) { + list.add(PARAM_SCAN_SNMP); + } + if ((type & SCAN_XML) != 0) { + list.add(PARAM_SCAN_XML); + } + if ((type & SCAN_OLDNUT) != 0) { + list.add(PARAM_SCAN_OLDNUT); + } + if ((type & SCAN_AVAHI) != 0) { + list.add(PARAM_SCAN_AVAHI); + } + if ((type & SCAN_IPMI) != 0) { + list.add(PARAM_SCAN_IPMI); + } + } + + // Options + Map/**/ conf = getConfig(); + Set/**/ set = conf != null ? conf.entrySet() : null; + if (set != null) { + Iterator iter = set.iterator(); + while (iter.hasNext()) { + Map.Entry/**/ entry = (Map.Entry) iter.next(); + if (entry != null) { + String name = (String) entry.getKey(); + String value = (String) entry.getValue(); + if (name != null && !name.isEmpty()) { + for (int i = 0; i < PARAM_COUPLE_DEFINITION.length; i += 2) { + if (name.equals(PARAM_COUPLE_DEFINITION[i])) { + list.add(PARAM_COUPLE_DEFINITION[i + 1]); + list.add(value); + break; + } + } + } + } + } + } + + return (String[]) list.toArray(new String[list.size()]); + } +} diff --git a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/StringLineSocket.java b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/StringLineSocket.java new file mode 100644 index 0000000000..fe39b71d71 --- /dev/null +++ b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/StringLineSocket.java @@ -0,0 +1,137 @@ +/* StringLineSocket.java + + Copyright (C) 2011 Eaton + + 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 +*/ +package org.networkupstools.jnut; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.net.Socket; +import java.net.UnknownHostException; + +/** + * Class representing a socket, internally used to communicate with UPSD. + * Abstract some stream mechanisms. + * + * @author Emilien Kia + */ +class StringLineSocket { + + /** + * Real internal TCP socket. + */ + Socket socket = null; + + /** + * Writer to the socket. + */ + private OutputStreamWriter writer = null; + + /** + * Reader from the socket. + */ + private BufferedReader reader = null; + + /** + * Create a new line socket. + */ + public StringLineSocket(){ + + } + + /** + * Create a new line socket and connect it. + * @param host Host to connect to + * @param port Port to connect to + * @throws UnknownHostException + * @throws IOException + */ + public StringLineSocket(String host, int port) throws UnknownHostException, IOException{ + connect(host, port); + } + + /** + * Connect a new line socket. + * @param host Host to connect to + * @param port Port to connect to + * @throws UnknownHostException + * @throws IOException + */ + public void connect(String host, int port) throws UnknownHostException, IOException{ + socket = new Socket(host, port); + if(socket!=null) + { + reader = new BufferedReader(new InputStreamReader( + socket.getInputStream())); + writer = new OutputStreamWriter(socket.getOutputStream()); + } + } + + /** + * Close the socket. + */ + public void close() throws IOException{ + if(socket!=null){ + writer.close(); + reader.close(); + socket.close(); + socket = null; + writer = null; + reader = null; + } + } + + /** + * Test if the soecket is connected. + * @return True if connected. + */ + public boolean isConnected() { + return socket!=null && socket.isConnected() && !socket.isClosed(); + } + + /** + * Write a line follow by a '\n' character. + * @param line + * @throws IOException + */ + public void write(String line) throws IOException + { + if(isConnected()) + { + writer.write(line + "\n"); + writer.flush(); + } + } + + /** + * Read a line terminated by a '\n'. + * @return The line without the ending '\n' + * @throws IOException + */ + public String read() throws IOException + { + if(isConnected()) + { + String res = reader.readLine(); + return res; + } + return ""; + } + +} diff --git a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Variable.java b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Variable.java new file mode 100644 index 0000000000..07c7c37a0d --- /dev/null +++ b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Variable.java @@ -0,0 +1,120 @@ +/* Variable.java + + Copyright (C) 2011 Eaton + + 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 +*/ +package org.networkupstools.jnut; + +import java.io.IOException; + +/** + * Class representing a variable of a device. + *

    + * It can be used to get and set its value (if possible). + * A Variable object can be retrieved from Device instance and can not be constructed directly. + * + * @author Emilien Kia + */ +public class Variable { + /** + * Device to which variable is attached + */ + Device device = null; + + /** + * Variable name + */ + String name = null; + + /** + * Internally create a variable. + * @param name Variable name. + * @param device Device to which the variable is attached. + */ + protected Variable(String name, Device device) + { + this.device = device; + this.name = name; + } + + /** + * Return the device to which the variable is related. + * @return Attached device. + */ + public Device getDevice() { + return device; + } + + /** + * Return the variable name. + * @return Command name. + */ + public String getName() { + return name; + } + + /** + * Retrieve the variable value from UPSD and store it in cache. + * @return Variable value + * @throws IOException + */ + public String getValue() throws IOException, NutException { + if(device!=null && device.getClient()!=null) + { + String[] params = {device.getName(), name}; + String res = device.getClient().get("VAR", params); + return res!=null?Client.extractDoublequotedValue(res):null; + } + return null; + } + + /** + * Retrieve the variable description from UPSD and store it in cache. + * @return Variable description + * @throws IOException + */ + public String getDescription() throws IOException, NutException { + if(device!=null && device.getClient()!=null) + { + String[] params = {device.getName(), name}; + String res = device.getClient().get("DESC", params); + return res!=null?Client.extractDoublequotedValue(res):null; + } + return null; + } + + /** + * Set the variable value. + * Note the new value can be applied with a little delay depending of UPSD and connection. + * @param value New value for the variable + * @throws IOException + */ + public void setValue(String value) throws IOException, NutException { + if(device!=null && device.getClient()!=null) + { + String[] params = {"VAR", device.getName(), + name, " \"" + Client.escape(value) + "\""}; + String res = device.getClient().query("SET", params); + if(!res.equals("OK")) + { + // Normaly response should be OK or ERR and nothing else. + throw new NutException(NutException.UnknownResponse, "Unknown response in Variable.setValue : " + res); + } + } + } + + // TODO Add query for type and enum values +} diff --git a/scripts/java/jNut/src/test/java/org/networkupstools/jnut/ClientTest.java b/scripts/java/jNut/src/test/java/org/networkupstools/jnut/ClientTest.java new file mode 100644 index 0000000000..e3bce728fd --- /dev/null +++ b/scripts/java/jNut/src/test/java/org/networkupstools/jnut/ClientTest.java @@ -0,0 +1,113 @@ +/* ClientTest.java + + Copyright (C) 2011 Eaton + + 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 +*/ +package org.networkupstools.jnut; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class ClientTest extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public ClientTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( ClientTest.class ); + } + + /** + * Escape function test. + */ + public void testEscape() + { + assertEquals("Empty string", "", Client.escape("")); + assertEquals("Simple string", "hello", Client.escape("hello")); + assertEquals("Internal doublequote", "he\\\"llo", Client.escape("he\"llo")); + assertEquals("Internal backslash", "he\\\\llo", Client.escape("he\\llo")); + assertEquals("Internal backslash and doublequote", "he\\\\\\\"llo", Client.escape("he\\\"llo")); + assertEquals("Initial and final doublequote", "\\\"hello\\\"", Client.escape("\"hello\"")); + } + + /** + * Unescape function test. + */ + public void testUnescape() + { + assertEquals("Empty string", "", Client.unescape("")); + assertEquals("Simple string", "hello", Client.unescape("hello")); + assertEquals("Internal doublequote", "he\"llo", Client.unescape("he\\\"llo")); + assertEquals("Internal backslash", "he\\llo", Client.unescape("he\\\\llo")); + assertEquals("Internal backslash and doublequote", "he\\\"llo", Client.unescape("he\\\\\\\"llo")); + assertEquals("Initial and final doublequote", "\"hello\"", Client.unescape("\\\"hello\\\"")); + } + + /** + * extractDoublequotedValue function test. + */ + public void testExtractDoublequotedValue() + { + assertNull("Empty string", Client.extractDoublequotedValue("")); + assertNull("Non doublequoted string", Client.extractDoublequotedValue("hello")); + assertNull("No begining doublequote", Client.extractDoublequotedValue("hello\"")); + assertNull("No ending doublequote", Client.extractDoublequotedValue("\"hello")); + assertEquals("Simple string", "hello", Client.extractDoublequotedValue("\"hello\"")); + assertEquals("String with doublequote", "he\"llo", Client.extractDoublequotedValue("\"he\\\"llo\"")); + assertEquals("String with backslash", "he\\llo", Client.extractDoublequotedValue("\"he\\\\llo\"")); + assertEquals("String with backslash and doublequote", "he\\\"llo", Client.extractDoublequotedValue("\"he\\\\\\\"llo\"")); + } + + /** + * splitNameValueString function test. + */ + public void testSplitNameValueString() + { + String[] res; + assertNull("Empty string", Client.splitNameValueString("")); + assertNull("One word string", Client.splitNameValueString("name")); + assertNull("Non doublequoted string", Client.extractDoublequotedValue("name value")); + assertNull("No begining doublequote", Client.extractDoublequotedValue("name value\"")); + assertNull("No ending doublequote", Client.extractDoublequotedValue("name \"value")); + res = Client.splitNameValueString("name \"value\""); + assertEquals("Simple name/value (name)", "name", res[0]); + assertEquals("Simple name/value (value)", "value", res[1]); + res = Client.splitNameValueString("name \"complex value\""); + assertEquals("Simple name / complex value (name)", "name", res[0]); + assertEquals("Simple name / complex value (value)", "complex value", res[1]); + res = Client.splitNameValueString("name \"complex\\\\value\""); + assertEquals("Simple name / backslash value (name)", "name", res[0]); + assertEquals("Simple name / backslash value (value)", "complex\\value", res[1]); + res = Client.splitNameValueString("name \"complex\\\"value\""); + assertEquals("Simple name / doublequote value (name)", "name", res[0]); + assertEquals("Simple name / doublequote value (value)", "complex\"value", res[1]); + } +} diff --git a/scripts/java/jNut/src/test/java/org/networkupstools/jnut/ScannerTest.java b/scripts/java/jNut/src/test/java/org/networkupstools/jnut/ScannerTest.java new file mode 100644 index 0000000000..255489a4f8 --- /dev/null +++ b/scripts/java/jNut/src/test/java/org/networkupstools/jnut/ScannerTest.java @@ -0,0 +1,178 @@ +/* ScannerTest.java + + Copyright (C) 2011 Eaton + + 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 +*/ +package org.networkupstools.jnut; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + + +/** + * Unit test for scanner. + */ +public class ScannerTest extends TestCase { + /** + * Create the test case + * + * @param testName name of the test case + */ + public ScannerTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( ScannerTest.class ); + } + + /** + * Scan line test. + */ + public void testScanLineOk() + { + String line = "SNMP:driver=\"snmp-ups\",port=\"192.168.1.1\",desc=\"Evolution\",mibs=\"mge\",community=\"public\""; + Scanner.DiscoveredDevice dev = Scanner.scanLine(line); + assertNotNull("scanLine must return a DiscoveredDevice", dev); + assertEquals("scanLine must return the correct driver", "SNMP", dev.getDriver()); + assertEquals("scanLine must return the correct driver name", "snmp-ups", dev.getProperty("driver")); + assertEquals("scanLine must return the correct port", "192.168.1.1", dev.getProperty("port")); + } + + // Tool function, find a string as memeber of array. + static boolean findStringInArray(String str, String[] arr){ + if(arr!=null) + { + for(int i=0; i + 4.0.0 + + org.networkupstools + jNutList + 0.1-SNAPSHOT + jar + + jNutList + http://maven.apache.org + + + UTF-8 + + + + + junit + junit + 3.8.1 + test + + + ${project.groupId} + jNut + 0.1-SNAPSHOT + + + + + + + + maven-assembly-plugin + 2.2.1 + + + jar-with-dependencies + + + + org.networkupstools.jnutlist.AppList + + + + + + make-assembly + package + + single + + + + + + + + diff --git a/scripts/java/jNutList/src/main/java/org/networkupstools/jnutlist/AppList.java b/scripts/java/jNutList/src/main/java/org/networkupstools/jnutlist/AppList.java new file mode 100644 index 0000000000..a15452d624 --- /dev/null +++ b/scripts/java/jNutList/src/main/java/org/networkupstools/jnutlist/AppList.java @@ -0,0 +1,112 @@ +/* AppList.java + + Copyright (C) 2011 Eaton + + 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 +*/ +package org.networkupstools.jnutlist; + +import java.io.IOException; +import java.net.UnknownHostException; +import org.networkupstools.jnut.*; + + +public class AppList +{ + + public static void main( String[] args ) + { + String host = args.length>=1?args[0]:"localhost"; + int port = args.length>=2?Integer.valueOf(args[1]).intValue():3493; + String login = args.length>=3?args[2]:""; + String pass = args.length>=4?args[3]:""; + + System.out.println( "jNutList connecting to " + login+":"+pass+"@"+host+":"+port ); + + Client client = new Client(); + try { + client.connect(host, port, login, pass); + Device[] devs = client.getDeviceList(); + if(devs!=null) + { + for(int d=0; d + 4.0.0 + + org.networkupstools + jNutWebAPI + 0.2-SNAPSHOT + war + + jNutWebAPI + + + ${project.build.directory}/endorsed + UTF-8 + + + + + ${project.groupId} + jNut + ${project.version} + + + org.apache.wink + wink-server + 1.1.3-incubating + + + javax + javaee-web-api + 6.0 + provided + + + + junit + junit + 4.8.2 + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 2.3.2 + + 1.6 + 1.6 + + ${endorsed.dir} + + + + + org.apache.maven.plugins + maven-war-plugin + 2.1.1 + + false + + + + org.apache.maven.plugins + maven-dependency-plugin + 2.1 + + + validate + + copy + + + ${endorsed.dir} + true + + + javax + javaee-endorsed-api + 6.0 + jar + + + + + + + + + + diff --git a/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/NutRestProvider.java b/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/NutRestProvider.java new file mode 100644 index 0000000000..0549869dd4 --- /dev/null +++ b/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/NutRestProvider.java @@ -0,0 +1,206 @@ +/* NutRestProvider.java + +Copyright (C) 2011 Eaton + +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 + */ +package org.networkupstools.jnutwebapi; + +import java.io.IOException; +import java.net.UnknownHostException; +import java.util.logging.Level; +import java.util.logging.Logger; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; + +import org.networkupstools.jnut.Client; +import org.networkupstools.jnut.Device; +import org.networkupstools.jnut.NutException; +import org.networkupstools.jnut.Variable; + + +/** + * Apache Wink WS REST provider for UPSD communication. + * @author Emilien Kia + */ +@Path("/servers") +public class NutRestProvider { + + @GET + public String get() { + return "UPSD connections"; + } + + @Path("{server}") + public Server getServers(@PathParam("server") String server) { + try { + return new Server(server); + } catch(Exception ex) { + Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); + return null; + } + } + + public class Server { + Client client = new Client(); + + public Server(String server) throws IOException, UnknownHostException, NutException { + int idx = server.indexOf(':'); + if(idx!=-1) + { + int port = Integer.parseInt(server.substring(idx+1)); + client.connect(server.substring(0, idx), port); + } + else + { + client.connect(server, 3493); + } + } + + @GET + @Produces("application/json") + public String getDeviceList() { + try { + String str = ""; + Device[] devs = client.getDeviceList(); + boolean first = true; + for (Device device : devs) { + if(first) + first = false; + else + str += ","; + str += "\n\"" + device.getName() + "\""; + } + return "[" + str + "\n]"; + } catch(Exception ex) { + Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); + return null; + } + } + + + @Path("{dev}") + public Dev getDev(@PathParam("dev") String dev) { + try { + return new Dev(dev); + } catch(Exception ex) { + Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); + return null; + } + } + + + + public class Dev { + + Device device; + + public Dev(String dev) throws IOException, NutException{ + device = client.getDevice(dev); + } + + @GET + @Produces("application/json") + public String getDescriptionShortcut() { + return getDescription(); + } + + @GET + @Produces("application/json") + @Path("description") + public String getDescription() { + try { + String res = device.getDescription(); + if(!res.startsWith("\"") && !res.endsWith("\"")) + res = "\"" + res + "\""; + return res; + } catch (Exception ex) { + Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); + return null; + } + } + + + @GET + @Produces("application/json") + @Path("vars") + public String getVars() { + try { + String str = ""; + boolean first = true; + for (Variable variable : device.getVariableList()) { + if(first) + first = false; + else + str += ","; + str += "\n\"" + variable.getName() + "\""; + } + return "[" + str + "\n]"; + } catch (Exception ex) { + Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); + return null; + } + } + + @Path("vars/{var}") + public Var getVar(@PathParam("var") String var){ + try { + return new Var(var); + } catch(Exception ex) { + Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); + return null; + } + } + + public class Var { + + Variable variable = null; + + public Var(String var) throws IOException, NutException{ + variable = device.getVariable(var); + } + + @GET + @Produces("application/json") + public String getValue() { + try { + return "\"" + variable.getValue() + "\""; + } catch(Exception ex) { + Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); + return null; + } + } + + @GET + @Produces("application/json") + @Path("description") + public String getDescription() { + try { + String res = variable.getDescription(); + if(!res.startsWith("\"") && !res.endsWith("\"")) + res = "\"" + res + "\""; + return res; + } catch(Exception ex) { + Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); + return null; + } + } + } + } + } +} diff --git a/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/RestWSApplication.java b/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/RestWSApplication.java new file mode 100644 index 0000000000..8e5b9d7bc1 --- /dev/null +++ b/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/RestWSApplication.java @@ -0,0 +1,38 @@ +/* RestWSApplication.java + +Copyright (C) 2011 Eaton + +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 + */ +package org.networkupstools.jnutwebapi; + +import java.util.HashSet; +import java.util.Set; +import javax.ws.rs.core.Application; + +/** + * Apache Wink tool to specify which are providers. + * @author Emilien Kia + */ +public class RestWSApplication extends Application { + + @Override + public Set> getClasses() { + Set> classes = new HashSet>(); + classes.add(NutRestProvider.class); + classes.add(ScannerProvider.class); + return classes; + } +} diff --git a/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/ScannerProvider.java b/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/ScannerProvider.java new file mode 100644 index 0000000000..84c4666014 --- /dev/null +++ b/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/ScannerProvider.java @@ -0,0 +1,85 @@ +/* ScannerProvider.java + +Copyright (C) 2011 Eaton + +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 + */ +package org.networkupstools.jnutwebapi; + +import java.io.IOException; +import java.util.logging.Level; +import java.util.logging.Logger; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; + +import javax.ws.rs.QueryParam; +import javax.ws.rs.WebApplicationException; +import org.networkupstools.jnut.Scanner; +import org.networkupstools.jnut.Scanner.DiscoveredDevice; + + +/** + * Apache Wink WS REST provider for nut-scanner.. + * @author Emilien Kia + */ +@Path("/scan") +public class ScannerProvider { + static final String execName = "/usr/local/ups/bin/nut-scanner"; + static final String execPath = ""; + + @GET + @Produces("application/json") + public String get(@QueryParam("start") String start, + @QueryParam("end") String end, + @QueryParam("mask") String mask + ) throws WebApplicationException{ + Scanner scan = new Scanner(); + + if(execName!=null && execName.length()>0) + scan.setExecName(execName); + if(execPath!=null && execPath.length()>0) + scan.setExecPath(execPath); + if(start!=null && start.length()>0) + scan.setParam(Scanner.OPTION_START_IP, start); + if(end!=null && end.length()>0) + scan.setParam(Scanner.OPTION_END_IP, end); + if(mask!=null && mask.length()>0) + scan.setParam(Scanner.OPTION_MASK_CIDR, mask); + + try { + DiscoveredDevice[] devs = scan.scan(); + if(devs==null){ + throw new WebApplicationException(503); + }else{ + String str = "[\n"; + for(int i=0; i + + + + + NutRestServer + org.apache.wink.server.internal.servlet.RestServlet + + javax.ws.rs.Application + org.networkupstools.jnutwebapi.RestWSApplication + + 1 + + + NutRestServer + /nut/* + + + + 30 + + + diff --git a/scripts/systemd/nut-driver.service.in b/scripts/systemd/nut-driver.service.in index 8664162ebb..846b34f8f1 100644 --- a/scripts/systemd/nut-driver.service.in +++ b/scripts/systemd/nut-driver.service.in @@ -6,5 +6,7 @@ StopWhenUnneeded=yes [Service] ExecStart=@DRVPATH@/upsdrvctl start ExecStop=@DRVPATH@/upsdrvctl stop +ExecStart=/sbin/upsdrvctl start +ExecStop=/sbin/upsdrvctl stop Type=forking diff --git a/scripts/upower/95-upower-hid.rules b/scripts/upower/95-upower-hid.rules index 1799181a33..8af641525e 100644 --- a/scripts/upower/95-upower-hid.rules +++ b/scripts/upower/95-upower-hid.rules @@ -34,15 +34,12 @@ ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1f09", ENV{UPOWER_BATTERY_TYPE}="ups ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1f0a", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe0", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe1", ENV{UPOWER_BATTERY_TYPE}="ups" -<<<<<<< HEAD ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe2", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe3", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe5", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe6", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe7", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe8", ENV{UPOWER_BATTERY_TYPE}="ups" -======= ->>>>>>> Merge from the trunk -> porting the IPv6 code to Windows # Eaton ATTRS{idVendor}=="0463", ATTRS{idProduct}=="0001", ENV{UPOWER_BATTERY_TYPE}="ups" @@ -72,11 +69,7 @@ ATTRS{idVendor}=="051d", ATTRS{idProduct}=="0003", ENV{UPOWER_BATTERY_TYPE}="ups # Powerware ATTRS{idVendor}=="0592", ATTRS{idProduct}=="0004", ENV{UPOWER_BATTERY_TYPE}="ups" -<<<<<<< HEAD # Phoenixtec Power Co., Ltd -======= -# Phoenixtec ->>>>>>> Merge from trunk [[SVN:3002]] to [[SVN:3057]] ATTRS{idVendor}=="06da", ATTRS{idProduct}=="ffff", ENV{UPOWER_BATTERY_TYPE}="ups" # iDowell @@ -110,10 +103,7 @@ ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3012", ENV{UPOWER_BATTERY_TYPE}="ups ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3013", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3014", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3015", ENV{UPOWER_BATTERY_TYPE}="ups" -<<<<<<< HEAD ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3016", ENV{UPOWER_BATTERY_TYPE}="ups" -======= ->>>>>>> Merge from the trunk -> porting the IPv6 code to Windows ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="4001", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="4002", ENV{UPOWER_BATTERY_TYPE}="ups" ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="4003", ENV{UPOWER_BATTERY_TYPE}="ups" diff --git a/server/Makefile.am b/server/Makefile.am index 1006717f25..d17dbb4866 100644 --- a/server/Makefile.am +++ b/server/Makefile.am @@ -23,7 +23,7 @@ EXTRA_PROGRAMS = sockdebug upsd_SOURCES = upsd.c user.c conf.c netssl.c sstate.c desc.c \ netget.c netmisc.c netlist.c netuser.c netset.c netinstcmd.c \ - conf.h ctype.h desc.h netcmds.h neterr.h netget.h netinstcmd.h \ + conf.h nut_ctype.h desc.h netcmds.h neterr.h netget.h netinstcmd.h \ netlist.h netmisc.h netset.h netuser.h ssl.h sstate.h stype.h upsd.h \ upstype.h user-data.h user.h diff --git a/server/ssl.c b/server/ssl.c index 11083432b6..ff7ed23343 100644 --- a/server/ssl.c +++ b/server/ssl.c @@ -42,19 +42,19 @@ static int ssl_initialized = 0; #ifndef HAVE_SSL /* stubs for non-ssl compiles */ -void net_starttls(ctype_t *client, int numarg, const char **arg) +void net_starttls(nut_ctype_t *client, int numarg, const char **arg) { send_err(client, NUT_ERR_FEATURE_NOT_SUPPORTED); return; } -int ssl_write(ctype_t *client, const char *buf, size_t buflen) +int ssl_write(nut_ctype_t *client, const char *buf, size_t buflen) { upslogx(LOG_ERR, "ssl_write called but SSL wasn't compiled in"); return -1; } -int ssl_read(ctype_t *client, char *buf, size_t buflen) +int ssl_read(nut_ctype_t *client, char *buf, size_t buflen) { upslogx(LOG_ERR, "ssl_read called but SSL wasn't compiled in"); return -1; @@ -65,7 +65,7 @@ void ssl_init(void) ssl_initialized = 0; /* keep gcc quiet */ } -void ssl_finish(ctype_t *client) +void ssl_finish(nut_ctype_t *client) { if (client->ssl) { upslogx(LOG_ERR, "ssl_finish found active SSL connection but SSL wasn't compiled in"); @@ -87,7 +87,7 @@ static void ssl_debug(void) } } -void net_starttls(ctype_t *client, int numarg, const char **arg) +void net_starttls(nut_ctype_t *client, int numarg, const char **arg) { if (client->ssl) { send_err(client, NUT_ERR_ALREADY_SSL_MODE); @@ -200,7 +200,7 @@ static int ssl_error(SSL *ssl, int ret) return -1; } -static int ssl_accept(ctype_t *client) +static int ssl_accept(nut_ctype_t *client) { int ret; @@ -222,7 +222,7 @@ static int ssl_accept(ctype_t *client) return -1; } -int ssl_read(ctype_t *client, char *buf, size_t buflen) +int ssl_read(nut_ctype_t *client, char *buf, size_t buflen) { int ret; @@ -241,7 +241,7 @@ int ssl_read(ctype_t *client, char *buf, size_t buflen) return ret; } -int ssl_write(ctype_t *client, const char *buf, size_t buflen) +int ssl_write(nut_ctype_t *client, const char *buf, size_t buflen) { int ret; @@ -252,7 +252,7 @@ int ssl_write(ctype_t *client, const char *buf, size_t buflen) return ret; } -void ssl_finish(ctype_t *client) +void ssl_finish(nut_ctype_t *client) { if (client->ssl) { SSL_free(client->ssl); diff --git a/server/upsd.c b/server/upsd.c index 5804c9c318..e5d7dd2f9e 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -236,6 +236,8 @@ static void setuptcp(stype_t *server) close(sock_fd); continue; } + +/* WSAEventSelect automatically set the socket to nonblocking mode */ #ifndef WIN32 if ((v = fcntl(sock_fd, F_GETFL, 0)) == -1) { fatal_with_errno(EXIT_FAILURE, "setuptcp: fcntl(get)"); @@ -989,7 +991,7 @@ static void mainloop(void) sstate_readline((upstype_t *)handler[ret].data); break; case CLIENT: - client_readline((ctype_t *)handler[ret].data); + client_readline((nut_ctype_t *)handler[ret].data); break; case SERVER: client_connect((stype_t *)handler[ret].data); diff --git a/tools/git-svn.authors b/tools/git-svn.authors new file mode 100644 index 0000000000..d16f43060e --- /dev/null +++ b/tools/git-svn.authors @@ -0,0 +1,19 @@ +esr-guest = Eric S. Raymond +lestat-guest = David Goncalves +agordeev-guest = Alexander Gordeev +emilienkia-guest = Emilien Kia +prachi-guest = Prachi Gandhi +praveenkumar-guest = Praveen Kumar +msoltyspl-guest = Michal Soltys +keyson-guest = Kjell Claesson +chetanagarwal-guest = Chetan Agarwal +fbohe-guest = Frederic Bohe +aquette = Arnaud Quette +clepple-guest = Charles Lepple +adkorte-guest = Arjen de Korte +(no author) = no author +selinger-guest = Peter Selinger +carlosefr-guest = Carlos Rodrigues +nba-guest = Niels Baggesen +lyrgard-guest = Jonathan Dion +jongough-guest = Jon Gough diff --git a/tools/nut-scanner/nut-scanner.c b/tools/nut-scanner/nut-scanner.c index 445115884f..3e21596a4a 100644 --- a/tools/nut-scanner/nut-scanner.c +++ b/tools/nut-scanner/nut-scanner.c @@ -81,6 +81,7 @@ static char * start_ip = NULL; static char * end_ip = NULL; static char * port = NULL; static char * serial_ports = NULL; +>>>>>>> Merge from trunk [[SVN:3060]] to [[SVN:3318]] #ifdef HAVE_PTHREAD static pthread_t thread[TYPE_END]; @@ -141,6 +142,9 @@ int printq(int quiet,const char *fmt, ...) va_start(ap, fmt); ret = vprintf(fmt, ap); va_end(ap); + va_start(ap, fmt); + ret = vprintf(fmt, ap); + va_end(ap); return ret; } diff --git a/tools/nut-scanner/nutscan-ip.c b/tools/nut-scanner/nutscan-ip.c index 8788018273..d0e0168770 100644 --- a/tools/nut-scanner/nutscan-ip.c +++ b/tools/nut-scanner/nutscan-ip.c @@ -21,8 +21,13 @@ #include #include "common.h" #include +#ifndef WIN32 #include #include +#else +#define AI_NUMERICSERV NI_NUMERICSERV +#include "wincompat.h" +#endif static void increment_IPv6(struct in6_addr * addr) { diff --git a/tools/nut-scanner/nutscan-ip.h b/tools/nut-scanner/nutscan-ip.h index b28ff0062b..a3f403f280 100644 --- a/tools/nut-scanner/nutscan-ip.h +++ b/tools/nut-scanner/nutscan-ip.h @@ -19,8 +19,12 @@ #ifndef SCAN_IP #define SCAN_IP +#ifndef WIN32 #include #include +#else +#include +#endif #ifdef __cplusplus /* *INDENT-OFF* */ diff --git a/tools/nut-scanner/scan_avahi.c b/tools/nut-scanner/scan_avahi.c index 198e1f223f..16db652179 100644 --- a/tools/nut-scanner/scan_avahi.c +++ b/tools/nut-scanner/scan_avahi.c @@ -360,6 +360,7 @@ static void resolve_callback( switch (event) { case AVAHI_RESOLVER_FAILURE: fprintf(stderr, "(Resolver) Failed to resolve service '%s' of type '%s' in domain '%s': %s\n", name, type, domain, (*nut_avahi_strerror)((*nut_avahi_client_errno)((*nut_avahi_service_resolver_get_client)(r)))); + fprintf(stderr, "(Resolver) Failed to resolve service '%s' of type '%s' in domain '%s': %s\n", name, type, domain, avahi_strerror(avahi_client_errno(avahi_service_resolver_get_client(r)))); break; case AVAHI_RESOLVER_FOUND: { diff --git a/tools/nut-scanner/scan_nut.c b/tools/nut-scanner/scan_nut.c index 005cfe6a76..b0d81936b1 100644 --- a/tools/nut-scanner/scan_nut.c +++ b/tools/nut-scanner/scan_nut.c @@ -205,11 +205,21 @@ nutscan_device_t * nutscan_scan_nut(const char* startIP, const char* stopIP, con char * ip_str = NULL; char * ip_dest = NULL; char buf[SMALLBUF]; - struct sigaction oldact; int change_action_handler = 0; int i; +#ifndef WIN32 + struct sigaction oldact; +#endif struct scan_nut_arg *nut_arg; + +#ifdef WIN32 + WSADATA WSAdata; + WSAStartup(2,&WSAdata); + atexit((void(*)(void))WSACleanup); +#endif + #ifdef HAVE_PTHREAD + int i; pthread_t thread; pthread_t * thread_array = NULL; int thread_count = 0; @@ -221,6 +231,8 @@ nutscan_device_t * nutscan_scan_nut(const char* startIP, const char* stopIP, con return NULL; } +#ifndef WIN32 + int change_action_handler = 0; /* Ignore SIGPIPE if the caller hasn't set a handler for it yet */ if( sigaction(SIGPIPE, NULL, &oldact) == 0 ) { if( oldact.sa_handler == SIG_DFL ) { @@ -228,6 +240,7 @@ nutscan_device_t * nutscan_scan_nut(const char* startIP, const char* stopIP, con signal(SIGPIPE,SIG_IGN); } } +#endif ip_str = nutscan_ip_iter_init(&ip,startIP,stopIP); @@ -276,9 +289,11 @@ nutscan_device_t * nutscan_scan_nut(const char* startIP, const char* stopIP, con free(thread_array); #endif +#ifndef WIN32 if(change_action_handler) { signal(SIGPIPE,SIG_DFL); } +#endif return nutscan_rewind_device(dev_ret); } diff --git a/tools/nut-scanner/scan_snmp.c b/tools/nut-scanner/scan_snmp.c index 0fcb9a6d8c..a3669b05de 100644 --- a/tools/nut-scanner/scan_snmp.c +++ b/tools/nut-scanner/scan_snmp.c @@ -22,7 +22,10 @@ #ifdef WITH_SNMP +#ifndef WIN32 #include +#endif + #include #include #include @@ -373,6 +376,7 @@ static void try_all_oid(void * arg) scan_snmp_add_device(sec,response,snmp_device_table[index].mib); (*nut_snmp_free_pdu)(response); + snmp_free_pdu(response); response = NULL; index++; @@ -654,6 +658,13 @@ nutscan_device_t * nutscan_scan_snmp(const char * start_ip, const char * stop_ip nutscan_ip_iter_t ip; char * ip_str = NULL; #ifdef HAVE_PTHREAD + +#ifdef WIN32 + WSADATA WSAdata; + WSAStartup(2,&WSAdata); + atexit((void(*)(void))WSACleanup); +#endif + pthread_t thread; pthread_mutex_init(&dev_mutex,NULL); diff --git a/tools/nut-scanner/scan_xml_http.c b/tools/nut-scanner/scan_xml_http.c index ee713e4543..08ffa25cba 100644 --- a/tools/nut-scanner/scan_xml_http.c +++ b/tools/nut-scanner/scan_xml_http.c @@ -20,14 +20,22 @@ #include "common.h" #include "nut-scan.h" #ifdef WITH_NEON +#ifndef WIN32 #include #include #include #include #include +#include +#else +/* Those 2 files for support of getaddrinfo, getnameinfo and freeaddrinfo + on Windows 2000 and older versions */ +#include +#include +#endif + #include #include -#include #include #include #include @@ -99,7 +107,6 @@ int nutscan_load_neon_library() lt_dlexit(); return 0; } - static int startelm_cb(void *userdata, int parent, const char *nspace, const char *name, const char **atts) { nutscan_device_t * dev = (nutscan_device_t *)userdata; char buf[SMALLBUF]; @@ -131,6 +138,12 @@ nutscan_device_t * nutscan_scan_xml_http(long usec_timeout) char string[SMALLBUF]; ssize_t recv_size; +#ifdef WIN32 + WSADATA WSAdata; + WSAStartup(2,&WSAdata); + atexit((void(*)(void))WSACleanup); +#endif + nutscan_device_t * nut_dev = NULL; nutscan_device_t * current_nut_dev = NULL; From 2b86a2b9d9236ef1c1f1a39e70e5f7db802fbadf Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 29 Nov 2011 10:13:32 +0000 Subject: [PATCH 136/218] Don't leave one liner alone after if. Fossil-ID: SVN r3336 --- common/wincompat.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/common/wincompat.c b/common/wincompat.c index b8b3ae4116..cc0d9824f0 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -396,8 +396,9 @@ int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen, DWORD timeou } else if (WaitCommEvent (sh->handle, &ev, &sh->io_status)) { /* WaitCommEvent succeeded */ - if (!ev) + if (!ev) { continue; + } } else if (GetLastError () != ERROR_IO_PENDING) { goto err; @@ -406,8 +407,9 @@ int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen, DWORD timeou sh->overlapped_armed = 1; switch (WaitForSingleObject (w4,timeout)) { case WAIT_OBJECT_0: - if (!GetOverlappedResult (sh->handle, &sh->io_status, &num, FALSE)) + if (!GetOverlappedResult (sh->handle, &sh->io_status, &num, FALSE)) { goto err; + } upsdebugx(4,"w32_serial_read : characters are available on input buffer"); break; case WAIT_TIMEOUT: @@ -442,15 +444,17 @@ int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen, DWORD timeou tot += num; upsdebugx(4,"w32_serial_read : total characters read = %d", tot); - if (sh->vtime_ || !sh->vmin_ || !num) + if (sh->vtime_ || !sh->vmin_ || !num) { break; + } continue; err: PurgeComm (sh->handle, PURGE_RXABORT); upsdebugx(4,"w32_serial_read : err %d",(int)GetLastError()); - if (GetLastError () == ERROR_OPERATION_ABORTED) + if (GetLastError () == ERROR_OPERATION_ABORTED) { num = 0; + } else { errno = EIO; From ebd377f29f42c219b02a7b2e2d97e723228f4517 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 29 Nov 2011 10:37:32 +0000 Subject: [PATCH 137/218] Fix blazer_ser driver (from Paul Fertser) Fossil-ID: SVN r3337 --- common/wincompat.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/common/wincompat.c b/common/wincompat.c index cc0d9824f0..664dc698b2 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -413,13 +413,15 @@ int w32_serial_read (serial_handler_t * sh, void *ptr, size_t ulen, DWORD timeou upsdebugx(4,"w32_serial_read : characters are available on input buffer"); break; case WAIT_TIMEOUT: - CancelIo(sh->handle); - sh->overlapped_armed = 0; - ResetEvent (sh->io_status.hEvent); - upsdebugx(4,"w32_serial_read : timeout %d ms ellapsed", (int)timeout); - SetLastError(WAIT_TIMEOUT); - errno = 0; - return 0; + if(!tot) { + CancelIo(sh->handle); + sh->overlapped_armed = 0; + ResetEvent (sh->io_status.hEvent); + upsdebugx(4,"w32_serial_read : timeout %d ms ellapsed", (int)timeout); + SetLastError(WAIT_TIMEOUT); + errno = 0; + return 0; + } default: goto err; } From 19b5dcf0059b3edb900e5505720ec659fc0910bb Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 5 Jan 2012 09:53:03 +0000 Subject: [PATCH 138/218] Fix "make distcheck-light" (by Arnaud Quette) Fossil-ID: SVN r3375 --- include/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Makefile.am b/include/Makefile.am index 6e4b9666bb..3b8f69a783 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -1,5 +1,5 @@ dist_noinst_HEADERS = attribute.h common.h extstate.h parseconf.h proto.h \ - state.h timehead.h upsconf.h nut_stdint.h nut_platform.h + state.h timehead.h upsconf.h nut_stdint.h nut_platform.h wincompat.h # http://www.gnu.org/software/automake/manual/automake.html#Clean BUILT_SOURCES = nut_version.h From fdc485152dfb389e046b382d5eec1a963bec1f67 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 16 Jan 2012 09:36:14 +0000 Subject: [PATCH 139/218] Remove useless code Fossil-ID: SVN r3396 --- drivers/dstate.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/dstate.c b/drivers/dstate.c index 615482c263..6e315b9b1b 100644 --- a/drivers/dstate.c +++ b/drivers/dstate.c @@ -153,7 +153,6 @@ static int sock_open(const char *fn) fatal_with_errno(EXIT_FAILURE, "listen(%d, %d) failed", fd, DS_LISTEN_BACKLOG); } #else -static void sock_connect(HANDLE sock); static HANDLE sock_open(const char *fn) { HANDLE fd; From cecaae7f4109d9920e315959fbdb077f69d31075 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 16 Jan 2012 09:38:20 +0000 Subject: [PATCH 140/218] Fix porting of upssched Fossil-ID: SVN r3397 --- clients/upssched.c | 417 ++++++++++++++++++++++++++++++++++++++++++--- clients/upssched.h | 6 + 2 files changed, 401 insertions(+), 22 deletions(-) diff --git a/clients/upssched.c b/clients/upssched.c index 95f0c95325..f1e6bc4524 100644 --- a/clients/upssched.c +++ b/clients/upssched.c @@ -70,6 +70,11 @@ typedef struct ttype_s { /* ups name and notify type (string) as received from upsmon */ const char *upsname, *notify_type; +#ifdef WIN32 +static OVERLAPPED connect_overlapped; +#define BUF_LEN 512 +#endif + #define PARENT_STARTED -2 #define PARENT_UNNECESSARY -3 #define MAX_TRIES 30 @@ -251,9 +256,9 @@ static void cancel_timer(const char *name, const char *cname) } } +#ifndef WIN32 static void us_serialize(int op) { -#ifndef WIN32 static int pipefd[2]; int ret; char ch; @@ -278,12 +283,12 @@ static void us_serialize(int op) close(pipefd[0]); break; } -#endif } +#endif +#ifndef WIN32 static int open_sock(void) { -#ifndef WIN32 int ret, fd; struct sockaddr_un ssaddr; @@ -315,10 +320,45 @@ static int open_sock(void) fatal_with_errno(EXIT_FAILURE, "listen(%d, %d) failed", fd, US_LISTEN_BACKLOG); return fd; +} #else - return 0; -#endif +static HANDLE open_sock(void) +{ + HANDLE fd; + + fd = CreateNamedPipe( + pipefn, /* pipe name */ + PIPE_ACCESS_DUPLEX | /* read/write access */ + FILE_FLAG_OVERLAPPED, /* async IO */ + PIPE_TYPE_BYTE | + PIPE_READMODE_BYTE | + PIPE_WAIT, + PIPE_UNLIMITED_INSTANCES, /* max. instances */ + BUF_LEN, /* output buffer size */ + BUF_LEN, /* input buffer size */ + 0, /* client time-out */ + NULL); /* FIXME: default security attributes */ + + if (fd == INVALID_HANDLE_VALUE) { + fatal_with_errno(EXIT_FAILURE, "Can't create a state socket (windows named pipe)"); + } + + /* Prepare an async wait on a connection on the pipe */ + memset(&connect_overlapped,0,sizeof(connect_overlapped)); + connect_overlapped.hEvent = CreateEvent(NULL, /*Security*/ + FALSE, /* auto-reset*/ + FALSE, /* inital state = non signaled*/ + NULL /* no name*/); + if(connect_overlapped.hEvent == NULL ) { + fatal_with_errno(EXIT_FAILURE, "Can't create event"); + } + + /* Wait for a connection */ + ConnectNamedPipe(fd,&connect_overlapped); + + return fd; } +#endif static void conn_del(conn_t *target) { @@ -357,23 +397,57 @@ static int send_to_one(conn_t *conn, const char *fmt, ...) vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); +#ifndef WIN32 ret = write(conn->fd, buf, strlen(buf)); if ((ret < 1) || (ret != (int) strlen(buf))) { upsdebugx(2, "write to fd %d failed", conn->fd); - close(conn->fd); conn_del(conn); return 0; /* failed */ } +#else + DWORD bytesWritten = 0; + BOOL result = FALSE; + + result = WriteFile (conn->fd,buf,strlen(buf),&bytesWritten,NULL); + if( result == 0 ) { + upsdebugx(2, "write failed on %d, disconnecting", (int)conn->fd); + /* FIXME not sure this is the right way to close a connection */ + if( conn->read_overlapped.hEvent != INVALID_HANDLE_VALUE) { + CloseHandle(conn->read_overlapped.hEvent); + conn->read_overlapped.hEvent = INVALID_HANDLE_VALUE; + } + DisconnectNamedPipe(conn->fd); + CloseHandle(conn->fd); + conn_del(conn); + return 0; + } + else { + ret = (int)bytesWritten; + } + + if ((ret < 1) || (ret != (int) strlen(buf))) { + upsdebugx(2, "write to fd %p failed", conn->fd); + /* FIXME not sure this is the right way to close a connection */ + if( conn->read_overlapped.hEvent != INVALID_HANDLE_VALUE) { + CloseHandle(conn->read_overlapped.hEvent); + conn->read_overlapped.hEvent = INVALID_HANDLE_VALUE; + } + DisconnectNamedPipe(conn->fd); + CloseHandle(conn->fd); + + return 0; /* failed */ + } +#endif return 1; /* OK */ } +#ifndef WIN32 static void conn_add(int sockfd) { -#ifndef WIN32 int acc, ret; conn_t *tmp, *last; struct sockaddr_un saddr; @@ -428,8 +502,88 @@ static void conn_add(int sockfd) upsdebugx(3, "new connection on fd %d", acc); pconf_init(&tmp->ctx, NULL); -#endif } +#else +static HANDLE conn_add(HANDLE sockfd) +{ + HANDLE acc; + conn_t * conn; + conn_t *tmp, *last; + + /* We have detected a connection on the opened pipe. So we start + by saving its handle and create a new pipe for future connection */ + conn = xcalloc(1, sizeof(*conn)); + conn->fd = sockfd; + + /* sock is the handle of the connection pending pipe */ + acc = CreateNamedPipe( + pipefn, /* pipe name */ + PIPE_ACCESS_DUPLEX | /* read/write access */ + FILE_FLAG_OVERLAPPED, /* async IO */ + PIPE_TYPE_BYTE | + PIPE_READMODE_BYTE | + PIPE_WAIT, + PIPE_UNLIMITED_INSTANCES, /* max. instances */ + BUF_LEN, /* output buffer size */ + BUF_LEN, /* input buffer size */ + 0, /* client time-out */ + NULL); /* FIXME: default security attribute */ + + if (acc == INVALID_HANDLE_VALUE) { + fatal_with_errno(EXIT_FAILURE, "Can't create a state socket (windows named pipe)"); + } + + /* Prepare a new async wait for a connection on the pipe */ + CloseHandle(connect_overlapped.hEvent); + memset(&connect_overlapped,0,sizeof(connect_overlapped)); + connect_overlapped.hEvent = CreateEvent(NULL, /*Security*/ + FALSE, /* auto-reset*/ + FALSE, /* inital state = non signaled*/ + NULL /* no name*/); + if(connect_overlapped.hEvent == NULL ) { + fatal_with_errno(EXIT_FAILURE, "Can't create event"); + } + + /* Wait for a connection */ + ConnectNamedPipe(acc,&connect_overlapped); + + /* A new pipe waiting for new client connection has been created. + We could manage the current connection now */ + /* Start a read operation on the newly connected pipe so we could wait + on the event associated to this IO */ + memset(&conn->read_overlapped,0,sizeof(conn->read_overlapped)); + memset(conn->buf,0,sizeof(conn->buf)); + conn->read_overlapped.hEvent = CreateEvent(NULL, /*Security*/ + FALSE, /* auto-reset*/ + FALSE, /* inital state = non signaled*/ + NULL /* no name*/); + if(conn->read_overlapped.hEvent == NULL ) { + fatal_with_errno(EXIT_FAILURE, "Can't create event"); + } + + ReadFile (conn->fd,conn->buf,1,NULL,&(conn->read_overlapped)); + + conn->next = NULL; + + tmp = last = connhead; + + while (tmp) { + last = tmp; + tmp = tmp->next; + } + + if (last) + last->next = conn; + else + connhead = conn; + + upsdebugx(3, "new connection on fd %p", acc); + + pconf_init(&conn->ctx, NULL); + + return acc; +} +#endif static int sock_arg(conn_t *conn) { @@ -478,7 +632,7 @@ static int sock_read(conn_t *conn) char ch; for (i = 0; i < US_MAX_READ; i++) { - +#ifndef WIN32 ret = read(conn->fd, &ch, 1); if (ret < 1) { @@ -490,7 +644,22 @@ static int sock_read(conn_t *conn) /* some other problem */ return -1; /* error */ } +#else + DWORD bytesRead; + GetOverlappedResult(conn->fd, &conn->read_overlapped, &bytesRead,FALSE); + if( bytesRead < 1 ) { + /* Restart async read */ + memset(conn->buf,0,sizeof(conn->buf)); + ReadFile(conn->fd,conn->buf,1,NULL,&(conn->read_overlapped)); + return 0; + } + + ch = conn->buf[0]; + /* Restart async read */ + memset(conn->buf,0,sizeof(conn->buf)); + ReadFile(conn->fd,conn->buf,1,NULL,&(conn->read_overlapped)); +#endif ret = pconf_char(&conn->ctx, ch); if (ret == 0) /* nothing to parse yet */ @@ -515,6 +684,7 @@ static int sock_read(conn_t *conn) return 0; /* fell out without parsing anything */ } +#ifndef WIN32 static void start_daemon(int lockfd) { int maxfd, pid, pipefd, ret; @@ -523,7 +693,7 @@ static void start_daemon(int lockfd) conn_t *tmp, *tmpnext; us_serialize(SERIALIZE_INIT); -#ifndef WIN32 + if ((pid = fork()) < 0) fatal_with_errno(EXIT_FAILURE, "Unable to enter background"); @@ -534,7 +704,6 @@ static void start_daemon(int lockfd) return; } -#endif /* child */ close(0); @@ -608,12 +777,101 @@ static void start_daemon(int lockfd) checktimers(); } } +#else +static void start_daemon(HANDLE lockfd) +{ + int maxfd; + HANDLE pipefd; + DWORD timeout_ms; + HANDLE rfds[32]; + struct timeval tv; + conn_t *tmp; + + char module[MAX_PATH]; + STARTUPINFO sinfo; + PROCESS_INFORMATION pinfo; + if( !GetModuleFileName(NULL,module,MAX_PATH) ) { + fatal_with_errno(EXIT_FAILURE, "Can't retrieve module name"); + } + memset(&sinfo,0,sizeof(sinfo)); + if(!CreateProcess(module, NULL, NULL,NULL,FALSE,0,NULL,NULL,&sinfo,&pinfo)) { + fatal_with_errno(EXIT_FAILURE, "Can'tcreate child process"); + } + pipefd = open_sock(); + + if (verbose) + upslogx(LOG_INFO, "Timer daemon started"); + + /* drop the lock now that the background is running */ + CloseHandle(lockfd); + DeleteFile(lockfn); + + /* now watch for activity */ + + for (;;) { + /* wait at most 1s so we can check our timers regularly */ + tv.tv_sec = 1; + tv.tv_usec = 0; + + timeout_ms = (tv.tv_sec * 1000) + (tv.tv_usec / 1000); + + maxfd = 0; + + /* Wait on the read IO of each connections */ + for (tmp = connhead; tmp != NULL; tmp = tmp->next) { + rfds[maxfd] = tmp->read_overlapped.hEvent; + maxfd++; + } + /* Add the connect event */ + rfds[maxfd] = connect_overlapped.hEvent; + maxfd++; + DWORD ret_val; + ret_val = WaitForMultipleObjects( + maxfd, /* number of objects in array */ + rfds, /* array of objects */ + FALSE, /* wait for any object */ + timeout_ms); /* timeout in millisecond */ + + if (ret_val == WAIT_FAILED) { + upslog_with_errno(LOG_ERR, "waitfor failed"); + return; + } + + /* timer has not expired */ + if (ret_val != WAIT_TIMEOUT) { + /* Retrieve the signaled connection */ + for(tmp = connhead; tmp != NULL; tmp = tmp->next) { + if( tmp->read_overlapped.hEvent == rfds[ret_val-WAIT_OBJECT_0]) { + break; + } + } + + /* the connection event handle has been signaled */ + if (rfds[ret_val] == connect_overlapped.hEvent) { + pipefd = conn_add(pipefd); + } + /* one of the read event handle has been signaled */ + else { + if( tmp != NULL) { + if (sock_read(tmp) < 0) { + CloseHandle(tmp->fd); + conn_del(tmp); + } + } + } + + } + + checktimers(); + } +} +#endif /* --- 'client' functions --- */ +#ifndef WIN32 static int try_connect(void) { -#ifndef WIN32 int pipefd, ret; struct sockaddr_un saddr; @@ -632,18 +890,52 @@ static int try_connect(void) return pipefd; return -1; +} #else - return -1; -#endif +static HANDLE try_connect(void) +{ + HANDLE fd; + BOOL result = FALSE; + + result = WaitNamedPipe(pipefn,NMPWAIT_USE_DEFAULT_WAIT); + + if( result == FALSE ) { + return INVALID_HANDLE_VALUE; + } + + fd = CreateFile( + pipefn, /* pipe name */ + GENERIC_READ | /* read and write access */ + GENERIC_WRITE, + 0, /* no sharing */ + NULL, /* default security attributes FIXME */ + OPEN_EXISTING, /* opens existing pipe */ + FILE_FLAG_OVERLAPPED, /* enable async IO */ + NULL); /* no template file */ + + if (fd == INVALID_HANDLE_VALUE) { + return INVALID_HANDLE_VALUE; + } + + return fd; } +#endif +#ifndef WIN32 static int get_lock(const char *fn) { return open(fn, O_RDONLY | O_CREAT | O_EXCL, 0); +} +#else +static HANDLE get_lock(const char *fn) +{ + return CreateFile(fn,0,FILE_SHARE_DELETE,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL); +#endif } /* try to connect to bg process, and start one if necessary */ +#ifndef WIN32 static int check_parent(const char *cmd, const char *arg2) { int pipefd, lockfd, tries = 0; @@ -684,7 +976,52 @@ static int check_parent(const char *cmd, const char *arg2) upslog_with_errno(LOG_ERR, "Failed to connect to parent and failed to create parent"); exit(EXIT_FAILURE); } +#else +static HANDLE check_parent(const char *cmd, const char *arg2) +{ + int tries = 0; + HANDLE pipefd; + HANDLE lockfd; + for (tries = 0; tries < MAX_TRIES; tries++) { + + pipefd = try_connect(); + + if (pipefd != INVALID_HANDLE_VALUE) + return pipefd; + + /* timer daemon isn't running */ + + /* it's not running, so there's nothing to cancel */ + if (!strcmp(cmd, "CANCEL") && (arg2 == NULL)) + return PARENT_UNNECESSARY; + + /* arg2 non-NULL means there is a cancel action available */ + + /* we need to start the daemon, so try to get the lock */ + + lockfd = get_lock(lockfn); + + if (lockfd != INVALID_HANDLE_VALUE) { + start_daemon(lockfd); + return PARENT_STARTED; /* started successfully */ + } + + /* we didn't get the lock - must be two upsscheds running */ + + /* blow this away in case we crashed before */ + unlink(lockfn); + + /* give the other one a chance to start it, then try again */ + usleep(250000); + } + + upslog_with_errno(LOG_ERR, "Failed to connect to parent and failed to create parent"); + exit(EXIT_FAILURE); +} +#endif + +#ifndef WIN32 static void read_timeout(int sig) { /* ignore this */ @@ -693,7 +1030,6 @@ static void read_timeout(int sig) static void setup_sigalrm(void) { -#ifndef WIN32 struct sigaction sa; sigset_t nut_upssched_sigmask; @@ -702,13 +1038,19 @@ static void setup_sigalrm(void) sa.sa_flags = 0; sa.sa_handler = read_timeout; sigaction(SIGALRM, &sa, NULL); -#endif } +#endif static void sendcmd(const char *cmd, const char *arg1, const char *arg2) { - int i, pipefd, ret; + int i, ret; char buf[SMALLBUF], enc[SMALLBUF]; +#ifndef WIN32 + int pipefd; +#else + DWORD bytesWritten = 0; + HANDLE pipefd; +#endif /* insanity */ if (!arg1) @@ -742,8 +1084,8 @@ static void sendcmd(const char *cmd, const char *arg1, const char *arg2) return; /* we're connected now */ - - ret = write(pipefd, enc, strlen(enc)); +#ifndef WIN32 + ret = write(pipefd, buf, strlen(buf)); /* if we can't send the whole thing, loop back and try again */ if ((ret < 1) || (ret != (int) strlen(enc))) { @@ -755,14 +1097,11 @@ static void sendcmd(const char *cmd, const char *arg1, const char *arg2) /* ugh - probably should use select here... */ setup_sigalrm(); -#ifndef WIN32 alarm(2); ret = read(pipefd, buf, sizeof(buf)); alarm(0); signal(SIGALRM, SIG_IGN); -#endif - close(pipefd); /* same idea: no OK = go try it all again */ @@ -771,6 +1110,36 @@ static void sendcmd(const char *cmd, const char *arg1, const char *arg2) continue; } +#else + ret = WriteFile(pipefd,buf,strlen(buf),&bytesWritten,NULL); + if (ret == 0 || bytesWritten != strlen(buf)) { + upslogx(LOG_ERR, "write failed, trying again"); + CloseHandle(pipefd); + continue; + } + + OVERLAPPED read_overlapped; + DWORD ret; + + memset(&read_overlapped,0,sizeof(read_overlapped)); + memset(buf,0,sizeof(buf)); + read_overlapped.hEvent = CreateEvent(NULL, /*Security*/ + FALSE, /* auto-reset*/ + FALSE, /* inital state = non signaled*/ + NULL /* no name*/); + if(read_overlapped.hEvent == NULL ) { + fatal_with_errno(EXIT_FAILURE, "Can't create event"); + } + + ReadFile(pipefd,buf,sizeof(buf)-1,NULL,&(read_overlapped)); + + ret = WaitForSingleObject(read_overlapped.hEvent,2000); + + if (ret == WAIT_TIMEOUT || ret == WAIT_FAILED) { + upslogx(LOG_ERR, "read confirmation failed, trying again"); + continue; + } +#endif if (!strncmp(buf, "OK", 2)) return; /* success */ @@ -852,7 +1221,11 @@ static int conf_arg(int numargs, char **arg) /* PIPEFN */ if (!strcmp(arg[0], "PIPEFN")) { +#ifndef WIN32 pipefn = xstrdup(arg[1]); +#else + pipefn = xstrdup("\\\\.\\pipe\\upssched"); +#endif return 1; } diff --git a/clients/upssched.h b/clients/upssched.h index db0c25df4f..24aadddfd8 100644 --- a/clients/upssched.h +++ b/clients/upssched.h @@ -14,7 +14,13 @@ extern "C" { /* track client connections */ typedef struct conn_s { +#ifndef WIN32 int fd; +#else + HANDLE fd; + char buf[LARGEBUF]; + OVERLAPPED read_overlapped; +#endif PCONF_CTX_t ctx; struct conn_s *next; } conn_t; From 055b5263406a4611143b161051bdbc171edea835 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 16 Jan 2012 11:57:28 +0000 Subject: [PATCH 141/218] Fix commands with blank in their path Fossil-ID: SVN r3398 --- common/wincompat.c | 19 +++++++++++++++++++ include/wincompat.h | 4 ++++ 2 files changed, 23 insertions(+) diff --git a/common/wincompat.c b/common/wincompat.c index 664dc698b2..eef45e9852 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -106,6 +106,25 @@ const char* inet_ntop(int af, const void* src, char* dst, int cnt){ return dst; } +/* "system" call seems to handle path with blank name incorrectly */ +int win_system(const char * command) +{ + BOOL res; + STARTUPINFO si; + PROCESS_INFORMATION pi; + + memset(&si,0,sizeof(si)); + + res = CreateProcess(NULL,command,NULL,NULL,FALSE,CREATE_NEW_PROCESS_GROUP,NULL,NULL,&si,&pi); + + if( res != 0 ) { + return 0; + } + + return -1; +} + + /* syslog sends a message through a pipe to the wininit service. Which is in charge of adding an event in the Windows event logger. The message is made of 4 bytes containing the priority followed by an array diff --git a/include/wincompat.h b/include/wincompat.h index b4b1a1200c..ff5bcf1141 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -27,6 +27,7 @@ #include "common.h" +#define system(a) win_system(a) #define sleep(n) Sleep(1000 * n) char * strtok_r(char *str, const char *delim, char **saveptr); @@ -64,6 +65,9 @@ const char* inet_ntop(int af, const void* src, char* dst, int cnt); #define EAI_SYSTEM WSANO_RECOVERY #define EAFNOSUPPORT WSAEAFNOSUPPORT +/* "system" function */ +int win_system(const char * command); + /* syslog compatibility */ void syslog(int priority, const char *fmt, ...); From 0b665edf21e5971e03cde1549f5c9a69bdc1104a Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 19 Jan 2012 12:56:27 +0000 Subject: [PATCH 142/218] Cleaner initialization of variables Fossil-ID: SVN r3401 --- scripts/Windows/wininit.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index 1f7ae5b95d..294fb3ff3e 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -93,6 +93,8 @@ static DWORD create_process(char * command) DWORD LastError; memset(&StartupInfo,0,sizeof(STARTUPINFO)); + StartupInfo.cb = sizeof(StartupInfo); + memset(&ProcessInformation,0,sizeof(ProcessInformation)); res = CreateProcess( NULL, From 0c5ab760b7a5a30b72ea3688149287bee79023b3 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 19 Jan 2012 13:00:53 +0000 Subject: [PATCH 143/218] Add filter_path function This allows blank characters both in data files name and command path Fossil-ID: SVN r3402 --- clients/upslog.c | 6 ++++++ clients/upsmon.c | 4 ++++ clients/upssched.c | 11 +++++++---- common/wincompat.c | 28 +++++++++++++++++++++++++++- include/wincompat.h | 1 + 5 files changed, 45 insertions(+), 5 deletions(-) diff --git a/clients/upslog.c b/clients/upslog.c index 67c4823e8e..6b27f2f62d 100644 --- a/clients/upslog.c +++ b/clients/upslog.c @@ -399,6 +399,9 @@ int main(int argc, char **argv) case 'l': logfn = optarg; +#ifdef WIN32 + logfn = filter_path(optarg); +#endif break; case 'i': @@ -436,6 +439,9 @@ int main(int argc, char **argv) if (argc >= 3) { monhost = argv[0]; logfn = argv[1]; +#ifdef WIN32 + logfn = filter_path(argv[1]); +#endif interval = atoi(argv[2]); } diff --git a/clients/upsmon.c b/clients/upsmon.c index 0597675712..75fd023672 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -1183,7 +1183,11 @@ static int parse_conf_arg(int numargs, char **arg) checkmode(arg[0], powerdownflag, arg[1], reload_flag); free(powerdownflag); +#ifndef WIN32 powerdownflag = xstrdup(arg[1]); +#else + powerdownflag = filter_path(arg[1]); +#endif if (!reload_flag) upslogx(LOG_INFO, "Using power down flag file %s", diff --git a/clients/upssched.c b/clients/upssched.c index f1e6bc4524..e7fae4b455 100644 --- a/clients/upssched.c +++ b/clients/upssched.c @@ -929,10 +929,9 @@ static int get_lock(const char *fn) #else static HANDLE get_lock(const char *fn) { - return CreateFile(fn,0,FILE_SHARE_DELETE,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL); -#endif - + return CreateFile(fn,GENERIC_ALL,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL); } +#endif /* try to connect to bg process, and start one if necessary */ #ifndef WIN32 @@ -1010,7 +1009,7 @@ static HANDLE check_parent(const char *cmd, const char *arg2) /* we didn't get the lock - must be two upsscheds running */ /* blow this away in case we crashed before */ - unlink(lockfn); + DeleteFile(lockfn); /* give the other one a chance to start it, then try again */ usleep(250000); @@ -1231,7 +1230,11 @@ static int conf_arg(int numargs, char **arg) /* LOCKFN */ if (!strcmp(arg[0], "LOCKFN")) { +#ifndef WIN32 lockfn = xstrdup(arg[1]); +#else + lockfn = filter_path(arg[1]); +#endif return 1; } diff --git a/common/wincompat.c b/common/wincompat.c index eef45e9852..3d9bf37255 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -114,8 +114,10 @@ int win_system(const char * command) PROCESS_INFORMATION pi; memset(&si,0,sizeof(si)); + si.cb = sizeof(si); + memset(&pi,0,sizeof(pi)); - res = CreateProcess(NULL,command,NULL,NULL,FALSE,CREATE_NEW_PROCESS_GROUP,NULL,NULL,&si,&pi); + res = CreateProcess(NULL,command,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi); if( res != 0 ) { return 0; @@ -124,6 +126,30 @@ int win_system(const char * command) return -1; } +/* the " character is forbiden in Windows files , so we filter this character +in data file paths to be coherent with command line which require " to +distinguish the command from its parameter. This avoid complicated +explanation in the documentation */ +char * filter_path(const char * source) +{ + char * res; + int i,j; + + if( source == NULL ) { + return NULL; + } + + res = xmalloc(strlen(source)); + for(i=0,j=0;i<=strlen(source);i++) { + if(source[i] != '"') { + res[j] = source[i]; + j++; + } + } + + return res; +} + /* syslog sends a message through a pipe to the wininit service. Which is in charge of adding an event in the Windows event logger. diff --git a/include/wincompat.h b/include/wincompat.h index ff5bcf1141..db034e1f0b 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -30,6 +30,7 @@ #define system(a) win_system(a) #define sleep(n) Sleep(1000 * n) char * strtok_r(char *str, const char *delim, char **saveptr); +char * filter_path(const char * source); /* Network compatibility */ From 0d4a0d77dad1b038d4afed26236c3e2577dcb966 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 20 Jan 2012 12:55:40 +0000 Subject: [PATCH 144/218] Add getpwuid and getpass functions. Fossil-ID: SVN r3405 --- clients/upscmd.c | 4 ++-- clients/upsrw.c | 6 ++--- common/wincompat.c | 55 +++++++++++++++++++++++++++++++++++++++++++++ drivers/dstate.c | 5 ++--- include/wincompat.h | 10 +++++++++ 5 files changed, 71 insertions(+), 9 deletions(-) diff --git a/clients/upscmd.c b/clients/upscmd.c index 171cc3ed7a..d806ac2bee 100644 --- a/clients/upscmd.c +++ b/clients/upscmd.c @@ -26,6 +26,8 @@ #include #include #include +#else +#include "wincompat.h" #endif #include "upsclient.h" @@ -245,7 +247,6 @@ int main(int argc, char **argv) if (!strchr(argv[1], '.')) { fatalx(EXIT_FAILURE, "Error: old command names are not supported"); } -#ifndef WIN32 if (!have_un) { struct passwd *pw; @@ -286,7 +287,6 @@ int main(int argc, char **argv) snprintf(password, sizeof(password), "%s", pwtmp); } -#endif snprintf(buf, sizeof(buf), "USERNAME %s\n", username); if (upscli_sendline(ups, buf, strlen(buf)) < 0) { diff --git a/clients/upsrw.c b/clients/upsrw.c index 632101e184..1feb6ee581 100644 --- a/clients/upsrw.c +++ b/clients/upsrw.c @@ -25,6 +25,8 @@ #include #include #include +#else +#include "wincompat.h" #endif #include "upsclient.h" @@ -96,7 +98,6 @@ static void do_setvar(const char *varname, char *uin, const char *pass) if (uin) { snprintf(user, sizeof(user), "%s", uin); } else { -#ifndef WIN32 memset(user, '\0', sizeof(user)); pw = getpwuid(getuid()); @@ -130,9 +131,6 @@ static void do_setvar(const char *varname, char *uin, const char *pass) if (!pass) { fatal_with_errno(EXIT_FAILURE, "getpass failed"); } -#else - fatalx(EXIT_FAILURE, "No username available"); -#endif } /* Check if varname is in VAR=VALUE form */ diff --git a/common/wincompat.c b/common/wincompat.c index 3d9bf37255..fa003b0d25 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -23,6 +23,61 @@ extern int errno; const char * EventLogName = NULL; +struct passwd wincompat_passwd; +char wincompat_user_name[SMALLBUF]; +char wincompat_password[SMALLBUF]; + +uid_t getuid(void) +{ + DWORD size = sizeof(wincompat_user_name); + if( !GetUserName(wincompat_user_name,&size) ) { + return NULL; + } + + return wincompat_user_name; +} + +struct passwd *getpwuid(uid_t uid) +{ + wincompat_passwd.pw_name = uid; + wincompat_passwd.pw_uid = 0; + return &wincompat_passwd; +} + +char *getpass( const char *prompt) +{ + HANDLE hStdin; + DWORD mode; + + hStdin = GetStdHandle(STD_INPUT_HANDLE); + if(hStdin == INVALID_HANDLE_VALUE) { + return NULL; + } + + printf("%s",prompt); + + GetConsoleMode( hStdin, &mode ); + mode &= ~ENABLE_ECHO_INPUT; + SetConsoleMode( hStdin , mode); + + if (fgets(wincompat_password, sizeof(wincompat_password), stdin) == NULL) { + upsdebug_with_errno(LOG_INFO, "%s", __func__); + return NULL; + } + + /* deal with that pesky newline */ + if (strlen(wincompat_password) > 1) { + wincompat_password[strlen(wincompat_password) - 1] = '\0'; + }; + + hStdin = GetStdHandle(STD_INPUT_HANDLE); + GetConsoleMode( hStdin, &mode ); + mode |= ENABLE_ECHO_INPUT; + SetConsoleMode( hStdin , mode); + + return wincompat_password; +} + #ifndef HAVE_USLEEP /* Verbatim from http://cygwin.com/cgi-bin/cvsweb.cgi/~checkout~/src/winsup/mingw/mingwex/usleep.c?rev=1.2&cvsroot=src */ diff --git a/drivers/dstate.c b/drivers/dstate.c index 6e315b9b1b..7362c153e5 100644 --- a/drivers/dstate.c +++ b/drivers/dstate.c @@ -31,6 +31,7 @@ #else #include #include +#include "wincompat.h" #endif #include "common.h" @@ -58,8 +59,6 @@ /* this may be a frequent stumbling point for new users, so be verbose here */ static void sock_fail(const char *fn) { -#ifndef WIN32 -/*FIXME*/ int sockerr; struct passwd *user; @@ -107,7 +106,7 @@ static void sock_fail(const char *fn) * there - that wasn't so bad. every helpful line of code here * prevents one more "help me" mail to the list a year from now */ -#endif + printf("\n"); fatalx(EXIT_FAILURE, "Exiting."); } diff --git a/include/wincompat.h b/include/wincompat.h index db034e1f0b..2fb8d721e2 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -27,6 +27,16 @@ #include "common.h" +typedef const char * uid_t; +struct passwd { + const char *pw_name; + int pw_uid; /* Fake value, alwaus set to 0 */ +}; + +uid_t getuid(void); +struct passwd *getpwuid(uid_t uid); +char *getpass( const char *prompt); + #define system(a) win_system(a) #define sleep(n) Sleep(1000 * n) char * strtok_r(char *str, const char *delim, char **saveptr); From 999c10a9b5e593ff068b96d30f40d516a7fa9600 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 9 Feb 2012 13:23:37 +0000 Subject: [PATCH 145/218] Merge from trunk: [[SVN:3320]] to [[SVN:3435]] [[SVN:3320]] = 2011-11-15T22:12:16Z!arnaud.quette@free.fr [[SVN:3435]] = 2012-02-09T10:42:25Z!fbohe-guest@alioth.debian.org Fossil-ID: SVN r3436 --- docs/man/blazer.txt | 309 ++++++++++++++++++++++++++++++ docs/man/snmp-ups.txt | 170 ++++++++++++++++ drivers/blazer_usb.c | 4 +- drivers/libusb.c | 4 - drivers/mge-mib.c | 3 - drivers/richcomm_usb.c | 4 - drivers/snmp-ups.c | 1 + drivers/usb-common.h | 5 +- tools/nut-scanner/nut-scanner.c | 2 + tools/nut-scanner/scan_avahi.c | 6 + tools/nut-scanner/scan_nut.c | 1 - tools/nut-scanner/scan_snmp.c | 5 + tools/nut-scanner/scan_usb.c | 19 ++ tools/nut-scanner/scan_xml_http.c | 5 + 14 files changed, 520 insertions(+), 18 deletions(-) create mode 100644 docs/man/blazer.txt create mode 100644 docs/man/snmp-ups.txt diff --git a/docs/man/blazer.txt b/docs/man/blazer.txt new file mode 100644 index 0000000000..3e0e46b216 --- /dev/null +++ b/docs/man/blazer.txt @@ -0,0 +1,309 @@ +BLAZER(8) +========= + +NAME +---- + +blazer - Driver for Megatec/Q1 protocol serial (blazer_ser) and USB (blazer_usb) based UPS equipment + +NOTE +---- +This man page only documents the hardware-specific features of the +blazer driver. For information about the core driver, see +linkman:nutupsdrv[8]. + +SUPPORTED HARDWARE +------------------ + +The blazer driver is known to work with various UPSes from Blazer, Energy +Sistem, Fenton Technologies, Mustek and many others. The NUT compatibility +table lists all the known supported models. Keep in mind, however, that +other models not listed there may also be supported, but haven't been tested. + +All devices with a serial interface (use the *blazer_ser* driver) and +many with a USB interface (use the *blazer_usb* driver) are supported. + +EXTRA ARGUMENTS +--------------- + +You may need to override or provide defaults for some values, depending on +the make and model of your UPS. The following are the ones that most likely +will need changing (see linkman:ups.conf[5]): + +*default.battery.voltage.high =* 'value':: + +Maximum battery voltage that is reached after about 12 to 24 hours charging. +If you want the driver to report a guesstimated *battery.charge*, you need +to specify this (see <<_battery_charge,BATTERY CHARGE>>). + +*default.battery.voltage.low =* 'value':: + +Minimum battery voltage just before the UPS automatically shuts down. +If you want the driver to report a guesstimated *battery.charge*, you need +to specify this (see <<_battery_charge,BATTERY CHARGE>>). + +*default.battery.voltage.nominal =* 'value':: +*override.battery.voltage.nominal =* 'value':: + +Some devices show a wrong nominal battery voltage (or none at all), so you may +need to override or set a default value. + +*override.battery.packs =* 'value':: + +Some devices report a part of the total battery voltage. For instance, if +*battery.voltage.nominal* is 24 V, but it reports a *battery.voltage* +of around 2 V, the number of *battery.packs* to correct this reading would +be 12. The driver will attempt to detect this automatically, but if this fails +somehow, you may want to override this value. + +*ondelay =* 'value':: + +Time to wait before switching on the UPS (minutes). Note that a value below 3 +minutes, may cause earlier firmware versions to not switch on automatically, +so it defaults to 3 minutes. + +*offdelay =* 'value':: + +Time to wait before shutting down the UPS (seconds). This value is truncated +to units of 6 seconds (less than 60 seconds) or 60 seconds (more than 60 +seconds). Defaults to 30 seconds. + +*norating*:: + +Some UPSes will lock up if you attempt to read rating information from them. +Setting this flag will make the driver skip this step. + +*novendor*:: + +Some UPSes will lock up if you attempt to read vendor information from them. +Setting this flag will make the driver skip this step. + +*protocol =* 'string':: + +Skip autodetection of the protocol to use and only use the one specified. +Supported values 'megatec', 'megatec/old', 'mustek' and 'zinto'. + +*runtimecal =* 'value,value,value,value':: + +Parameter used in the (optional) runtime estimation. This takes two runtimes +at different loads. Typically, this uses the runtime at full load and the +runtime at half load. For instance, if your UPS has a rated runtime of 240 +seconds at full load and 720 seconds at half load, you would enter ++ + runtimecal = 270,100,720,50 ++ +The first load should always be higher than the second. If you have values +available for loads other than 100 and 50 % respectively, you can use those +too, but keep them spaced apart as far as reasonably possible. Just don't +get too close to no load (prediction of runtime depends more on idle load for +the battery then). + +*chargetime =* 'value':: + +The time needed to fully recharge the battery after being fully discharged. If +not specified, the driver defaults to 43200 seconds (12 hours). Only used if +*runtimecal* is also specified. + +*idleload =* 'value':: + +Minimum battery load used by the driver to estimate the runtime. If not +specified, the driver defaults to 10%. Only used if *runtimecal* is also +specified. + +SERIAL INTERFACE ONLY +--------------------- + +*cablepower =* 'string':: + +By default the driver will set DTR and clear RTS ('normal'). If you find that +your UPS isn't detected or the communication with the UPS is unreliable, you may +try if clear DTR and set RTS ('reverse'), set DTR and RTS ('both') or +clear DTR and RTS ('none') improves this situation. + +USB INTERFACE ONLY +------------------ + +*vendorid =* 'regex':: +*productid =* 'regex':: +*vendor =* 'regex':: +*product =* 'regex':: +*serial =* 'regex':: + +Select a specific UPS, in case there is more than one connected via +USB. Each option specifies an extended regular expression (see +*regex(7)*) that must match the UPS's entire vendor/product/serial +string (minus any surrounding whitespace), or the whole 4-digit +hexadecimal code for vendorid and productid. Try *-DD* for +finding out the strings to match. + +Examples: + + -x vendor="Foo.Corporation.*" + + -x vendorid=051d # (APC) + + -x product=".*(Smart|Back)-?UPS.*" + +*bus =* 'regex':: + +Select a UPS on a specific USB bus or group of busses. The argument is +a regular expression that must match the bus name where the UPS is +connected (e.g. bus="002", bus="00[2-3]"). + +*subdriver =* 'string':: + +Select a serial-over-USB subdriver to use. You have a choice between *phoenix*, +*ippon*, *cypress*, and *krauler*. When using this option, it is mandatory to also +specify the *vendorid* and *productid*. + +*langid_fix =* 'value':: + +Apply the language ID workaround to the krauler subdriver. This is mandatory +for some devices to work (LDLC, Dynamix and others). You must to provide +*value* (0x409 or 0x4095), according to your device entry in NUT hardware +compatibility list (HCL). + + +UPS COMMANDS +------------ + +This driver supports some instant commands (see linkman:upscmd[8]): + +*beeper.toggle*:: + +Toggle the UPS beeper. (Not available on some hardware.) + +*load.on*:: + +Turn on the load immediately. + +*load.off*:: + +Turn off the load immediately (see <<_known_problems,KNOWN PROBLEMS>>). + +*shutdown.return* ['value']:: + +Turn off the load and return when power is back. Uses the timers defined by +*ondelay* and *offdelay*. + +*shutdown.stayoff* ['value']:: + +Turn off the load and remain off (see <<_known_problems,KNOWN PROBLEMS>>). Uses +the timer defined by *offdelay*. + +*shutdown.stop*:: + +Stop a shutdown in progress. + +*test.battery.start.deep*:: + +Perform a long battery test (Not available on some hardware.) + +*test.battery.start.quick*:: + +Perform a (10 second) battery test. + +*test.battery.start* 'value':: + +Perform a battery test for the duration of 'value' seconds (truncated to units of +60 seconds). + +*test.battery.stop*:: + +Stop a running battery test (not available on some hardware.) + +BATTERY CHARGE +-------------- + +Due to popular demand, this driver will report a guesstimated *battery.charge* +and optionally *battery.runtime*, provided you specified a couple of the +<<_extra_arguments,EXTRA ARGUMENTS>> listed above. + +If you specify both *battery.voltage.high* and *battery.voltage.low* in +linkman:ups.conf[5], but don't enter *runtimecal*, it will guesstimate the state +of charge by looking at the battery voltage alone. This is not reliable under load, +as this only gives reasonably accurate readings if you disconnect the load, let the +battery rest for a couple of minutes and then measure the open cell voltage. This +just isn't practical if the power went out and the UPS is providing power for your +systems. + + battery.voltage - battery.voltage.low +battery.charge = ------------------------------------------ x 100 % + battery.voltage.high - battery.voltage.low + +There is a way to get better readings without disconnecting the load but this +requires one to keep track on how much (and how fast) current is going in- and +out of the battery. If you specified the *runtimecal*, the driver will attempt +to do this. Note however, that this heavily relies on the values you enter and +that the UPS must be able to report the load as well. There are quite a couple +of devices that report 0 % (or any other fixed value) at all times, in which +case this obviously doesn't work. + +The driver also has no way of determining the degradation of the battery capacity +over time, so you'll have to deal with this yourself (by adjusting the values +in *runtimecal*). Also note that the driver guesses the initial state of charge +based on the battery voltage, so this may be less than 100 %, even when you are +certain that they are full. There is just no way to reliably measure this between +0 and 100 % full charge. + +This is better than nothing (but not by much). If any of the above calculations is +giving you incorrect readings, you are the one that put in the values in +linkman:ups.conf[5], so don't complain with the author. If you need something better, +buy a UPS that reports *battery.charge* and *battery.runtime* all by itself +without the help of a NUT driver. + +NOTES FOR THE PREVIOUS USER OF MEGATEC DRIVERS +---------------------------------------------- + +The blazer drivers having replaced the megatec ones, some configuration +changes may be required by users switching to blazer. + +Part of this, the following megatec options, in ups.conf, have to be changed: + +*battvolts*:: + +You need to use 'default.battery.voltage.high' and 'default.battery.voltage.low' + +*dtr and rts*:: + +You need to use 'cablepower' + +*ignoreoff*:: + +This parameter can simply be discarded, since it was a wrong understanding +of the specification. + +KNOWN PROBLEMS +-------------- + +Some UPS commands aren't supported by all models. In most cases, the driver +will send a message to the system log when the user tries to execute an +unsupported command. Unfortunately, some models don't even provide a way for +the driver to check for this, so the unsupported commands will silently +fail. + +Both the *load.off* and *shutdown.stayoff* instant commands are meant to +turn the load off indefinitely. However, some UPS models don't allow this. + +Some models report a bogus value for the beeper status (will always be 'enabled' +or 'disabled'). So, the *beeper.toggle* command may appear to have no effect +in the status reported by the driver when, in fact, it is working fine. + +The temperature and load value is known to be bogus in some models. + +AUTHORS +------- + +Arjen de Korte , +Alexander Gordeev + +SEE ALSO +-------- + +linkman:nutupsdrv[8], linkman:upsc[8], linkman:upscmd[8], linkman:upsrw[8] + +Internet Resources: +~~~~~~~~~~~~~~~~~~~ + +The NUT (Network UPS Tools) home page: http://www.networkupstools.org/ +The NUT HCL: http://www.networkupstools.org/stable-hcl.html diff --git a/docs/man/snmp-ups.txt b/docs/man/snmp-ups.txt new file mode 100644 index 0000000000..58ee71ee01 --- /dev/null +++ b/docs/man/snmp-ups.txt @@ -0,0 +1,170 @@ +snmp-ups(8) +=========== + +NAME +---- + +snmp-ups - Multi-MIB Driver for SNMP UPS equipment + +NOTE +---- +This man page only documents the hardware-specific features of the +snmp-ups driver. For information about the core driver, see +linkman:nutupsdrv[8]. + +SUPPORTED HARDWARE +------------------ + +The snmp-ups driver automatically detects and supports a wide range of devices by loading various MIBS: +*ietf*:: +UPS that is RFC 1628 (UPS MIB) compliant, e.g. MGE UPS SYSTEMS, Liebert, perhaps others (default) + +*mge*:: +MGE UPS SYSTEMS and MGE Office Protection Systems devices with SNMP cards (ref 66062, 66045, 66074 and 66244) + +*apcc*:: +APC AP9606 APC Web/SNMP management card, perhaps others + +*netvision*:: +Socomec Sicon UPS with Netvision Web/SNMP management card/external box + +*pw*:: +Powerware devices with ConnectUPS SNMP cards + +*aphel_genesisII*:: +Eaton Powerware ePDU Monitored + +*aphel_revelation*:: +Eaton Powerware ePDU Managed + +*raritan*:: +Various Raritan PDUs + +*baytech*:: +Various BayTech PDUs + +*cpqpower*:: +HP/Compaq AF401A management card, perhaps others + +*cyberpower*:: +Cyberpower RMCARD201. Should also support RMCARD100 (net version), RMCARD202 and RMCARD301 + +EXTRA ARGUMENTS +--------------- + +This driver supports the following optional settings in the +linkman:ups.conf[5]: + +*mibs*='name':: +Set MIB compliance (default=auto, allowed entries: refer to the above SUPPORTED HARDWARE). +With "auto", the driver will try a select set of SNMP objects until it finds +one that the device responds to. + +*community*='name':: +Set community name (default = public). +Note that you require a RW community name to change UPS settings (as for a powerdown). + +*snmp_version*='version':: +Set SNMP version (default = v1, the other allowed value is v2c) + +*pollfreq*='value':: +Set polling frequency in seconds, to reduce network flow (default=30) + +*notransferoids*:: +Disable the monitoring of the low and high voltage transfer OIDs in +the hardware. This will remove input.transfer.low and input.transfer.high +from the list of variables. This should only be used on APCC Symmetra +equipment which has strangeness in the three-phase power reporting. + +*secLevel*='value':: +Set the securityLevel used for SNMPv3 messages (default=noAuthNoPriv, +allowed: authNoPriv,authPriv) + +*secName*='value':: +Set the securityName used for authenticated SNMPv3 messages (no default) + +*authPassword*='value':: +Set the authentication pass phrase used for authenticated SNMPv3 messages +(no default) + +*privPassword*='value':: +Set the privacy pass phrase used for encrypted SNMPv3 messages (no default) + +*authProtocol*='value':: +Set the authentication protocol (MD5 or SHA) used for authenticated SNMPv3 +messages (default=MD5) + +*privProtocol*='value':: +Set the privacy protocol (DES or AES) used for encrypted SNMPv3 messages +(default=DES) + +REQUIREMENTS +------------ +You will need to install the Net-SNMP package from +http://www.net-snmp.org/ before building this driver. + +SNMP v3 also requires OpenSSL support from http://www.openssl.org. + +LIMITATION +---------- +Shutdown +~~~~~~~~ + +This driver does not provide a proper upsdrv_shutdown() function. There probably +never will be one, since at the time this script should run (near the end of +the system halt script), there will be no network capabilities anymore. +Probably the only way to shutdown an SNMP UPS is by sending it a shutdown +with delay command through linkman:upscmd[8] and hope for the best that the +system will have finished shutting down before the power is cut. + +INSTALLATION +------------ +This driver is only built if the Net-SNMP development files are present on the system. +You can also force it to be built by using "configure --with-snmp=yes" before calling make. + +IMPLEMENTATION +-------------- +The hostname of the UPS is specified with the "port" value in +`ups.conf`, i.e.: + + [snmpv1] + driver = snmp-ups + port = snmp-ups.example.com + community = public + snmp_version = v1 + mibs = ietf + pollfreq = 15 + desc = "Example SNMP v1 device" + + [snmpv3] + driver = snmp-ups + port = 166.99.224.132 + mibs = mge + secLevel = authPriv + secName = mysecurityname + authPassword = myauthenticationpassphrase + privPassword = myprivatepassphrase + desc = "Example SNMP v3 device, with the highest security level" + +AUTHORS +------- +Arnaud Quette, Dmitry Frolov + +Sponsored by Eaton +and originally by MGE UPS SYSTEMS + + +SEE ALSO +-------- + +The core driver: +~~~~~~~~~~~~~~~~ +linkman:nutupsdrv[8] + +NUT SNMP Protocols Library +~~~~~~~~~~~~~~~~~~~~~~~~~~ +Available at: http://www.networkupstools.org/protocols/snmp/ + +Internet resources: +~~~~~~~~~~~~~~~~~~~ +The NUT (Network UPS Tools) home page: http://www.networkupstools.org/ diff --git a/drivers/blazer_usb.c b/drivers/blazer_usb.c index fead3dcc7d..cf10bfa4b4 100644 --- a/drivers/blazer_usb.c +++ b/drivers/blazer_usb.c @@ -351,8 +351,8 @@ static void *phoenix_subdriver(USBDevice_t *device) static usb_device_id_t blazer_usb_id[] = { { USB_DEVICE(0x05b8, 0x0000), &cypress_subdriver }, /* Agiler UPS */ - { 0x0001, 0x0000, &krauler_subdriver }, /* Krauler UP-M500VA */ - { 0xffff, 0x0000, &krauler_subdriver }, /* Ablerex 625L USB */ + { USB_DEVICE(0x0001, 0x0000), &krauler_subdriver }, /* Krauler UP-M500VA */ + { USB_DEVICE(0xffff, 0x0000), &krauler_subdriver }, /* Ablerex 625L USB */ { USB_DEVICE(0x0665, 0x5161), &cypress_subdriver }, /* Belkin F6C1200-UNV */ { USB_DEVICE(0x06da, 0x0002), &cypress_subdriver }, /* Online Yunto YQ450 */ { USB_DEVICE(0x06da, 0x0003), &ippon_subdriver }, /* Mustek Powermust */ diff --git a/drivers/libusb.c b/drivers/libusb.c index f0811816bb..d28a33aff9 100644 --- a/drivers/libusb.c +++ b/drivers/libusb.c @@ -114,10 +114,6 @@ static int libusb_open(usb_dev_handle **udevp, USBDevice_t *curDevice, USBDevice usb_init(); usb_find_busses(); usb_find_devices(); -#ifdef WIN32 - struct usb_bus *busses; - busses = usb_get_busses(); -#endif #ifndef __linux__ /* SUN_LIBUSB (confirmed to work on Solaris and FreeBSD) */ /* Causes a double free corruption in linux if device is detached! */ diff --git a/drivers/mge-mib.c b/drivers/mge-mib.c index 051b01f67a..e19816b19d 100644 --- a/drivers/mge-mib.c +++ b/drivers/mge-mib.c @@ -29,9 +29,6 @@ #define MGE_MIB_VERSION "0.5" -/* TODO: - * - MGE PDU MIB and sysOID (".1.3.6.1.4.1.705.2") */ - /* TODO: * - MGE PDU MIB and sysOID (".1.3.6.1.4.1.705.2") */ diff --git a/drivers/richcomm_usb.c b/drivers/richcomm_usb.c index 61205f1d8f..01eafc6893 100644 --- a/drivers/richcomm_usb.c +++ b/drivers/richcomm_usb.c @@ -229,11 +229,7 @@ static int usb_device_open(usb_dev_handle **handlep, USBDevice_t *device, USBDev usb_device_close(*handlep); #endif -#ifndef WIN32 for (bus = usb_busses; bus; bus = bus->next) { -#else - for (bus = usb_get_busses(); bus; bus = bus->next) { -#endif struct usb_device *dev; usb_dev_handle *handle; diff --git a/drivers/snmp-ups.c b/drivers/snmp-ups.c index fc4ccd9d4d..514c699480 100644 --- a/drivers/snmp-ups.c +++ b/drivers/snmp-ups.c @@ -1127,6 +1127,7 @@ int base_snmp_outlet_index(const char *OID_template) if (nut_snmp_get(test_OID) != NULL) break; } + outlet_index_base = base_index; } upsdebugx(3, "base_snmp_outlet_index: %i", outlet_index_base); return base_index; diff --git a/drivers/usb-common.h b/drivers/usb-common.h index 30c0889ef3..e160e761c2 100644 --- a/drivers/usb-common.h +++ b/drivers/usb-common.h @@ -71,10 +71,7 @@ void USBFreeExactMatcher(USBDeviceMatcher_t *matcher); void USBFreeRegexMatcher(USBDeviceMatcher_t *matcher); /* dummy USB function and macro, inspired from the Linux kernel - * this allows USB information extraction - * CAUTION: only use with *valid* device identifiers, Ie the following is not - * valid (from blazer_usb, krauler subdriver): 0x0001:0x0000 - */ + * this allows USB information extraction */ #define USB_DEVICE(vendorID, productID) vendorID, productID typedef struct { diff --git a/tools/nut-scanner/nut-scanner.c b/tools/nut-scanner/nut-scanner.c index 3e21596a4a..97c7fd0155 100644 --- a/tools/nut-scanner/nut-scanner.c +++ b/tools/nut-scanner/nut-scanner.c @@ -177,6 +177,8 @@ int main(int argc, char *argv[]) nutscan_init(); + nutscan_init(); + display_func = nutscan_display_ups_conf; while((opt_ret = getopt_long(argc, argv, optstring, longopts, NULL))!=-1) { diff --git a/tools/nut-scanner/scan_avahi.c b/tools/nut-scanner/scan_avahi.c index 16db652179..c7cc3bef27 100644 --- a/tools/nut-scanner/scan_avahi.c +++ b/tools/nut-scanner/scan_avahi.c @@ -515,4 +515,10 @@ nutscan_device_t * nutscan_scan_avahi(long usec_timeout) { return NULL; } +#else /* WITH_AVAHI */ +/* stub function */ +nutscan_device_t * nutscan_scan_avahi(long usec_timeout) +{ + return NULL; +} #endif /* WITH_AVAHI */ diff --git a/tools/nut-scanner/scan_nut.c b/tools/nut-scanner/scan_nut.c index b0d81936b1..fa1eaf63bb 100644 --- a/tools/nut-scanner/scan_nut.c +++ b/tools/nut-scanner/scan_nut.c @@ -211,7 +211,6 @@ nutscan_device_t * nutscan_scan_nut(const char* startIP, const char* stopIP, con struct sigaction oldact; #endif struct scan_nut_arg *nut_arg; - #ifdef WIN32 WSADATA WSAdata; WSAStartup(2,&WSAdata); diff --git a/tools/nut-scanner/scan_snmp.c b/tools/nut-scanner/scan_snmp.c index a3669b05de..4f70b07ddc 100644 --- a/tools/nut-scanner/scan_snmp.c +++ b/tools/nut-scanner/scan_snmp.c @@ -715,6 +715,11 @@ nutscan_device_t * nutscan_scan_snmp(const char * start_ip, const char * stop_ip { return NULL; } +#else /* WITH_SNMP */ +nutscan_device_t * nutscan_scan_snmp(const char * start_ip, const char * stop_ip,long usec_timeout, nutscan_snmp_t * sec) +{ + return NULL; +} #endif /* WITH_SNMP */ diff --git a/tools/nut-scanner/scan_usb.c b/tools/nut-scanner/scan_usb.c index c82dad58c5..e003a6369d 100644 --- a/tools/nut-scanner/scan_usb.c +++ b/tools/nut-scanner/scan_usb.c @@ -37,7 +37,10 @@ static char * (*nut_usb_strerror)(void); static void (*nut_usb_init)(void); static int (*nut_usb_get_string_simple)(usb_dev_handle *dev, int index, char *buf, size_t buflen); +#ifndef WIN32 static struct usb_bus * (*nut_usb_busses); +#endif +static struct usb_bus * (*nut_usb_get_busses)(); static usb_dev_handle * (*nut_usb_open)(struct usb_device *dev); static int (*nut_usb_find_devices)(void); @@ -90,10 +93,17 @@ int nutscan_load_usb_library() goto err; } +#ifndef WIN32 *(void **) (&nut_usb_busses) = lt_dlsym(dl_handle, "usb_busses"); if ((dl_error = lt_dlerror()) != NULL) { goto err; } +#endif + *(void **) (&nut_usb_get_busses) = lt_dlsym(dl_handle, + "usb_get_busses"); + if ((dl_error = lt_dlerror()) != NULL) { + goto err; + } *(void **) (&nut_usb_open) = lt_dlsym(dl_handle, "usb_open"); if ((dl_error = lt_dlerror()) != NULL) { @@ -155,7 +165,11 @@ nutscan_device_t * nutscan_scan_usb() (*nut_usb_find_busses)(); (*nut_usb_find_devices)(); +#ifndef WIN32 for (bus = (*nut_usb_busses); bus; bus = bus->next) { +#else + for (bus = (*nut_usb_get_busses)(); bus; bus = bus->next) { +#endif for (dev = bus->devices; dev; dev = dev->next) { if ((driver_name = is_usb_device_supported(usb_device_table, @@ -262,5 +276,10 @@ nutscan_device_t * nutscan_scan_usb() { return NULL; } +#else /* WITH_USB */ +nutscan_device_t * nutscan_scan_usb() +{ + return NULL; +} #endif /* WITH_USB */ diff --git a/tools/nut-scanner/scan_xml_http.c b/tools/nut-scanner/scan_xml_http.c index 08ffa25cba..bd85b2850e 100644 --- a/tools/nut-scanner/scan_xml_http.c +++ b/tools/nut-scanner/scan_xml_http.c @@ -251,4 +251,9 @@ nutscan_device_t * nutscan_scan_xml_http(long usec_timeout) { return NULL; } +#else /* WITH_NEON */ +nutscan_device_t * nutscan_scan_xml_http(long usec_timeout) +{ + return NULL; +} #endif /* WITH_NEON */ From b6c56d6717ac512d4663cfc423a5d85c108686d5 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 16 Feb 2012 15:35:19 +0000 Subject: [PATCH 146/218] Cleaner regex addtion por apcsmart driver (by Arnaud Quette) Fossil-ID: SVN r3446 --- configure.in | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/configure.in b/configure.in index 5a759525ec..c4845187d1 100644 --- a/configure.in +++ b/configure.in @@ -67,7 +67,8 @@ pkgconfigdir='${libdir}/pkgconfig' dnl Disable Hotplug and udev support on Windows case ${target_os} in - mingw* ) + *mingw* ) + LIBREGEX_LIBS='-lregex' hotplugdir='' udevdir='' ;; @@ -1223,6 +1224,7 @@ AC_SUBST(OS_NAME) AC_SUBST(TREE_VERSION) AC_SUBST(NUT_NETVERSION) AC_SUBST(LIBSSL_CFLAGS) +AC_SUBST(LIBREGEX_LIBS) AC_SUBST(LIBSSL_LIBS) AC_SUBST(LIBGD_CFLAGS) AC_SUBST(LIBGD_LDFLAGS) From f252fb36c78e43c78614c3fb2072bfeed7a5c70c Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 8 Mar 2012 10:19:20 +0000 Subject: [PATCH 147/218] Better handling of ETIMEDOUT Fossil-ID: SVN r3489 --- drivers/blazer_usb.c | 11 ++++------- drivers/libusb.c | 7 +++---- drivers/usbhid-ups.c | 5 ++++- include/wincompat.h | 3 +++ 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/drivers/blazer_usb.c b/drivers/blazer_usb.c index cf10bfa4b4..c3ac9a6b24 100644 --- a/drivers/blazer_usb.c +++ b/drivers/blazer_usb.c @@ -26,6 +26,9 @@ #include "libusb.h" #include "usb-common.h" #include "blazer.h" +#ifdef WIN32 +#include "wincompat.h" +#endif #define DRIVER_NAME "Megatec/Q1 protocol USB driver" #define DRIVER_VERSION "0.10" @@ -120,10 +123,8 @@ static int phoenix_command(const char *cmd, char *buf, size_t buflen) { case -EPIPE: /* Broken pipe */ usb_clear_halt(udev, 0x81); -#ifndef WIN32 /*FIXME*/ case -ETIMEDOUT: /* Connection timed out */ break; -#endif } if (ret < 0) { @@ -190,9 +191,7 @@ static int ippon_command(const char *cmd, char *buf, size_t buflen) 0x09, 0x2, 0, &tmp[i], 8, 1000); if (ret <= 0) { -#ifndef WIN32 /*FIXME*/ upsdebugx(3, "send: %s", (ret != -ETIMEDOUT) ? usb_strerror() : "Connection timed out"); -#endif return ret; } } @@ -207,9 +206,7 @@ static int ippon_command(const char *cmd, char *buf, size_t buflen) * will happen after successfully writing a command to the UPS) */ if (ret <= 0) { -#ifndef WIN32 /*FIXME*/ upsdebugx(3, "read: %s", (ret != -ETIMEDOUT) ? usb_strerror() : "Connection timed out"); -#endif return ret; } @@ -446,8 +443,8 @@ int blazer_command(const char *cmd, char *buf, size_t buflen) usb->close(udev); udev = NULL; break; -#ifndef WIN32 case -ETIMEDOUT: /* Connection timed out */ +#ifndef WIN32 case -EOVERFLOW: /* Value too large for defined data type */ case -EPROTO: /* Protocol error */ #endif diff --git a/drivers/libusb.c b/drivers/libusb.c index d28a33aff9..9c493d2454 100644 --- a/drivers/libusb.c +++ b/drivers/libusb.c @@ -32,6 +32,9 @@ #include "common.h" /* for xmalloc, upsdebugx prototypes */ #include "usb-common.h" #include "libusb.h" +#ifdef WIN32 +#include "wincompat.h" +#endif /* USB standard timeout */ #define USB_TIMEOUT 5000 @@ -50,10 +53,6 @@ upsdrv_info_t comm_upsdrv_info = { #define MAX_REPORT_SIZE 0x1800 -#ifdef WIN32 -/* This value is defined in the error.h file of the libusb-win32 sources */ -#define ETIMEDOUT 116 -#endif static void libusb_close(usb_dev_handle *udev); /* From usbutils: workaround libusb API goofs: "byte" should never be sign extended; diff --git a/drivers/usbhid-ups.c b/drivers/usbhid-ups.c index ce6d94ab5c..0d40ffc572 100644 --- a/drivers/usbhid-ups.c +++ b/drivers/usbhid-ups.c @@ -34,6 +34,9 @@ #include "usbhid-ups.h" #include "hidparser.h" #include "hidtypes.h" +#ifdef WIN32 +#include "wincompat.h" +#endif /* include all known subdrivers */ #include "mge-hid.h" @@ -1267,8 +1270,8 @@ static bool_t hid_ups_walk(walkmode_t mode) case 0: continue; -#ifndef WIN32 case -ETIMEDOUT: /* Connection timed out */ +#ifndef WIN32 case -EOVERFLOW: /* Value too large for defined data type */ case -EPROTO: /* Protocol error */ #endif diff --git a/include/wincompat.h b/include/wincompat.h index 2fb8d721e2..d2b7af56db 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -27,6 +27,9 @@ #include "common.h" +/* This value is defined in the error.h file of the libusb-win32 sources */ +#define ETIMEDOUT 116 + typedef const char * uid_t; struct passwd { const char *pw_name; From 24cd5ea9bd7a557ea8a38dcea82ebfb632b2cfe5 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 8 Mar 2012 10:19:44 +0000 Subject: [PATCH 148/218] typo in comments Fossil-ID: SVN r3490 --- server/upsd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/upsd.c b/server/upsd.c index e5d7dd2f9e..832988b3e8 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -258,9 +258,9 @@ static void setuptcp(stype_t *server) } #ifdef WIN32 - server->Event = CreateEvent(NULL, /*Security,*/ - FALSE, /*auo-reset */ - FALSE, /*initial state*/ + server->Event = CreateEvent(NULL, /* Security */ + FALSE, /* auto-reset */ + FALSE, /* initial state */ NULL); /* no name */ /* Associate socket event to the socket via its Event object */ From 976509a1648c21a188ab92c536e4cd6e41715cf7 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 8 Mar 2012 10:44:23 +0000 Subject: [PATCH 149/218] Add comments about EPROTO and EOVERFLOW Fossil-ID: SVN r3491 --- drivers/blazer_usb.c | 2 ++ drivers/libusb.c | 2 ++ drivers/usbhid-ups.c | 2 ++ 3 files changed, 6 insertions(+) diff --git a/drivers/blazer_usb.c b/drivers/blazer_usb.c index c3ac9a6b24..1962103890 100644 --- a/drivers/blazer_usb.c +++ b/drivers/blazer_usb.c @@ -444,6 +444,8 @@ int blazer_command(const char *cmd, char *buf, size_t buflen) udev = NULL; break; case -ETIMEDOUT: /* Connection timed out */ +/* libusb win32 does not know EPROTO and EOVERFLOW, it only returns EIO for any + IO errors */ #ifndef WIN32 case -EOVERFLOW: /* Value too large for defined data type */ case -EPROTO: /* Protocol error */ diff --git a/drivers/libusb.c b/drivers/libusb.c index 9c493d2454..e62ea4112b 100644 --- a/drivers/libusb.c +++ b/drivers/libusb.c @@ -379,6 +379,8 @@ static int libusb_strerror(const int ret, const char *desc) upsdebugx(2, "%s: Connection timed out", desc); return 0; +/* libusb win32 does not know EPROTO and EOVERFLOW, it only returns EIO for any + IO errors */ #ifndef WIN32 case -EOVERFLOW: /* Value too large for defined data type */ case -EPROTO: /* Protocol error */ diff --git a/drivers/usbhid-ups.c b/drivers/usbhid-ups.c index 0d40ffc572..39465b1370 100644 --- a/drivers/usbhid-ups.c +++ b/drivers/usbhid-ups.c @@ -1271,6 +1271,8 @@ static bool_t hid_ups_walk(walkmode_t mode) continue; case -ETIMEDOUT: /* Connection timed out */ +/* libusb win32 does not know EPROTO and EOVERFLOW, it only returns EIO for any + IO errors */ #ifndef WIN32 case -EOVERFLOW: /* Value too large for defined data type */ case -EPROTO: /* Protocol error */ From 1fc249eac15a9e541088bc038d2273035bcd26b0 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 8 Mar 2012 14:37:33 +0000 Subject: [PATCH 150/218] Clean up Fossil-ID: SVN r3492 --- clients/upsclient.c | 4 +--- common/common.c | 2 -- drivers/safenet.c | 4 ---- include/wincompat.h | 1 + server/conf.c | 2 +- 5 files changed, 3 insertions(+), 10 deletions(-) diff --git a/clients/upsclient.c b/clients/upsclient.c index 6e17f6a1e9..9549f4d475 100644 --- a/clients/upsclient.c +++ b/clients/upsclient.c @@ -27,15 +27,13 @@ #endif #include -#ifndef WIN32 -#include -#endif #include #include #include #include #include #ifndef WIN32 +#include #include #include #include diff --git a/common/common.c b/common/common.c index e62bf5e20c..4d12d0233e 100644 --- a/common/common.c +++ b/common/common.c @@ -25,7 +25,6 @@ #include #include #else -#include #include #endif @@ -341,7 +340,6 @@ int sendsignalfn(const char *pidfn, int sig) #else ret = GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,pid); if (ret == 0) { - upslogx(LOG_ERR, "GenerateConsoleCtrlEvent error : %d", (int)GetLastError()); return -1; } #endif diff --git a/drivers/safenet.c b/drivers/safenet.c index b26912e41f..77170fb32d 100644 --- a/drivers/safenet.c +++ b/drivers/safenet.c @@ -371,11 +371,7 @@ void upsdrv_updateinfo(void) * [A...J]. */ for (i = 1; i < 12; i++) { -#ifndef WIN32 command[i] = (random() % 10) + 'A'; -#else - command[i] = (rand() % 10) + 'A'; -#endif } /* diff --git a/include/wincompat.h b/include/wincompat.h index d2b7af56db..fa364d3145 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -30,6 +30,7 @@ /* This value is defined in the error.h file of the libusb-win32 sources */ #define ETIMEDOUT 116 +#define random() rand() typedef const char * uid_t; struct passwd { const char *pw_name; diff --git a/server/conf.c b/server/conf.c index 31e6241035..d1a8ddd7a7 100644 --- a/server/conf.c +++ b/server/conf.c @@ -64,7 +64,7 @@ static void ups_create(const char *fn, const char *name, const char *desc) #ifdef WIN32 memset(&temp->read_overlapped,0,sizeof(temp->read_overlapped)); memset(temp->buf,0,sizeof(temp->buf)); - temp->read_overlapped.hEvent = CreateEvent(NULL, /*Security*/ + temp->read_overlapped.hEvent = CreateEvent(NULL, /* Security */ FALSE, /* auto-reset*/ FALSE, /* initial state = non signaled */ NULL /* no name */); From 7ddc2b80acf9a889334d8ce5e21d5a3fbefa6844 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 16 Mar 2012 08:25:59 +0000 Subject: [PATCH 151/218] Add #ifdef WIN32 for do_upsconf_args definition Fossil-ID: SVN r3496 --- tools/nut-scanner/nutscan-init.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/nut-scanner/nutscan-init.c b/tools/nut-scanner/nutscan-init.c index 16ea760da3..9ec6799f28 100644 --- a/tools/nut-scanner/nutscan-init.c +++ b/tools/nut-scanner/nutscan-init.c @@ -34,6 +34,11 @@ int nutscan_load_avahi_library(void); int nutscan_load_ipmi_library(void); int nutscan_load_upsclient_library(void); +#ifdef WIN32 +/* Stub for libupsclient */ +void do_upsconf_args(char *confupsname, char *var, char *val) {;}; +#endif + void nutscan_init(void) { #ifdef WITH_USB From 56d1e01610d83049b6dde26cf3c755f868f3dd6e Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 16 Mar 2012 08:26:52 +0000 Subject: [PATCH 152/218] Fix indentation Fossil-ID: SVN r3497 --- tools/nut-scanner/scan_nut.c | 89 ++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 45 deletions(-) diff --git a/tools/nut-scanner/scan_nut.c b/tools/nut-scanner/scan_nut.c index fa1eaf63bb..24cba80c67 100644 --- a/tools/nut-scanner/scan_nut.c +++ b/tools/nut-scanner/scan_nut.c @@ -32,11 +32,11 @@ static const char *dl_error = NULL; static int (*nut_upscli_splitaddr)(const char *buf,char **hostname, int *port); static int (*nut_upscli_tryconnect)(UPSCONN_t *ups, const char *host, int port, - int flags,struct timeval * timeout); + int flags,struct timeval * timeout); static int (*nut_upscli_list_start)(UPSCONN_t *ups, unsigned int numq, - const char **query); + const char **query); static int (*nut_upscli_list_next)(UPSCONN_t *ups, unsigned int numq, - const char **query,unsigned int *numa, char ***answer); + const char **query,unsigned int *numa, char ***answer); static int (*nut_upscli_disconnect)(UPSCONN_t *ups); static nutscan_device_t * dev_ret = NULL; @@ -53,51 +53,51 @@ struct scan_nut_arg { int nutscan_load_upsclient_library() { - if( dl_handle != NULL ) { - /* if previous init failed */ - if( dl_handle == (void *)1 ) { - return 0; - } - /* init has already been done */ - return 1; - } + if( dl_handle != NULL ) { + /* if previous init failed */ + if( dl_handle == (void *)1 ) { + return 0; + } + /* init has already been done */ + return 1; + } - if( lt_dlinit() != 0 ) { - fprintf(stderr, "Error initializing lt_init\n"); - return 0; - } + if( lt_dlinit() != 0 ) { + fprintf(stderr, "Error initializing lt_init\n"); + return 0; + } - dl_handle = lt_dlopenext(libname); - if (!dl_handle) { - dl_error = lt_dlerror(); - goto err; - } + dl_handle = lt_dlopenext("libupsclient"); + if (!dl_handle) { + dl_error = lt_dlerror(); + goto err; + } - lt_dlerror(); /* Clear any existing error */ + lt_dlerror(); /* Clear any existing error */ - *(void **) (&nut_upscli_splitaddr) = lt_dlsym(dl_handle, - "upscli_splitaddr"); - if ((dl_error = lt_dlerror()) != NULL) { - goto err; - } + *(void **) (&nut_upscli_splitaddr) = lt_dlsym(dl_handle, + "upscli_splitaddr"); + if ((dl_error = lt_dlerror()) != NULL) { + goto err; + } - *(void **) (&nut_upscli_tryconnect) = lt_dlsym(dl_handle, - "upscli_tryconnect"); - if ((dl_error = lt_dlerror()) != NULL) { - goto err; - } + *(void **) (&nut_upscli_tryconnect) = lt_dlsym(dl_handle, + "upscli_tryconnect"); + if ((dl_error = lt_dlerror()) != NULL) { + goto err; + } - *(void **) (&nut_upscli_list_start) = lt_dlsym(dl_handle, - "upscli_list_start"); - if ((dl_error = lt_dlerror()) != NULL) { - goto err; - } + *(void **) (&nut_upscli_list_start) = lt_dlsym(dl_handle, + "upscli_list_start"); + if ((dl_error = lt_dlerror()) != NULL) { + goto err; + } - *(void **) (&nut_upscli_list_next) = lt_dlsym(dl_handle, - "upscli_list_next"); - if ((dl_error = lt_dlerror()) != NULL) { - goto err; - } + *(void **) (&nut_upscli_list_next) = lt_dlsym(dl_handle, + "upscli_list_next"); + if ((dl_error = lt_dlerror()) != NULL) { + goto err; + } *(void **) (&nut_upscli_disconnect) = lt_dlsym(dl_handle, "upscli_disconnect"); @@ -107,10 +107,9 @@ int nutscan_load_upsclient_library() return 1; err: - fprintf(stderr, "Cannot load NUT library (%s) : %s. NUT search disabled.\n", libname, dl_error); - dl_handle = (void *)1; - lt_dlexit(); - return 0; + fprintf(stderr, "%s\n", dl_error); + dl_handle = (void *)1; + return 0; } /* FIXME: SSL support */ From eafc048a0e8eaf38cbb043987dfb4e2757970a30 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 26 Mar 2012 14:51:52 +0000 Subject: [PATCH 153/218] Small correction to error messages. Fossil-ID: SVN r3509 --- common/wincompat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/wincompat.c b/common/wincompat.c index fa003b0d25..34856199ab 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -419,14 +419,14 @@ int send_to_named_pipe(const char * pipe_name, const char * data) if (pipe == INVALID_HANDLE_VALUE) { - upslogx(LOG_ERR, "Cannot connect to upsmon Named Pipe"); + upslogx(LOG_ERR, "Cannot connect to named pipe : %s",pipe_name); return 1; } result = WriteFile (pipe,data,strlen(data)+1,&bytesWritten,NULL); if (result == 0 || bytesWritten != strlen(data)+1 ) { - upslogx(LOG_ERR, "Error writing to %s Named Pipe",pipe_name); + upslogx(LOG_ERR, "Error writing to named pipe : %s",pipe_name); CloseHandle(pipe); return 1; } From 66fb3209d6f4f3d77d568c955ee85d954310187a Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 29 Mar 2012 13:38:00 +0000 Subject: [PATCH 154/218] Merge from trunk: [[SVN:3438]] to [[SVN:3508]] [[SVN:3438]] = 2012-02-09T14:46:52Z!fbohe-guest@alioth.debian.org [[SVN:3508]] = 2012-03-24T15:13:59Z!arnaud.quette@free.fr Fossil-ID: SVN r3510 --- autogen.sh | 2 +- docs/man/blazer.txt | 2 +- docs/man/oneac.txt | 125 ++++++++++++++++++++++++++++++++++++++++++ drivers/bcmxcp.c | 6 -- tools/git-svn.authors | 2 + 5 files changed, 129 insertions(+), 8 deletions(-) create mode 100644 docs/man/oneac.txt diff --git a/autogen.sh b/autogen.sh index eee95cd8d2..323b167b4b 100755 --- a/autogen.sh +++ b/autogen.sh @@ -6,7 +6,7 @@ # re-generate files needed by configure, and created otherwise at 'dist' time if [ ! -f scripts/augeas/nutupsconf.aug.in ] then - if python -c pass; then + if python -c "import re,glob,codecs"; then echo "Regenerating Augeas ups.conf lens..." cd scripts/augeas && ./gen-nutupsconf-aug.py && cd ../.. else diff --git a/docs/man/blazer.txt b/docs/man/blazer.txt index 3e0e46b216..63582a9928 100644 --- a/docs/man/blazer.txt +++ b/docs/man/blazer.txt @@ -90,7 +90,7 @@ at different loads. Typically, this uses the runtime at full load and the runtime at half load. For instance, if your UPS has a rated runtime of 240 seconds at full load and 720 seconds at half load, you would enter + - runtimecal = 270,100,720,50 + runtimecal = 240,100,720,50 + The first load should always be higher than the second. If you have values available for loads other than 100 and 50 % respectively, you can use those diff --git a/docs/man/oneac.txt b/docs/man/oneac.txt new file mode 100644 index 0000000000..fe6c779ac8 --- /dev/null +++ b/docs/man/oneac.txt @@ -0,0 +1,125 @@ +ONEAC(8) +======== + +NAME +---- + +oneac - Driver for Oneac UPS equipment + +NOTE +---- + +This man page only documents the hardware-specific features of the +oneac driver. For information about the core driver, see +linkman:nutupsdrv[8]. + +SUPPORTED HARDWARE +------------------ + +This driver supports various Oneac UPS families: + + - EG (late 80s, early 90s, plug-in serial interface card) + - ON (early and mid-90s, plug-in serial interface card) + - OZ (mid-90s on, DB-25 std., interface slot) + - OB (early 2000's on, big cabinet, DB-25 std., interface slot) + +If your UPS is equipped with the Basic Interface card, use the +linkman:genericups[8] driver. + +EXTRA ARGUMENTS +--------------- +This driver supports the following optional settings in the +linkman:ups.conf[5] file: + +*testtime*='num':: +Change battery test time from the 2 minute default. + +*offdelay*='num':: +Change shutdown delay time from 0 second default. + +INSTANT COMMANDS +---------------- +This driver supports the following Instant Commands. +(See linkman:upscmd[8]) + +All UPS units +~~~~~~~~~~~~~ + +*shutdown.return*:: +Turn off the load possibly after a delay and return when power is back. + +*shutdown.stop*:: +Stop a shutdown in progress. + +*shutdown.reboot*:: +Shut down the load briefly while rebooting the UPS. + +*test.failure.start*:: +Starts a 15 second long simulation of an input power +failure. + +*test.battery.start.quick*:: +Start a "quick" battery test. The default time is 2 minutes. This +time can be set in the *ups.conf* file. See *testime* above. + +*test.battery.stop*:: +Stops a battery test that is in progress. + +All ON UPS units +~~~~~~~~~~~~~~~~ + +*reset.input.minmax*:: +Reset the minimum and maximum input line voltage values +seen since the last reset or power on. + +Newer ON UPS units +~~~~~~~~~~~~~~~~~~ + +*test.panel.start*:: +Start testing the UPS panel. + +*test.battery.start.deep*:: +Start a "deep" battery test. This test runs the UPS until the low +battery point and then returns to the AC line. + +*reset.input.minmax*:: +Reset the minimum and maximum input line voltage values +seen since the last reset or power on. + +*beeper.enable*:: +Enable UPS beeper/buzzer. + +*beeper.disable*:: +Disable UPS beeper/buzzer. + +*beeper.mute*:: +Mutes the UPS beeper/buzzer for the current alarm condition(s). + +Writable Variables +------------------ +See linkman:upsrw[8] to see what variables are writable for the UPS. + +NOTE: If your UPS supports writing battery.runtime.low, the new set value +is to be entered in minutes (up to 99) but the reported value is reported +in seconds (set value * 60). + +NOTE: If your UPS supports input.transfer.low and input.transfer.high, +those values are used to create an allowable output range. The UPS +will do what it can to keep the output voltage value within the +defined range (for example: tap change or switch to inverter). + +AUTHOR +------ +Bill Elliot , +Eric Lawson + +SEE ALSO +-------- + +The core driver: +~~~~~~~~~~~~~~~~ +linkman:nutupsdrv[8] + +Internet resources: +~~~~~~~~~~~~~~~~~~~ +The NUT (Network UPS Tools) home page: http://www.networkupstools.org/ diff --git a/drivers/bcmxcp.c b/drivers/bcmxcp.c index 566a5baa44..dbdb0bbadc 100644 --- a/drivers/bcmxcp.c +++ b/drivers/bcmxcp.c @@ -1650,12 +1650,6 @@ static int instcmd(const char *cmdname, const char *extra) sleep(PW_SLEEP); /* Need to. Have to wait at least 0,25 sec max 16 sec */ - /* Get the shutdown delay, if any */ - snprintf(varname, sizeof(varname)-1, "outlet.%c.delay.shutdown", cmdname[7]); - if ((varvalue = dstate_getinfo(varname)) != NULL) { - sddelay = atoi(varvalue); - } - /* Get the shutdown delay, if any */ snprintf(varname, sizeof(varname)-1, "outlet.%c.delay.shutdown", cmdname[7]); if ((varvalue = dstate_getinfo(varname)) != NULL) { diff --git a/tools/git-svn.authors b/tools/git-svn.authors index d16f43060e..7d5410c309 100644 --- a/tools/git-svn.authors +++ b/tools/git-svn.authors @@ -17,3 +17,5 @@ carlosefr-guest = Carlos Rodrigues nba-guest = Niels Baggesen lyrgard-guest = Jonathan Dion jongough-guest = Jon Gough +mihl-guest = Michal Hlavinka +acolombier-guest = Antoine Colombier From 98ec45700128aa15c162b06e4f2d08ae8e59ae24 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 30 Mar 2012 11:52:14 +0000 Subject: [PATCH 155/218] Special case when sending signal 0 Fossil-ID: SVN r3513 --- common/common.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/common/common.c b/common/common.c index 4d12d0233e..3ba6dbfa45 100644 --- a/common/common.c +++ b/common/common.c @@ -338,9 +338,22 @@ int sendsignalfn(const char *pidfn, int sig) fclose(pidf); #else - ret = GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,pid); - if (ret == 0) { - return -1; + if( sig == 0 ) { + HANDLE proc; + proc = OpenProcess(READ_CONTROL,FALSE,pid); + CloseHandle( proc); + if( proc == NULL ) { + fclose(pidf); + return -1; + } + } + else { + ret = GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,pid); + + if (ret == 0) { + fclose(pidf); + return -1; + } } #endif fclose(pidf); From e2c4c42265d0ef898b59ac78eecb6c59adb9fb7a Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 30 Mar 2012 12:19:05 +0000 Subject: [PATCH 156/218] This is needed for non WIN32 too. Fossil-ID: SVN r3515 --- tools/nut-scanner/nutscan-init.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/tools/nut-scanner/nutscan-init.c b/tools/nut-scanner/nutscan-init.c index 9ec6799f28..6c7539b82a 100644 --- a/tools/nut-scanner/nutscan-init.c +++ b/tools/nut-scanner/nutscan-init.c @@ -34,10 +34,8 @@ int nutscan_load_avahi_library(void); int nutscan_load_ipmi_library(void); int nutscan_load_upsclient_library(void); -#ifdef WIN32 /* Stub for libupsclient */ void do_upsconf_args(char *confupsname, char *var, char *val) {;}; -#endif void nutscan_init(void) { From 5b31630ad8313b2540f45dbb9c55c4175bc8f1ea Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 3 Apr 2012 13:58:23 +0000 Subject: [PATCH 157/218] This doesn't make it through past merges. Fossil-ID: SVN r3519 --- configure.in | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/configure.in b/configure.in index c4845187d1..3cb342b660 100644 --- a/configure.in +++ b/configure.in @@ -203,7 +203,11 @@ AC_CHECK_DECLS(__func__, [], [ AC_DEFINE(__func__, __LINE__, [Replace missing __func__ declaration]) ], [AC_INCLUDES_DEFAULT]) ], [AC_INCLUDES_DEFAULT]) - + +dnl Solaris compatibility - check for -lnsl and -lsocket +AC_SEARCH_LIBS(gethostbyname, nsl) +AC_SEARCH_LIBS(connect, socket) + AC_HEADER_TIME AC_CHECK_HEADERS(sys/modem.h stdarg.h varargs.h sys/termios.h sys/time.h, [], [], [AC_INCLUDES_DEFAULT]) @@ -1205,7 +1209,6 @@ eval conftemp=\"${conftemp}\" eval conftemp=\"${conftemp}\" NUT_DATADIR=${conftemp} AC_DEFINE_UNQUOTED(NUT_DATADIR, "${conftemp}", [Default path for data files]) - dnl same for bindir conftemp="${bindir}" eval conftemp=\"${conftemp}\" @@ -1254,6 +1257,7 @@ AC_SUBST(LIBHAL_LIBS) AC_SUBST(DRIVER_BUILD_LIST) AC_SUBST(DRIVER_MAN_LIST) AC_SUBST(DRIVER_INSTALL_TARGET) +AC_SUBST(NETLIBS) AC_SUBST(SERLIBS) AC_SUBST(PIDPATH) AC_SUBST(STATEPATH) From 7fd7d66db140842138241c24fbcff095535afe0b Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 6 Apr 2012 11:48:55 +0000 Subject: [PATCH 158/218] Conditional Makefile for WIN32 Fossil-ID: SVN r3522 --- clients/Makefile.am | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/clients/Makefile.am b/clients/Makefile.am index 7fd85faacd..8364a1d83b 100644 --- a/clients/Makefile.am +++ b/clients/Makefile.am @@ -45,7 +45,11 @@ upsstats_cgi_SOURCES = upsstats.c upsclient.h status.h upsstats.h \ upsimagearg.h cgilib.c cgilib.h # not LDADD. -libupsclient_la_SOURCES = upsclient.c upsclient.h ../common/wincompat.c ../common/common.c +if HAVE_WINSOCK2_H + libupsclient_la_SOURCES = upsclient.c upsclient.h ../common/wincompat.c ../common/common.c +else + libupsclient_la_SOURCES = upsclient.c upsclient.h +endif libupsclient_la_LIBADD = ../common/libparseconf.la if WITH_SSL libupsclient_la_LIBADD += $(LIBSSL_LIBS) From 037377d4787b8b789c4763e32050a6c1ee964691 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 6 Apr 2012 13:00:34 +0000 Subject: [PATCH 159/218] Fix conditional Makefile for WIN32 Fossil-ID: SVN r3523 --- clients/Makefile.am | 6 +++--- m4/nut_check_socketlib.m4 | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/clients/Makefile.am b/clients/Makefile.am index 8364a1d83b..bbde8e281d 100644 --- a/clients/Makefile.am +++ b/clients/Makefile.am @@ -45,11 +45,11 @@ upsstats_cgi_SOURCES = upsstats.c upsclient.h status.h upsstats.h \ upsimagearg.h cgilib.c cgilib.h # not LDADD. -if HAVE_WINSOCK2_H +if HAVE_WINDOWS_SOCKETS libupsclient_la_SOURCES = upsclient.c upsclient.h ../common/wincompat.c ../common/common.c -else +else !HAVE_WINDOWS_SOCKETS libupsclient_la_SOURCES = upsclient.c upsclient.h -endif +endif !HAVE_WINDOWS_SOCKETS libupsclient_la_LIBADD = ../common/libparseconf.la if WITH_SSL libupsclient_la_LIBADD += $(LIBSSL_LIBS) diff --git a/m4/nut_check_socketlib.m4 b/m4/nut_check_socketlib.m4 index 8be63596de..65df958516 100644 --- a/m4/nut_check_socketlib.m4 +++ b/m4/nut_check_socketlib.m4 @@ -36,4 +36,6 @@ AC_DEFUN([NUT_CHECK_SOCKETLIB], fi fi AC_SUBST([NETLIBS]) + + AM_CONDITIONAL([HAVE_WINDOWS_SOCKETS], [test "$nut_cv_func_wsastartup" = "yes"]) ]) From c6717d40e41f5e295580517df59890b21658f911 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 17 Apr 2012 09:26:34 +0000 Subject: [PATCH 160/218] Make the message box of notify non-blocking Fossil-ID: SVN r3535 --- clients/upsmon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clients/upsmon.c b/clients/upsmon.c index 75fd023672..92f15703da 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -167,7 +167,7 @@ static unsigned __stdcall async_notify(LPVOID param) if (flag_isset(data->flags, NOTIFY_WALL)) { snprintf(notice,LARGEBUF,"%s: %s", data->date, data->notice); - MessageBox(NULL,notice,SVCNAME,MB_OK|MB_ICONEXCLAMATION|MB_SERVICE_NOTIFICATION); + wall(notice); } if (flag_isset(data->flags, NOTIFY_EXEC)) { From f6e673a93fea6f2e10332c64431cb1183d6cde58 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 23 Apr 2012 07:43:22 +0000 Subject: [PATCH 161/218] Completely skip termios.h with WIN32 The latest MinGW raise errors on termios.h, so we skip it for now. Fossil-ID: SVN r3537 --- drivers/serial.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/serial.h b/drivers/serial.h index 5c3ccc141f..069c356d36 100644 --- a/drivers/serial.h +++ b/drivers/serial.h @@ -5,15 +5,15 @@ #include "config.h" +#ifndef WIN32 #if defined(HAVE_SYS_TERMIOS_H) # include /* for speed_t */ #else -#ifndef WIN32 # include +#endif #else #include "common.h" #include "wincompat.h" -#endif #endif /* HAVE_SYS_TERMIOS_H */ /* limit the amount of spew that goes in the syslog when we lose the UPS */ From 5750e7abce3a9444cdb2e7b63b002773f53c52a9 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 24 Apr 2012 08:20:14 +0000 Subject: [PATCH 162/218] Merge from trunk [[SVN:3511]] to [[SVN:3539]] [[SVN:3511]] = 2012-03-29T14:59:34Z!arnaud.quette@free.fr [[SVN:3539]] = 2012-04-24T08:07:39Z!fbohe-guest@alioth.debian.org Fossil-ID: SVN r3540 --- configure.in | 4 ++++ tools/nut-scanner/scan_nut.c | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/configure.in b/configure.in index 3cb342b660..643dc17c08 100644 --- a/configure.in +++ b/configure.in @@ -1332,6 +1332,10 @@ AC_OUTPUT([ scripts/java/Makefile scripts/python/Makefile scripts/systemd/Makefile + scripts/systemd/nut-driver.service + scripts/systemd/nut-monitor.service + scripts/systemd/nut-server.service + scripts/systemd/nutshutdown scripts/udev/Makefile scripts/udev/nut-ipmipsu.rules scripts/udev/nut-usbups.rules diff --git a/tools/nut-scanner/scan_nut.c b/tools/nut-scanner/scan_nut.c index 24cba80c67..d167cf2cac 100644 --- a/tools/nut-scanner/scan_nut.c +++ b/tools/nut-scanner/scan_nut.c @@ -67,7 +67,7 @@ int nutscan_load_upsclient_library() return 0; } - dl_handle = lt_dlopenext("libupsclient"); + dl_handle = lt_dlopenext(libname); if (!dl_handle) { dl_error = lt_dlerror(); goto err; @@ -107,8 +107,9 @@ int nutscan_load_upsclient_library() return 1; err: - fprintf(stderr, "%s\n", dl_error); + fprintf(stderr, "Cannot load NUT library (%s) : %s. NUT search disabled.\n", libname, dl_error); dl_handle = (void *)1; + lt_dlexit(); return 0; } From 99cbdb6eed19e6a003891779ea847b179e226442 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 26 Apr 2012 08:43:09 +0000 Subject: [PATCH 163/218] echo a comment Fossil-ID: SVN r3543 --- scripts/Windows/Installer/BuildInstaller.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/Windows/Installer/BuildInstaller.bat b/scripts/Windows/Installer/BuildInstaller.bat index 174b8ee99c..a6250df3a1 100644 --- a/scripts/Windows/Installer/BuildInstaller.bat +++ b/scripts/Windows/Installer/BuildInstaller.bat @@ -11,7 +11,7 @@ SET NUT-XML-FILE=NUT-Installer.xml SET wixobjName=NUT-Installer.wixobj SET msiPackageName=NUT-Installer.msi -REM copy DLL files from system +echo copy DLL files from MSYS copy /Y %MSYS_BIN_DIR%msys-1.0.dll .\ImageFiles\Others copy /Y %MSYS_BIN_DIR%msys-crypto-1.0.0.dll .\ImageFiles\Others copy /Y %MSYS_BIN_DIR%msys-ssl-1.0.0.dll .\ImageFiles\Others From a851d40253e391c103e98db8dcaa4888ff582083 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 26 Apr 2012 08:44:50 +0000 Subject: [PATCH 164/218] Add nut-scanner files and libupsclient-1.dll to the MSI installer Fossil-ID: SVN r3544 --- scripts/Windows/Installer/NUT-Installer.xml | 22 ++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index 835767e5b9..5b012ebbf6 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1362,6 +1362,18 @@ Public License instead of this License. + + + + + + + + + + + + @@ -1398,6 +1410,9 @@ Public License instead of this License. + + + @@ -1789,6 +1804,10 @@ Public License instead of this License. + + + + @@ -1805,6 +1824,7 @@ Public License instead of this License. + @@ -1944,4 +1964,4 @@ Public License instead of this License. LIBUSBINSTALL=1 - \ No newline at end of file + From d0060d154bdf7dac9907837aa18f48eba5dd63cd Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 26 Apr 2012 14:42:30 +0000 Subject: [PATCH 165/218] libupsclient-1.dll is needed in "bin" too Fossil-ID: SVN r3545 --- scripts/Windows/Installer/NUT-Installer.xml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index 5b012ebbf6..3117977e26 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1374,6 +1374,9 @@ Public License instead of this License. + + + @@ -1410,8 +1413,8 @@ Public License instead of this License. - - + + @@ -1808,6 +1811,7 @@ Public License instead of this License. + @@ -1824,7 +1828,7 @@ Public License instead of this License. - + From 5dc75eb5664628fb3bba2c04b411d5047209c058 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 2 May 2012 08:29:13 +0000 Subject: [PATCH 166/218] Add libneon-27.dll and libnetsnmp-30.dll in bin directory These are used respectively by netxml and snmp-ups drivers. Fossil-ID: SVN r3548 --- scripts/Windows/Installer/NUT-Installer.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index 3117977e26..1d5493057f 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1194,6 +1194,12 @@ Public License instead of this License. + + + + + + @@ -1750,6 +1756,8 @@ Public License instead of this License. + + From 701d0a29e0384be5e9e5749937b92a2bdf1913e4 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 2 May 2012 09:00:07 +0000 Subject: [PATCH 167/218] Update comments for IPv6 on Windows platforms Fossil-ID: SVN r3549 --- conf/upsd.conf.sample | 2 ++ 1 file changed, 2 insertions(+) diff --git a/conf/upsd.conf.sample b/conf/upsd.conf.sample index 72927776ee..ce2e7483c4 100644 --- a/conf/upsd.conf.sample +++ b/conf/upsd.conf.sample @@ -33,6 +33,8 @@ # # This defaults to the localhost listening addresses and port 3493. # In case of IP v4 or v6 disabled kernel, only the available one will be used. +# Note that it is not true for Windows platforms. You shouldn't use IPv6 in +# your configuration files unless you have IPv6 installed. # # You may specify each interface you want upsd to listen on for connections, # optionally with a port number. From 2bcf45bc6381b702a8cc137a9325b13dc4b9c744 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 2 May 2012 12:36:19 +0000 Subject: [PATCH 168/218] Make sure upssched.conf is DOS compatible Fossil-ID: SVN r3550 --- scripts/Windows/Installer/BuildInstaller.bat | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/Windows/Installer/BuildInstaller.bat b/scripts/Windows/Installer/BuildInstaller.bat index a6250df3a1..d05fdcedf4 100644 --- a/scripts/Windows/Installer/BuildInstaller.bat +++ b/scripts/Windows/Installer/BuildInstaller.bat @@ -11,6 +11,8 @@ SET NUT-XML-FILE=NUT-Installer.xml SET wixobjName=NUT-Installer.wixobj SET msiPackageName=NUT-Installer.msi +%MSYS_BIN_DIR%unix2dos.exe ../../../conf/upssched.conf.sample + echo copy DLL files from MSYS copy /Y %MSYS_BIN_DIR%msys-1.0.dll .\ImageFiles\Others copy /Y %MSYS_BIN_DIR%msys-crypto-1.0.0.dll .\ImageFiles\Others From 6cfa65e71bf3403d774ad2d438989ab06a9a4a50 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 2 May 2012 12:38:17 +0000 Subject: [PATCH 169/218] Add more DLLs in bin directory These are used by netxml-ups driver and nut-scanner tool. Fossil-ID: SVN r3551 --- scripts/Windows/Installer/NUT-Installer.xml | 30 ++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index 1d5493057f..500ac574e8 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1191,6 +1191,12 @@ Public License instead of this License. + + + + + + @@ -1200,6 +1206,21 @@ Public License instead of this License. + + + + + + + + + + + + + + + @@ -1756,6 +1777,13 @@ Public License instead of this License. + + + + + + + @@ -1976,4 +2004,4 @@ Public License instead of this License. LIBUSBINSTALL=1 - + \ No newline at end of file From ba5da43b44584e606720b9099ad63e563a924f24 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 3 May 2012 08:31:38 +0000 Subject: [PATCH 170/218] Fix journal event truncation. Fossil-ID: SVN r3554 --- common/wincompat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/wincompat.c b/common/wincompat.c index 34856199ab..49610374e9 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -212,7 +212,7 @@ char * filter_path(const char * source) of chars containing the message to display (no terminal 0 required here) */ void syslog(int priority, const char *fmt, ...) { - char buf1[LARGEBUF]; + char buf1[LARGEBUF+sizeof(DWORD)]; char buf2[LARGEBUF]; va_list ap; HANDLE pipe; From d84a3fef45f8df8772c65a5dc2a8edd87d502a37 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 9 May 2012 14:16:24 +0000 Subject: [PATCH 171/218] Add an external wall-like application. In order to avoid weird behavior of MessageBox with MB_SERVICE_NOTIFICATION flag at exit time; I added an external application in charge of displaying the message boxes (much like the wall command). Fossil-ID: SVN r3563 --- clients/Makefile.am | 8 +++++ clients/message.c | 8 +++++ clients/upsmon.c | 36 ++++++++++----------- scripts/Windows/Installer/NUT-Installer.xml | 4 +++ 4 files changed, 37 insertions(+), 19 deletions(-) create mode 100644 clients/message.c diff --git a/clients/Makefile.am b/clients/Makefile.am index bbde8e281d..39b0611a48 100644 --- a/clients/Makefile.am +++ b/clients/Makefile.am @@ -19,8 +19,13 @@ endif bin_PROGRAMS = upsc upslog upsrw upscmd dist_bin_SCRIPTS = upssched-cmd +if HAVE_WINDOWS_SOCKETS +sbin_PROGRAMS = upsmon upssched message +else !HAVE_WINDOWS_SOCKETS sbin_PROGRAMS = upsmon upssched +endif !HAVE_WINDOWS_SOCKETS lib_LTLIBRARIES = libupsclient.la libnutclient.la +>>>>>>> Add an external wall-like application. if WITH_DEV include_HEADERS = upsclient.h ../include/parseconf.h nutclient.h endif @@ -33,6 +38,9 @@ upscmd_SOURCES = upscmd.c upsclient.h upsrw_SOURCES = upsrw.c upsclient.h upslog_SOURCES = upslog.c upsclient.h upslog.h upsmon_SOURCES = upsmon.c upsmon.h upsclient.h +if HAVE_WINDOWS_SOCKETS +message_SOURCES = message.c +endif upssched_SOURCES = upssched.c upssched.h upssched_LDADD = ../common/libcommon.la ../common/libparseconf.la $(NETLIBS) diff --git a/clients/message.c b/clients/message.c new file mode 100644 index 0000000000..387990673e --- /dev/null +++ b/clients/message.c @@ -0,0 +1,8 @@ +#ifdef WIN32 +#include + +void main(int args,char ** argv) +{ + MessageBox(NULL,argv[1],"Network UPS Tools",MB_OK|MB_ICONEXCLAMATION|MB_SERVICE_NOTIFICATION); +} +#endif diff --git a/clients/upsmon.c b/clients/upsmon.c index 92f15703da..4e2a1b7584 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -110,16 +110,6 @@ static int flag_isset(int num, int flag) return ((num & flag) == flag); } -#ifdef WIN32 -static unsigned __stdcall async_wall(LPVOID param) -{ - char * text = (char *)param; - MessageBox(NULL,text,SVCNAME,MB_OK|MB_ICONEXCLAMATION|MB_SERVICE_NOTIFICATION); - free(text); - return 0; -} -#endif - static void wall(const char *text) { #ifndef WIN32 @@ -135,15 +125,23 @@ static void wall(const char *text) fprintf(wf, "%s\n", text); pclose(wf); #else - char * data = strdup(text); - _beginthreadex( - NULL, /* security FIXME */ - 0, /* stack size */ - async_wall, - (void *)data, - 0, /* Creation flags */ - NULL /* thread id */ - ); + #define MESSAGE_CMD "message.exe" + char * command; + + /* first +1 is for the space between message and text + second +1 is for trailing 0 + +2 is for "" */ + command = malloc (strlen(MESSAGE_CMD) + 1 + 2 + strlen(text) + 1); + if( command == NULL ) { + upslog_with_errno(LOG_NOTICE, "Not enough memory for wall"); + return; + } + + sprintf(command,"%s \"%s\"",MESSAGE_CMD,text); + if ( system(command) != 0 ) { + upslog_with_errno(LOG_NOTICE, "Can't invoke wall"); + } + free(command); #endif } diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index 500ac574e8..afa580e93e 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1440,6 +1440,9 @@ Public License instead of this License. + + + @@ -1864,6 +1867,7 @@ Public License instead of this License. + From e3aaeb18739df5097cadcbb962bb6cfe0a1a12c1 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 11 May 2012 14:19:06 +0000 Subject: [PATCH 172/218] Add pipedebug program pipedebug has the same goal as socketdebug for the WIN32 side. Fossil-ID: SVN r3575 --- server/Makefile.am | 3 +- server/pipedebug.c | 175 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 177 insertions(+), 1 deletion(-) create mode 100644 server/pipedebug.c diff --git a/server/Makefile.am b/server/Makefile.am index d17dbb4866..c35b6fe5d7 100644 --- a/server/Makefile.am +++ b/server/Makefile.am @@ -19,7 +19,7 @@ if WITH_SSL endif sbin_PROGRAMS = upsd -EXTRA_PROGRAMS = sockdebug +EXTRA_PROGRAMS = sockdebug pipedebug upsd_SOURCES = upsd.c user.c conf.c netssl.c sstate.c desc.c \ netget.c netmisc.c netlist.c netuser.c netset.c netinstcmd.c \ @@ -28,3 +28,4 @@ upsd_SOURCES = upsd.c user.c conf.c netssl.c sstate.c desc.c \ upstype.h user-data.h user.h sockdebug_SOURCES = sockdebug.c +pipedebug_SOURCES = pipedebug.c diff --git a/server/pipedebug.c b/server/pipedebug.c new file mode 100644 index 0000000000..940bf5061a --- /dev/null +++ b/server/pipedebug.c @@ -0,0 +1,175 @@ +/* pipe.c - Network UPS Tools driver-server pipe debugger + + Copyright (C) 2012 Frederic Bohe + + 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 +*/ + + +#include "common.h" +#include "parseconf.h" + + +PCONF_CTX_t pipe_ctx; + +static void pipe_arg(int numarg, char **arg) +{ + int i; + + printf("numarg=%d : ", numarg); + + for (i = 0; i < numarg; i++) + printf("[%s] ", arg[i]); + + printf("\n"); +} + +static HANDLE pipe_connect(const char *pipefn) +{ + HANDLE fd; + char pipename[SMALLBUF]; + BOOL result = FALSE; + + snprintf(pipename, sizeof(pipename), "\\\\.\\pipe\\%s", pipefn); + + result = WaitNamedPipe(pipename,NMPWAIT_USE_DEFAULT_WAIT); + + if( result == FALSE ) { + printf("WaitNamedPipe : %d\n",GetLastError()); + exit(EXIT_FAILURE); + } + + fd = CreateFile( + pipename, // pipe name + GENERIC_READ | // read and write access + GENERIC_WRITE, + 0, // no sharing + NULL, // default security attributes FIXME + OPEN_EXISTING, // opens existing pipe + FILE_FLAG_OVERLAPPED, // enable async IO + NULL); // no template file + + if (fd == INVALID_HANDLE_VALUE) { + printf("CreateFile : %d\n",GetLastError()); + exit(EXIT_FAILURE); + } + + return fd; +} + +static void read_buf(char * buf, DWORD num) +{ + unsigned int i; + + for (i = 0; i < num; i++) { + + switch (pconf_char(&pipe_ctx, buf[i])) { + case 1: + pipe_arg(pipe_ctx.numargs, pipe_ctx.arglist); + break; + + case -1: + printf("Parse error: [%s]\n", pipe_ctx.errmsg); + break; + } + } +} + +DWORD WINAPI ReadThread( LPVOID lpParameter ) +{ + HANDLE pipefd = *((HANDLE *)lpParameter); + DWORD bytes_read; + char pipe_buf[SMALLBUF]; + OVERLAPPED pipe_overlapped; + + pconf_init(&pipe_ctx, NULL); + + memset(&pipe_overlapped,0,sizeof(pipe_overlapped)); + pipe_overlapped.hEvent = CreateEvent(NULL,FALSE,FALSE,NULL); + + for (;;) { + memset(pipe_buf,0,sizeof(pipe_buf)); + ReadFile(pipefd,pipe_buf,sizeof(pipe_buf),NULL,&pipe_overlapped); + GetOverlappedResult(pipefd,&pipe_overlapped,&bytes_read,TRUE); + read_buf(pipe_buf,bytes_read); + } +} + +DWORD WINAPI WriteThread( LPVOID lpParameter ) +{ + HANDLE pipefd = *((HANDLE *)lpParameter); + HANDLE hStdin; + DWORD bytes_read; + char stdin_buf[SMALLBUF]; + OVERLAPPED pipe_overlapped; + + hStdin = GetStdHandle(STD_INPUT_HANDLE); + + memset(&pipe_overlapped,0,sizeof(pipe_overlapped)); + pipe_overlapped.hEvent = CreateEvent(NULL,FALSE,FALSE,NULL); + + for (;;) { + ReadFile(hStdin,stdin_buf,sizeof(stdin_buf),&bytes_read,NULL); + WriteFile(pipefd,stdin_buf,bytes_read,NULL,&pipe_overlapped); + } +} +int main(int argc, char **argv) +{ + const char *prog = xbasename(argv[0]); + HANDLE pipefd; + HANDLE thread[2]; + + if (argc != 2) { + fprintf(stderr, "usage: %s \n", prog); + fprintf(stderr, " %s apcsmart-com1\n", + argv[0]); + exit(EXIT_SUCCESS); + } + + pipefd = pipe_connect(argv[1]); + + printf("connected: fd %d\n", pipefd); + + thread[0] = CreateThread( + NULL, /* security */ + 0, /* stack size */ + ReadThread, /* func */ + &pipefd,/* func param */ + 0, /* flags */ + NULL ); /* thread id */ + + if(thread[0] == NULL) { + fprintf(stderr, "CreateThread ReadThread failed\n"); + exit(EXIT_FAILURE); + } + + thread[1] = CreateThread( + NULL, /* security */ + 0, /* stack size */ + WriteThread, /* func */ + &pipefd,/* func param */ + 0, /* flags */ + NULL ); /* thread id */ + + if(thread[1] == NULL) { + fprintf(stderr, "CreateThread WriteThread failed\n"); + exit(EXIT_FAILURE); + } + + WaitForMultipleObjects(2,thread,TRUE,INFINITE); + + /* NOTREACHED */ + exit(EXIT_FAILURE); +} From e60fdb996ccd712e682bc63427758510951266d5 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 14 May 2012 08:36:08 +0000 Subject: [PATCH 173/218] Add general Windows conditional (by Arnaud Quette) Fossil-ID: SVN r3578 --- configure.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/configure.in b/configure.in index 643dc17c08..fc6bc18921 100644 --- a/configure.in +++ b/configure.in @@ -823,6 +823,8 @@ if test "x$WINDMC" != "xnone" -a "x$WINDRES" != "xnone"; then fi AM_CONDITIONAL([HAVE_MINGW_RESGEN], [test "${nut_have_mingw_resgen}" = "yes"]) +dnl Also define a generic AM_CONDITIONAL for general Windows compilation +AM_CONDITIONAL([HAVE_WINDOWS], [test "${nut_have_mingw_resgen}" = "yes"]) dnl ---------------------------------------------------------------------- From 667e76f6ebd6e57a40d382b2c874b18dfc8b35e0 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 14 May 2012 08:49:49 +0000 Subject: [PATCH 174/218] Keep same sockdebug's binary name for all OS. Fossil-ID: SVN r3579 --- server/Makefile.am | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/server/Makefile.am b/server/Makefile.am index c35b6fe5d7..6fa211f879 100644 --- a/server/Makefile.am +++ b/server/Makefile.am @@ -19,7 +19,7 @@ if WITH_SSL endif sbin_PROGRAMS = upsd -EXTRA_PROGRAMS = sockdebug pipedebug +EXTRA_PROGRAMS = sockdebug upsd_SOURCES = upsd.c user.c conf.c netssl.c sstate.c desc.c \ netget.c netmisc.c netlist.c netuser.c netset.c netinstcmd.c \ @@ -27,5 +27,8 @@ upsd_SOURCES = upsd.c user.c conf.c netssl.c sstate.c desc.c \ netlist.h netmisc.h netset.h netuser.h ssl.h sstate.h stype.h upsd.h \ upstype.h user-data.h user.h +if HAVE_WINDOWS +sockdebug_SOURCES = pipedebug.c +else !HAVE_WINDOWS sockdebug_SOURCES = sockdebug.c -pipedebug_SOURCES = pipedebug.c +endif !HAVE_WINDOWS From 8d77af81616e937b141e1ada5f2bd56dc6b25050 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 4 Jun 2012 12:18:09 +0000 Subject: [PATCH 175/218] Merge from trunk [[SVN:3541]] to [[SVN:3644]] (upgrade to 2.6.4) [[SVN:3541]] = 2012-04-24T11:23:18Z!arnaud.quette@free.fr [[SVN:3644]] = 2012-05-31T13:13:47Z!arnaud.quette@free.fr Fossil-ID: SVN r3646 --- clients/upssched.c | 2 +- common/wincompat.c | 10 ++ docs/man/blazer.txt | 7 +- docs/man/snmp-ups.txt | 2 +- docs/man/upsd.users.txt | 2 +- docs/man/upsrw.txt | 96 +++++++++++++++++++ drivers/apc-mib.c | 7 ++ drivers/apcsmart.c | 8 ++ drivers/bcmxcp.c | 2 +- drivers/dummy-ups.h | 5 - drivers/netvision-mib.c | 2 - include/wincompat.h | 2 + .../org/networkupstools/jnut/Variable.java | 2 +- 13 files changed, 132 insertions(+), 15 deletions(-) create mode 100644 docs/man/upsrw.txt diff --git a/clients/upssched.c b/clients/upssched.c index e7fae4b455..a5b09fe3cf 100644 --- a/clients/upssched.c +++ b/clients/upssched.c @@ -1084,7 +1084,7 @@ static void sendcmd(const char *cmd, const char *arg1, const char *arg2) /* we're connected now */ #ifndef WIN32 - ret = write(pipefd, buf, strlen(buf)); + ret = write(pipefd, enc, strlen(enc)); /* if we can't send the whole thing, loop back and try again */ if ((ret < 1) || (ret != (int) strlen(enc))) { diff --git a/common/wincompat.c b/common/wincompat.c index 49610374e9..7b457018fd 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -1300,4 +1300,14 @@ void cfsetospeed(struct termios * t, speed_t speed) { t->c_ispeed = t->c_ospeed = speed; } +speed_t cfgetispeed(const struct termios *t) +{ + return t->c_ispeed; +} + +speed_t cfgetospeed(const struct termios *t) +{ + return t->c_ospeed; +} + #endif diff --git a/docs/man/blazer.txt b/docs/man/blazer.txt index 63582a9928..5a155b8e15 100644 --- a/docs/man/blazer.txt +++ b/docs/man/blazer.txt @@ -16,9 +16,10 @@ SUPPORTED HARDWARE ------------------ The blazer driver is known to work with various UPSes from Blazer, Energy -Sistem, Fenton Technologies, Mustek and many others. The NUT compatibility -table lists all the known supported models. Keep in mind, however, that -other models not listed there may also be supported, but haven't been tested. +Sistem, Fenton Technologies, General Electric, Mustek and many others. +The NUT compatibility table lists all the known supported models. Keep +in mind, however, that other models not listed there may also be supported, +but haven't been tested. All devices with a serial interface (use the *blazer_ser* driver) and many with a USB interface (use the *blazer_usb* driver) are supported. diff --git a/docs/man/snmp-ups.txt b/docs/man/snmp-ups.txt index 58ee71ee01..00fa083481 100644 --- a/docs/man/snmp-ups.txt +++ b/docs/man/snmp-ups.txt @@ -23,7 +23,7 @@ UPS that is RFC 1628 (UPS MIB) compliant, e.g. MGE UPS SYSTEMS, Liebert, perhaps MGE UPS SYSTEMS and MGE Office Protection Systems devices with SNMP cards (ref 66062, 66045, 66074 and 66244) *apcc*:: -APC AP9606 APC Web/SNMP management card, perhaps others +APC AP9605, AP9606, AP9617, and AP9618 APC network management cards, as well as any others supporting the APC POWERNET MIB *netvision*:: Socomec Sicon UPS with Netvision Web/SNMP management card/external box diff --git a/docs/man/upsd.users.txt b/docs/man/upsd.users.txt index 2b4d5a9737..4f73cebac7 100644 --- a/docs/man/upsd.users.txt +++ b/docs/man/upsd.users.txt @@ -56,7 +56,7 @@ actions are: FSD;; set the forced shutdown flag in the UPS. This is equivalent to an "on battery + low battery" situation for the purposes of monitoring. -+ + The list of actions is expected to grow in the future. *instcmds*:: diff --git a/docs/man/upsrw.txt b/docs/man/upsrw.txt new file mode 100644 index 0000000000..fd4b49ca68 --- /dev/null +++ b/docs/man/upsrw.txt @@ -0,0 +1,96 @@ +UPSRW(8) +======== + +NAME +---- + +upsrw - UPS variable administration tool + +SYNOPSIS +-------- + +*upsrw* 'ups' + +*upsrw* -h + +*upsrw* -s 'variable' [-u 'username'] [-p 'password'] 'ups' + +DESCRIPTION +----------- + +*upsrw* allows you to view and change the read/write variables inside your UPS. +It sends commands via the server linkman:upsd[8] to your driver, which +configures the hardware for you. + +The list of variables that allow you to change their values is based on +the capabilities of your UPS equipment. Not all models support this +feature. Typically, cheaper hardware does not support any of them. +Run upsrw with a UPS identifier to see what will work for you. + +OPTIONS +------- + +*-h*:: +Display the help message. + +*-s* 'variable':: +Specify the variable to be changed inside the UPS. For unattended +mode such as in shell scripts, use the format VAR=VALUE to specify both +the variable and the value, for example: + + -s input.transfer.high=129 ++ +Without this argument, upsrw will just display the list of the variables +and their possible values. ++ +Some variables are strings, and can be set to any value within the +length limit. Others are enumerated types and can only be set to one of +those values. Others may be within an allowed range of values. Refer to +the list to know what's available in your hardware. + +*-u* 'username':: +Set the NUT username for the connection to the server. This is optional, +and you will be prompted for this when using the -s option if you don't +specify -u on the command line. NUT usernames are defined in +linkman:upsd.users[5], and are not linked to system usernames. + +*-p* 'password':: +Set the password to authenticate to the server. This is also optional +like -u, and you will be prompted for it if necessary. + +'ups':: +View or change the settings on this UPS. The format for this option is +`upsname[@hostname[:port]]`. The default hostname is "localhost". + +UNATTENDED MODE +--------------- + +If you run this program inside a shell script or similar to set +variables, you will need to specify all of the information on the +command line. This means using `-s VAR=VALUE`, `-u` and `-p`. Otherwise it +will put up a prompt and your program will hang. + +This is not necessary when displaying the list, as the username and +password are not required for read-only mode. + +DIAGNOSTICS +----------- + +*upsrw* can't set variables on your UPS unless you provide a valid +username and password. If you get "access denied" errors, make sure +that your linkman:upsd.users[5] has an entry for you, and that the +username you are using has permissions to SET variables. + +HISTORY +------- + +This program used to be called upsct2, which was ambiguous and +confusing. + +SEE ALSO +-------- +linkman:upsd[8], linkman:upscmd[8] + +Internet resources: +~~~~~~~~~~~~~~~~~~~ +The NUT (Network UPS Tools) home page: http://www.networkupstools.org/ diff --git a/drivers/apc-mib.c b/drivers/apc-mib.c index 4dd31a239d..9f65fbf493 100644 --- a/drivers/apc-mib.c +++ b/drivers/apc-mib.c @@ -59,8 +59,15 @@ * * examples found on the Net and other sources: * 'enterprises.apc.products.system.smartUPS.smartUPS700' + * - from fence agents * '.1.3.6.1.4.1.318.1.3.4.5': ApcRPDU, * '.1.3.6.1.4.1.318.1.3.4.4': ApcMSP + * - from Bill Seligman + * .1.3.6.1.4.1.318.1.3.2.11 + * .1.3.6.1.4.1.318.1.3.2.12 + * .1.3.6.1.4.1.318.1.3.27 + * .1.3.6.1.4.1.318.1.3.2.7 + * .1.3.6.1.4.1.318.1.3.2.8 */ /* TODO: find the right sysOID for this MIB diff --git a/drivers/apcsmart.c b/drivers/apcsmart.c index 8f6c296ba1..eee2df01d3 100644 --- a/drivers/apcsmart.c +++ b/drivers/apcsmart.c @@ -354,6 +354,14 @@ static void apc_ser_set(void) if (tcsetattr(upsfd, TCSANOW, &tio)) fate("tcsetattr(%s)", device_path); + /* clear status flags so that they don't affect our binary compare */ +#ifdef PENDIN + tio.c_lflag &= ~PENDIN; +#endif +#ifdef FLUSHO + tio.c_lflag &= ~FLUSHO; +#endif + memset(&tio_chk, 0, sizeof(tio_chk)); if (tcgetattr(upsfd, &tio_chk)) fate("tcgetattr(%s)", device_path); diff --git a/drivers/bcmxcp.c b/drivers/bcmxcp.c index dbdb0bbadc..ad3c5ebb00 100644 --- a/drivers/bcmxcp.c +++ b/drivers/bcmxcp.c @@ -1653,7 +1653,7 @@ static int instcmd(const char *cmdname, const char *extra) /* Get the shutdown delay, if any */ snprintf(varname, sizeof(varname)-1, "outlet.%c.delay.shutdown", cmdname[7]); if ((varvalue = dstate_getinfo(varname)) != NULL) { - sddelay = atoi(dstate_getinfo(varname)); + sddelay = atoi(varvalue); } cbuf[0] = PW_LOAD_OFF_RESTART; diff --git a/drivers/dummy-ups.h b/drivers/dummy-ups.h index 7e9b15c8ea..49294ca878 100644 --- a/drivers/dummy-ups.h +++ b/drivers/dummy-ups.h @@ -45,13 +45,8 @@ * Status lookup table type definition */ typedef struct { -<<<<<<< HEAD const char *status_str; /* ups.status string */ int status_value; /* ups.status flag bit */ -======= - const char *status_str; /* ups.status string */ - int status_value; /* ups.status value */ ->>>>>>> Merge from the trunk -> porting the IPv6 code to Windows } status_lkp_t; #define STATUS_CAL (1 << 0) /* calibration */ diff --git a/drivers/netvision-mib.c b/drivers/netvision-mib.c index 8f990d5992..3b31e32a6a 100644 --- a/drivers/netvision-mib.c +++ b/drivers/netvision-mib.c @@ -28,8 +28,6 @@ #define NETVISION_SYSOID ".1.3.6.1.4.1.4555.1.1.1" -#define NETVISION_SYSOID ".1.3.6.1.4.1.4555.1.1.1" - /* SNMP OIDs set */ #define NETVISION_OID_UPS_MIB ".1.3.6.1.4.1.4555.1.1.1.1" #define NETVISION_OID_UPSIDENTMODEL ".1.3.6.1.4.1.4555.1.1.1.1.1.1.0" diff --git a/include/wincompat.h b/include/wincompat.h index fa364d3145..a1e3c70f2a 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -138,6 +138,8 @@ int tcflush (serial_handler_t * sh, int queue); #define HAVE_CFSETISPEED void cfsetispeed(struct termios * t, speed_t speed); void cfsetospeed(struct termios * t, speed_t speed); +speed_t cfgetispeed(const struct termios *t); +speed_t cfgetospeed(const struct termios *t); #define _POSIX_VDISABLE '\0' diff --git a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Variable.java b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Variable.java index 07c7c37a0d..fce6b0bf64 100644 --- a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Variable.java +++ b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Variable.java @@ -116,5 +116,5 @@ public void setValue(String value) throws IOException, NutException { } } - // TODO Add query for type and enum values + // TODO Add query for type, enum and range values } From 03c1246380c6434e87f3717026853dc13d96ef93 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 23 Jul 2012 09:32:50 +0000 Subject: [PATCH 176/218] Porting genericups driver Not tested on real hardware Fossil-ID: SVN r3690 --- common/wincompat.c | 47 ++++++++++++++++++++++++++++++++++++++++++++ drivers/genericups.c | 30 ++++++++++++++++------------ drivers/genericups.h | 3 --- drivers/serial.c | 18 +++++++++-------- include/wincompat.h | 11 +++++++++++ 5 files changed, 85 insertions(+), 24 deletions(-) diff --git a/common/wincompat.c b/common/wincompat.c index 7b457018fd..a323fc738c 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -435,6 +435,53 @@ int send_to_named_pipe(const char * pipe_name, const char * data) return 0; } +int w32_setcomm ( serial_handler_t * h, int flags ) +{ + int ret = 0; + + if( flags & TIOCM_DTR ) { + if( !EscapeCommFunction(h->handle,SETDTR) ) { + errno = EIO; + ret = -1; + } + } + else { + if( !EscapeCommFunction(h->handle,CLRDTR) ) { + errno = EIO; + ret = -1; + } + } + + if( flags & TIOCM_RTS ) { + if( !EscapeCommFunction(h->handle,SETRTS) ) { + errno = EIO; + ret = -1; + } + } + else { + if( !EscapeCommFunction(h->handle,CLRRTS) ) { + errno = EIO; + ret = -1; + } + } + + return ret; +} + +int w32_getcomm ( serial_handler_t * h, int * flags ) +{ + BOOL ret_val; + DWORD f = *flags; + + ret_val = GetCommModemStatus(h->handle, &f); + if (ret_val == 0) { + errno = EIO; + return -1; + } + + return 0; +} + /* Serial port wrapper inspired by : http://serial-programming-in-win32-os.blogspot.com/2008/07/convert-linux-code-to-windows-serial.html */ diff --git a/drivers/genericups.c b/drivers/genericups.c index 36edb34546..b7108c5c09 100644 --- a/drivers/genericups.c +++ b/drivers/genericups.c @@ -37,8 +37,6 @@ upsdrv_info_t upsdrv_info = { { NULL } }; -/* TODO : port this to WIN32 */ -#ifndef WIN32 static int upstype = -1; static void parse_output_signals(const char *value, int *line) @@ -158,9 +156,13 @@ void upsdrv_initinfo(void) /* normal idle loop - keep up with the current state of the UPS */ void upsdrv_updateinfo(void) { - int flags, ol, bl, ret; + int ol, bl,flags,ret; +#ifndef WIN32 ret = ioctl(upsfd, TIOCMGET, &flags); +#else + ret = w32_getcomm( upsfd, &flags ); +#endif if (ret != 0) { upslog_with_errno(LOG_INFO, "ioctl failed"); @@ -245,8 +247,10 @@ void upsdrv_shutdown(void) if (flags == TIOCM_ST) { +#ifndef WIN32 #ifndef HAVE_TCSENDBREAK fatalx(EXIT_FAILURE, "Need to send a BREAK, but don't have tcsendbreak!"); +#endif #endif ret = tcsendbreak(upsfd, 4901); @@ -258,7 +262,11 @@ void upsdrv_shutdown(void) return; } +#ifndef WIN32 ret = ioctl(upsfd, TIOCMSET, &flags); +#else + ret = w32_setcomm(upsfd,flags); +#endif if (ret != 0) { fatal_with_errno(EXIT_FAILURE, "ioctl TIOCMSET"); @@ -330,22 +338,18 @@ void upsdrv_initups(void) upsdebugx(2, "parse_output_signals: SD overridden with %s\n", v); } +#ifndef WIN32 if (ioctl(upsfd, TIOCMSET, &upstab[upstype].line_norm)) { +#else + if (w32_setcomm(upsfd,&upstab[upstype].line_norm)) { +#endif fatal_with_errno(EXIT_FAILURE, "ioctl TIOCMSET"); } + + } void upsdrv_cleanup(void) { ser_close(upsfd, device_path); } - -#else /*WIN32 TODO just stubs for the moment, to be ported*/ -void upsdrv_makevartable(void) {}; -void upsdrv_shutdown(void) {}; -void upsdrv_help(void) {}; -void upsdrv_initups(void) {}; -void upsdrv_cleanup(void) {}; -void upsdrv_initinfo(void) {}; -void upsdrv_updateinfo(void) {}; -#endif diff --git a/drivers/genericups.h b/drivers/genericups.h index 0bf0ec5a9a..fdf72f3bc3 100644 --- a/drivers/genericups.h +++ b/drivers/genericups.h @@ -16,8 +16,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* TODO : port this to WIN32 */ -#ifndef WIN32 struct { const char *mfr; /* value for INFO_MFR */ const char *model; /* value for INFO_MODEL */ @@ -271,4 +269,3 @@ struct { 0 } }; -#endif /* WIN32 */ diff --git a/drivers/serial.c b/drivers/serial.c index d4ed1c0f14..c48af58975 100644 --- a/drivers/serial.c +++ b/drivers/serial.c @@ -269,24 +269,26 @@ int ser_get_dcd(int fd) #else int ser_get_dsr(serial_handler_t * fd) { - DCB dcb; + int flags; - GetCommState(fd->handle, &dcb); - return dcb.fOutxDsrFlow; + w32_getcomm(fd->handle, &flags); + return (flags & TIOCM_DSR); } int ser_get_cts(serial_handler_t * fd) { - DCB dcb; + int flags; - GetCommState(fd->handle, &dcb); - return dcb.fOutxCtsFlow; + w32_getcomm(fd->handle, &flags); + return (flags & TIOCM_CTS); } int ser_get_dcd(serial_handler_t * fd) { - /*FIXME*/ - return 0; + int flags; + + w32_getcomm(fd->handle, &flags); + return (flags & TIOCM_CD); } #endif diff --git a/include/wincompat.h b/include/wincompat.h index a1e3c70f2a..0e70b807ab 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -112,6 +112,10 @@ int send_to_named_pipe(const char * pipe_name, const char * data); /* serial function compatibility */ +int w32_setcomm ( serial_handler_t * h, int flags ); +int w32_getcomm ( serial_handler_t * h, int * flags ); +int tcsendbreak (serial_handler_t * sh, int duration); + typedef unsigned char cc_t; typedef unsigned int speed_t; typedef unsigned int tcflag_t; @@ -299,4 +303,11 @@ speed_t cfgetospeed(const struct termios *t); #define TCSADRAIN 1 #define TCSAFLUSH 2 +#define TIOCM_DTR 0x0001 +#define TIOCM_RTS 0x0002 +#define TIOCM_ST 0x0004 +#define TIOCM_CTS MS_CTS_ON /* 0x0010*/ +#define TIOCM_DSR MS_DSR_ON /* 0x0020*/ +#define TIOCM_RNG MS_RING_ON /*0x0040*/ +#define TIOCM_CD MS_RLSD_ON /*0x0080*/ #endif From a6857705d19b2121f74120cd6a091f4ee114dbae Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 23 Jul 2012 13:19:22 +0000 Subject: [PATCH 177/218] Merge from trunk [[SVN:3645]] to [[SVN:3690]] [[SVN:3645]] = 2012-06-01T12:46:57Z!kiae.dev@gmail.com [[SVN:3690]] = 2012-07-23T09:32:50Z!fbohe-guest@alioth.debian.org Fossil-ID: SVN r3691 --- drivers/apc-mib.c | 9 + drivers/apcsmart.c | 8 - drivers/netxml-ups.c | 2 +- drivers/nut-ipmipsu.c | 3 - drivers/nut-libfreeipmi.c | 36 +++ server/Makefile.am | 2 +- server/netssl.c | 446 +++++--------------------------------- server/ssl.c | 262 ---------------------- 8 files changed, 100 insertions(+), 668 deletions(-) delete mode 100644 server/ssl.c diff --git a/drivers/apc-mib.c b/drivers/apc-mib.c index 9f65fbf493..62f0ed6b93 100644 --- a/drivers/apc-mib.c +++ b/drivers/apc-mib.c @@ -73,6 +73,15 @@ /* TODO: find the right sysOID for this MIB * Ie ".1.3.6.1.4.1.318.1.1.1" or ".1.3.6.1.4.1.318" or? */ +/* .1.3.6.1.4.1.318.1.1.1 + * enterprise^ + * apc ---------^ + * products ------^ + * hardware --------^ + * ups ---------------^ + * ref: ftp://ftp.apc.com/apc/public/software/pnetmib/mib/404/powernet404.mib + */ + /* info elements */ #define APCC_OID_BATT_STATUS ".1.3.6.1.4.1.318.1.1.1.2.1.1.0" diff --git a/drivers/apcsmart.c b/drivers/apcsmart.c index eee2df01d3..8f6c296ba1 100644 --- a/drivers/apcsmart.c +++ b/drivers/apcsmart.c @@ -354,14 +354,6 @@ static void apc_ser_set(void) if (tcsetattr(upsfd, TCSANOW, &tio)) fate("tcsetattr(%s)", device_path); - /* clear status flags so that they don't affect our binary compare */ -#ifdef PENDIN - tio.c_lflag &= ~PENDIN; -#endif -#ifdef FLUSHO - tio.c_lflag &= ~FLUSHO; -#endif - memset(&tio_chk, 0, sizeof(tio_chk)); if (tcgetattr(upsfd, &tio_chk)) fate("tcgetattr(%s)", device_path); diff --git a/drivers/netxml-ups.c b/drivers/netxml-ups.c index 26a2225da1..5faff8cf2d 100644 --- a/drivers/netxml-ups.c +++ b/drivers/netxml-ups.c @@ -45,7 +45,7 @@ /** *_OBJECT query multi-part body boundary */ #define FORM_POST_BOUNDARY "NUT-NETXML-UPS-OBJECTS" -#ifdef WIN32 // FIXME ?? skip alarm handling +#ifdef WIN32 /* FIXME ?? skip alarm handling */ #define HAVE_NE_SET_CONNECT_TIMEOUT 1 #define HAVE_NE_SOCK_CONNECT_TIMEOUT 1 #endif diff --git a/drivers/nut-ipmipsu.c b/drivers/nut-ipmipsu.c index 0d5948947f..2991cfc3c8 100644 --- a/drivers/nut-ipmipsu.c +++ b/drivers/nut-ipmipsu.c @@ -63,9 +63,6 @@ void upsdrv_initinfo(void) ipmi_dev.manufacturer ? ipmi_dev.manufacturer : "unknown", ipmi_dev.product ? ipmi_dev.product : "unknown"); - dstate_setinfo("driver.version.data", "%s", DRIVER_NAME); - dstate_setinfo("driver.version.internal", DRIVER_VERSION); - dstate_setinfo ("device.type", "psu"); /* Publish information from the IPMI structure */ diff --git a/drivers/nut-libfreeipmi.c b/drivers/nut-libfreeipmi.c index dd063695c1..9d315c47a2 100644 --- a/drivers/nut-libfreeipmi.c +++ b/drivers/nut-libfreeipmi.c @@ -61,6 +61,16 @@ ipmi_ctx_t ipmi_ctx = NULL; ipmi_monitoring_ctx_t mon_ctx = NULL; struct ipmi_monitoring_ipmi_config ipmi_config; +/* SDR management API has changed with 1.1.X and later */ +#ifdef HAVE_FREEIPMI_11X_12X + ipmi_sdr_ctx_t sdr_ctx = NULL; +#else + ipmi_sdr_cache_ctx_t sdr_cache_ctx = NULL; + ipmi_sdr_parse_ctx_t sdr_parse_ctx = NULL; +#ifndef IPMI_SDR_MAX_RECORD_LENGTH + #define IPMI_SDR_MAX_RECORD_LENGTH IPMI_SDR_CACHE_MAX_SDR_RECORD_LENGTH +#endif +#endif /* HAVE_FREEIPMI_11X_12X */ /* SDR management API has changed with 1.1.X and later */ #ifdef HAVE_FREEIPMI_11X_12X @@ -549,6 +559,7 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); } } +#endif /* HAVE_FREEIPMI_11X_12X */ if (ipmi_sdr_ctx_errnum (sdr_ctx) == IPMI_SDR_ERR_CACHE_READ_CACHE_DOES_NOT_EXIST) { @@ -574,6 +585,7 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) } } } +#endif /* HAVE_FREEIPMI_11X_12X */ if (ipmi_sdr_cache_record_count (sdr_ctx, &record_count) < 0) { fprintf (stderr, @@ -581,6 +593,7 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); goto cleanup; } +#endif /* HAVE_FREEIPMI_11X_12X */ upsdebugx(3, "Found %i records in SDR cache", record_count); @@ -606,6 +619,7 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); goto cleanup; } +#endif /* HAVE_FREEIPMI_11X_12X */ upsdebugx (5, "Checking record %i (/%i)", i, record_count); @@ -628,6 +642,7 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); goto cleanup; } +#endif /* HAVE_FREEIPMI_11X_12X */ upsdebugx(2, "Checking device %i/%i", logical_physical_fru_device, logical_fru_device_device_slave_address); @@ -648,6 +663,7 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); goto cleanup; } +#endif /* HAVE_FREEIPMI_11X_12X */ break; } } @@ -666,6 +682,24 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); goto cleanup; } +#endif /* HAVE_FREEIPMI_11X_12X */ + +#ifdef HAVE_FREEIPMI_11X_12X + for (i = 0; i < record_count; i++, ipmi_sdr_cache_next (sdr_ctx)) + { + /* uint8_t sdr_record[IPMI_SDR_CACHE_MAX_SDR_RECORD_LENGTH]; + uint8_t record_type, tmp_entity_id, tmp_entity_instance; + int sdr_record_len; */ + + memset (sdr_record, '\0', IPMI_SDR_MAX_RECORD_LENGTH); + if ((sdr_record_len = ipmi_sdr_cache_record_read (sdr_ctx, + sdr_record, + IPMI_SDR_MAX_RECORD_LENGTH)) < 0) + { + fprintf (stderr, "ipmi_sdr_cache_record_read: %s", + ipmi_sdr_ctx_errormsg (sdr_ctx)); + goto cleanup; + } for (i = 0; i < record_count; i++, ipmi_sdr_cache_next (sdr_ctx)) { @@ -693,6 +727,7 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); goto cleanup; } +#endif /* HAVE_FREEIPMI_11X_12X */ upsdebugx (5, "Checking record %i (/%i)", record_id, record_count); @@ -713,6 +748,7 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); goto cleanup; } +#endif /* HAVE_FREEIPMI_11X_12X */ if (tmp_entity_id == entity_id && tmp_entity_instance == entity_instance) diff --git a/server/Makefile.am b/server/Makefile.am index 6fa211f879..22c36723f9 100644 --- a/server/Makefile.am +++ b/server/Makefile.am @@ -24,7 +24,7 @@ EXTRA_PROGRAMS = sockdebug upsd_SOURCES = upsd.c user.c conf.c netssl.c sstate.c desc.c \ netget.c netmisc.c netlist.c netuser.c netset.c netinstcmd.c \ conf.h nut_ctype.h desc.h netcmds.h neterr.h netget.h netinstcmd.h \ - netlist.h netmisc.h netset.h netuser.h ssl.h sstate.h stype.h upsd.h \ + netlist.h netmisc.h netset.h netuser.h netssl.h sstate.h stype.h upsd.h \ upstype.h user-data.h user.h if HAVE_WINDOWS diff --git a/server/netssl.c b/server/netssl.c index 11d511a4d9..da3bf40e4e 100644 --- a/server/netssl.c +++ b/server/netssl.c @@ -24,34 +24,22 @@ */ #include +#ifndef WIN32 #include #include +#else +#include +#endif #include "upsd.h" #include "neterr.h" #include "netssl.h" -#ifdef WITH_NSS - #include - #include - #include - #include - #include - #include - #include -#endif /* WITH_NSS */ - char *certfile = NULL; -char *certname = NULL; -char *certpasswd = NULL; - -#ifdef WITH_CLIENT_CERTIFICATE_VALIDATION -int certrequest = 0; -#endif /* WITH_CLIENT_CERTIFICATE_VALIDATION */ static int ssl_initialized = 0; -#ifndef WITH_SSL +#ifndef HAVE_SSL /* stubs for non-ssl compiles */ void net_starttls(nut_ctype_t *client, int numarg, const char **arg) @@ -84,14 +72,8 @@ void ssl_finish(nut_ctype_t *client) } } -void ssl_cleanup(void) -{ -} - #else -#ifdef WITH_OPENSSL - static SSL_CTX *ssl_ctx = NULL; static void ssl_debug(void) @@ -105,156 +87,22 @@ static void ssl_debug(void) } } -static int ssl_error(SSL *ssl, int ret) -{ - int e; - - e = SSL_get_error(ssl, ret); - - switch (e) - { - case SSL_ERROR_WANT_READ: - upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_WANT_READ", ret); - break; - - case SSL_ERROR_WANT_WRITE: - upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_WANT_WRITE", ret); - break; - - case SSL_ERROR_SYSCALL: - if (ret == 0 && ERR_peek_error() == 0) { - upsdebugx(1, "ssl_error() EOF from client"); - } else { - upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_SYSCALL", ret); - } - break; - - default: - upsdebugx(1, "ssl_error() ret=%d SSL_ERROR %d", ret, e); - ssl_debug(); - } - - return -1; -} - -#elif defined(WITH_NSS) /* WITH_OPENSSL */ - -static CERTCertificate *cert; -static SECKEYPrivateKey *privKey; - -static char *nss_password_callback(PK11SlotInfo *slot, PRBool retry, - void *arg) -{ - if (retry) { - /* Force not inted to retrieve password many times. */ - return NULL; - } - upslogx(LOG_INFO, "Intend to retrieve password for %s / %s: password %sconfigured", - PK11_GetSlotName(slot), PK11_GetTokenName(slot), certpasswd?"":"not "); - return certpasswd ? PL_strdup(certpasswd) : NULL; -} - -static void nss_error(const char* text) -{ - char buffer[SMALLBUF]; - PRInt32 length = PR_GetErrorText(buffer); - if (length > 0 && length < SMALLBUF) { - upsdebugx(1, "nss_error %ld in %s : %s", (long)PR_GetError(), text, buffer); - }else{ - upsdebugx(1, "nss_error %ld in %s", (long)PR_GetError(), text); - } -} - -static int ssl_error(PRFileDesc *ssl, int ret) -{ - char buffer[256]; - PRInt32 length; - PRErrorCode e; - - e = PR_GetError(); - length = PR_GetErrorText(buffer); - if (length > 0 && length < 256) { - upsdebugx(1, "ssl_error() ret=%d %*s", e, length, buffer); - } else { - upsdebugx(1, "ssl_error() ret=%d", e); - } - - return -1; -} - -static SECStatus AuthCertificate(CERTCertDBHandle *arg, PRFileDesc *fd, - PRBool checksig, PRBool isServer) -{ - nut_ctype_t *client = (nut_ctype_t *)SSL_RevealPinArg(fd); - SECStatus status = SSL_AuthCertificate(arg, fd, checksig, isServer); - upslogx(LOG_INFO, "Intend to authenticate client %s : %s.", - client?client->addr:"(unnamed)", - status==SECSuccess?"SUCCESS":"FAILED"); - return status; -} - -static SECStatus BadCertHandler(nut_ctype_t *arg, PRFileDesc *fd) -{ - upslogx(LOG_WARNING, "Certificate validation failed for %s", - (arg&&arg->addr)?arg->addr:""); -#ifdef WITH_CLIENT_CERTIFICATE_VALIDATION - /* BadCertHandler is called when the NSS certificate validation is failed. - * If the certificate verification (user conf) is mandatory, reject authentication - * else accept it. - */ - return certrequest==NETSSL_CERTREQ_REQUIRE?SECFailure:SECSuccess; -#else /* WITH_CLIENT_CERTIFICATE_VALIDATION */ - /* Always accept clients. */ - return SECSuccess; -#endif /* WITH_CLIENT_CERTIFICATE_VALIDATION */ -} - -static void HandshakeCallback(PRFileDesc *fd, nut_ctype_t *client_data) -{ - upslogx(LOG_INFO, "SSL handshake done successfully with client %s", - client_data->addr); -} - - -#endif /* WITH_OPENSSL | WITH_NSS */ - void net_starttls(nut_ctype_t *client, int numarg, const char **arg) { -#ifdef WITH_OPENSSL - int ret; -#elif defined(WITH_NSS) /* WITH_OPENSSL */ - SECStatus status; - PRFileDesc *socket; -#endif /* WITH_OPENSSL | WITH_NSS */ - if (client->ssl) { send_err(client, NUT_ERR_ALREADY_SSL_MODE); return; } - client->ssl_connected = 0; - - if ((!certfile) || (!ssl_initialized)) { - send_err(client, NUT_ERR_FEATURE_NOT_CONFIGURED); - return; - } - -#ifdef WITH_OPENSSL - if (!ssl_ctx) { -#elif defined(WITH_NSS) /* WITH_OPENSSL */ - if (!NSS_IsInitialized()) { -#endif /* WITH_OPENSSL | WITH_NSS */ + if ((!ssl_ctx) || (!certfile) || (!ssl_initialized)) { send_err(client, NUT_ERR_FEATURE_NOT_CONFIGURED); - ssl_initialized = 0; return; } - + if (!sendback(client, "OK STARTTLS\n")) { return; } -#ifdef WITH_OPENSSL - client->ssl = SSL_new(ssl_ctx); if (!client->ssl) { @@ -266,126 +114,22 @@ void net_starttls(nut_ctype_t *client, int numarg, const char **arg) if (SSL_set_fd(client->ssl, client->sock_fd) != 1) { upslog_with_errno(LOG_ERR, "SSL_set_fd failed\n"); ssl_debug(); - return; } - - ret = SSL_accept(client->ssl); - switch (ret) - { - case 1: - client->ssl_connected = 1; - upsdebugx(3, "SSL connected"); - break; - - case 0: - upslog_with_errno(LOG_ERR, "SSL_accept do not accept handshake."); - ssl_error(client->ssl, ret); - break; - case -1: - upslog_with_errno(LOG_ERR, "Unknown return value from SSL_accept"); - ssl_error(client->ssl, ret); - break; - } - -#elif defined(WITH_NSS) /* WITH_OPENSSL */ - - socket = PR_ImportTCPSocket(client->sock_fd); - if (socket == NULL){ - upslogx(LOG_ERR, "Can not inialize SSL connexion"); - nss_error("net_starttls / PR_ImportTCPSocket"); - return; - } - - client->ssl = SSL_ImportFD(NULL, socket); - if (client->ssl == NULL){ - upslogx(LOG_ERR, "Can not inialize SSL connexion"); - nss_error("net_starttls / SSL_ImportFD"); - return; - } - - if (SSL_SetPKCS11PinArg(client->ssl, client) == -1){ - upslogx(LOG_ERR, "Can not inialize SSL connexion"); - nss_error("net_starttls / SSL_SetPKCS11PinArg"); - return; - } - - /* Note cast to SSLAuthCertificate to prevent warning due to - * bad function prototype in NSS. - */ - status = SSL_AuthCertificateHook(client->ssl, (SSLAuthCertificate)AuthCertificate, CERT_GetDefaultCertDB()); - if (status != SECSuccess) { - upslogx(LOG_ERR, "Can not inialize SSL connexion"); - nss_error("net_starttls / SSL_AuthCertificateHook"); - return; - } - - status = SSL_BadCertHook(client->ssl, (SSLBadCertHandler)BadCertHandler, client); - if (status != SECSuccess) { - upslogx(LOG_ERR, "Can not inialize SSL connexion"); - nss_error("net_starttls / SSL_BadCertHook"); - return; - } - - status = SSL_HandshakeCallback(client->ssl, (SSLHandshakeCallback)HandshakeCallback, client); - if (status != SECSuccess) { - upslogx(LOG_ERR, "Can not inialize SSL connexion"); - nss_error("net_starttls / SSL_HandshakeCallback"); - return; - } - - status = SSL_ConfigSecureServer(client->ssl, cert, privKey, NSS_FindCertKEAType(cert)); - if (status != SECSuccess) { - upslogx(LOG_ERR, "Can not inialize SSL connexion"); - nss_error("net_starttls / SSL_ConfigSecureServer"); - return; - } - - status = SSL_ResetHandshake(client->ssl, PR_TRUE); - if (status != SECSuccess) { - upslogx(LOG_ERR, "Can not inialize SSL connexion"); - nss_error("net_starttls / SSL_ResetHandshake"); - return; - } - - /* Note: this call can generate memory leaks not resolvable - * by any release function. - * Probably SSL session key object allocation. */ - status = SSL_ForceHandshake(client->ssl); - if (status != SECSuccess) { - PRErrorCode code = PR_GetError(); - if (code==SSL_ERROR_NO_CERTIFICATE) { - upslogx(LOG_WARNING, "Client %s do not provide certificate.", - client->addr); - } else { - nss_error("net_starttls / SSL_ForceHandshake"); - /* TODO : Close the connexion. */ - return; - } - } - client->ssl_connected = 1; -#endif /* WITH_OPENSSL | WITH_NSS */ } void ssl_init(void) { -#ifdef WITH_NSS - SECStatus status; -#elif defined(WITH_OPENSSL) #if OPENSSL_VERSION_NUMBER >= 0x10000000L const SSL_METHOD *ssl_method; #else SSL_METHOD *ssl_method; #endif -#endif /* WITH_NSS|WITH_OPENSSL */ - if (!certfile) { return; } check_perms(certfile); -#ifdef WITH_OPENSSL - SSL_load_error_strings(); SSL_library_init(); @@ -422,105 +166,60 @@ void ssl_init(void) SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, NULL); ssl_initialized = 1; - -#elif defined(WITH_NSS) /* WITH_OPENSSL */ +} - if (!certname || certname[0]==0 ) { - upslogx(LOG_ERR, "The SSL certificate name is not specified."); - return; - } +static int ssl_error(SSL *ssl, int ret) +{ + int e; - PR_Init(PR_USER_THREAD, PR_PRIORITY_NORMAL, 0); - - PK11_SetPasswordFunc(nss_password_callback); - - if (certfile) - /* Note: this call can generate memory leaks not resolvable - * by any release function. - * Probably NSS key module object allocation and - * probably NSS key db object allocation too. */ - status = NSS_Init(certfile); - else - status = NSS_NoDB_Init(NULL); - if (status != SECSuccess) { - upslogx(LOG_ERR, "Can not initialize SSL context"); - nss_error("upscli_init / NSS_[NoDB]_Init"); - return; - } - - status = NSS_SetDomesticPolicy(); - if (status != SECSuccess) { - upslogx(LOG_ERR, "Can not initialize SSL policy"); - nss_error("upscli_init / NSS_SetDomesticPolicy"); - return; - } + e = SSL_get_error(ssl, ret); - /* Default server cache config */ - status = SSL_ConfigServerSessionIDCache(0, 0, 0, NULL); - if (status != SECSuccess) { - upslogx(LOG_ERR, "Can not initialize SSL server cache"); - nss_error("upscli_init / SSL_ConfigServerSessionIDCache"); - return; - } - - status = SSL_OptionSetDefault(SSL_ENABLE_SSL3, PR_TRUE); - if (status != SECSuccess) { - upslogx(LOG_ERR, "Can not enable SSLv3"); - nss_error("upscli_init / SSL_OptionSetDefault(SSL_ENABLE_SSL3)"); - return; - } - status = SSL_OptionSetDefault(SSL_ENABLE_TLS, PR_TRUE); - if (status != SECSuccess) { - upslogx(LOG_ERR, "Can not enable TLSv1"); - nss_error("upscli_init / SSL_OptionSetDefault(SSL_ENABLE_TLS)"); - return; - } + switch (e) + { + case SSL_ERROR_WANT_READ: + upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_WANT_READ", ret); + break; -#ifdef WITH_CLIENT_CERTIFICATE_VALIDATION - if (certrequest < NETSSL_CERTREQ_NO && - certrequest > NETSSL_CERTREQ_REQUEST) { - upslogx(LOG_ERR, "Invalid certificate requirement"); - return; - } + case SSL_ERROR_WANT_WRITE: + upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_WANT_WRITE", ret); + break; - if (certrequest == NETSSL_CERTREQ_REQUEST || - certrequest == NETSSL_CERTREQ_REQUIRE ) { - status = SSL_OptionSetDefault(SSL_REQUEST_CERTIFICATE, PR_TRUE); - if (status != SECSuccess) { - upslogx(LOG_ERR, "Can not enable certificate request"); - nss_error("upscli_init / SSL_OptionSetDefault(SSL_REQUEST_CERTIFICATE)"); - return; + case SSL_ERROR_SYSCALL: + if (ret == 0 && ERR_peek_error() == 0) { + upsdebugx(1, "ssl_error() EOF from client"); + } else { + upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_SYSCALL", ret); } - } + break; - if (certrequest == NETSSL_CERTREQ_REQUIRE ) { - status = SSL_OptionSetDefault(SSL_REQUIRE_CERTIFICATE, PR_TRUE); - if (status != SECSuccess) { - upslogx(LOG_ERR, "Can not enable certificate requirement"); - nss_error("upscli_init / SSL_OptionSetDefault(SSL_REQUIRE_CERTIFICATE)"); - return; - } + default: + upsdebugx(1, "ssl_error() ret=%d SSL_ERROR %d", ret, e); + ssl_debug(); } -#endif /* WITH_CLIENT_CERTIFICATE_VALIDATION */ + + return -1; +} - cert = PK11_FindCertFromNickname(certname, NULL); - if(cert==NULL) { - upslogx(LOG_ERR, "Can not find server certificate"); - nss_error("upscli_init / PK11_FindCertFromNickname"); - return; +static int ssl_accept(nut_ctype_t *client) +{ + int ret; + + ret = SSL_accept(client->ssl); + + switch (ret) + { + case 1: + client->ssl_connected = 1; + upsdebugx(3, "SSL connected"); + return 0; + + case 0: + case -1: + return ssl_error(client->ssl, ret); } - privKey = PK11_FindKeyByAnyCert(cert, NULL); - if(privKey==NULL){ - upslogx(LOG_ERR, "Can not find private key associate to server certificate"); - nss_error("upscli_init / PK11_FindKeyByAnyCert"); - return; - } - - ssl_initialized = 1; -#else /* WITH_OPENSSL | WITH_NSS */ - upslogx(LOG_ERR, "ssl_init called but SSL wasn't compiled in"); -#endif /* WITH_OPENSSL | WITH_NSS */ + upslog_with_errno(LOG_ERR, "Unknown return value from SSL_accept"); + return -1; } int ssl_read(nut_ctype_t *client, char *buf, size_t buflen) @@ -528,14 +227,11 @@ int ssl_read(nut_ctype_t *client, char *buf, size_t buflen) int ret; if (!client->ssl_connected) { - return -1; + if (ssl_accept(client) != 0) + return -1; } -#ifdef WITH_OPENSSL ret = SSL_read(client->ssl, buf, buflen); -#elif defined(WITH_NSS) /* WITH_OPENSSL */ - ret = PR_Read(client->ssl, buf, buflen); -#endif /* WITH_OPENSSL | WITH_NSS */ if (ret < 1) { ssl_error(client->ssl, ret); @@ -549,15 +245,7 @@ int ssl_write(nut_ctype_t *client, const char *buf, size_t buflen) { int ret; - if (!client->ssl_connected) { - return -1; - } - -#ifdef WITH_OPENSSL ret = SSL_write(client->ssl, buf, buflen); -#elif defined(WITH_NSS) /* WITH_OPENSSL */ - ret = PR_Write(client->ssl, buf, buflen); -#endif /* WITH_OPENSSL | WITH_NSS */ upsdebugx(5, "ssl_write ret=%d", ret); @@ -567,36 +255,8 @@ int ssl_write(nut_ctype_t *client, const char *buf, size_t buflen) void ssl_finish(nut_ctype_t *client) { if (client->ssl) { -#ifdef WITH_OPENSSL SSL_free(client->ssl); -#elif defined(WITH_NSS) - PR_Shutdown(client->ssl, PR_SHUTDOWN_BOTH); - PR_Close(client->ssl); -#endif /* WITH_OPENSSL | WITH_NSS */ - client->ssl_connected = 0; - client->ssl = NULL; - } -} - -void ssl_cleanup(void) -{ -#ifdef WITH_OPENSSL - if (ssl_ctx) { - SSL_CTX_free(ssl_ctx); - ssl_ctx = NULL; } -#elif defined(WITH_NSS) /* WITH_OPENSSL */ - CERT_DestroyCertificate(cert); - SECKEY_DestroyPrivateKey(privKey); - NSS_Shutdown(); - PR_Cleanup(); - /* Called to release memory arena used by NSS/NSPR. - * Prevent to show all PL_ArenaAllocate mem alloc as leaks. - * https://developer.mozilla.org/en/NSS_Memory_allocation - */ - PL_ArenaFinish(); -#endif /* WITH_OPENSSL | WITH_NSS */ - ssl_initialized = 0; } -#endif /* WITH_SSL */ +#endif /* HAVE_SSL */ diff --git a/server/ssl.c b/server/ssl.c deleted file mode 100644 index ff7ed23343..0000000000 --- a/server/ssl.c +++ /dev/null @@ -1,262 +0,0 @@ -/* ssl.c - Interface to OpenSSL for upsd - - Copyright (C) - 2002 Russell Kroll - 2008 Arjen de Korte - - based on the original implementation: - - Copyright (C) 2002 Technorama Ltd. - - 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 -*/ - -#include -#ifndef WIN32 -#include -#include -#else -#include -#endif - -#include "upsd.h" -#include "neterr.h" -#include "ssl.h" - -char *certfile = NULL; - -static int ssl_initialized = 0; - -#ifndef HAVE_SSL - -/* stubs for non-ssl compiles */ -void net_starttls(nut_ctype_t *client, int numarg, const char **arg) -{ - send_err(client, NUT_ERR_FEATURE_NOT_SUPPORTED); - return; -} - -int ssl_write(nut_ctype_t *client, const char *buf, size_t buflen) -{ - upslogx(LOG_ERR, "ssl_write called but SSL wasn't compiled in"); - return -1; -} - -int ssl_read(nut_ctype_t *client, char *buf, size_t buflen) -{ - upslogx(LOG_ERR, "ssl_read called but SSL wasn't compiled in"); - return -1; -} - -void ssl_init(void) -{ - ssl_initialized = 0; /* keep gcc quiet */ -} - -void ssl_finish(nut_ctype_t *client) -{ - if (client->ssl) { - upslogx(LOG_ERR, "ssl_finish found active SSL connection but SSL wasn't compiled in"); - } -} - -#else - -static SSL_CTX *ssl_ctx = NULL; - -static void ssl_debug(void) -{ - int e; - char errmsg[SMALLBUF]; - - while ((e = ERR_get_error()) != 0) { - ERR_error_string_n(e, errmsg, sizeof(errmsg)); - upsdebugx(1, "ssl_debug: %s", errmsg); - } -} - -void net_starttls(nut_ctype_t *client, int numarg, const char **arg) -{ - if (client->ssl) { - send_err(client, NUT_ERR_ALREADY_SSL_MODE); - return; - } - - if ((!ssl_ctx) || (!certfile) || (!ssl_initialized)) { - send_err(client, NUT_ERR_FEATURE_NOT_CONFIGURED); - return; - } - - if (!sendback(client, "OK STARTTLS\n")) { - return; - } - - client->ssl = SSL_new(ssl_ctx); - - if (!client->ssl) { - upslog_with_errno(LOG_ERR, "SSL_new failed\n"); - ssl_debug(); - return; - } - - if (SSL_set_fd(client->ssl, client->sock_fd) != 1) { - upslog_with_errno(LOG_ERR, "SSL_set_fd failed\n"); - ssl_debug(); - } -} - -void ssl_init(void) -{ -#if OPENSSL_VERSION_NUMBER >= 0x10000000L - const SSL_METHOD *ssl_method; -#else - SSL_METHOD *ssl_method; -#endif - if (!certfile) { - return; - } - - check_perms(certfile); - - SSL_load_error_strings(); - SSL_library_init(); - - if ((ssl_method = TLSv1_server_method()) == NULL) { - ssl_debug(); - fatalx(EXIT_FAILURE, "TLSv1_server_method failed"); - } - - if ((ssl_ctx = SSL_CTX_new(ssl_method)) == NULL) { - ssl_debug(); - fatalx(EXIT_FAILURE, "SSL_CTX_new failed"); - } - - if (SSL_CTX_use_certificate_chain_file(ssl_ctx, certfile) != 1) { - ssl_debug(); - fatalx(EXIT_FAILURE, "SSL_CTX_use_certificate_chain_file(%s) failed", certfile); - } - - if (SSL_CTX_use_PrivateKey_file(ssl_ctx, certfile, SSL_FILETYPE_PEM) != 1) { - ssl_debug(); - fatalx(EXIT_FAILURE, "SSL_CTX_use_PrivateKey_file(%s) failed", certfile); - } - - if (SSL_CTX_check_private_key(ssl_ctx) != 1) { - ssl_debug(); - fatalx(EXIT_FAILURE, "SSL_CTX_check_private_key(%s) failed", certfile); - } - - if (SSL_CTX_set_cipher_list(ssl_ctx, "HIGH:@STRENGTH") != 1) { - ssl_debug(); - fatalx(EXIT_FAILURE, "SSL_CTX_set_cipher_list failed"); - } - - SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, NULL); - - ssl_initialized = 1; -} - -static int ssl_error(SSL *ssl, int ret) -{ - int e; - - e = SSL_get_error(ssl, ret); - - switch (e) - { - case SSL_ERROR_WANT_READ: - upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_WANT_READ", ret); - break; - - case SSL_ERROR_WANT_WRITE: - upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_WANT_WRITE", ret); - break; - - case SSL_ERROR_SYSCALL: - if (ret == 0 && ERR_peek_error() == 0) { - upsdebugx(1, "ssl_error() EOF from client"); - } else { - upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_SYSCALL", ret); - } - break; - - default: - upsdebugx(1, "ssl_error() ret=%d SSL_ERROR %d", ret, e); - ssl_debug(); - } - - return -1; -} - -static int ssl_accept(nut_ctype_t *client) -{ - int ret; - - ret = SSL_accept(client->ssl); - - switch (ret) - { - case 1: - client->ssl_connected = 1; - upsdebugx(3, "SSL connected"); - return 0; - - case 0: - case -1: - return ssl_error(client->ssl, ret); - } - - upslog_with_errno(LOG_ERR, "Unknown return value from SSL_accept"); - return -1; -} - -int ssl_read(nut_ctype_t *client, char *buf, size_t buflen) -{ - int ret; - - if (!client->ssl_connected) { - if (ssl_accept(client) != 0) - return -1; - } - - ret = SSL_read(client->ssl, buf, buflen); - - if (ret < 1) { - ssl_error(client->ssl, ret); - return -1; - } - - return ret; -} - -int ssl_write(nut_ctype_t *client, const char *buf, size_t buflen) -{ - int ret; - - ret = SSL_write(client->ssl, buf, buflen); - - upsdebugx(5, "ssl_write ret=%d", ret); - - return ret; -} - -void ssl_finish(nut_ctype_t *client) -{ - if (client->ssl) { - SSL_free(client->ssl); - } -} - -#endif /* HAVE_SSL */ From bdbdae9c7f24fce4aa449069738b2236896059d3 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 25 Jul 2012 08:01:28 +0000 Subject: [PATCH 178/218] Update installer script with oldmge-shut instead of newmge-shut Fossil-ID: SVN r3693 --- scripts/Windows/Installer/NUT-Installer.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index afa580e93e..0fb193d2f7 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1308,8 +1308,8 @@ Public License instead of this License. - - + + @@ -1841,7 +1841,7 @@ Public License instead of this License. - + @@ -2008,4 +2008,4 @@ Public License instead of this License. LIBUSBINSTALL=1 - \ No newline at end of file + From 99b4c5dfb66bd50546af6a8c928f113056f49763 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 27 Jul 2012 06:51:17 +0000 Subject: [PATCH 179/218] Adding Windows 2000 and older support Fossil-ID: SVN r3694 --- clients/upsclient.c | 4 ++++ include/common.h | 4 ---- server/upsd.c | 3 +++ tools/nut-scanner/nutscan-ip.c | 4 ++++ 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/clients/upsclient.c b/clients/upsclient.c index 9549f4d475..5a1450b86f 100644 --- a/clients/upsclient.c +++ b/clients/upsclient.c @@ -39,6 +39,10 @@ #include #include #else +/* Those 2 files for support of getaddrinfo, getnameinfo and freeaddrinfo + on Windows 2000 and older versions */ +#include +#include /* This override network system calls to adapt to Windows specificity */ #define W32_NETWORK_CALL_OVERRIDE #include "wincompat.h" diff --git a/include/common.h b/include/common.h index 9cfda3578e..37e70f7c49 100644 --- a/include/common.h +++ b/include/common.h @@ -39,10 +39,6 @@ #ifndef WIN32 #include #else -/* We need windows XP or above (for getaddrinfo and freeaddrinfo) */ -#ifndef WINVER -#define WINVER 0x0501 -#endif #include #include #include diff --git a/server/upsd.c b/server/upsd.c index 832988b3e8..ff642d0a45 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -33,7 +33,10 @@ #include #include #else +/* Those 2 files for support of getaddrinfo, getnameinfo and freeaddrinfo + on Windows 2000 and older versions */ #include +#include /* This override network system calls to adapt to Windows specificity */ #define W32_NETWORK_CALL_OVERRIDE #include "wincompat.h" diff --git a/tools/nut-scanner/nutscan-ip.c b/tools/nut-scanner/nutscan-ip.c index d0e0168770..04b90b7dc3 100644 --- a/tools/nut-scanner/nutscan-ip.c +++ b/tools/nut-scanner/nutscan-ip.c @@ -25,6 +25,10 @@ #include #include #else +/* Those 2 files for support of getaddrinfo, getnameinfo and freeaddrinfo + on Windows 2000 and older versions */ +#include +#include #define AI_NUMERICSERV NI_NUMERICSERV #include "wincompat.h" #endif From 1889102d5bb29f22323215e4f6ba504f91dcc61c Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Fri, 27 Jul 2012 08:02:51 +0000 Subject: [PATCH 180/218] Fix w32_setcomm and w32_getcomm for genericups Fossil-ID: SVN r3695 --- common/wincompat.c | 12 ++++++++---- drivers/genericups.c | 2 +- include/wincompat.h | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/common/wincompat.c b/common/wincompat.c index a323fc738c..184d2078cc 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -435,11 +435,11 @@ int send_to_named_pipe(const char * pipe_name, const char * data) return 0; } -int w32_setcomm ( serial_handler_t * h, int flags ) +int w32_setcomm ( serial_handler_t * h, int * flags ) { int ret = 0; - if( flags & TIOCM_DTR ) { + if( *flags & TIOCM_DTR ) { if( !EscapeCommFunction(h->handle,SETDTR) ) { errno = EIO; ret = -1; @@ -452,7 +452,7 @@ int w32_setcomm ( serial_handler_t * h, int flags ) } } - if( flags & TIOCM_RTS ) { + if( *flags & TIOCM_RTS ) { if( !EscapeCommFunction(h->handle,SETRTS) ) { errno = EIO; ret = -1; @@ -471,7 +471,7 @@ int w32_setcomm ( serial_handler_t * h, int flags ) int w32_getcomm ( serial_handler_t * h, int * flags ) { BOOL ret_val; - DWORD f = *flags; + DWORD f; ret_val = GetCommModemStatus(h->handle, &f); if (ret_val == 0) { @@ -479,6 +479,8 @@ int w32_getcomm ( serial_handler_t * h, int * flags ) return -1; } + *flags = f; + return 0; } @@ -715,10 +717,12 @@ serial_handler_t * w32_serial_open (const char *name, int flags) state.fDtrControl = DTR_CONTROL_ENABLE; /* assert DTR */ state.fDsrSensitivity = FALSE; /* don't assert DSR */ state.fAbortOnError = TRUE; + if (!SetCommState (sh->handle, &state)) upslogx (LOG_ERR,"couldn't set initial state for %s",name); SetCommMask (sh->handle, EV_RXCHAR); + upslogx (LOG_INFO,"%p = w32_serial_open (%s)",sh->handle,name); return sh; } diff --git a/drivers/genericups.c b/drivers/genericups.c index b7108c5c09..ff9085281d 100644 --- a/drivers/genericups.c +++ b/drivers/genericups.c @@ -265,7 +265,7 @@ void upsdrv_shutdown(void) #ifndef WIN32 ret = ioctl(upsfd, TIOCMSET, &flags); #else - ret = w32_setcomm(upsfd,flags); + ret = w32_setcomm(upsfd,&flags); #endif if (ret != 0) { diff --git a/include/wincompat.h b/include/wincompat.h index 0e70b807ab..87ad7e40a7 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -112,7 +112,7 @@ int send_to_named_pipe(const char * pipe_name, const char * data); /* serial function compatibility */ -int w32_setcomm ( serial_handler_t * h, int flags ); +int w32_setcomm ( serial_handler_t * h, int * flags ); int w32_getcomm ( serial_handler_t * h, int * flags ); int tcsendbreak (serial_handler_t * sh, int duration); From 90dbbc75930d391993bd36e64b3fb0449fbbc643 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 2 Aug 2012 14:15:19 +0000 Subject: [PATCH 181/218] Disconnect named pipe correctly Fossil-ID: SVN r3700 --- common/wincompat.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/common/wincompat.c b/common/wincompat.c index 184d2078cc..da9d5bbd4f 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -365,13 +365,12 @@ void pipe_disconnect(pipe_conn_t *conn) conn->overlapped.hEvent = INVALID_HANDLE_VALUE; } if( conn->handle != INVALID_HANDLE_VALUE) { + if ( DisconnectNamedPipe(conn->handle) == 0 ) { + upslogx(LOG_ERR,"DisconnectNamedPipe error : %d",GetLastError()); + } CloseHandle(conn->handle); conn->handle = INVALID_HANDLE_VALUE; } - if ( DisconnectNamedPipe(conn->handle) == 0 ) { - upslogx(LOG_ERR,"DisconnectNamedPipe"); - } - if (conn->prev) { conn->prev->next = conn->next; } else { From c333196e7fc3dc586fe1fbea791bec9cd5d21294 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 6 Aug 2012 07:25:04 +0000 Subject: [PATCH 182/218] Fix UPS shutdown Now upsmon stop NUT service before shuting down the OS. When the service stops (with PD flag), it calls "upsdrvctl shutdown". Fossil-ID: SVN r3705 --- clients/upsmon.c | 44 +++++++++++++++++++++++++++++++-------- scripts/Windows/wininit.c | 10 +++++++++ 2 files changed, 45 insertions(+), 9 deletions(-) diff --git a/clients/upsmon.c b/clients/upsmon.c index 4e2a1b7584..ba4cdabaab 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -545,6 +545,32 @@ static void doshutdown(void) set_pdflag(); +#ifdef WIN32 + SC_HANDLE SCManager; + SC_HANDLE Service; + SERVICE_STATUS Status; + + SCManager = OpenSCManager( + NULL, /* local computer */ + NULL, /* ServiceActive database */ + SC_MANAGER_ALL_ACCESS); /* full access rights */ + + if (NULL == SCManager) { + upslogx(LOG_ERR, "OpenSCManager failed (%d)\n", (int)GetLastError()); + } + else { + Service = OpenService(SCManager,SVCNAME,SERVICE_STOP); + if( Service == NULL ) { + upslogx(LOG_ERR,"OpenService failed (%d)\n", (int)GetLastError()); + } + else { + ControlService(Service,SERVICE_CONTROL_STOP,&Status); + /* Give time to the service to stop */ + Sleep(2000); + } + } +#endif + ret = system(shutdowncmd); if (ret != 0) @@ -2075,15 +2101,6 @@ int main(int argc, char *argv[]) exit(EXIT_SUCCESS); } - /* otherwise, we are being asked to start. - * so check if a previous instance is running by sending signal '0' - * (Ie 'kill 0') */ - if (sendsignal(prog, 0) == 0) { - printf("Fatal error: A previous upsmon instance is already running!\n"); - printf("Either stop the previous instance first, or use the 'reload' command.\n"); - exit(EXIT_FAILURE); - } - argc -= optind; argv += optind; @@ -2094,6 +2111,15 @@ int main(int argc, char *argv[]) if (checking_flag) exit(check_pdflag()); + /* otherwise, we are being asked to start. + * so check if a previous instance is running by sending signal '0' + * (Ie 'kill 0') */ + if (sendsignal(prog, 0) == 0) { + printf("Fatal error: A previous upsmon instance is already running!\n"); + printf("Either stop the previous instance first, or use the 'reload' command.\n"); + exit(EXIT_FAILURE); + } + if (shutdowncmd == NULL) printf("Warning: no shutdown command defined!\n"); diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index 294fb3ff3e..39aed9b017 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -198,6 +198,8 @@ static DWORD test_powerdownflag() free(path); memset(&StartupInfo,0,sizeof(STARTUPINFO)); + StartupInfo.cb = sizeof(StartupInfo); + memset(&ProcessInformation,0,sizeof(ProcessInformation)); res = CreateProcess( NULL, @@ -265,22 +267,30 @@ static int parse_nutconf(BOOL start_flag) if( strstr(buf,"standalone") != NULL || strstr(buf,"netserver") != NULL ) { if( start_flag == NUT_START ) { + print_event(LOG_INFO,"Starting drivers"); run_drivers(); + print_event(LOG_INFO,"Starting upsd"); run_upsd(); /* Wait a moment for the drivers to start */ Sleep(5000); + print_event(LOG_INFO,"Starting upsmon"); run_upsmon(); return 1; } else { + print_event(LOG_INFO,"stop upsd"); stop_upsd(); + print_event(LOG_INFO,"stop drivers"); stop_drivers(); + print_event(LOG_INFO,"stop upsmon"); stop_upsmon(); /* Give a chance to upsmon to write the POWERDOWNFLAG file */ Sleep(1000); if( test_powerdownflag() == 0 ) { + print_event(LOG_INFO,"shutdown ups"); shutdown_ups(); } + print_event(LOG_INFO,"End of NUT stop"); return 1; } } From 3e5f31a18a0491a947e89ef2884fa9d8fbe5a802 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 6 Aug 2012 08:15:11 +0000 Subject: [PATCH 183/218] typo in comments Fossil-ID: SVN r3706 --- scripts/Windows/wininit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index 39aed9b017..1886a44a21 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -515,7 +515,7 @@ static void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) /* A service has no console, so do has its children. */ /* So if we want to be able to send CTRL+BREAK signal we must */ - /* create a console which will be inheritated by children */ + /* create a console which will be inherited by children */ AllocConsole(); print_event(LOG_INFO,"Starting"); From 24ce9b81fc353a0ac6e8e1910a91f6f1fc40b36f Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Wed, 8 Aug 2012 11:27:07 +0000 Subject: [PATCH 184/218] Get rid of console event and PID management Processes can now be stopped via named pipe. Processes can now check previous instances via named mutex. Fossil-ID: SVN r3709 --- clients/upsmon.c | 21 +++++- common/common.c | 82 +++++++-------------- common/wincompat.c | 7 +- drivers/dstate.c | 17 +++-- drivers/main.c | 72 ++++++++++++------ drivers/upsdrvctl.c | 11 +++ include/common.h | 14 +++- scripts/Windows/Installer/NUT-Installer.xml | 8 -- scripts/Windows/wininit.c | 4 +- server/upsd.c | 36 ++++++++- 10 files changed, 169 insertions(+), 103 deletions(-) diff --git a/clients/upsmon.c b/clients/upsmon.c index ba4cdabaab..00ebb6b463 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -83,6 +83,7 @@ static int use_pipe = 1; #else /* Do not fork in WIN32 */ static int use_pipe = 0; +static HANDLE mutex = INVALID_HANDLE_VALUE; #endif static utype_t *firstups = NULL; @@ -1456,6 +1457,13 @@ static void upsmon_cleanup(void) } upscli_cleanup(); + +#ifdef WIN32 + if(mutex != INVALID_HANDLE_VALUE) { + ReleaseMutex(mutex); + CloseHandle(mutex); + } +#endif } static void user_fsd(int sig) @@ -2096,7 +2104,7 @@ int main(int argc, char *argv[]) #ifndef WIN32 sendsignal(prog, cmd); #else - send_to_named_pipe(UPSMON_PIPE_NAME,cmd); + sendsignal(UPSMON_PIPE_NAME, cmd); #endif exit(EXIT_SUCCESS); } @@ -2114,7 +2122,18 @@ int main(int argc, char *argv[]) /* otherwise, we are being asked to start. * so check if a previous instance is running by sending signal '0' * (Ie 'kill 0') */ +#ifndef WIN32 if (sendsignal(prog, 0) == 0) { +#else + mutex = CreateMutex(NULL,TRUE,UPSMON_PIPE_NAME); + if(mutex == NULL ) { + if( GetLastError() != ERROR_ACCESS_DENIED ) { + fatalx(EXIT_FAILURE, "Can not create mutex %s : %d.\n",UPSMON_PIPE_NAME,(int)GetLastError()); + } + } + + if (GetLastError() == ERROR_ALREADY_EXISTS || GetLastError() == ERROR_ACCESS_DENIED) { +#endif printf("Fatal error: A previous upsmon instance is already running!\n"); printf("Either stop the previous instance first, or use the 'reload' command.\n"); exit(EXIT_FAILURE); diff --git a/common/common.c b/common/common.c index 3ba6dbfa45..5eb5029916 100644 --- a/common/common.c +++ b/common/common.c @@ -245,31 +245,16 @@ char * getfullpath(char * relative_path) /* drop off a pidfile for this process */ void writepid(const char *name) { +#ifndef WIN32 char fn[SMALLBUF]; FILE *pidf; int mask; /* use full path if present, else build filename in PIDPATH */ -#ifndef WIN32 if (*name == '/') -#else - if(name[1] == ':') -#endif snprintf(fn, sizeof(fn), "%s", name); else { -#ifndef WIN32 snprintf(fn, sizeof(fn), "%s/%s.pid", PIDPATH, name); -#else - char * path; - path = getfullpath(PATH_VAR_RUN); - if( path == NULL ) { - snprintf(fn, sizeof(fn), "%s/%s.pid", PIDPATH, name); - } - else { - snprintf(fn, sizeof(fn), "%s/%s.pid", path, name); - free(path); - } -#endif } mask = umask(022); @@ -283,21 +268,20 @@ void writepid(const char *name) } umask(mask); +#endif } /* open pidfn, get the pid, then send it sig */ +#ifndef WIN32 int sendsignalfn(const char *pidfn, int sig) { char buf[SMALLBUF]; FILE *pidf; int pid; -#ifndef WIN32 int ret; -#else - BOOL ret; -#endif pidf = fopen(pidfn, "r"); + if (!pidf) { upslog_with_errno(LOG_NOTICE, "fopen %s", pidfn); return -1; @@ -317,7 +301,6 @@ int sendsignalfn(const char *pidfn, int sig) return -1; } -#ifndef WIN32 /* see if this is going to work first */ ret = kill(pid, 0); @@ -336,29 +319,24 @@ int sendsignalfn(const char *pidfn, int sig) return -1; } - fclose(pidf); + return 0; +} #else - if( sig == 0 ) { - HANDLE proc; - proc = OpenProcess(READ_CONTROL,FALSE,pid); - CloseHandle( proc); - if( proc == NULL ) { - fclose(pidf); - return -1; - } - } - else { - ret = GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,pid); +int sendsignalfn(const char *pidfn, const char * sig) +{ + char buf[SMALLBUF]; + BOOL ret; - if (ret == 0) { - fclose(pidf); - return -1; - } + snprintf(buf, sizeof(buf), "\\\\.\\pipe\\%s", pidfn); + ret = send_to_named_pipe(buf,sig); + + if (ret != 0) { + return -1; } -#endif - fclose(pidf); + return 0; } +#endif int snprintfcat(char *dst, size_t size, const char *fmt, ...) { @@ -378,26 +356,20 @@ int snprintfcat(char *dst, size_t size, const char *fmt, ...) } /* lazy way to send a signal if the program uses the PIDPATH */ +#ifndef WIN32 int sendsignal(const char *progname, int sig) { char fn[SMALLBUF]; -#ifndef WIN32 snprintf(fn, sizeof(fn), "%s/%s.pid", PIDPATH, progname); -#else - char * path; - path = getfullpath(PATH_VAR_RUN); - if( path == NULL ) { - snprintf(fn, sizeof(fn), "%s\\%s.pid", PIDPATH, progname); - } - else { - snprintf(fn, sizeof(fn), "%s\\%s.pid", path, progname); - free(path); - } -#endif - return sendsignalfn(fn, sig); } +#else +int sendsignal(const char *progname, const char * sig) +{ + return sendsignalfn(progname, sig); +} +#endif const char *xbasename(const char *file) { @@ -445,7 +417,7 @@ static void vupslog(int priority, const char *fmt, va_list va, int use_strerror) (LPTSTR) &WinBuf, 0, NULL ); - snprintfcat(buf, sizeof(buf), " [%s]", WinBuf); + snprintfcat(buf, sizeof(buf), " [%s]", (char *)WinBuf); LocalFree(WinBuf); #endif } @@ -506,15 +478,11 @@ const char * dflt_statepath(void) /* Return the alternate path for pid files */ const char * altpidpath(void) { -#ifndef WIN32 #ifdef ALTPIDPATH return ALTPIDPATH; #else return dflt_statepath(); #endif -#else /* WIN32 */ - return dflt_statepath(); -#endif } /* logs the formatted string to any configured logging devices + the output of strerror(errno) */ diff --git a/common/wincompat.c b/common/wincompat.c index da9d5bbd4f..71f6460245 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -274,6 +274,7 @@ static const char *named_pipe_name=NULL; void pipe_create(const char * pipe_name) { BOOL ret; + char pipe_full_name[SMALLBUF]; /* save pipe name for further use in pipe_connect */ if( pipe_name == NULL ) { @@ -285,12 +286,14 @@ void pipe_create(const char * pipe_name) named_pipe_name = pipe_name; } + snprintf(pipe_full_name,sizeof(pipe_full_name),"\\\\.\\pipe\\%s",named_pipe_name); + if( pipe_connection_overlapped.hEvent != 0 ) { CloseHandle(pipe_connection_overlapped.hEvent); } memset(&pipe_connection_overlapped,0,sizeof(pipe_connection_overlapped)); pipe_connection_handle = CreateNamedPipe( - named_pipe_name, + pipe_full_name, PIPE_ACCESS_INBOUND | /* to server only */ FILE_FLAG_OVERLAPPED, /* async IO */ PIPE_TYPE_MESSAGE | @@ -418,14 +421,12 @@ int send_to_named_pipe(const char * pipe_name, const char * data) if (pipe == INVALID_HANDLE_VALUE) { - upslogx(LOG_ERR, "Cannot connect to named pipe : %s",pipe_name); return 1; } result = WriteFile (pipe,data,strlen(data)+1,&bytesWritten,NULL); if (result == 0 || bytesWritten != strlen(data)+1 ) { - upslogx(LOG_ERR, "Error writing to named pipe : %s",pipe_name); CloseHandle(pipe); return 1; } diff --git a/drivers/dstate.c b/drivers/dstate.c index 7362c153e5..94b0ad4f3a 100644 --- a/drivers/dstate.c +++ b/drivers/dstate.c @@ -624,6 +624,12 @@ static void sock_read(conn_t *conn) return; } ret = bytesRead; + + /* Special case for signals */ + if (!strncmp(conn->buf, COMMAND_STOP, sizeof(COMMAND_STOP))) { + set_exit_flag(1); + return; + } #endif for (i = 0; i < ret; i++) { @@ -706,12 +712,8 @@ void dstate_init(const char *prog, const char *devname) snprintf(sockname, sizeof(sockname), "%s/%s", dflt_statepath(), prog); } #else - /* FIXME: use dflt_statepath() instead of hardcoded value ?*/ - if (devname) { - snprintf(sockname, sizeof(sockname), "\\\\.\\pipe\\%s-%s", prog, devname); - } else { - snprintf(sockname, sizeof(sockname), "\\\\.\\pipe\\%s", prog); - } + /* upsname (and so devname) is now mandatory so no need to test it */ + snprintf(sockname, sizeof(sockname), "\\\\.\\pipe\\%s-%s", prog, devname); pipename = strdup(sockname); #endif @@ -844,7 +846,7 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) timeout_ms = (timeout.tv_sec * 1000) + (timeout.tv_usec / 1000); -/* Wait on the read IO of each connections */ + /* Wait on the read IO of each connections */ for (conn = connhead; conn; conn = conn->next) { rfds[maxfd] = conn->read_overlapped.hEvent; maxfd++; @@ -852,6 +854,7 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) /* Add the connect event */ rfds[maxfd] = connect_overlapped.hEvent; maxfd++; + ret = WaitForMultipleObjects( maxfd, /* number of objects in array */ rfds, /* array of objects */ diff --git a/drivers/main.c b/drivers/main.c index 0f17415683..81ad6507c1 100644 --- a/drivers/main.c +++ b/drivers/main.c @@ -33,7 +33,8 @@ #ifndef WIN32 int extrafd = -1; #else - HANDLE extrafd = INVALID_HANDLE_VALUE; + HANDLE extrafd = INVALID_HANDLE_VALUE; + static HANDLE mutex = INVALID_HANDLE_VALUE; #endif /* for ser_open */ @@ -449,28 +450,23 @@ static void exit_cleanup(void) dstate_free(); vartab_free(); -} - -static void set_exit_flag(int sig) -{ - exit_flag = sig; -} #ifdef WIN32 -BOOL WINAPI CtrlEvent( DWORD dwCtrlType ) -{ - if( dwCtrlType == CTRL_BREAK_EVENT || dwCtrlType == CTRL_C_EVENT ) { - set_exit_flag(1); - return TRUE; + if(mutex != INVALID_HANDLE_VALUE) { + ReleaseMutex(mutex); + CloseHandle(mutex); } +#endif +} - return FALSE; +void set_exit_flag(int sig) +{ + exit_flag = sig; } -#endif +#ifndef WIN32 static void setup_signals(void) { -#ifndef WIN32 struct sigaction sa; sigemptyset(&sa.sa_mask); @@ -484,10 +480,8 @@ static void setup_signals(void) sa.sa_handler = SIG_IGN; sigaction(SIGHUP, &sa, NULL); sigaction(SIGPIPE, &sa, NULL); -#else - SetConsoleCtrlHandler(CtrlEvent,TRUE); -#endif } +#endif int main(int argc, char **argv) { @@ -505,9 +499,9 @@ int main(int argc, char **argv) const char * drv_name; drv_name = xbasename(argv[0]); /* remove trailing .exe */ - char * name = strrchr(drv_name,'.'); - if( name != NULL ) { - if(strcasecmp(name, ".exe") == 0 ) { + char * dot = strrchr(drv_name,'.'); + if( dot != NULL ) { + if(strcasecmp(dot, ".exe") == 0 ) { progname = strdup(drv_name); char * t = strrchr(progname,'.'); *t = 0; @@ -679,6 +673,42 @@ int main(int argc, char **argv) pidfn = xstrdup(buffer); writepid(pidfn); /* before backgrounding */ } +#else + char name[SMALLBUF]; + + snprintf(name,sizeof(name), "%s-%s",progname,upsname); + + mutex = CreateMutex(NULL,TRUE,name); + if(mutex == NULL ) { + if( GetLastError() != ERROR_ACCESS_DENIED ) { + fatalx(EXIT_FAILURE, "Can not create mutex %s : %d.\n",name,(int)GetLastError()); + } + } + + if (GetLastError() == ERROR_ALREADY_EXISTS || GetLastError() == ERROR_ACCESS_DENIED) { + upslogx(LOG_WARNING, "Duplicate driver instance detected! Terminating other driver!"); + for(i=0;i<10;i++) { + DWORD res; + sendsignal(name, COMMAND_STOP); + if(mutex != NULL ) { + res = WaitForSingleObject(mutex,1000); + if(res==WAIT_OBJECT_0) { + break; + } + } + else { + sleep(1); + mutex = CreateMutex(NULL,TRUE,name); + if(mutex != NULL ) { + break; + } + } + } + if(i >= 10 ) { + fatalx(EXIT_FAILURE, "Can not terminate the previous driver.\n"); + } + } +#endif /* clear out callback handler data */ memset(&upsh, '\0', sizeof(upsh)); diff --git a/drivers/upsdrvctl.c b/drivers/upsdrvctl.c index d53fb6d201..c664b2482e 100644 --- a/drivers/upsdrvctl.c +++ b/drivers/upsdrvctl.c @@ -24,6 +24,8 @@ #include #ifndef WIN32 #include +#else +#include "wincompat.h" #endif #include "config.h" @@ -129,6 +131,7 @@ static void stop_driver(const ups_t *ups) upsdebugx(1, "Stopping UPS: %s", ups->upsname); +#ifndef WIN32 snprintf(pidfn, sizeof(pidfn), "%s/%s-%s.pid", altpidpath(), ups->driver, ups->upsname); ret = stat(pidfn, &fs); @@ -145,12 +148,20 @@ static void stop_driver(const ups_t *ups) return; } +#else + snprintf(pidfn, sizeof(pidfn), "%s-%s",ups->driver, ups->upsname); +#endif + upsdebugx(2, "Sending signal to %s", pidfn); if (testmode) return; +#ifndef WIN32 ret = sendsignalfn(pidfn, SIGTERM); +#else + ret = sendsignal(pidfn, COMMAND_STOP); +#endif if (ret < 0) { upslog_with_errno(LOG_ERR, "Stopping %s failed", pidfn); diff --git a/include/common.h b/include/common.h index 37e70f7c49..cb52d5c6e8 100644 --- a/include/common.h +++ b/include/common.h @@ -89,13 +89,21 @@ void chroot_start(const char *path); void writepid(const char *name); /* send a signal to another running process */ +#ifndef WIN32 int sendsignal(const char *progname, int sig); +#else +int sendsignal(const char *progname, const char * sig); +#endif int snprintfcat(char *dst, size_t size, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 3, 4))); +#ifndef WIN32 /* open , get the pid, then send it */ int sendsignalfn(const char *pidfn, int sig); +#else +int sendsignalfn(const char *pidfn, const char * sig); +#endif const char *xbasename(const char *file); @@ -191,9 +199,9 @@ extern int optind; #define closelog() #define SVCNAME TEXT("Network UPS Tools") -#define EVENTLOG_PIPE_NAME TEXT("\\\\.\\pipe\\nut") -#define UPSMON_PIPE_NAME TEXT("\\\\.\\pipe\\upsmon") -#define UPSD_PIPE_NAME TEXT("\\\\.\\pipe\\upsd") +#define EVENTLOG_PIPE_NAME TEXT("nut") +#define UPSMON_PIPE_NAME TEXT("upsmon") +#define UPSD_PIPE_NAME TEXT("upsd") char * getfullpath(char * relative_path); #define PATH_ETC "\\..\\etc" diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index 0fb193d2f7..1d5c4b4d0c 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1723,13 +1723,6 @@ Public License instead of this License. - - - - - - - @@ -1887,7 +1880,6 @@ Public License instead of this License. - diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index 1886a44a21..f942720824 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -156,7 +156,7 @@ static void run_upsd() static void stop_upsd() { - if ( send_to_named_pipe( UPSD_PIPE_NAME, COMMAND_STOP ) ) { + if ( sendsignal( UPSD_PIPE_NAME, COMMAND_STOP ) ) { print_event(LOG_ERR, "Error stoping upsd"); } } @@ -175,7 +175,7 @@ static void run_upsmon() static void stop_upsmon() { - if ( send_to_named_pipe( UPSMON_PIPE_NAME, COMMAND_STOP ) ) { + if ( sendsignal( UPSMON_PIPE_NAME, COMMAND_STOP ) ) { print_event(LOG_ERR, "Error sendind CTRL_BREAK to upsmon"); } } diff --git a/server/upsd.c b/server/upsd.c index ff642d0a45..92b291853d 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -105,6 +105,7 @@ typedef struct { static struct pollfd *fds = NULL; #else static HANDLE *fds = NULL; +static HANDLE mutex = INVALID_HANDLE_VALUE; #endif static handler_t *handler = NULL; @@ -711,6 +712,13 @@ static void upsd_cleanup(void) free(fds); free(handler); + +#ifdef WIN32 + if(mutex != INVALID_HANDLE_VALUE) { + ReleaseMutex(mutex); + CloseHandle(mutex); + } +#endif } void poll_reload(void) @@ -1117,6 +1125,21 @@ int main(int argc, char **argv) datapath = xstrdup(NUT_DATADIR); #else datapath = getfullpath(PATH_SHARE); + + /* remove trailing .exe */ + char * drv_name; + drv_name = (char *)xbasename(argv[0]); + char * name = strrchr(drv_name,'.'); + if( name != NULL ) { + if(strcasecmp(name, ".exe") == 0 ) { + progname = strdup(drv_name); + char * t = strrchr(progname,'.'); + *t = 0; + } + } + else { + progname = drv_name; + } #endif /* set up some things for later */ @@ -1177,7 +1200,7 @@ int main(int argc, char **argv) #ifndef WIN32 sendsignalfn(pidfn, cmd); #else - send_to_named_pipe(UPSD_PIPE_NAME,cmd); + sendsignal(UPSD_PIPE_NAME,cmd); #endif exit(EXIT_SUCCESS); } @@ -1185,7 +1208,18 @@ int main(int argc, char **argv) /* otherwise, we are being asked to start. * so check if a previous instance is running by sending signal '0' * (Ie 'kill 0') */ +#ifndef WIN32 if (sendsignalfn(pidfn, 0) == 0) { +#else + mutex = CreateMutex(NULL,TRUE,UPSD_PIPE_NAME); + if(mutex == NULL ) { + if( GetLastError() != ERROR_ACCESS_DENIED ) { + fatalx(EXIT_FAILURE, "Can not create mutex %s : %d.\n",UPSD_PIPE_NAME,(int)GetLastError()); + } + } + + if (GetLastError() == ERROR_ALREADY_EXISTS || GetLastError() == ERROR_ACCESS_DENIED) { +#endif printf("Fatal error: A previous upsd instance is already running!\n"); printf("Either stop the previous instance first, or use the 'reload' command.\n"); exit(EXIT_FAILURE); From 8362af8cc2e91c02e70fc18d39f9d65683804cab Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Thu, 9 Aug 2012 09:10:35 +0000 Subject: [PATCH 185/218] Merge from trunk [[SVN:3692]] to [[SVN:3713]] (upgrade to 2.6.5) [[SVN:3692]] = 2012-07-24T12:28:54Z!clepple+nut@gmail.com [[SVN:3713]] = 2012-08-08T20:33:46Z!arnaud.quette@free.fr Fossil-ID: SVN r3714 --- INSTALL | 663 ++++++++++---------- configure.in | 23 + docs/images/eaton-logo.png | Bin 7998 -> 0 bytes scripts/Windows/Installer/NUT-Installer.xml | 242 ++++--- 4 files changed, 528 insertions(+), 400 deletions(-) delete mode 100644 docs/images/eaton-logo.png diff --git a/INSTALL b/INSTALL index 119787fe23..7d1c323bea 100644 --- a/INSTALL +++ b/INSTALL @@ -1,340 +1,365 @@ -Installation instructions -========================= +Installation Instructions +************************* + +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006, 2007, 2008, 2009 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + + The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type `make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. -This chapter describe the various methods for installing Network UPS Tools. +Sharing Defaults +================ -Whenever it is possible, prefer <>. -Packagers have done an excellent and hard work at improving NUT integration into -their system. + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. -[[Installing_source]] -Installing from source ----------------------- +Defining Variables +================== -These are the essential steps for compiling and installing this software. + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: -The NUT linkdoc:packager-guide[Packager Guide], which presents the best -practices for installing and integrating NUT, is also a good reading. + ./configure CC=/usr/local2/bin/gcc -[NOTE] -.Keep in mind that... -================================================================================ +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). -- the paths shown below are the default values you get by just calling -configure by itself. If you have used --prefix or similar, things will be -different. Also, if you didn't install this program from source yourself, the -paths will probably have a number of differences. +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: -- by default, your system probably won't find the man pages, since they -install to /usr/local/ups/man. You can fix this by editing your MANPATH, or -just do this: + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash - man -M /usr/local/ups/man +`configure' Invocation +====================== -- if your favorite system offers up to date binary packages, you should always -prefer these over a source installation. Along with the known advantages of such -systems for installation, upgrade and removal, there are many integration issues -that have been addressed. + `configure' recognizes the following options to control how it +operates. -================================================================================ +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. -Prepare your system -~~~~~~~~~~~~~~~~~~~~ +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. -System User creation -^^^^^^^^^^^^^^^^^^^^ +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. -Create at least one system user and a group for running this software. You -might call them "ups" and "nut". The exact names aren't important as -long as you are consistent. +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. -The process for doing this varies from one system to the next, and -explaining how to add users is beyond the scope of this document. +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). -For the purposes of this document, the user name and group name -will be 'ups' and 'nut' respectively. +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. -Be sure the new user is a member of the new group! If you forget to -do this, you will have problems later on when you try to start upsd. +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. -Build and install -~~~~~~~~~~~~~~~~~ +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. -[[Configuration]] -Configuration -^^^^^^^^^^^^^ - -Configure the source tree for your system. Add the '--with-user' and -'--with-group' switch to set the user name and group that you created -above. - - ./configure --with-user=ups --with-group=nut - -If you need any other switches for configure, add them here. For example: - -* to build and install USB drivers, add '--with-usb' (note that you - need to install libusb development package or files). - -* to build and install SNMP drivers, add '--with-snmp' (note that - you need to install libsnmp development package or files). - -* to build and install CGI scripts, add '--with-cgi'. - -See <> from the User Manual, -docs/configure.txt or './configure --help' for all the available -options. - -If you alter paths with additional switches, be sure to use those -new paths while reading the rest of the steps. - -Reference: <> from the -User Manual. - - -Build the programs -^^^^^^^^^^^^^^^^^^ - - make - -This will build the NUT client and server programs and the -selected drivers. It will also build any other features that were -selected during <> step above. - - -Installation -^^^^^^^^^^^^ - -[NOTE] -===================================================================== - -you should now gain privileges for installing software if necessary: - - su - -===================================================================== - -Install the files to a system level directory: - - make install - -This will install the compiled programs and man pages, as well as -some data files required by NUT. Any optional features selected -during configuration will also be installed. - -This will also install sample versions of the NUT configuration -files. Sample files are installed with names like ups.conf.sample -so they will not overwrite any existing real config files you may -have created. - -If you are packaging this software, then you will probably want to -use the DESTDIR variable to redirect the build into another place, -i.e.: - - make DESTDIR=/tmp/package install - make DESTDIR=/tmp/package install-conf - -[[StatePath]] -State path creation -^^^^^^^^^^^^^^^^^^^ - -Create the state path directory for the driver(s) and server to use -for storing UPS status data and other auxiliary files, and make it -owned by the user you created. - - mkdir -p /var/state/ups - chmod 0770 /var/state/ups - chown root:nut /var/state/ups - -[[Ownership]] -Ownership and permissions -^^^^^^^^^^^^^^^^^^^^^^^^^ - -Set ownership data and permissions on your serial or USB ports -that go to your UPS hardware. Be sure to limit access to just -the user you created earlier. - -These examples assume the second serial port (ttyS1) on a typical -Slackware system. On FreeBSD, that would be cuaa1. Serial ports -vary greatly, so yours may be called something else. - - chmod 0660 /dev/ttyS1 - chown root:nut /dev/ttyS1 - -//////////////////////////////////////////////////////////////////////////////// -FIXME: TBR -//////////////////////////////////////////////////////////////////////////////// - -The setup for USB ports is slightly more complicated. Device files -for USB devices, such as /proc/bus/usb/002/001, are usually -created "on the fly" when a device is plugged in, and disappear -when the device is disconnected. Moreover, the names of these -device files can change randomly. To set up the correct -permissions for the USB device, you may need to set up (operating -system dependent) hotplugging scripts. Sample scripts and -information are provided in the scripts/hotplug and -scripts/udev directories. For most users, the hotplugging scripts -will be installed automatically by "make install". - -(If you want to try if a driver works without setting up -hotplugging, you can add the "-u root" option to upsd, upsmon, and -drivers; this should allow you to follow the below -instructions. However, don't forget to set up the correct -permissions later!). - -NOTE: if you are using something like devfs or udev, make sure -these permissions stay set across a reboot. If they revert to the -old values, your drivers may fail to start. - - -You are now ready to configure NUT, and start testing and using it. - -You can jump directly to the <>. - - -[[Installing_packages]] -Installing from packages ------------------------- - -This chapter describes the specific installation steps when using -binary packages that exist on various major systems. - -[[Debian]] -Debian, Ubuntu and other derivatives -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -NOTE: NUT is packaged and well maintained in these systems. -The official Debian packager is part of the NUT Team. - -Using your prefered method (apt-get, aptitude, Synaptic, ...), install -the 'nut' package, and optionaly the following: - -- 'nut-cgi', if you need the CGI (HTML) option, -- 'nut-snmp', if you need the snmp-ups driver, -- 'nut-xml', for the netxml-ups driver, -- 'nut-powerman-pdu', to control the PowerMan daemon (PDU management) -- 'nut-dev', if you need the development files. - -//////////////////////////////////////////////////////////////////////////////// -- nut-client -- nut-hal-drivers -//////////////////////////////////////////////////////////////////////////////// - -Configuration files are located in /etc/nut. -linkman:nut.conf[5] must be edited to be able to invoke /etc/init.d/nut - -NOTE: Ubuntu users can access the APT URL installation by clicking on link:apt://nut[this link]. - - -[[Mandriva]] -Mandriva -~~~~~~~~ - -NOTE: NUT is packaged and well maintained in these systems. -The official Mandriva packager is part of the NUT Team. - -Using your prefered method (urpmi, RPMdrake, ...), install one of the two below -packages: - -- 'nut-server' if you have a 'standalone' or 'netserver' installation, -- 'nut' if you have a 'netclient' installation. - -Optionaly, you can also install the following: - -- 'nut-cgi', if you need the CGI (HTML) option, -- 'nut-devel', if you need the development files. - - -[[Suse]] -Suse / Opensuse -~~~~~~~~~~~~~~~ - -NOTE: NUT is packaged and well maintained in these systems. -The official Suse packager is part of the NUT Team. - -Install the 'nut-classic' package, and optionaly the following: - -- 'nut-drivers-net', if you need the snmp-ups or the netxml-ups drivers, -- 'nut-cgi', if you need the CGI (HTML) option, -- 'nut-devel', if you need the development files, - -NOTE: Suse and Opensuse users can use the -link:http://software.opensuse.org/search?baseproject=ALL&p=1&q=nut[one-click install method] -to install NUT. - - -[[RedHat]] -Red Hat, Fedora and CentOS -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -NOTE: NUT is packaged and well maintained in these systems. -The official Red Hat packager is part of the NUT Team. - -Using your prefered method (yum, Add/Remove Software, ...), install one of the -two below packages: - -- 'nut' if you have a 'standalone' or 'netserver' installation, -- 'nut-client' if you have a 'netclient' installation. - -Optionaly, you can also install the following: - -- 'nut-cgi', if you need the CGI (HTML) option, -- 'nut-xml', if you need the netxml-ups driver, -- 'nut-devel', if you need the development files. - - -[[FreeBSD]] -FreeBSD -~~~~~~~ - -You can either install NUT as a binary package or as a port. - -Binary package -^^^^^^^^^^^^^^ - -To install the main component, use the following command: - - # pkg_add -r nut - -Port -^^^^ - -The port is located under /usr/ports/sysutils/nut. -To install it, use the following command: - - # cd /usr/ports/sysutils/nut/ && make install clean - -You have to define WITH_NUT_CGI to build the optional CGI scripts. - -Optionaly, you can also install the following ports: - -- sysutils/nut-snmp, for the SNMP driver, -- sysutils/nut-usb, for the USB drivers, -- sysutils/nut-libupsclient, for the upsclient library. - -[[Windows]] -Windows -~~~~~~~ - -NUT comes in a .msi file. If you are using Windows 95, 98 or Me, you should install -link:http://www.microsoft.com/downloads/en/details.aspx?familyid=cebbacd8-c094-4255-b702-de3bb768148f&displaylang=en[Windows Installer 2.0] -from Microsoft site. -If you are using Windows 2000 or NT 4.0, you can -link:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=4b6140f9-2d36-4977-8fa1-6f8a0f5dca8f&DisplayLang=en[download it here] -. - - -Run NUT-Installer.msi and follow the wizard indications. - -If you plan to use an UPS which is locally connected to an USB port, you have to install -link:https://sourceforge.net/projects/libusb-win32/files/[libUSB-win32] -on your system. Then you must install your device via libUSB's "Inf Wizard". - -If you have selected default directory, all configuration files are located in C:\Program Files\NUT\ups\etc - - -You are now ready to configure NUT, and start testing and using it. - -You can jump directly to the -<>. diff --git a/configure.in b/configure.in index fc6bc18921..9375cfbaf2 100644 --- a/configure.in +++ b/configure.in @@ -457,9 +457,32 @@ dnl AM_CONDITIONAL(WITH_OPENIPMI, test "${nut_with_openipmi}" = "yes") dnl ---------------------------------------------------------------------- +<<<<<<< HEAD dnl Check for with-ipmi, and --with-freeipmi (or --with-openipmi) dnl Only one can be enabled at a time, with a preference for FreeIPMI dnl if both are available (since it is the only one supported ATM!!) +======= +dnl The Mac OS X meta-driver looks at IOKit Power Sources keys managed by +dnl the internal USB UPS driver. +dnl +dnl FIXME: be slightly more clever here: + +NUT_ARG_WITH([macosx_ups], [build and install Mac OS X Power Sources meta-driver], [auto]) +if test "${nut_with_macosx_ups}" != no; then + if test -d /System/Library/Frameworks/IOKit.framework/ ; then + nut_with_macosx_ups="yes" + else + nut_with_macosx_ups="no" + fi +fi + +NUT_REPORT_FEATURE([build Mac OS X meta-driver], + [${nut_with_macosx_ups}], [${nut_macosx_ups_lib}], + [WITH_MACOSX], [Define to enable Mac OS X meta-driver]) + +dnl ---------------------------------------------------------------------- +dnl Check for --with-ssl +>>>>>>> Merge from trunk [[SVN:3692]] to [[SVN:3713]] (upgrade to 2.6.5) nut_ipmi_lib="" diff --git a/docs/images/eaton-logo.png b/docs/images/eaton-logo.png deleted file mode 100644 index f297295a89ac54e7c6368c0198b175cc83e67bf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7998 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 - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1891,6 +1951,7 @@ Public License instead of this License. + @@ -1913,6 +1974,7 @@ Public License instead of this License. + @@ -1921,6 +1983,24 @@ Public License instead of this License. + + + + + + + + + + + + + + + + + + From 7c05e83098df84b4974f6ff6e766995989386a07 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 17 Sep 2012 09:26:53 +0000 Subject: [PATCH 186/218] Fix Event Viewer regression Also, more consistent named pipe management Fossil-ID: SVN r3726 --- common/common.c | 4 +--- common/wincompat.c | 6 +++++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/common/common.c b/common/common.c index 5eb5029916..fba893c8d4 100644 --- a/common/common.c +++ b/common/common.c @@ -324,11 +324,9 @@ int sendsignalfn(const char *pidfn, int sig) #else int sendsignalfn(const char *pidfn, const char * sig) { - char buf[SMALLBUF]; BOOL ret; - snprintf(buf, sizeof(buf), "\\\\.\\pipe\\%s", pidfn); - ret = send_to_named_pipe(buf,sig); + ret = send_to_named_pipe(pidfn,sig); if (ret != 0) { return -1; diff --git a/common/wincompat.c b/common/wincompat.c index 71f6460245..33d99defe9 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -212,6 +212,7 @@ char * filter_path(const char * source) of chars containing the message to display (no terminal 0 required here) */ void syslog(int priority, const char *fmt, ...) { + char pipe_name[] = "\\\\.\\pipe\\"EVENTLOG_PIPE_NAME; char buf1[LARGEBUF+sizeof(DWORD)]; char buf2[LARGEBUF]; va_list ap; @@ -238,7 +239,7 @@ void syslog(int priority, const char *fmt, ...) memcpy(buf1+sizeof(DWORD),buf2,sizeof(buf2)); pipe = CreateFile( - EVENTLOG_PIPE_NAME, /* pipe name */ + pipe_name, /* pipe name */ GENERIC_WRITE, 0, /* no sharing */ NULL, /* default security attributes FIXME */ @@ -409,6 +410,9 @@ int send_to_named_pipe(const char * pipe_name, const char * data) HANDLE pipe; BOOL result = FALSE; DWORD bytesWritten = 0; + char buf[SMALLBUF]; + + snprintf(buf, sizeof(buf), "\\\\.\\pipe\\%s", pipe_name); pipe = CreateFile( pipe_name, From 1cd81af2760646e4c010ef488afe16e8b7d7159f Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 17 Sep 2012 09:28:37 +0000 Subject: [PATCH 187/218] Fix upssched regression due to CVE-2012-2944 Fossil-ID: SVN r3727 --- clients/upssched.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/clients/upssched.c b/clients/upssched.c index a5b09fe3cf..bd347d22b0 100644 --- a/clients/upssched.c +++ b/clients/upssched.c @@ -795,7 +795,7 @@ static void start_daemon(HANDLE lockfd) } memset(&sinfo,0,sizeof(sinfo)); if(!CreateProcess(module, NULL, NULL,NULL,FALSE,0,NULL,NULL,&sinfo,&pinfo)) { - fatal_with_errno(EXIT_FAILURE, "Can'tcreate child process"); + fatal_with_errno(EXIT_FAILURE, "Can't create child process"); } pipefd = open_sock(); @@ -1110,8 +1110,8 @@ static void sendcmd(const char *cmd, const char *arg1, const char *arg2) } #else - ret = WriteFile(pipefd,buf,strlen(buf),&bytesWritten,NULL); - if (ret == 0 || bytesWritten != strlen(buf)) { + ret = WriteFile(pipefd,enc,strlen(enc),&bytesWritten,NULL); + if (ret == 0 || bytesWritten != strlen(enc)) { upslogx(LOG_ERR, "write failed, trying again"); CloseHandle(pipefd); continue; @@ -1136,6 +1136,7 @@ static void sendcmd(const char *cmd, const char *arg1, const char *arg2) if (ret == WAIT_TIMEOUT || ret == WAIT_FAILED) { upslogx(LOG_ERR, "read confirmation failed, trying again"); + CloseHandle(pipefd); continue; } #endif From 0c881edc72b712b0f936f7efb4c5b9610f29fa44 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 18 Sep 2012 11:35:58 +0000 Subject: [PATCH 188/218] Fix communication with named pipe Fossil-ID: SVN r3729 --- common/wincompat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/wincompat.c b/common/wincompat.c index 33d99defe9..fd79e7e265 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -415,7 +415,7 @@ int send_to_named_pipe(const char * pipe_name, const char * data) snprintf(buf, sizeof(buf), "\\\\.\\pipe\\%s", pipe_name); pipe = CreateFile( - pipe_name, + buf, GENERIC_WRITE, 0, /* no sharing */ NULL, /* default security attributes FIXME */ From a4de4512df036989b22e4a068e286034bebb7987 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 18 Sep 2012 11:36:41 +0000 Subject: [PATCH 189/218] Typo in installer dialog box Fossil-ID: SVN r3730 --- scripts/Windows/Installer/NUT-Installer.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index 6b4813b26f..5629997914 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -30,7 +30,7 @@ After installling libusb-win32, run libUSB's Inf Wizard and choose your device.< Click Next to continue [Wizard]. - + @@ -58,7 +58,7 @@ After installling libusb-win32, run libUSB's Inf Wizard and choose your device.< Click Next to continue [Wizard]. - + 1. msys-1.0.dll - http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/msys-core/msys-1.0.16-1/ @@ -144,7 +144,7 @@ After installling libusb-win32, run libUSB's Inf Wizard and choose your device.< - +

    @@ -193,7 +193,7 @@ After installling libusb-win32, run libUSB's Inf Wizard and choose your device.< [DlgTitleFont]Change current destination folder - + @@ -635,7 +635,7 @@ Public License instead of this License. - + @@ -678,7 +678,7 @@ Public License instead of this License. Repairs errors in the most recent installation state - fixes missing or corrupt files, shortcuts and registry entries. - + @@ -740,7 +740,7 @@ Public License instead of this License. [DlgTitleFont]Ready to Install - + @@ -767,7 +767,7 @@ Public License instead of this License. [DlgTitleFont]Remove [ProductName] - + @@ -795,7 +795,7 @@ Public License instead of this License. [DlgTitleFont]Repair [ProductName] - + @@ -2080,4 +2080,4 @@ Public License instead of this License. LIBUSBINSTALL=1 - + \ No newline at end of file From 3ad74f459e37ccdb73baf2669bdf27374cf3390a Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Tue, 18 Sep 2012 11:37:52 +0000 Subject: [PATCH 190/218] update error logs Fossil-ID: SVN r3731 --- scripts/Windows/wininit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index f942720824..ffda7710ac 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -157,7 +157,7 @@ static void run_upsd() static void stop_upsd() { if ( sendsignal( UPSD_PIPE_NAME, COMMAND_STOP ) ) { - print_event(LOG_ERR, "Error stoping upsd"); + print_event(LOG_ERR, "Error stopping upsd (%d)",GetLastError()); } } @@ -176,7 +176,7 @@ static void run_upsmon() static void stop_upsmon() { if ( sendsignal( UPSMON_PIPE_NAME, COMMAND_STOP ) ) { - print_event(LOG_ERR, "Error sendind CTRL_BREAK to upsmon"); + print_event(LOG_ERR, "Error stopping upsmon (%d)",GetLastError()); } } From 7eff2b1618d2284656c440ffb81194d8680ae945 Mon Sep 17 00:00:00 2001 From: Frederic Bohe Date: Mon, 15 Oct 2012 08:30:12 +0000 Subject: [PATCH 191/218] Fix invalid memory allocation (fix a crash at exit time in upsmon) Fossil-ID: SVN r3754 --- common/wincompat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/wincompat.c b/common/wincompat.c index fd79e7e265..d80d1c647f 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -194,7 +194,7 @@ char * filter_path(const char * source) return NULL; } - res = xmalloc(strlen(source)); + res = xmalloc(strlen(source)+1); for(i=0,j=0;i<=strlen(source);i++) { if(source[i] != '"') { res[j] = source[i]; From 7012439a362ae22e87a7d79341ff5f2bfa32eba2 Mon Sep 17 00:00:00 2001 From: Arnaud Quette Date: Sun, 9 Dec 2012 19:57:56 +0000 Subject: [PATCH 192/218] Automated Windows cross compilation Preliminary support for automated Windows cross compilation, using MingGW-w64. A script is provided, with 32 and 64 bits compilation options, along with a documentation file Fossil-ID: SVN r3821 --- scripts/Windows/README | 102 +++++++++++++++++++++++++++++ scripts/Windows/build-mingw-nut.sh | 66 +++++++++++++++++++ 2 files changed, 168 insertions(+) create mode 100644 scripts/Windows/README create mode 100755 scripts/Windows/build-mingw-nut.sh diff --git a/scripts/Windows/README b/scripts/Windows/README new file mode 100644 index 0000000000..b7300d561f --- /dev/null +++ b/scripts/Windows/README @@ -0,0 +1,102 @@ +NUT and MS Windows +================== + +Introduction +------------ + +NUT is now also available for the Microsoft Windows platform. + +Cross compiling from Linux +-------------------------- + +Fortunately, you are not forced to have a real Windows system to compile NUT. +The following chapters will guide you through setting up up a +link:http://mingw-w64.sourceforge.net[MinGW-w64] build environment and +compiling NUT. + +MinGW-w64 build environment +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You will first need to setup a MinGW-w64 build environment. + +On Debian systems, use: + + # apt-get mingw-w64 + +On Redhat systems, use: + + # ??? + +You will also need pthread and mingw regex libraries. + +[NOTE] +================================================================================ + +When using the compilation approach, use the following HOST_FLAG, BUILD_FLAG +and CC, CFLAGS, LDFLAGS and PREFIX: + +- prefer to export ARCH="x86_64-w64-mingw32" or ARCH="i686-w64-mingw32" +- HOST_FLAG="--host=$ARCH" +- PREFIX=/usr/$ARCH + +- BUILD_FLAG="--build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE`" +Note that this is very Debian specific! + +- also export the following compilation flags: + + export CFLAGS+="-D_POSIX=1 -I/usr/$ARCH/include/" + export LDFLAGS+="-L/usr/$ARCH/lib/" + +================================================================================ + + +pthread library +^^^^^^^^^^^^^^^ + +On Debian, you can use the following packages repository: + + link:https://launchpad.net/~mingw-packages/+archive/ppa[MinGW PPA] + +On Redhat: FIXME + +//////////////////////////////////////////////////////////////////////////////// +http://fedoraproject.org/wiki/MinGW/CrossCompilerFramework +https://fedoraproject.org/wiki/Packaging:MinGW?rd=Packaging:MinGW_Future +https://fedoraproject.org/wiki/Packaging:MinGW_Old +//////////////////////////////////////////////////////////////////////////////// + +You can also compile it using: + + $ wget http://mirrors.kernel.org/sources.redhat.com/pthreads-win32/pthreads-w32-2-8-0-release.tar.gz + $ make -f GNUmakefile "CROSS=i686-w64-mingw32-" $BUILD_FLAG GC-inlined + $ cp *.dll /usr/i686-w64-mingw32/pthreads/lib/ + $ cp *.a /usr/i686-w64-mingw32/lib/ + $ cp pthread.h sched.h semaphore.h /usr/i686-w64-mingw32/pthreads/include + + +MinGW regex library +^^^^^^^^^^^^^^^^^^^ + +You can compile it using: + + $ wget http://netcologne.dl.sourceforge.net/project/mingw/Other/UserContributed/regex/mingw-regex-2.5.1/mingw-libgnurx-2.5.1-src.tar.gz + $ tar -zxf mingw-libgnurx-2.5.1-src.tar.gz + $ cd mingw-libgnurx-2.5.1 + $ ./configure --prefix=/usr/i686-w64-mingw32/ --host=i686-w64-mingw32 + $ make + $ make install + +Other requirements +^^^^^^^^^^^^^^^^^^ + +libusb, Net SNMP, ... + +Building NUT +~~~~~~~~~~~~ + +Use the following to compile NUT: + + $ cd scripts/Windows/ + $ ./build-mingw-nut.sh + +If everything goes fine, you will find a NUT installation tree in 'nut_install'. diff --git a/scripts/Windows/build-mingw-nut.sh b/scripts/Windows/build-mingw-nut.sh new file mode 100755 index 0000000000..83a096856a --- /dev/null +++ b/scripts/Windows/build-mingw-nut.sh @@ -0,0 +1,66 @@ +#!/bin/bash +# script to cross compile NUT for Windows from Linux using MinGW-w64 +# http://mingw-w64.sourceforge.net/ + +#set -x + +# default to update source then build +WINDIR=$(pwd) +TOP_DIR=$WINDIR/../.. +BUILD_DIR=$WINDIR/nut_build +INSTALL_DIR=$WINDIR/nut_install + +VER_OPT=2.6.5 +DEBUG=true + +# default to 32bits build +cmd=all32 +if [ -n "$1" ] ; then + cmd=$1 +fi + +# FIXME +# Stable version (download the latest stable archive) +# if [ ! -f nut-$VER_OPT.tar.gz ] ; then +# wget http://www.networkupstools.org/source/2.6/nut-$VER_OPT.tar.gz +# fi +# rm -rf nut-$VER_OPT +# tar -xzf nut-$VER_OPT.tar.gz +# mv nut-$VER_OPT $BUILD_DIR + +# In-place version (no download) +rm -rf $BUILD_DIR $INSTALL_DIR +cd ../.. +rm -f nut-?.?.?.tar.gz +make dist +SRC_ARCHIVE=$(ls nut-?.?.?.tar.gz) +cd scripts/Windows +tar -xzf ../../$SRC_ARCHIVE +mv nut-?.?.? $BUILD_DIR +cd $BUILD_DIR + +if [ "$cmd" == "all64" ] || [ "$cmd" == "b64" ] || [ "$cmd" == "all32" ] || [ "$cmd" == "b32" ] ; then + ARCH="x86_64-w64-mingw32" + if [ "$cmd" == "all32" ] || [ "$cmd" == "b32" ] ; then + ARCH="i686-w64-mingw32" + fi + + HOST_FLAG="--host=$ARCH" + # --build needs to be specified, beside of --host, to avoid Warning + # but this version is very Debian specific!!! + # FIXME: find something more generic + BUILD_FLAG="--build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE`" + export CC="$ARCH-gcc" + export PATH=/usr/$ARCH/bin:$PATH + + export CFLAGS+="-D_POSIX=1 -I/usr/$ARCH/include/" + export LDFLAGS+="-L/usr/$ARCH/lib/" + ./configure $HOST_FLAG $BUILD_FLAG --prefix=$INSTALL_DIR + make 1>/dev/null + make install + cd .. +else + echo "Usage:" + echo " $0 [all64 | b64 | all32 | b32]" + echo " Default: 'all32'" +fi From 622ec080cd5977aed1a067598c28f50ff7be00ad Mon Sep 17 00:00:00 2001 From: Arnaud Quette Date: Sun, 9 Dec 2012 19:58:41 +0000 Subject: [PATCH 193/218] Fix MingGW-w64 compilation Fossil-ID: SVN r3822 --- include/common.h | 2 +- include/wincompat.h | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/common.h b/include/common.h index cb52d5c6e8..0176020259 100644 --- a/include/common.h +++ b/include/common.h @@ -39,8 +39,8 @@ #ifndef WIN32 #include #else -#include #include +#include #include #endif #include diff --git a/include/wincompat.h b/include/wincompat.h index 87ad7e40a7..f670217d43 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -56,9 +56,15 @@ char * filter_path(const char * source); #define connect(h,n,l) sktconnect(h,n,l) #endif +#ifndef strcasecmp #define strcasecmp(a,b) _stricmp(a,b) +#endif +#ifndef snprintf #define snprintf _snprintf +#endif +#ifndef vsnprintf #define vsnprintf _vsnprintf +#endif int sktconnect(int fh, struct sockaddr * name, int len); int sktread(int fh, char *buf, int size); From 54cdcfb6a05c42a028f32010696e3ae00da08d11 Mon Sep 17 00:00:00 2001 From: Arnaud Quette Date: Sun, 9 Dec 2012 20:15:18 +0000 Subject: [PATCH 194/218] Forgotten build and distribution rules Fossil-ID: SVN r3823 --- scripts/Windows/Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/Windows/Makefile.am b/scripts/Windows/Makefile.am index 25d1480e7c..f2bfb8a8a4 100644 --- a/scripts/Windows/Makefile.am +++ b/scripts/Windows/Makefile.am @@ -5,6 +5,8 @@ AM_CFLAGS = -I$(top_srcdir)/include ../include/nut_version.h: FORCE (cd ../include/ && $(MAKE) $(AM_MAKEFLAGS) nut_version.h) +EXTRA_DIST = winevent.mc build-mingw-nut.sh README + FORCE: if HAVE_MINGW_RESGEN @@ -24,7 +26,6 @@ nut_LDADD = ../../common/libcommon.la winevent.o halt_SOURCES = halt.c -EXTRA_DIST = winevent.mc CLEANFILES = winevent.rc winevent.o winevent.h endif HAVE_MINGW_RESGEN From d9af842e11bfd8def384b8923914d7dcc36b57f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20BOHE?= Date: Thu, 26 Sep 2013 15:22:08 +0200 Subject: [PATCH 195/218] Some fixes after rebase --- docs/man/upsd.conf.txt | 105 +++ scripts/Windows/DriverInstaller/nutscan-usb.h | 108 --- scripts/java/Makefile.am | 15 - scripts/java/README | 19 - scripts/java/jNut/.gitignore | 1 - scripts/java/jNut/README | 77 --- scripts/java/jNut/pom.xml | 40 -- .../java/org/networkupstools/jnut/Client.java | 619 ------------------ .../org/networkupstools/jnut/Command.java | 100 --- .../java/org/networkupstools/jnut/Device.java | 279 -------- .../networkupstools/jnut/NutException.java | 107 --- .../org/networkupstools/jnut/Scanner.java | 590 ----------------- .../jnut/StringLineSocket.java | 137 ---- .../org/networkupstools/jnut/Variable.java | 120 ---- .../org/networkupstools/jnut/ClientTest.java | 113 ---- .../org/networkupstools/jnut/ScannerTest.java | 178 ----- scripts/java/jNutList/README | 30 - scripts/java/jNutList/pom.xml | 62 -- .../org/networkupstools/jnutlist/AppList.java | 112 ---- scripts/java/jNutWebAPI/README | 104 --- scripts/java/jNutWebAPI/pom.xml | 93 --- .../jnutwebapi/NutRestProvider.java | 206 ------ .../jnutwebapi/RestWSApplication.java | 38 -- .../jnutwebapi/ScannerProvider.java | 85 --- .../src/main/webapp/WEB-INF/web.xml | 41 -- tools/git-svn.authors | 21 - 26 files changed, 105 insertions(+), 3295 deletions(-) create mode 100644 docs/man/upsd.conf.txt delete mode 100644 scripts/Windows/DriverInstaller/nutscan-usb.h delete mode 100644 scripts/java/Makefile.am delete mode 100644 scripts/java/README delete mode 100644 scripts/java/jNut/.gitignore delete mode 100644 scripts/java/jNut/README delete mode 100644 scripts/java/jNut/pom.xml delete mode 100644 scripts/java/jNut/src/main/java/org/networkupstools/jnut/Client.java delete mode 100644 scripts/java/jNut/src/main/java/org/networkupstools/jnut/Command.java delete mode 100644 scripts/java/jNut/src/main/java/org/networkupstools/jnut/Device.java delete mode 100644 scripts/java/jNut/src/main/java/org/networkupstools/jnut/NutException.java delete mode 100644 scripts/java/jNut/src/main/java/org/networkupstools/jnut/Scanner.java delete mode 100644 scripts/java/jNut/src/main/java/org/networkupstools/jnut/StringLineSocket.java delete mode 100644 scripts/java/jNut/src/main/java/org/networkupstools/jnut/Variable.java delete mode 100644 scripts/java/jNut/src/test/java/org/networkupstools/jnut/ClientTest.java delete mode 100644 scripts/java/jNut/src/test/java/org/networkupstools/jnut/ScannerTest.java delete mode 100644 scripts/java/jNutList/README delete mode 100644 scripts/java/jNutList/pom.xml delete mode 100644 scripts/java/jNutList/src/main/java/org/networkupstools/jnutlist/AppList.java delete mode 100644 scripts/java/jNutWebAPI/README delete mode 100644 scripts/java/jNutWebAPI/pom.xml delete mode 100644 scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/NutRestProvider.java delete mode 100644 scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/RestWSApplication.java delete mode 100644 scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/ScannerProvider.java delete mode 100644 scripts/java/jNutWebAPI/src/main/webapp/WEB-INF/web.xml delete mode 100644 tools/git-svn.authors diff --git a/docs/man/upsd.conf.txt b/docs/man/upsd.conf.txt new file mode 100644 index 0000000000..b1d5d247a1 --- /dev/null +++ b/docs/man/upsd.conf.txt @@ -0,0 +1,105 @@ +UPSD.CONF(5) +============ + +NAME +---- + +upsd.conf - Configuration for Network UPS Tools upsd + +DESCRIPTION +----------- + +upsd uses this file to control access to the server and set some other +miscellaneous configuration values. This file contains details on +access controls, so keep it secure. Ideally, only the upsd process +should be able to read it. + +CONFIGURATION DIRECTIVES +------------------------ + +"MAXAGE 'seconds'":: + +upsd usually allows a driver to stop responding for up to 15 seconds +before declaring the data "stale". If your driver takes a very long +time to process updates but is otherwise operational, you can use MAXAGE +to make upsd wait longer. ++ +Most users should leave this at the default value. + +"STATEPATH 'path'":: + +Tell upsd to look for the driver state sockets in 'path' rather +than the default that was compiled into the program. + +"LISTEN 'interface' 'port'":: + +Bind a listening port to the interface specified by its Internet +address. This may be useful on hosts with multiple interfaces. +You should not rely exclusively on this for security, as it can be +subverted on many systems. ++ +Listen on TCP port 'port' instead of the default value which was +compiled into the code. This overrides any value you may have set +with 'configure --with-port'. If you don't change it with configure +or this value, upsd will listen on port 3493 for this interface. ++ +Multiple LISTEN addresses may be specified. The default is to bind to +127.0.0.1 if no LISTEN addresses are specified (and ::1 if IPv6 support is +compiled in). + + LISTEN 127.0.0.1 + LISTEN 192.168.50.1 + LISTEN ::1 + LISTEN 2001:0db8:1234:08d3:1319:8a2e:0370:7344 ++ +This parameter will only be read at startup. You'll need to restart +(rather than reload) upsd to apply any changes made here. + +"MAXCONN 'connections'":: + +This defaults to maximum number allowed on your system. Each UPS, each +LISTEN address and each client count as one connection. If the server +runs out of connections, it will no longer accept new incoming client +connections. Only set this if you know exactly what you're doing. + +"CERTFILE 'certificate file'":: + +When compiled with SSL support with OpenSSL backend, you can enter the +certificate file here. +The certificates must be in PEM format and must be sorted starting with +the subject's certificate (server certificate), followed by intermediate +CA certificates (if applicable_ and the highest level (root) CA. It should +end with the server key. See 'docs/security.txt' or the Security chapter of +NUT user manual for more information on the SSL support in NUT. + +"CERTPATH 'certificate database'":: + +When compiled with SSL support with NSS backend, you can enter the +certificate path here. +Certificates are stored in a dedicated database (splitted in 3 files). +Specify the path of the database directory. + +"CERTIDENT 'certificate name' 'database password'":: + +When compiled with SSL support with NSS backend, you can specify the +certificate name to retrieve from database to authenticate itself and +the password required to access certificate related private key. + +"CERTREQUEST 'certificate request level'":: + +When compiled with SSL support with NSS backend and client certificate +validation (disabled by default, see 'docs/security.txt'), +you can specify if upsd requests or requires client's' certificates. +Possible values are : +- '0' to not request to clients to provide any certificate +- '1' to require to all clients a certificate +- '2' to require to all clients a valid certificate + +SEE ALSO +-------- + +linkman:upsd[8], linkman:nutupsdrv[8], linkman:upsd.users[5] + +INTERNET RESOURCES +------------------ +The NUT (Network UPS Tools) home page: http://www.networkupstools.org/ diff --git a/scripts/Windows/DriverInstaller/nutscan-usb.h b/scripts/Windows/DriverInstaller/nutscan-usb.h deleted file mode 100644 index 0308dec293..0000000000 --- a/scripts/Windows/DriverInstaller/nutscan-usb.h +++ /dev/null @@ -1,108 +0,0 @@ -/* nutscan-usb - * Copyright (C) 2011 - Arnaud Quette - * - * 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 DEVSCAN_USB_H -#define DEVSCAN_USB_H - -typedef struct { - unsigned short vendorID; - unsigned short productID; - char* driver_name; -} usb_device_id_t; - -/* USB IDs device table */ -static usb_device_id_t usb_device_table[] = { - - { 0x0001, 0x0000, "blazer_usb" }, - { 0x03f0, 0x1f01, "bcmxcp_usb" }, - { 0x03f0, 0x1f02, "bcmxcp_usb" }, - { 0x03f0, 0x1f06, "usbhid-ups" }, - { 0x03f0, 0x1f08, "usbhid-ups" }, - { 0x03f0, 0x1f09, "usbhid-ups" }, - { 0x03f0, 0x1f0a, "usbhid-ups" }, - { 0x03f0, 0x1fe0, "usbhid-ups" }, - { 0x03f0, 0x1fe1, "usbhid-ups" }, - { 0x0463, 0x0001, "usbhid-ups" }, - { 0x0463, 0xffff, "usbhid-ups" }, - { 0x047c, 0xffff, "usbhid-ups" }, - { 0x050d, 0x0375, "usbhid-ups" }, - { 0x050d, 0x0551, "usbhid-ups" }, - { 0x050d, 0x0750, "usbhid-ups" }, - { 0x050d, 0x0751, "usbhid-ups" }, - { 0x050d, 0x0900, "usbhid-ups" }, - { 0x050d, 0x0910, "usbhid-ups" }, - { 0x050d, 0x0912, "usbhid-ups" }, - { 0x050d, 0x0980, "usbhid-ups" }, - { 0x050d, 0x1100, "usbhid-ups" }, - { 0x051d, 0x0002, "usbhid-ups" }, - { 0x051d, 0x0003, "usbhid-ups" }, - { 0x0592, 0x0002, "bcmxcp_usb" }, - { 0x05b8, 0x0000, "blazer_usb" }, - { 0x0665, 0x5161, "blazer_usb" }, - { 0x06da, 0x0002, "bcmxcp_usb" }, - { 0x06da, 0x0003, "blazer_usb" }, - { 0x06da, 0xffff, "usbhid-ups" }, - { 0x075d, 0x0300, "usbhid-ups" }, - { 0x0764, 0x0005, "usbhid-ups" }, - { 0x0764, 0x0501, "usbhid-ups" }, - { 0x0764, 0x0601, "usbhid-ups" }, - { 0x0925, 0x1234, "richcomm_usb" }, - { 0x09ae, 0x0001, "tripplite_usb" }, - { 0x09ae, 0x1003, "usbhid-ups" }, - { 0x09ae, 0x1007, "usbhid-ups" }, - { 0x09ae, 0x1008, "usbhid-ups" }, - { 0x09ae, 0x1009, "usbhid-ups" }, - { 0x09ae, 0x1010, "usbhid-ups" }, - { 0x09ae, 0x2005, "usbhid-ups" }, - { 0x09ae, 0x2007, "usbhid-ups" }, - { 0x09ae, 0x2008, "usbhid-ups" }, - { 0x09ae, 0x2009, "usbhid-ups" }, - { 0x09ae, 0x2010, "usbhid-ups" }, - { 0x09ae, 0x2011, "usbhid-ups" }, - { 0x09ae, 0x2012, "usbhid-ups" }, - { 0x09ae, 0x2013, "usbhid-ups" }, - { 0x09ae, 0x2014, "usbhid-ups" }, - { 0x09ae, 0x3008, "usbhid-ups" }, - { 0x09ae, 0x3009, "usbhid-ups" }, - { 0x09ae, 0x3010, "usbhid-ups" }, - { 0x09ae, 0x3011, "usbhid-ups" }, - { 0x09ae, 0x3012, "usbhid-ups" }, - { 0x09ae, 0x3013, "usbhid-ups" }, - { 0x09ae, 0x3014, "usbhid-ups" }, - { 0x09ae, 0x3015, "usbhid-ups" }, - { 0x09ae, 0x4001, "usbhid-ups" }, - { 0x09ae, 0x4002, "usbhid-ups" }, - { 0x09ae, 0x4003, "usbhid-ups" }, - { 0x09ae, 0x4004, "usbhid-ups" }, - { 0x09ae, 0x4005, "usbhid-ups" }, - { 0x09ae, 0x4006, "usbhid-ups" }, - { 0x09ae, 0x4007, "usbhid-ups" }, - { 0x09ae, 0x4008, "usbhid-ups" }, - { 0x0d9f, 0x00a2, "usbhid-ups" }, - { 0x0d9f, 0x00a3, "usbhid-ups" }, - { 0x0d9f, 0x00a4, "usbhid-ups" }, - { 0x0d9f, 0x00a5, "usbhid-ups" }, - { 0x0d9f, 0x00a6, "usbhid-ups" }, - { 0x0f03, 0x0001, "blazer_usb" }, - { 0x10af, 0x0001, "usbhid-ups" }, - { 0xffff, 0x0000, "blazer_usb" }, - /* Terminating entry */ - { -1, -1, NULL } -}; -#endif /* DEVSCAN_USB_H */ - diff --git a/scripts/java/Makefile.am b/scripts/java/Makefile.am deleted file mode 100644 index 83f5c1d43e..0000000000 --- a/scripts/java/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -# TODO: Java / Maven build integration - -EXTRA_DIST = README \ -jNut/pom.xml \ -jNut/README \ -jNut/src/main/java/org/networkupstools/jnut/Client.java \ -jNut/src/main/java/org/networkupstools/jnut/Command.java \ -jNut/src/main/java/org/networkupstools/jnut/Device.java \ -jNut/src/main/java/org/networkupstools/jnut/NutException.java \ -jNut/src/main/java/org/networkupstools/jnut/StringLineSocket.java \ -jNut/src/main/java/org/networkupstools/jnut/Variable.java \ -jNut/src/test/java/org/networkupstools/jnut/ClientTest.java \ -jNutList/pom.xml \ -jNutList/README \ -jNutList/src/main/java/org/networkupstools/jnutlist/AppList.java diff --git a/scripts/java/README b/scripts/java/README deleted file mode 100644 index 6996f1d2c0..0000000000 --- a/scripts/java/README +++ /dev/null @@ -1,19 +0,0 @@ -Java NUT Client files -~~~~~~~~~~~~~~~~~~~~~ - -This directory contains various NUT Client related java source files, written by -Emilien Kia, sponsored by Eaton, and released under GPL v2. - -* "jNut": this directory contains maven project and source files for jNut, -which is a Java abstraction bundle to access NUT server(s). -You can use it in Java programs to access NUT's upsd data server in a simple -way, without having to know the NUT protocol. - -* "jNutList": this directory contains maven project and source files for -jNutList, a simple Java example program using jNut which connect to an UPSD, -lists its ups and their variables and commands. - -* "jNutWebAPI": this directory contains maven project and source files for -jNutWebAPI, a simple Java web archive to access nut informations via REST -web services. - diff --git a/scripts/java/jNut/.gitignore b/scripts/java/jNut/.gitignore deleted file mode 100644 index eb5a316cbd..0000000000 --- a/scripts/java/jNut/.gitignore +++ /dev/null @@ -1 +0,0 @@ -target diff --git a/scripts/java/jNut/README b/scripts/java/jNut/README deleted file mode 100644 index b68eef2221..0000000000 --- a/scripts/java/jNut/README +++ /dev/null @@ -1,77 +0,0 @@ -jNut library -~~~~~~~~~~~~ - -This directory contains source files for the jNut library, -which is a Java abstraction bundle to access NUT server(s). -You can use it in Java programs to access NUT's upsd data server in a simple -way, without having to know the NUT protocol. - -jNut building requirements -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -jNut requires to be build : -- A Java JDK 6 correctly set in environment (ie bin folder in path) -- A Maven 3 installation set in environment (ie bin folder in path) with -sufficient configuration (internet connection, local repository) to let maven -get all plugins to make processes. - -jNut is written in Java SE 1.4 and is tuned to be compiled to Java 1.4 code -level so most of environment can use it. - -jNut building -^^^^^^^^^^^^^ - -Once JDK and Maven installed and configured, just go into the jNut directory -and type: - - mvn install - -The produced package called 'jNut-x.x-xxx.jar' is located in 'target' -subdirectory. - -jNut javadoc -^^^^^^^^^^^^ - -You can generate jNut javadoc by typing: - - mvn javadoc:javadoc - -Documentation will be generated in 'target/site/apidocs' subdirectory and its -entry point is located at 'target/site/apidocs/index.html'. - -Workspace cleaning -^^^^^^^^^^^^^^^^^^ - -The jNut workspace can be cleaned by removing the 'target' subdirectory or by -typing: - - mvn clean - -Unit test notes -^^^^^^^^^^^^^^^ - -jNut sources embed some unit tests in the 'src/test/java' subdirectory. -These tests are based on JUnit and are executed between compilation and -packaging phases at each build. - -Implementation notes -^^^^^^^^^^^^^^^^^^^^ - -Currently, jNut is not thread safe. It is not protected against concurrent -queries but queries to different clients can be done in parallel as there are -done on different sockets. - -Moreover, jNut have no connection preservation system so servers can break down -connections due to timeout. -Application using retrieved data must forget them when a disconnection occurs. -If the application want to maintain the connection, it must implement a -ping-pong mecanism itself. - -At present time, jNut do not support SSL connection. It is planned for near -future. - -Changelog -^^^^^^^^^ -* "0.2": Add nut-scanner. -* "0.1": Initial version with basic dialog with UPSD. - diff --git a/scripts/java/jNut/pom.xml b/scripts/java/jNut/pom.xml deleted file mode 100644 index b53b426904..0000000000 --- a/scripts/java/jNut/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ - - 4.0.0 - - org.networkupstools - jNut - 0.2-SNAPSHOT - jar - - jNut - http://maven.apache.org - - - UTF-8 - - - - - junit - junit - 3.8.1 - test - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 2.3.2 - - 1.4 - 1.4 - - - - - - diff --git a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Client.java b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Client.java deleted file mode 100644 index 474f812238..0000000000 --- a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Client.java +++ /dev/null @@ -1,619 +0,0 @@ -/* Client.java - - Copyright (C) 2011 Eaton - - 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 -*/ -package org.networkupstools.jnut; - -import java.io.IOException; -import java.net.UnknownHostException; -import java.util.ArrayList; - -/** - * A jNut client is start point to dialog to UPSD. - * It can connect to an UPSD then retrieve its device list. - * It support authentication by login/password. - *

    - * You can directly create and connect a client by using the - * Client(String host, int port, String login, String passwd) constructor - * or use a three phase construction: - *

      - *
    • empty constructor - *
    • setting host, port, login and password with setters - *
    • call empty connect() - *
    - *

    - * Objects retrieved by Client are attached (directly or indirectly) to it. - * If the connection is closed, attached objects must not be used anymore (GC). - *

    - * Note: The jNut Client does not support any reconnection nor ping mechanism, - * so the calling application must know the UPSD can timeout the connection. - *

    - * Note: Retrieved values are not valid along the time, they are valid at the - * precise moment they are retrieved. - * - * @author Emilien Kia - */ -public class Client { - - /** - * Host to which connect. - * Network name or IP. - * Default to "127.0.0.1" - */ - private String host = "127.0.0.1"; - - /** - * IP port. - * Default to 3493 - */ - private int port = 3493; - - /** - * Login to use to connect to UPSD. - */ - private String login = null; - - /** - * Password to use to connect to UPSD. - */ - private String passwd = null; - - /** - * Communication socket - */ - private StringLineSocket socket = null; - - - /** - * Get the host name or address to which client is (or will be) connected. - * @return Host name or address. - */ - public String getHost() { - return host; - } - - /** - * Set the host name (or address) to which the client will intend to connect to at next connection. - * @param host New host name or address. - */ - public void setHost(String host) { - this.host = host; - } - - /** - * Get the login with which the client is (or will be connected). - * @return The login. - */ - public String getLogin() { - return login; - } - - /** - * Set the login with which the client will intend to connect. - * @param login New login. - */ - public void setLogin(String login) { - this.login = login; - } - - /** - * Get the password with which the client is (or will be connected). - * @return The password. - */ - public String getPasswd() { - return passwd; - } - - /** - * Set the password with which the client will intend to connect. - * @param passwd New password. - */ - public void setPasswd(String passwd) { - this.passwd = passwd; - } - - /** - * Get the port to which client is (or will be) connected. - * @return Port number. - */ - public int getPort() { - return port; - } - - /** - * Set the port to which client is (or will be) connected. - * @param port Port number. - */ - public void setPort(int port) { - this.port = port; - } - - - - /** - * Default constructor. - */ - public Client() - { - } - - /** - * Connection constructor. - * Construct the Client object and intend to connect. - * Throw an exception if cannot connect. - * @param host Host to which connect. - * @param port IP port. - * @param login Login to use to connect to UPSD. - * @param passwd Password to use to connect to UPSD. - */ - public Client(String host, int port, String login, String passwd) throws IOException, UnknownHostException, NutException - { - connect(host, port, login, passwd); - } - - /** - * Intent to connect and authenticate to an UPSD with specified parameters. - * Throw an exception if cannot connect. - * @param host Host to which connect. - * @param port IP port. - * @param login Login to use to connect to UPSD. - * @param passwd Password to use to connect to UPSD. - */ - public void connect(String host, int port, String login, String passwd) throws IOException, UnknownHostException, NutException - { - this.host = host; - this.port = port; - this.login = login; - this.passwd = passwd; - connect(); - } - - /** - * Intent to connect to an UPSD with specified parameters without authentication. - * Throw an exception if cannot connect. - * @param host Host to which connect. - * @param port IP port. - */ - public void connect(String host, int port) throws IOException, UnknownHostException, NutException - { - this.host = host; - this.port = port; - connect(); - } - - /** - * Connection to UPSD with already specified parameters. - * Throw an exception if cannot connect. - */ - public void connect() throws IOException, UnknownHostException, NutException - { - // Force disconnect if another connection is alive. - if(socket!=null) - disconnect(); - - socket = new StringLineSocket(host, port); - - authenticate(); - } - - /** - * Intend to authenticate with specified login and password, overriding - * already defined ones. - * @param login - * @param passwd - * @throws IOException - * @throws NutException - */ - public void authenticate(String login, String passwd) throws IOException, NutException - { - this.login = login; - this.passwd = passwd; - authenticate(); - } - - /** - * Intend to authenticate with alread set login and password. - * @throws IOException - * @throws NutException - */ - public void authenticate() throws IOException, NutException - { - // Send login - if(login!=null && !login.isEmpty()) - { - String res = query("USERNAME", login); - if(!res.startsWith("OK")) - { - // Normaly response should be OK or ERR and nothing else. - throw new NutException(NutException.UnknownResponse, "Unknown response in Client.connect (USERNAME) : " + res); - } - } - // Send password - if(passwd!=null && !passwd.isEmpty()) - { - String res = query("PASSWORD", passwd); - if(!res.startsWith("OK")) - { - // Normaly response should be OK or ERR and nothing else. - throw new NutException(NutException.UnknownResponse, "Unknown response in Client.connect (PASSWORD) : " + res); - } - } - } - - /** - * Test if the client is connected to the UPSD. - * Note: it does not detect if the connection have been closed by server. - * @return True if connected. - */ - public boolean isConnected() - { - return socket!=null && socket.isConnected(); - } - - /** - * Disconnect. - */ - public void disconnect() - { - if(socket!=null) - { - try - { - if(socket.isConnected()) - socket.close(); - } - catch(IOException e) - { - e.printStackTrace(); - } - socket = null; - } - } - - /** - * Log out. - */ - public void logout() - { - if(socket!=null) - { - try - { - if(socket.isConnected()) - { - socket.write("LOGOUT"); - socket.close(); - } - } - catch(IOException e) - { - e.printStackTrace(); - } - socket = null; - } - } - - /** - * Merge an array of stings into on string, with a space ' ' separator. - * @param str First string to merge - * @param strings Additionnal strings to merge - * @param sep Separator. - * @return The merged string, empty if no source string. - */ - static String merge(String str, String[] strings) - { - String res = str; - if(strings!=null) - { - for(int n=0; n ""'. - * @param source String source to split. - * @return String couple with name and value. - */ - static String[] splitNameValueString(String source) - { - int pos = source.indexOf(' '); - if(pos<1) - return null; - String name = source.substring(0, pos); - String value = extractDoublequotedValue(source.substring(pos+1)); - if(value==null) - return null; - String[] res = new String[2]; - res[0] = name; - res[1] = value; - return res; - } - - /** - * Intend to extract a value from its doublequoted and escaped representation. - * @param source Source string to convert. - * @return Extracted value - */ - static String extractDoublequotedValue(String source) - { - // Test doublequote at begin and end of string, then remove them. - if(!(source.startsWith("\"") && source.endsWith("\""))) - return null; - source = source.substring(1, source.length()-1); - // Unescape it. - return unescape(source); - } - - /** - * Escape string with backslashes. - * @param str String to escape. - * @return Escaped string. - */ - static String escape(String str) - { - // Replace a backslash by two backslash (regexp) - str = str.replaceAll("\\\\", "\\\\\\\\"); - // Replace a doublequote by backslash-doublequote (regexp) - str = str.replaceAll("\"", "\\\\\""); - return str; - } - - /** - * Unescape string with backslashes. - * @param str String to unescape. - * @return Unescaped string. - */ - static String unescape(String str) - { - // Replace a backslash-doublequote by doublequote (regexp) - str = str.replaceAll("\\\\\"", "\""); - // Replace two backslash by a backslash (regexp) - str = str.replaceAll("\\\\\\\\", "\\\\"); - return str; - } - - /** - * Detect an UPSD ERR line. - * If found, parse it, construct and throw an NutException - * @param str Line to analyse. - * @throws NutException - */ - private void detectError(String str) throws NutException - { - if(str.startsWith("ERR ")) - { - String[] arr = str.split(" ", 3); - switch(arr.length) - { - case 2: - throw new NutException(arr[1]); - case 3: - throw new NutException(arr[1], arr[2]); - default: - throw new NutException(); - } - } - } - - /** - * Send a query line then read the response. - * Helper around query(String). - * @param query Query to send. - * @param subquery Sub query to send. - * @return The reply. - * @throws IOException - */ - protected String query(String query, String subquery) throws IOException, NutException - { - return query(query + " " + subquery); - } - - /** - * Send a query line then read the response. - * Helper around query(String, String ...). - * @param query Query to send. - * @param subquery Sub query to send. - * @param params Optionnal additionnal parameters. - * @return The reply. - * @throws IOException - */ - protected String query(String query, String subquery, String[] params) throws IOException, NutException - { - return query(query + " " + subquery, params); - } - - /** - * Send a query line then read the response. - * @param query Query to send. - * @param params Optionnal additionnal parameters. - * @return The reply. - * @throws IOException - */ - protected String query(String query, String [] params) throws IOException, NutException - { - query = merge(query, params); - return query(query); - } - - /** - * Send a query line then read the response. - * @param query Query to send. - * @return The reply. - * @throws IOException - */ - protected String query(String query) throws IOException, NutException - { - if(!isConnected()) - return null; - - socket.write(query); - String res = socket.read(); - detectError(res); - return res; - } - - /** - * Send a GET query line then read the reply and validate the response. - * @param subcmd GET subcommand to send. - * @param param Extra parameters - * @return GET result return by UPSD, without the subcommand and param prefix. - * @throws IOException - */ - protected String get(String subcmd, String param) throws IOException, NutException - { - String[] params = {param}; - return get(subcmd, params); - } - - /** - * Send a GET query line then read the reply and validate the response. - * @param subcmd GET subcommand to send. - * @param params Eventual extra parameters. - * @return GET result return by UPSD, without the subcommand and param prefix. - * @throws IOException - */ - protected String get(String subcmd, String [] params) throws IOException, NutException - { - if(!isConnected()) - return null; - - subcmd = merge(subcmd, params); - socket.write("GET " + subcmd); - String res = socket.read(); - if(res==null) - return null; - detectError(res); - if(res.startsWith(subcmd + " ")) - { - return res.substring(subcmd.length()+1); - } - else - { - return null; - } - } - - /** - * Send a LIST query line then read replies and validate them. - * @param subcmd LIST subcommand to send. - * @return LIST results return by UPSD, without the subcommand and param prefix. - * @throws IOException - */ - protected String[] list(String subcmd) throws IOException, NutException - { - return list(subcmd, (String[])null); - } - - /** - * Send a LIST query line then read replies and validate them. - * @param subcmd LIST subcommand to send. - * @param param Extra parameters. - * @return LIST results return by UPSD, without the subcommand and param prefix. - * @throws IOException - */ - protected String[] list(String subcmd, String param) throws IOException, NutException - { - String[] params = {param}; - return list(subcmd, params); - } - - /** - * Send a LIST query line then read replies and validate them. - * @param subcmd LIST subcommand to send. - * @param params Eventual extra parameters. - * @return LIST results return by UPSD, without the subcommand and param prefix. - * @throws IOException - */ - protected String[] list(String subcmd, String [] params) throws IOException, NutException - { - if(!isConnected()) - return null; - - subcmd = merge(subcmd, params); - socket.write("LIST " + subcmd); - String res = socket.read(); - if(res==null) - return null; - detectError(res); - if(!res.startsWith("BEGIN LIST " + subcmd)) - return null; - - ArrayList/**/ list = new ArrayList/**/(); - int sz = subcmd.length()+1; - while(true) - { - res = socket.read(); - detectError(res); - if(!res.startsWith(subcmd + " ")) - break; - list.add(res.substring(sz)); - } - if(!res.equals("END LIST " + subcmd)) - return null; - - return (String[])list.toArray(new String[list.size()]); - } - - - /** - * Returns the list of available devices from the NUT server. - * @return List of devices, empty if nothing, - * null if not connected or failed. - * - */ - public Device[] getDeviceList() throws IOException, NutException - { - String[] res = list("UPS"); - if(res==null) - return null; - - ArrayList/**/ list = new ArrayList/**/(); - for(int i=0; i - * It can be used to retrieve description and execute commands. - * A Command object can be retrieved from Device instance and can not be constructed directly. - * - * @author Emilien Kia - */ -public class Command { - /** - * Device to which command is attached - */ - Device device = null; - - /** - * Command name - */ - String name = null; - - /** - * Internally create a command. - * @param name Command name. - * @param device Device to which the command is attached. - */ - protected Command(String name, Device device) - { - this.device = device; - this.name = name; - } - - /** - * Return the device to which the command can be executed. - * @return Attached device. - */ - public Device getDevice() { - return device; - } - - /** - * Return the command name. - * @return Command name. - */ - public String getName() { - return name; - } - - /** - * Retrieve the command description from UPSD and store it in cache. - * @return Command description - * @throws IOException - */ - public String getDescription() throws IOException, NutException { - if(device!=null && device.getClient()!=null) - { - String[] params = {device.getName(), name}; - String res = device.getClient().get("CMDDESC", params); - return res!=null?Client.extractDoublequotedValue(res):null; - } - return null; - } - - /** - * Execute the instant command. - * @throws IOException - */ - public void execute() throws IOException, NutException { - if(device!=null && device.getClient()!=null) - { - String[] params = {device.getName(), name}; - String res = device.getClient().query("INSTCMD", params); - if(!res.equals("OK")) - { - // Normaly response should be OK or ERR and nothing else. - throw new NutException(NutException.UnknownResponse, "Unknown response in Command.execute : " + res); - } - } - } -} diff --git a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Device.java b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Device.java deleted file mode 100644 index 8f4fdc15d9..0000000000 --- a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Device.java +++ /dev/null @@ -1,279 +0,0 @@ -/* Device.java - - Copyright (C) 2011 Eaton - - 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 -*/ -package org.networkupstools.jnut; - -import java.io.IOException; -import java.util.ArrayList; - -/** - * Class representing a device attached to a Client. - *

    - * It can retrieve its description, its number of logins, its variable and command lists. - * A Device object can be retrieved from Client instance and can not be constructed directly. - * - * @author Emilien Kia - */ -public class Device { - - /** - * Client to which device is attached - */ - Client client = null; - - /** - * Device name - */ - String name = null; - - /** - * Internally create a device. - * @param name Device name. - * @param client Client to which the device is attached. - */ - protected Device(String name, Client client) - { - this.client = client; - this.name = name; - } - - /** - * Return the client to which the device is connected. - * @return Attached client. - */ - public Client getClient() { - return client; - } - - /** - * Return the device name. - * @return Device name. - */ - public String getName() { - return name; - } - - /** - * Retrieve the device description from UPSD and store it in cache. - * @return Device description - * @throws IOException - */ - public String getDescription() throws IOException, NutException { - if(client!=null) - { - return client.get("UPSDESC", name); - } - return null; - } - - /** - * Log in to the ups. - *

    - * Use this to log the fact that a system is drawing power from this UPS. - * The upsmon master will wait until the count of attached systems reaches - * 1 - itself. This allows the slaves to shut down first. - *

    - * NOTE: You probably shouldn't send this command unless you are upsmon, - * or a upsmon replacement. - * @throws IOException - * @throws NutException - */ - public void login() throws IOException, NutException { - if(client!=null) - { - String res = client.query("LOGIN", name); - if(!res.startsWith("OK")) - { - // Normaly response should be OK or ERR and nothing else. - throw new NutException(NutException.UnknownResponse, "Unknown response in Device.login : " + res); - } - } - } - - /** - * This function doesn't do much by itself. It is used by upsmon to make - * sure that master-level functions like FSD are available if necessary - * @throws IOException - * @throws NutException - */ - public void master() throws IOException, NutException { - if(client!=null) - { - String res = client.query("MASTER", name); - if(!res.startsWith("OK")) - { - // Normaly response should be OK or ERR and nothing else. - throw new NutException(NutException.UnknownResponse, "Unknown response in Device.master : " + res); - } - } - } - - /** - * Set the "forced shutdown" flag. - *

    - * upsmon in master mode is the primary user of this function. It sets this - * "forced shutdown" flag on any UPS when it plans to power it off. This is - * done so that slave systems will know about it and shut down before the - * power disappears. - *

    - * Setting this flag makes "FSD" appear in a STATUS request for this UPS. - * Finding "FSD" in a status request should be treated just like a "OB LB". - *

    - * It should be noted that FSD is currently a latch - once set, there is - * no way to clear it short of restarting upsd or dropping then re-adding - * it in the ups.conf. This may cause issues when upsd is running on a - * system that is not shut down due to the UPS event. - * @throws IOException - * @throws NutException - */ - public void setForcedShutdown() throws IOException, NutException { - if(client!=null) - { - String res = client.query("FSD", name); - if(!res.startsWith("OK")) - { - // Normaly response should be OK or ERR and nothing else. - throw new NutException(NutException.UnknownResponse, "Unknown response in Device.setForcedShutdown : " + res); - } - } - } - - /** - * Return the number of clients which have done LOGIN for this UPS. - * Force to retrieve it from UPSD and store it in cache. - * @return Number of clients, -1 if error. - * @throws IOException - */ - public int getNumLogin() throws IOException, NutException { - if(client!=null) - { - String res = client.get("NUMLOGINS", name); - return res!=null?Integer.parseInt(res):-1; - } - return -1; - } - - - /** - * Return the list of device variables from the NUT server. - * @return List of variables, empty if nothing, - * null if not connected or failed. - * @throws IOException - */ - public Variable[] getVariableList() throws IOException, NutException { - if(client==null) - return null; - - String[] res = client.list("VAR", name); - if(res==null) - return null; - - ArrayList/**/ list = new ArrayList/**/(); - for(int i=0; i*/ list = new ArrayList/**/(); - for(int i=0; i*/ list = new ArrayList/**/(); - for(int i=0; i - * Instance are thrown when an UPSD returns an error with an "ERR" directive. - * Moreover it can ben thrown with some extra errors like: - *

      - *
    • UNKNOWN-RESPONSE : The response is not understood - *
    - *

    - * A Nut exception has a (standard java exception message) message which correspond - * to error code returns by UPSD (like 'ACCESS-DENIED', 'UNKNOWN-UPS' ...). - * An extra string embed a more descriptive english message. - * - * @author Emilien Kia - */ -public class NutException extends java.lang.Exception{ - - public static String UnknownResponse = "UNKNOWN-RESPONSE"; - - public static String DriverNotConnected = "DRIVER-NOT-CONNECTED"; - - public String extra = ""; - - public NutException() - { - } - - public NutException(String message) - { - super(message); - } - - public NutException(String message, String extra) - { - super(message); - this.extra = extra; - } - - public NutException(Throwable cause) - { - super(cause); - } - - public NutException(String message, Throwable cause) - { - super(message, cause); - } - - public NutException(String message, String extra, Throwable cause) - { - super(message, cause); - this.extra = extra; - } - - /** - * Returns the extra message. - * @return Extra message if any. - */ - public String getExtra() { - return extra; - } - - /** - * Set the extra message. - * @param extra The new extra message. - */ - public void setExtra(String extra) { - this.extra = extra; - } - - /** - * Test is the exception corresponds to the specified name. - * @param name Name to test - * @return True if exception corresponds. - */ - public boolean is(String name) { - return getMessage()!=null&&getMessage().equals(name); - } - - /** - * Format an exception message. - * @return Exception message - */ - public String toString() { - return "[" + getClass().getSimpleName() + "]" + getMessage() + " : " + getExtra(); - } -} diff --git a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Scanner.java b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Scanner.java deleted file mode 100644 index ef3006af21..0000000000 --- a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Scanner.java +++ /dev/null @@ -1,590 +0,0 @@ -/* Scanner.java - -Copyright (C) 2011 Eaton - -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 - */ -package org.networkupstools.jnut; - -import java.io.BufferedReader; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * jNut scanner. - * Wrap calls to nut-scanner in java. - * - * Just, instantiate it, set options and nut-scanner path, then scan. - *

    - * Scanner scanner = new Scanner();
    - * scanner.setExecName("/usr/local/ups/bin/nut-scanner");
    - * scanner.setExecPath("/usr/local/ups/bin");
    - * scanner.setParam(Scanner.OPTION_MASK_CIDR, "192.168.1.1/24");
    - * Scanner.DiscoveredDevice[] devs = scanner.scan();
    - * 
    - * - * @author Emilien Kia - */ -public class Scanner { - - public static final int SCAN_USB = 1 /*<< 0*/; - public static final int SCAN_SNMP = 1 << 1; - public static final int SCAN_XML = 1 << 2; - public static final int SCAN_OLDNUT = 1 << 3; - public static final int SCAN_AVAHI = 1 << 4; - public static final int SCAN_IPMI = 1 << 5; - public static final int SCAN_COMPLETE = -1; - - public static final String OPTION_SCANNER_EXEC = "scanner_exec"; - public static final String OPTION_SCANNER_PATH = "scanner_path"; - public static final String OPTION_TIMEOUT = "timeout"; - public static final String OPTION_START_IP = "start_ip"; - public static final String OPTION_END_IP = "end_ip"; - public static final String OPTION_MASK_CIDR = "mask_cidr"; - public static final String OPTION_SNMPv1_COMMUNITY = "community"; - public static final String OPTION_SNMPv3_SECURITY_LEVEL = "secLevel"; - public static final String OPTION_SNMPv3_SECURITY_NAME = "secName"; - public static final String OPTION_SNMPv3_AUTHENTICATION_PROTOCOL = "authProtocol"; - public static final String OPTION_SNMPv3_AUTHENTICATION_PASSWORD = "authPassword"; - public static final String OPTION_SNMPv3_PRIVACY_PROTOCOL = "privProtocol"; - public static final String OPTION_SNMPv3_PRIVACY_PASSWORD = "privPassword"; - public static final String OPTION_NUT_UPSD_PORT = "port"; - - /** - * Result of a scan. - * @see Scanner#scan() - * Used to retrieve informations about devices found by a scan and - * their properties - */ - public static class DiscoveredDevice { - - String driver = null; - Map/**/ properties = new HashMap/**/(); - - /** - * Constructor. - * Can not be used by others than Scanner. - * @param drv Driver - * @param props Extra properties - */ - DiscoveredDevice(String drv, Map props) { - driver = drv; - if (props != null) { - properties = props; - } - } - - /** - * Retrieve the name of driver used by device. - * @return Driver name - */ - public String getDriver() { - return driver; - } - - /** - * Retrieve the map of device properties. - * @return Device property map - */ - public Map/**/ getProperties() { - return properties; - } - - /** - * Retrieve a device property if exists. - * @param name Name of the property to retrieve. - * @return Property value or null if not set. - */ - public String getProperty(String name) { - return (String) properties.get(name); - } - - /** - * Test if the device has a property. - * @param name Name of the property. - * @return True if the property is set. - */ - public boolean hasProperty(String name) { - return properties.containsKey(name); - } - } - - static final String NUT_SCANNNER_EXEC_NAME = "nut-scanner"; - static final String PARAM_PARSABLE = "-P"; - static final String PARAM_QUIET = "-q"; - static final String PARAM_SCAN_USB = "-U"; - static final String PARAM_SCAN_SNMP = "-S"; - static final String PARAM_SCAN_XML = "-M"; - static final String PARAM_SCAN_OLDNUT = "-O"; - static final String PARAM_SCAN_AVAHI = "-A"; - static final String PARAM_SCAN_IPMI = "-I"; - static final String PARAM_SCAN_COMPLETE = "-C"; - static final String PARAM_TIMEOUT = "-t"; - static final String PARAM_START_IP = "-s"; - static final String PARAM_END_IP = "-e"; - static final String PARAM_MASK_CIDR = "-m"; - static final String PARAM_SNMPv1_COMMUNITY = "-c"; - static final String PARAM_SNMPv3_SECURITY_LEVEL = "-l"; - static final String PARAM_SNMPv3_SECURITY_NAME = "-u"; - static final String PARAM_SNMPv3_AUTHENTICATION_PROTOCOL = "-a"; - static final String PARAM_SNMPv3_AUTHENTICATION_PASSWORD = "-A"; - static final String PARAM_SNMPv3_PRIVACY_PROTOCOL = "-x"; - static final String PARAM_SNMPv3_PRIVACY_PASSWORD = "-X"; - static final String PARAM_NUT_UPSD_PORT = "-p"; - static final String[] PARAM_COUPLE_DEFINITION = { - OPTION_TIMEOUT, PARAM_TIMEOUT, - OPTION_START_IP, PARAM_START_IP, - OPTION_END_IP, PARAM_END_IP, - OPTION_MASK_CIDR, PARAM_MASK_CIDR, - OPTION_SNMPv1_COMMUNITY, PARAM_SNMPv1_COMMUNITY, - OPTION_SNMPv3_SECURITY_LEVEL, PARAM_SNMPv3_SECURITY_LEVEL, - OPTION_SNMPv3_SECURITY_NAME, PARAM_SNMPv3_SECURITY_NAME, - OPTION_SNMPv3_AUTHENTICATION_PROTOCOL, PARAM_SNMPv3_AUTHENTICATION_PROTOCOL, - OPTION_SNMPv3_AUTHENTICATION_PASSWORD, PARAM_SNMPv3_AUTHENTICATION_PASSWORD, - OPTION_SNMPv3_PRIVACY_PROTOCOL, PARAM_SNMPv3_PRIVACY_PROTOCOL, - OPTION_SNMPv3_PRIVACY_PASSWORD, PARAM_SNMPv3_PRIVACY_PASSWORD, - OPTION_NUT_UPSD_PORT, PARAM_NUT_UPSD_PORT - }; - - /** Type of scan, union of SCAN_* flags. */ - int scanType = SCAN_COMPLETE; - /** Map of scan parameters. */ - Map/**/ config = null; - - /** - * Default constructor (scan for all device types). - */ - public Scanner() { - } - - /** - * Constructor with device types. - * Construct a scanner object with specifying what type of scan to do. - * @param scanType Type of scan, union of SCAN_* flags. - */ - public Scanner(int scanType) { - this.scanType = scanType; - } - - /** - * Constructor with device types and scan parameters. - * Construct a scanner object with specifying what type of scan to do and - * extra scan parameters. - * @param scanType Type of scan, union of SCAN_* flags. - * @param config Map of extra parameters, names are OPTION_*. - */ - public Scanner(int scanType, Map/**/ config) { - this.scanType = scanType; - this.config = config; - } - - /** - * Retrieve nut-scanner executable name (with location if any). - * Default to "nut-scanner". - * @return nut-scanner executable name - */ - public String getExecName() { - return config!=null?(String)config.get(OPTION_SCANNER_EXEC):null; - } - - /** - * Set nut-scanner executable name (with location if any). - * @param value nut-scanner executable name - */ - public void setExecName(String value) { - setParam(OPTION_SCANNER_EXEC, value); - } - - /** - * Retrieve nut-scanner executable path. - * The directory in which nut-scanner will be launched. - * @return nut-scanner executable path - */ - public String getExecPath() { - return config!=null?(String)config.get(OPTION_SCANNER_PATH):null; - } - - /** - * Set nut-scanner executable path. - * The directory in which nut-scanner will be launched. - * @param value nut-scanner executable path - */ - public void setExecPath(String value) { - setParam(OPTION_SCANNER_PATH, value); - } - - /** - * Retrieve scanner extra parameters like snmp community name or passwords. - * @return Map of parameters. - */ - public Map getConfig() { - return config; - } - - /** - * Set the scanner extra parameters. - * @param map Map of parameters. - */ - public void setConfig(Map config) { - this.config = config; - } - - /** - * Set a scanner extra parameter. - * @param name Name of the parameter. - * @param value Value of the parameter. - */ - public void setParam(String name, String value) { - if (config == null) { - config = new HashMap/**/(); - } - config.put(name, value); - } - - /** - * Remove a scanner extra parameter. - * @param name Name of the parameter to remove. - */ - public void removeParam(String name) { - if (config != null) { - config.remove(name); - } - } - - /** - * Retrieve a scanner extra parameter. - * @param name Name of the parameter. - * @return Value of the parameter, null if not found. - */ - public String getParam(String name) { - if (config == null) { - return (String)config.get(name); - } - return null; - } - - /** - * Test if a scanner has an extra parameter. - * @param name Name of the parameter. - * @return True if the scanner has the parameter set. - */ - public boolean hasParam(String name) { - if (config == null) { - return config.get(name)!=null; - } - return false; - } - - /** - * Retrieve the scan type. - * @return Union of SCAN_* flags. - */ - public int getScanType() { - return scanType; - } - - /** - * Set the scan type. - * @param scanType Union of SCAN_* flags. - */ - public void setScanType(int scanType) { - this.scanType = scanType; - } - - /** - * Execute the scan. - * @return Array of found DiscoveredDevice, null if a problem occurs, - * empty if no one found. - * @throws IOException - */ - public DiscoveredDevice[] scan() throws IOException { - // Launch the scanner in a slave process and parse the stdout result. - String[] params = generateCommandParameters(); - Runtime runtime = Runtime.getRuntime(); - Process process = null; - if (params != null && params.length > 0 && runtime != null) { - String localExecPath = getExecPath(); - File dir = null; - - if (localExecPath != null && !localExecPath.isEmpty()) { - dir = new File(localExecPath); - if (!dir.exists() || !dir.isDirectory()) { - dir = null; - } - } - if (dir != null) { - process = runtime.exec(params, null, dir); - } else { - process = runtime.exec(params); - } - } - if (process != null) { - DiscoveredDevice[] res = processScanResult(process); - try{ - if(process.exitValue()==0) - return res; - }catch(IllegalThreadStateException e){ - return res; - } - } - return null; - } - - /** - * Parse the result produced by the nut-scanner process and return it. - * @param process Process of nut-scanner. - * @return Array of found DiscoveredDevice, null if a problem occurs, - * empty if no one found - * @throws IOException - */ - DiscoveredDevice[] processScanResult(Process process) throws IOException { - List/**/ list = new ArrayList/**/(); - InputStream is = process.getInputStream(); - BufferedReader in = new BufferedReader(new InputStreamReader(is)); - String line; - for (line = in.readLine(); line != null; line = in.readLine()) { - DiscoveredDevice dev = scanLine(line); - if (dev != null) { - list.add(dev); - } - } - return (DiscoveredDevice[]) list.toArray(new DiscoveredDevice[list.size()]); - } - - /** - * Parse a line of result from nut-scanner and convert it to DiscoveredDevice. - * @param line Line of nut-scanner result. - * @return The corresponding DiscoveredDevice, or null if a problem occurs. - */ - static DiscoveredDevice scanLine(String line) { - String driver = null; - Map conf = new HashMap/**/(); - - - // Find driver name - int pos = line.indexOf(':'); - if (pos <= 0) { - // No driver name, it - return null; - } - driver = line.substring(0, pos); - pos++; - - // Process key[=value] pairs with Finished State Machine - int state = 0; - String temp = ""; - String key = ""; - char oldc = 0; - boolean isSpecial = false; - while (pos < line.length()) { - char c = line.charAt(pos++); - switch (state) { - case 0: // Initial, key content - { - if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c == '_')) { - temp += c; - } else if (c == '=') { - // Find the '=' key/value separator - if (temp.length() > 0) { - key = temp; - temp = ""; - state = 1; - }else{ - // Bad format - return null; - } - } else if (c == ',') { - // Find the ',' key/value separator (no value, key only) - conf.put(temp, null); - temp = ""; - }else{ - // Bad format - return null; - } - break; - } - case 1: // start value content - { - isSpecial = false; - if (c == '"') { - state = 2; // Quoted value - } else { - temp += c; - state = 3; // Unquoted value - } - break; - } - case 2: // Quoted value - { - if (isSpecial) { - temp += "\\"; - isSpecial = false; - temp += c; - } else if (c == '\\') { - isSpecial = true; - } else if (c == '"') { - conf.put(key, Client.unescape(temp)); - key = temp = ""; - state = 4; // Wait for a ',' separator - } else { - temp += c; - } - break; - } - case 3: // Unquoted value - { - if (c != ',') { - temp += c; - } else { - conf.put(key, temp); - key = temp = ""; - state = 0; // Wait for a new key - } - break; - } - case 4: // Wait for ',' separator - { - if (c == ',') { - state = 0; - } else { - // Bad format - return null; - } - break; - } - default: //Out of known states, must not occurs - { - // Bad format - return null; - } - } - } - // Out of FSM, end of line - switch (state) { - case 0: // Initial, key content - { - if (temp.length() > 0) { - conf.put(temp, null); // Add the last key-only key/value member - } - break; - } - case 1: // start value content - { - conf.put(temp, ""); // Add the last key/value with empty (not null) value - break; - } - case 2: // Quoted value - { - // should not occurs : not closed quoted value - conf.put(key, Client.unescape(temp)); - break; - } - case 3: // Unquoted value - { - // Correct end of string, store it. - conf.put(key, temp); - break; - } - case 4: // Wait for ',' separator - { - // Do nothing, thats ok - break; - } - default: //Out of known states, must not occurs - { - break; - } - } - - return new DiscoveredDevice(driver, conf); - } - - /** - * Generate an array of String representing command arguments to pass to - * nut-scanner, when launching it. - * @return Array of String of command arguments. - */ - String[] generateCommandParameters() { - ArrayList/**/ list = new ArrayList/**/(); - - // Command name - String localExecName = getExecName(); - if (localExecName != null && !localExecName.isEmpty()) { - list.add(localExecName); - } else { - list.add(NUT_SCANNNER_EXEC_NAME); - } - list.add(PARAM_PARSABLE); - list.add(PARAM_QUIET); - - // Scan Type - int type = getScanType(); - if (type == SCAN_COMPLETE) { - list.add(PARAM_SCAN_COMPLETE); - } else { - if ((type & SCAN_USB) != 0) { - list.add(PARAM_SCAN_USB); - } - if ((type & SCAN_SNMP) != 0) { - list.add(PARAM_SCAN_SNMP); - } - if ((type & SCAN_XML) != 0) { - list.add(PARAM_SCAN_XML); - } - if ((type & SCAN_OLDNUT) != 0) { - list.add(PARAM_SCAN_OLDNUT); - } - if ((type & SCAN_AVAHI) != 0) { - list.add(PARAM_SCAN_AVAHI); - } - if ((type & SCAN_IPMI) != 0) { - list.add(PARAM_SCAN_IPMI); - } - } - - // Options - Map/**/ conf = getConfig(); - Set/**/ set = conf != null ? conf.entrySet() : null; - if (set != null) { - Iterator iter = set.iterator(); - while (iter.hasNext()) { - Map.Entry/**/ entry = (Map.Entry) iter.next(); - if (entry != null) { - String name = (String) entry.getKey(); - String value = (String) entry.getValue(); - if (name != null && !name.isEmpty()) { - for (int i = 0; i < PARAM_COUPLE_DEFINITION.length; i += 2) { - if (name.equals(PARAM_COUPLE_DEFINITION[i])) { - list.add(PARAM_COUPLE_DEFINITION[i + 1]); - list.add(value); - break; - } - } - } - } - } - } - - return (String[]) list.toArray(new String[list.size()]); - } -} diff --git a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/StringLineSocket.java b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/StringLineSocket.java deleted file mode 100644 index fe39b71d71..0000000000 --- a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/StringLineSocket.java +++ /dev/null @@ -1,137 +0,0 @@ -/* StringLineSocket.java - - Copyright (C) 2011 Eaton - - 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 -*/ -package org.networkupstools.jnut; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.net.Socket; -import java.net.UnknownHostException; - -/** - * Class representing a socket, internally used to communicate with UPSD. - * Abstract some stream mechanisms. - * - * @author Emilien Kia - */ -class StringLineSocket { - - /** - * Real internal TCP socket. - */ - Socket socket = null; - - /** - * Writer to the socket. - */ - private OutputStreamWriter writer = null; - - /** - * Reader from the socket. - */ - private BufferedReader reader = null; - - /** - * Create a new line socket. - */ - public StringLineSocket(){ - - } - - /** - * Create a new line socket and connect it. - * @param host Host to connect to - * @param port Port to connect to - * @throws UnknownHostException - * @throws IOException - */ - public StringLineSocket(String host, int port) throws UnknownHostException, IOException{ - connect(host, port); - } - - /** - * Connect a new line socket. - * @param host Host to connect to - * @param port Port to connect to - * @throws UnknownHostException - * @throws IOException - */ - public void connect(String host, int port) throws UnknownHostException, IOException{ - socket = new Socket(host, port); - if(socket!=null) - { - reader = new BufferedReader(new InputStreamReader( - socket.getInputStream())); - writer = new OutputStreamWriter(socket.getOutputStream()); - } - } - - /** - * Close the socket. - */ - public void close() throws IOException{ - if(socket!=null){ - writer.close(); - reader.close(); - socket.close(); - socket = null; - writer = null; - reader = null; - } - } - - /** - * Test if the soecket is connected. - * @return True if connected. - */ - public boolean isConnected() { - return socket!=null && socket.isConnected() && !socket.isClosed(); - } - - /** - * Write a line follow by a '\n' character. - * @param line - * @throws IOException - */ - public void write(String line) throws IOException - { - if(isConnected()) - { - writer.write(line + "\n"); - writer.flush(); - } - } - - /** - * Read a line terminated by a '\n'. - * @return The line without the ending '\n' - * @throws IOException - */ - public String read() throws IOException - { - if(isConnected()) - { - String res = reader.readLine(); - return res; - } - return ""; - } - -} diff --git a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Variable.java b/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Variable.java deleted file mode 100644 index fce6b0bf64..0000000000 --- a/scripts/java/jNut/src/main/java/org/networkupstools/jnut/Variable.java +++ /dev/null @@ -1,120 +0,0 @@ -/* Variable.java - - Copyright (C) 2011 Eaton - - 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 -*/ -package org.networkupstools.jnut; - -import java.io.IOException; - -/** - * Class representing a variable of a device. - *

    - * It can be used to get and set its value (if possible). - * A Variable object can be retrieved from Device instance and can not be constructed directly. - * - * @author Emilien Kia - */ -public class Variable { - /** - * Device to which variable is attached - */ - Device device = null; - - /** - * Variable name - */ - String name = null; - - /** - * Internally create a variable. - * @param name Variable name. - * @param device Device to which the variable is attached. - */ - protected Variable(String name, Device device) - { - this.device = device; - this.name = name; - } - - /** - * Return the device to which the variable is related. - * @return Attached device. - */ - public Device getDevice() { - return device; - } - - /** - * Return the variable name. - * @return Command name. - */ - public String getName() { - return name; - } - - /** - * Retrieve the variable value from UPSD and store it in cache. - * @return Variable value - * @throws IOException - */ - public String getValue() throws IOException, NutException { - if(device!=null && device.getClient()!=null) - { - String[] params = {device.getName(), name}; - String res = device.getClient().get("VAR", params); - return res!=null?Client.extractDoublequotedValue(res):null; - } - return null; - } - - /** - * Retrieve the variable description from UPSD and store it in cache. - * @return Variable description - * @throws IOException - */ - public String getDescription() throws IOException, NutException { - if(device!=null && device.getClient()!=null) - { - String[] params = {device.getName(), name}; - String res = device.getClient().get("DESC", params); - return res!=null?Client.extractDoublequotedValue(res):null; - } - return null; - } - - /** - * Set the variable value. - * Note the new value can be applied with a little delay depending of UPSD and connection. - * @param value New value for the variable - * @throws IOException - */ - public void setValue(String value) throws IOException, NutException { - if(device!=null && device.getClient()!=null) - { - String[] params = {"VAR", device.getName(), - name, " \"" + Client.escape(value) + "\""}; - String res = device.getClient().query("SET", params); - if(!res.equals("OK")) - { - // Normaly response should be OK or ERR and nothing else. - throw new NutException(NutException.UnknownResponse, "Unknown response in Variable.setValue : " + res); - } - } - } - - // TODO Add query for type, enum and range values -} diff --git a/scripts/java/jNut/src/test/java/org/networkupstools/jnut/ClientTest.java b/scripts/java/jNut/src/test/java/org/networkupstools/jnut/ClientTest.java deleted file mode 100644 index e3bce728fd..0000000000 --- a/scripts/java/jNut/src/test/java/org/networkupstools/jnut/ClientTest.java +++ /dev/null @@ -1,113 +0,0 @@ -/* ClientTest.java - - Copyright (C) 2011 Eaton - - 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 -*/ -package org.networkupstools.jnut; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -/** - * Unit test for simple App. - */ -public class ClientTest extends TestCase -{ - /** - * Create the test case - * - * @param testName name of the test case - */ - public ClientTest( String testName ) - { - super( testName ); - } - - /** - * @return the suite of tests being tested - */ - public static Test suite() - { - return new TestSuite( ClientTest.class ); - } - - /** - * Escape function test. - */ - public void testEscape() - { - assertEquals("Empty string", "", Client.escape("")); - assertEquals("Simple string", "hello", Client.escape("hello")); - assertEquals("Internal doublequote", "he\\\"llo", Client.escape("he\"llo")); - assertEquals("Internal backslash", "he\\\\llo", Client.escape("he\\llo")); - assertEquals("Internal backslash and doublequote", "he\\\\\\\"llo", Client.escape("he\\\"llo")); - assertEquals("Initial and final doublequote", "\\\"hello\\\"", Client.escape("\"hello\"")); - } - - /** - * Unescape function test. - */ - public void testUnescape() - { - assertEquals("Empty string", "", Client.unescape("")); - assertEquals("Simple string", "hello", Client.unescape("hello")); - assertEquals("Internal doublequote", "he\"llo", Client.unescape("he\\\"llo")); - assertEquals("Internal backslash", "he\\llo", Client.unescape("he\\\\llo")); - assertEquals("Internal backslash and doublequote", "he\\\"llo", Client.unescape("he\\\\\\\"llo")); - assertEquals("Initial and final doublequote", "\"hello\"", Client.unescape("\\\"hello\\\"")); - } - - /** - * extractDoublequotedValue function test. - */ - public void testExtractDoublequotedValue() - { - assertNull("Empty string", Client.extractDoublequotedValue("")); - assertNull("Non doublequoted string", Client.extractDoublequotedValue("hello")); - assertNull("No begining doublequote", Client.extractDoublequotedValue("hello\"")); - assertNull("No ending doublequote", Client.extractDoublequotedValue("\"hello")); - assertEquals("Simple string", "hello", Client.extractDoublequotedValue("\"hello\"")); - assertEquals("String with doublequote", "he\"llo", Client.extractDoublequotedValue("\"he\\\"llo\"")); - assertEquals("String with backslash", "he\\llo", Client.extractDoublequotedValue("\"he\\\\llo\"")); - assertEquals("String with backslash and doublequote", "he\\\"llo", Client.extractDoublequotedValue("\"he\\\\\\\"llo\"")); - } - - /** - * splitNameValueString function test. - */ - public void testSplitNameValueString() - { - String[] res; - assertNull("Empty string", Client.splitNameValueString("")); - assertNull("One word string", Client.splitNameValueString("name")); - assertNull("Non doublequoted string", Client.extractDoublequotedValue("name value")); - assertNull("No begining doublequote", Client.extractDoublequotedValue("name value\"")); - assertNull("No ending doublequote", Client.extractDoublequotedValue("name \"value")); - res = Client.splitNameValueString("name \"value\""); - assertEquals("Simple name/value (name)", "name", res[0]); - assertEquals("Simple name/value (value)", "value", res[1]); - res = Client.splitNameValueString("name \"complex value\""); - assertEquals("Simple name / complex value (name)", "name", res[0]); - assertEquals("Simple name / complex value (value)", "complex value", res[1]); - res = Client.splitNameValueString("name \"complex\\\\value\""); - assertEquals("Simple name / backslash value (name)", "name", res[0]); - assertEquals("Simple name / backslash value (value)", "complex\\value", res[1]); - res = Client.splitNameValueString("name \"complex\\\"value\""); - assertEquals("Simple name / doublequote value (name)", "name", res[0]); - assertEquals("Simple name / doublequote value (value)", "complex\"value", res[1]); - } -} diff --git a/scripts/java/jNut/src/test/java/org/networkupstools/jnut/ScannerTest.java b/scripts/java/jNut/src/test/java/org/networkupstools/jnut/ScannerTest.java deleted file mode 100644 index 255489a4f8..0000000000 --- a/scripts/java/jNut/src/test/java/org/networkupstools/jnut/ScannerTest.java +++ /dev/null @@ -1,178 +0,0 @@ -/* ScannerTest.java - - Copyright (C) 2011 Eaton - - 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 -*/ -package org.networkupstools.jnut; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - - -/** - * Unit test for scanner. - */ -public class ScannerTest extends TestCase { - /** - * Create the test case - * - * @param testName name of the test case - */ - public ScannerTest( String testName ) - { - super( testName ); - } - - /** - * @return the suite of tests being tested - */ - public static Test suite() - { - return new TestSuite( ScannerTest.class ); - } - - /** - * Scan line test. - */ - public void testScanLineOk() - { - String line = "SNMP:driver=\"snmp-ups\",port=\"192.168.1.1\",desc=\"Evolution\",mibs=\"mge\",community=\"public\""; - Scanner.DiscoveredDevice dev = Scanner.scanLine(line); - assertNotNull("scanLine must return a DiscoveredDevice", dev); - assertEquals("scanLine must return the correct driver", "SNMP", dev.getDriver()); - assertEquals("scanLine must return the correct driver name", "snmp-ups", dev.getProperty("driver")); - assertEquals("scanLine must return the correct port", "192.168.1.1", dev.getProperty("port")); - } - - // Tool function, find a string as memeber of array. - static boolean findStringInArray(String str, String[] arr){ - if(arr!=null) - { - for(int i=0; i - 4.0.0 - - org.networkupstools - jNutList - 0.1-SNAPSHOT - jar - - jNutList - http://maven.apache.org - - - UTF-8 - - - - - junit - junit - 3.8.1 - test - - - ${project.groupId} - jNut - 0.1-SNAPSHOT - - - - - - - - maven-assembly-plugin - 2.2.1 - - - jar-with-dependencies - - - - org.networkupstools.jnutlist.AppList - - - - - - make-assembly - package - - single - - - - - - - - diff --git a/scripts/java/jNutList/src/main/java/org/networkupstools/jnutlist/AppList.java b/scripts/java/jNutList/src/main/java/org/networkupstools/jnutlist/AppList.java deleted file mode 100644 index a15452d624..0000000000 --- a/scripts/java/jNutList/src/main/java/org/networkupstools/jnutlist/AppList.java +++ /dev/null @@ -1,112 +0,0 @@ -/* AppList.java - - Copyright (C) 2011 Eaton - - 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 -*/ -package org.networkupstools.jnutlist; - -import java.io.IOException; -import java.net.UnknownHostException; -import org.networkupstools.jnut.*; - - -public class AppList -{ - - public static void main( String[] args ) - { - String host = args.length>=1?args[0]:"localhost"; - int port = args.length>=2?Integer.valueOf(args[1]).intValue():3493; - String login = args.length>=3?args[2]:""; - String pass = args.length>=4?args[3]:""; - - System.out.println( "jNutList connecting to " + login+":"+pass+"@"+host+":"+port ); - - Client client = new Client(); - try { - client.connect(host, port, login, pass); - Device[] devs = client.getDeviceList(); - if(devs!=null) - { - for(int d=0; d - 4.0.0 - - org.networkupstools - jNutWebAPI - 0.2-SNAPSHOT - war - - jNutWebAPI - - - ${project.build.directory}/endorsed - UTF-8 - - - - - ${project.groupId} - jNut - ${project.version} - - - org.apache.wink - wink-server - 1.1.3-incubating - - - javax - javaee-web-api - 6.0 - provided - - - - junit - junit - 4.8.2 - test - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 2.3.2 - - 1.6 - 1.6 - - ${endorsed.dir} - - - - - org.apache.maven.plugins - maven-war-plugin - 2.1.1 - - false - - - - org.apache.maven.plugins - maven-dependency-plugin - 2.1 - - - validate - - copy - - - ${endorsed.dir} - true - - - javax - javaee-endorsed-api - 6.0 - jar - - - - - - - - - - diff --git a/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/NutRestProvider.java b/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/NutRestProvider.java deleted file mode 100644 index 0549869dd4..0000000000 --- a/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/NutRestProvider.java +++ /dev/null @@ -1,206 +0,0 @@ -/* NutRestProvider.java - -Copyright (C) 2011 Eaton - -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 - */ -package org.networkupstools.jnutwebapi; - -import java.io.IOException; -import java.net.UnknownHostException; -import java.util.logging.Level; -import java.util.logging.Logger; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; - -import org.networkupstools.jnut.Client; -import org.networkupstools.jnut.Device; -import org.networkupstools.jnut.NutException; -import org.networkupstools.jnut.Variable; - - -/** - * Apache Wink WS REST provider for UPSD communication. - * @author Emilien Kia - */ -@Path("/servers") -public class NutRestProvider { - - @GET - public String get() { - return "UPSD connections"; - } - - @Path("{server}") - public Server getServers(@PathParam("server") String server) { - try { - return new Server(server); - } catch(Exception ex) { - Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); - return null; - } - } - - public class Server { - Client client = new Client(); - - public Server(String server) throws IOException, UnknownHostException, NutException { - int idx = server.indexOf(':'); - if(idx!=-1) - { - int port = Integer.parseInt(server.substring(idx+1)); - client.connect(server.substring(0, idx), port); - } - else - { - client.connect(server, 3493); - } - } - - @GET - @Produces("application/json") - public String getDeviceList() { - try { - String str = ""; - Device[] devs = client.getDeviceList(); - boolean first = true; - for (Device device : devs) { - if(first) - first = false; - else - str += ","; - str += "\n\"" + device.getName() + "\""; - } - return "[" + str + "\n]"; - } catch(Exception ex) { - Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); - return null; - } - } - - - @Path("{dev}") - public Dev getDev(@PathParam("dev") String dev) { - try { - return new Dev(dev); - } catch(Exception ex) { - Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); - return null; - } - } - - - - public class Dev { - - Device device; - - public Dev(String dev) throws IOException, NutException{ - device = client.getDevice(dev); - } - - @GET - @Produces("application/json") - public String getDescriptionShortcut() { - return getDescription(); - } - - @GET - @Produces("application/json") - @Path("description") - public String getDescription() { - try { - String res = device.getDescription(); - if(!res.startsWith("\"") && !res.endsWith("\"")) - res = "\"" + res + "\""; - return res; - } catch (Exception ex) { - Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); - return null; - } - } - - - @GET - @Produces("application/json") - @Path("vars") - public String getVars() { - try { - String str = ""; - boolean first = true; - for (Variable variable : device.getVariableList()) { - if(first) - first = false; - else - str += ","; - str += "\n\"" + variable.getName() + "\""; - } - return "[" + str + "\n]"; - } catch (Exception ex) { - Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); - return null; - } - } - - @Path("vars/{var}") - public Var getVar(@PathParam("var") String var){ - try { - return new Var(var); - } catch(Exception ex) { - Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); - return null; - } - } - - public class Var { - - Variable variable = null; - - public Var(String var) throws IOException, NutException{ - variable = device.getVariable(var); - } - - @GET - @Produces("application/json") - public String getValue() { - try { - return "\"" + variable.getValue() + "\""; - } catch(Exception ex) { - Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); - return null; - } - } - - @GET - @Produces("application/json") - @Path("description") - public String getDescription() { - try { - String res = variable.getDescription(); - if(!res.startsWith("\"") && !res.endsWith("\"")) - res = "\"" + res + "\""; - return res; - } catch(Exception ex) { - Logger.getLogger(NutRestProvider.class.getName()).log(Level.SEVERE, null, ex); - return null; - } - } - } - } - } -} diff --git a/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/RestWSApplication.java b/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/RestWSApplication.java deleted file mode 100644 index 8e5b9d7bc1..0000000000 --- a/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/RestWSApplication.java +++ /dev/null @@ -1,38 +0,0 @@ -/* RestWSApplication.java - -Copyright (C) 2011 Eaton - -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 - */ -package org.networkupstools.jnutwebapi; - -import java.util.HashSet; -import java.util.Set; -import javax.ws.rs.core.Application; - -/** - * Apache Wink tool to specify which are providers. - * @author Emilien Kia - */ -public class RestWSApplication extends Application { - - @Override - public Set> getClasses() { - Set> classes = new HashSet>(); - classes.add(NutRestProvider.class); - classes.add(ScannerProvider.class); - return classes; - } -} diff --git a/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/ScannerProvider.java b/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/ScannerProvider.java deleted file mode 100644 index 84c4666014..0000000000 --- a/scripts/java/jNutWebAPI/src/main/java/org/networkupstools/jnutwebapi/ScannerProvider.java +++ /dev/null @@ -1,85 +0,0 @@ -/* ScannerProvider.java - -Copyright (C) 2011 Eaton - -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 - */ -package org.networkupstools.jnutwebapi; - -import java.io.IOException; -import java.util.logging.Level; -import java.util.logging.Logger; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; - -import javax.ws.rs.QueryParam; -import javax.ws.rs.WebApplicationException; -import org.networkupstools.jnut.Scanner; -import org.networkupstools.jnut.Scanner.DiscoveredDevice; - - -/** - * Apache Wink WS REST provider for nut-scanner.. - * @author Emilien Kia - */ -@Path("/scan") -public class ScannerProvider { - static final String execName = "/usr/local/ups/bin/nut-scanner"; - static final String execPath = ""; - - @GET - @Produces("application/json") - public String get(@QueryParam("start") String start, - @QueryParam("end") String end, - @QueryParam("mask") String mask - ) throws WebApplicationException{ - Scanner scan = new Scanner(); - - if(execName!=null && execName.length()>0) - scan.setExecName(execName); - if(execPath!=null && execPath.length()>0) - scan.setExecPath(execPath); - if(start!=null && start.length()>0) - scan.setParam(Scanner.OPTION_START_IP, start); - if(end!=null && end.length()>0) - scan.setParam(Scanner.OPTION_END_IP, end); - if(mask!=null && mask.length()>0) - scan.setParam(Scanner.OPTION_MASK_CIDR, mask); - - try { - DiscoveredDevice[] devs = scan.scan(); - if(devs==null){ - throw new WebApplicationException(503); - }else{ - String str = "[\n"; - for(int i=0; i - - - - - NutRestServer - org.apache.wink.server.internal.servlet.RestServlet - - javax.ws.rs.Application - org.networkupstools.jnutwebapi.RestWSApplication - - 1 - - - NutRestServer - /nut/* - - - - 30 - - - diff --git a/tools/git-svn.authors b/tools/git-svn.authors deleted file mode 100644 index 7d5410c309..0000000000 --- a/tools/git-svn.authors +++ /dev/null @@ -1,21 +0,0 @@ -esr-guest = Eric S. Raymond -lestat-guest = David Goncalves -agordeev-guest = Alexander Gordeev -emilienkia-guest = Emilien Kia -prachi-guest = Prachi Gandhi -praveenkumar-guest = Praveen Kumar -msoltyspl-guest = Michal Soltys -keyson-guest = Kjell Claesson -chetanagarwal-guest = Chetan Agarwal -fbohe-guest = Frederic Bohe -aquette = Arnaud Quette -clepple-guest = Charles Lepple -adkorte-guest = Arjen de Korte -(no author) = no author -selinger-guest = Peter Selinger -carlosefr-guest = Carlos Rodrigues -nba-guest = Niels Baggesen -lyrgard-guest = Jonathan Dion -jongough-guest = Jon Gough -mihl-guest = Michal Hlavinka -acolombier-guest = Antoine Colombier From ab80897ec80a60ece5365faa3839f1a620cadeab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20BOHE?= Date: Thu, 26 Sep 2013 15:23:58 +0200 Subject: [PATCH 196/218] More changes after rebase --- INSTALL | 643 ++++++++++++-------------- Makefile.am | 11 - clients/Makefile.am | 1 - clients/upsclient.c | 9 +- clients/upscmd.c | 2 + clients/upsmon.c | 27 +- clients/upsmon.h | 1 + clients/upssched.c | 7 +- common/Makefile.am | 2 +- common/common.c | 17 +- common/wincompat.c | 16 +- configure.in | 103 ----- docs/Makefile.am | 6 - docs/configure.txt | 21 +- docs/developers.txt | 87 ---- docs/man/Makefile.am | 10 +- docs/man/blazer.txt | 2 +- docs/man/snmp-ups.txt | 14 +- docs/man/upsrw.txt | 3 + docs/website/web-layout.conf | 1 + drivers/Makefile.am | 2 +- drivers/apc-mib.c | 27 -- drivers/apcsmart.c | 5 - drivers/bcmxcp_usb.c | 3 +- drivers/belkinunv.c | 1 - drivers/bestuferrups.c | 1 + drivers/blazer_usb.c | 1 + drivers/clone-outlet.c | 1 + drivers/clone.c | 1 + drivers/dstate.c | 61 ++- drivers/genericups.c | 4 +- drivers/genericups.h | 1 + drivers/isbmex.c | 1 + drivers/main.c | 88 ++-- drivers/mge-xml.c | 1 + drivers/nut-libfreeipmi.c | 36 -- drivers/serial.c | 1 + drivers/serial.h | 8 +- drivers/upsdrvctl.c | 2 +- include/common.h | 2 + include/wincompat.h | 6 +- scripts/Makefile.am | 2 +- scripts/Windows/README | 2 +- scripts/Windows/wininit.c | 4 +- scripts/systemd/nut-driver.service.in | 2 - server/Makefile.am | 2 +- server/conf.c | 14 +- server/netssl.c | 443 ++++++++++++++++-- server/sstate.c | 14 +- server/upsd.c | 9 +- tools/nut-scanner/nut-scanner.c | 3 - tools/nut-scanner/nutscan-init.c | 2 + tools/nut-scanner/scan_avahi.c | 7 - tools/nut-scanner/scan_nut.c | 2 - tools/nut-scanner/scan_snmp.c | 6 - tools/nut-scanner/scan_usb.c | 5 - tools/nut-scanner/scan_xml_http.c | 6 +- 57 files changed, 858 insertions(+), 901 deletions(-) diff --git a/INSTALL b/INSTALL index 7d1c323bea..7762f5baec 100644 --- a/INSTALL +++ b/INSTALL @@ -1,365 +1,320 @@ -Installation Instructions -************************* - -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, -2006, 2007, 2008, 2009 Free Software Foundation, Inc. - - Copying and distribution of this file, with or without modification, -are permitted in any medium without royalty provided the copyright -notice and this notice are preserved. This file is offered as-is, -without warranty of any kind. - -Basic Installation -================== - - Briefly, the shell commands `./configure; make; make install' should -configure, build, and install this package. The following -more-detailed instructions are generic; see the `README' file for -instructions specific to this package. Some packages provide this -`INSTALL' file but do not implement all of the features documented -below. The lack of an optional feature in a given package is not -necessarily a bug. More recommendations for GNU packages can be found -in *note Makefile Conventions: (standards)Makefile Conventions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). - - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. Caching is -disabled by default to prevent problems with accidental use of stale -cache files. - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you -may remove or edit it. - - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You need `configure.ac' if -you want to change it or regenerate `configure' using a newer version -of `autoconf'. - - The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. - - Running `configure' might take a while. While running, it prints - some messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package, generally using the just-built uninstalled binaries. - - 4. Type `make install' to install the programs and any data files and - documentation. When installing into a prefix owned by root, it is - recommended that the package be configured and built as a regular - user, and only the `make install' phase executed with root - privileges. - - 5. Optionally, type `make installcheck' to repeat any self-tests, but - this time using the binaries in their final installed location. - This target does not install anything. Running this target as a - regular user, particularly if the prior `make install' required - root privileges, verifies that the installation completed - correctly. - - 6. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - - 7. Often, you can also type `make uninstall' to remove the installed - files again. In practice, not all packages have tested that - uninstallation works correctly, even though it is required by the - GNU Coding Standards. - - 8. Some packages, particularly those that use Automake, provide `make - distcheck', which can by used by developers to test that all other - targets like `make install' and `make uninstall' work correctly. - This target is generally not run by end users. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. Run `./configure --help' -for details on some of the pertinent environment variables. - - You can give `configure' initial values for configuration parameters -by setting variables in the command line or in the environment. Here -is an example: - - ./configure CC=c99 CFLAGS=-g LIBS=-lposix - - *Note Defining Variables::, for more details. - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you can use GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. This -is known as a "VPATH" build. - - With a non-GNU `make', it is safer to compile the package for one -architecture at a time in the source code directory. After you have -installed the package for one architecture, use `make distclean' before -reconfiguring for another architecture. - - On MacOS X 10.5 and later systems, you can create libraries and -executables that work on multiple system types--known as "fat" or -"universal" binaries--by specifying multiple `-arch' options to the -compiler but only a single `-arch' option to the preprocessor. Like -this: - - ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ - CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ - CPP="gcc -E" CXXCPP="g++ -E" - - This is not guaranteed to produce working output in all cases, you -may have to build one architecture at a time and combine the results -using the `lipo' tool if you have problems. - -Installation Names -================== - - By default, `make install' installs the package's commands under -`/usr/local/bin', include files under `/usr/local/include', etc. You -can specify an installation prefix other than `/usr/local' by giving -`configure' the option `--prefix=PREFIX', where PREFIX must be an -absolute file name. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -pass the option `--exec-prefix=PREFIX' to `configure', the package uses -PREFIX as the prefix for installing programs and libraries. -Documentation and other data files still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=DIR' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. In general, the -default for these options is expressed in terms of `${prefix}', so that -specifying just `--prefix' will affect all of the other directory -specifications that were not explicitly provided. - - The most portable way to affect installation locations is to pass the -correct locations to `configure'; however, many packages provide one or -both of the following shortcuts of passing variable assignments to the -`make install' command line to change installation locations without -having to reconfigure or recompile. - - The first method involves providing an override variable for each -affected directory. For example, `make install -prefix=/alternate/directory' will choose an alternate location for all -directory configuration variables that were expressed in terms of -`${prefix}'. Any directories that were specified during `configure', -but not in terms of `${prefix}', must each be overridden at install -time for the entire installation to be relocated. The approach of -makefile variable overrides for each directory variable is required by -the GNU Coding Standards, and ideally causes no recompilation. -However, some platforms have known limitations with the semantics of -shared libraries that end up requiring recompilation when using this -method, particularly noticeable in packages that use GNU Libtool. - - The second method involves providing the `DESTDIR' variable. For -example, `make install DESTDIR=/alternate/directory' will prepend -`/alternate/directory' before all installation names. The approach of -`DESTDIR' overrides is not required by the GNU Coding Standards, and -does not work on platforms that have drive letters. On the other hand, -it does better at avoiding recompilation issues, and works well even -when some directory options were not specified in terms of `${prefix}' -at `configure' time. - -Optional Features -================= - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - - Some packages offer the ability to configure how verbose the -execution of `make' will be. For these packages, running `./configure ---enable-silent-rules' sets the default to minimal output, which can be -overridden with `make V=1'; while running `./configure ---disable-silent-rules' sets the default to verbose, which can be -overridden with `make V=0'. - -Particular systems -================== - - On HP-UX, the default C compiler is not ANSI C compatible. If GNU -CC is not installed, it is recommended to use the following options in -order to use an ANSI C compiler: - - ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" - -and if that doesn't work, install pre-built binaries of GCC for HP-UX. - - On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot -parse its `' header file. The option `-nodtk' can be used as -a workaround. If GNU CC is not installed, it is therefore recommended -to try - - ./configure CC="cc" - -and if that doesn't work, try - - ./configure CC="cc -nodtk" - - On Solaris, don't put `/usr/ucb' early in your `PATH'. This -directory contains several dysfunctional programs; working variants of -these programs are available in `/usr/bin'. So, if you need `/usr/ucb' -in your `PATH', put it _after_ `/usr/bin'. - - On Haiku, software installed for all users goes in `/boot/common', -not `/usr/local'. It is recommended to use the following options: - - ./configure --prefix=/boot/common - -Specifying the System Type -========================== - - There may be some features `configure' cannot figure out -automatically, but needs to determine by the type of machine the package -will run on. Usually, assuming the package is built to be run on the -_same_ architectures, `configure' can figure that out, but if it prints -a message saying it cannot guess the machine type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS - KERNEL-OS - - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the machine type. - - If you are _building_ compiler tools for cross-compiling, you should -use the option `--target=TYPE' to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the -"host" platform (i.e., that on which the generated programs will -eventually be run) with `--host=TYPE'. +Installation instructions +========================= -Sharing Defaults -================ +This chapter describe the various methods for installing Network UPS Tools. - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. +Whenever it is possible, prefer <>. +Packagers have done an excellent and hard work at improving NUT integration into +their system. -Defining Variables -================== +[[Installing_source]] +Installing from source +---------------------- - Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: +These are the essential steps for compiling and installing this software. - ./configure CC=/usr/local2/bin/gcc +The NUT linkdoc:packager-guide[Packager Guide], which presents the best +practices for installing and integrating NUT, is also a good reading. -causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). +[NOTE] +.Keep in mind that... +================================================================================ -Unfortunately, this technique does not work for `CONFIG_SHELL' due to -an Autoconf bug. Until the bug is fixed you can use this workaround: +- the paths shown below are the default values you get by just calling +configure by itself. If you have used --prefix or similar, things will be +different. Also, if you didn't install this program from source yourself, the +paths will probably have a number of differences. - CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash +- by default, your system probably won't find the man pages, since they +install to /usr/local/ups/man. You can fix this by editing your MANPATH, or +just do this: -`configure' Invocation -====================== + man -M /usr/local/ups/man - `configure' recognizes the following options to control how it -operates. +- if your favorite system offers up to date binary packages, you should always +prefer these over a source installation. Along with the known advantages of such +systems for installation, upgrade and removal, there are many integration issues +that have been addressed. -`--help' -`-h' - Print a summary of all of the options to `configure', and exit. +================================================================================ -`--help=short' -`--help=recursive' - Print a summary of the options unique to this package's - `configure', and exit. The `short' variant lists options used - only in the top level, while the `recursive' variant lists options - also present in any nested packages. -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' - script, and exit. +Prepare your system +~~~~~~~~~~~~~~~~~~~~ -`--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to - disable caching. +System User creation +^^^^^^^^^^^^^^^^^^^^ -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. +Create at least one system user and a group for running this software. You +might call them "ups" and "nut". The exact names aren't important as +long as you are consistent. -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). +The process for doing this varies from one system to the next, and +explaining how to add users is beyond the scope of this document. -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. +For the purposes of this document, the user name and group name +will be 'ups' and 'nut' respectively. -`--prefix=DIR' - Use DIR as the installation prefix. *note Installation Names:: - for more details, including other options available for fine-tuning - the installation locations. +Be sure the new user is a member of the new group! If you forget to +do this, you will have problems later on when you try to start upsd. -`--no-create' -`-n' - Run the configure checks, but stop before creating any output - files. -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. +Build and install +~~~~~~~~~~~~~~~~~ +[[Configuration]] +Configuration +^^^^^^^^^^^^^ + +Configure the source tree for your system. Add the '--with-user' and +'--with-group' switch to set the user name and group that you created +above. + + ./configure --with-user=ups --with-group=nut + +If you need any other switches for configure, add them here. For example: + +* to build and install USB drivers, add '--with-usb' (note that you + need to install libusb development package or files). + +* to build and install SNMP drivers, add '--with-snmp' (note that + you need to install libsnmp development package or files). + +* to build and install CGI scripts, add '--with-cgi'. + +See <> from the User Manual, +docs/configure.txt or './configure --help' for all the available +options. + +If you alter paths with additional switches, be sure to use those +new paths while reading the rest of the steps. + +Reference: <> from the +User Manual. + + +Build the programs +^^^^^^^^^^^^^^^^^^ + + make + +This will build the NUT client and server programs and the +selected drivers. It will also build any other features that were +selected during <> step above. + + +Installation +^^^^^^^^^^^^ + +[NOTE] +===================================================================== + +you should now gain privileges for installing software if necessary: + + su + +===================================================================== + +Install the files to a system level directory: + + make install + +This will install the compiled programs and man pages, as well as +some data files required by NUT. Any optional features selected +during configuration will also be installed. + +This will also install sample versions of the NUT configuration +files. Sample files are installed with names like ups.conf.sample +so they will not overwrite any existing real config files you may +have created. + +If you are packaging this software, then you will probably want to +use the DESTDIR variable to redirect the build into another place, +i.e.: + + make DESTDIR=/tmp/package install + make DESTDIR=/tmp/package install-conf + +[[StatePath]] +State path creation +^^^^^^^^^^^^^^^^^^^ + +Create the state path directory for the driver(s) and server to use +for storing UPS status data and other auxiliary files, and make it +owned by the user you created. + + mkdir -p /var/state/ups + chmod 0770 /var/state/ups + chown root:nut /var/state/ups + +[[Ownership]] +Ownership and permissions +^^^^^^^^^^^^^^^^^^^^^^^^^ + +Set ownership data and permissions on your serial or USB ports +that go to your UPS hardware. Be sure to limit access to just +the user you created earlier. + +These examples assume the second serial port (ttyS1) on a typical +Slackware system. On FreeBSD, that would be cuaa1. Serial ports +vary greatly, so yours may be called something else. + + chmod 0660 /dev/ttyS1 + chown root:nut /dev/ttyS1 + +//////////////////////////////////////////////////////////////////////////////// +FIXME: TBR +//////////////////////////////////////////////////////////////////////////////// + +The setup for USB ports is slightly more complicated. Device files +for USB devices, such as /proc/bus/usb/002/001, are usually +created "on the fly" when a device is plugged in, and disappear +when the device is disconnected. Moreover, the names of these +device files can change randomly. To set up the correct +permissions for the USB device, you may need to set up (operating +system dependent) hotplugging scripts. Sample scripts and +information are provided in the scripts/hotplug and +scripts/udev directories. For most users, the hotplugging scripts +will be installed automatically by "make install". + +(If you want to try if a driver works without setting up +hotplugging, you can add the "-u root" option to upsd, upsmon, and +drivers; this should allow you to follow the below +instructions. However, don't forget to set up the correct +permissions later!). + +NOTE: if you are using something like devfs or udev, make sure +these permissions stay set across a reboot. If they revert to the +old values, your drivers may fail to start. + + +You are now ready to configure NUT, and start testing and using it. + +You can jump directly to the <>. + + +[[Installing_packages]] +Installing from packages +------------------------ + +This chapter describes the specific installation steps when using +binary packages that exist on various major systems. + +[[Debian]] +Debian, Ubuntu and other derivatives +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +NOTE: NUT is packaged and well maintained in these systems. +The official Debian packager is part of the NUT Team. + +Using your prefered method (apt-get, aptitude, Synaptic, ...), install +the 'nut' package, and optionaly the following: + +- 'nut-cgi', if you need the CGI (HTML) option, +- 'nut-snmp', if you need the snmp-ups driver, +- 'nut-xml', for the netxml-ups driver, +- 'nut-powerman-pdu', to control the PowerMan daemon (PDU management) +- 'nut-dev', if you need the development files. + +//////////////////////////////////////////////////////////////////////////////// +- nut-client +- nut-hal-drivers +//////////////////////////////////////////////////////////////////////////////// + +Configuration files are located in /etc/nut. +linkman:nut.conf[5] must be edited to be able to invoke /etc/init.d/nut + +NOTE: Ubuntu users can access the APT URL installation by clicking on link:apt://nut[this link]. + + +[[Mandriva]] +Mandriva +~~~~~~~~ + +NOTE: NUT is packaged and well maintained in these systems. +The official Mandriva packager is part of the NUT Team. + +Using your prefered method (urpmi, RPMdrake, ...), install one of the two below +packages: + +- 'nut-server' if you have a 'standalone' or 'netserver' installation, +- 'nut' if you have a 'netclient' installation. + +Optionaly, you can also install the following: + +- 'nut-cgi', if you need the CGI (HTML) option, +- 'nut-devel', if you need the development files. + + +[[Suse]] +Suse / Opensuse +~~~~~~~~~~~~~~~ + +NOTE: NUT is packaged and well maintained in these systems. +The official Suse packager is part of the NUT Team. + +Install the 'nut-classic' package, and optionaly the following: + +- 'nut-drivers-net', if you need the snmp-ups or the netxml-ups drivers, +- 'nut-cgi', if you need the CGI (HTML) option, +- 'nut-devel', if you need the development files, + +NOTE: Suse and Opensuse users can use the +link:http://software.opensuse.org/search?baseproject=ALL&p=1&q=nut[one-click install method] +to install NUT. + + +[[RedHat]] +Red Hat, Fedora and CentOS +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +NOTE: NUT is packaged and well maintained in these systems. +The official Red Hat packager is part of the NUT Team. + +Using your prefered method (yum, Add/Remove Software, ...), install one of the +two below packages: + +- 'nut' if you have a 'standalone' or 'netserver' installation, +- 'nut-client' if you have a 'netclient' installation. + +Optionaly, you can also install the following: + +- 'nut-cgi', if you need the CGI (HTML) option, +- 'nut-xml', if you need the netxml-ups driver, +- 'nut-devel', if you need the development files. + + +[[FreeBSD]] +FreeBSD +~~~~~~~ + +You can either install NUT as a binary package or as a port. + +Binary package +^^^^^^^^^^^^^^ + +To install the main component, use the following command: + + # pkg_add -r nut + +Port +^^^^ + +The port is located under /usr/ports/sysutils/nut. +To install it, use the following command: + + # cd /usr/ports/sysutils/nut/ && make install clean + +You have to define WITH_NUT_CGI to build the optional CGI scripts. + +Optionaly, you can also install the following ports: + +- sysutils/nut-snmp, for the SNMP driver, +- sysutils/nut-usb, for the USB drivers, +- sysutils/nut-libupsclient, for the upsclient library. + + +You are now ready to configure NUT, and start testing and using it. + +You can jump directly to the +<>. diff --git a/Makefile.am b/Makefile.am index 064a9e5f2c..34b7e1fdd0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -55,17 +55,6 @@ website: @echo "Not building website since 'asciidoc' was not found." endif !HAVE_ASCIIDOC -if HAVE_ASCIIDOC -website: - cd docs; $(MAKE) $(AM_MAKEFLAGS) website - cd docs/man; $(MAKE) $(AM_MAKEFLAGS) html-man - cd tools; $(MAKE) $(AM_MAKEFLAGS) website - cd docs/website; $(MAKE) $(AM_MAKEFLAGS) website -else !HAVE_ASCIIDOC -website: - @echo "Not building website since 'asciidoc' was not found." -endif !HAVE_ASCIIDOC - # ---------------------------------------------------------------------- # targets from old build system (pre-automake). # supported for a period of time for backward "compatibility". diff --git a/clients/Makefile.am b/clients/Makefile.am index 39b0611a48..0a26b03a00 100644 --- a/clients/Makefile.am +++ b/clients/Makefile.am @@ -25,7 +25,6 @@ else !HAVE_WINDOWS_SOCKETS sbin_PROGRAMS = upsmon upssched endif !HAVE_WINDOWS_SOCKETS lib_LTLIBRARIES = libupsclient.la libnutclient.la ->>>>>>> Add an external wall-like application. if WITH_DEV include_HEADERS = upsclient.h ../include/parseconf.h nutclient.h endif diff --git a/clients/upsclient.c b/clients/upsclient.c index 5a1450b86f..3783ef6ebc 100644 --- a/clients/upsclient.c +++ b/clients/upsclient.c @@ -31,7 +31,6 @@ #include #include #include -#include #ifndef WIN32 #include #include @@ -47,7 +46,7 @@ #define W32_NETWORK_CALL_OVERRIDE #include "wincompat.h" #undef W32_NETWORK_CALL_OVERRIDE -#endif +#endif #include "upsclient.h" #include "common.h" @@ -936,8 +935,6 @@ int upscli_tryconnect(UPSCONN_t *ups, const char *host, int port, int flags,stru fcntl(sock_fd, F_SETFL, fd_flags); } - while ((v = connect(sock_fd, ai->ai_addr, ai->ai_addrlen)) < 0) { - if(errno == EINPROGRESS) { #else event = CreateEvent(NULL, /* Security */ FALSE, /* auto-reset */ @@ -998,16 +995,16 @@ int upscli_tryconnect(UPSCONN_t *ups, const char *host, int port, int flags,stru } /* switch back to blocking operation */ -#ifndef WIN32 if(timeout != NULL) { +#ifndef WIN32 fd_flags = fcntl(sock_fd, F_GETFL); fd_flags &= ~O_NONBLOCK; fcntl(sock_fd, F_SETFL, fd_flags); - } #else argp = 0; ioctlsocket(sock_fd,FIONBIO,&argp); #endif + } ups->fd = sock_fd; ups->upserror = 0; diff --git a/clients/upscmd.c b/clients/upscmd.c index d806ac2bee..f00e740558 100644 --- a/clients/upscmd.c +++ b/clients/upscmd.c @@ -247,6 +247,7 @@ int main(int argc, char **argv) if (!strchr(argv[1], '.')) { fatalx(EXIT_FAILURE, "Error: old command names are not supported"); } + if (!have_un) { struct passwd *pw; @@ -287,6 +288,7 @@ int main(int argc, char **argv) snprintf(password, sizeof(password), "%s", pwtmp); } + snprintf(buf, sizeof(buf), "USERNAME %s\n", username); if (upscli_sendline(ups, buf, strlen(buf)) < 0) { diff --git a/clients/upsmon.c b/clients/upsmon.c index 00ebb6b463..d4edf2403e 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -130,7 +130,7 @@ static void wall(const char *text) char * command; /* first +1 is for the space between message and text - second +1 is for trailing 0 + second +1 is for trailing 0 +2 is for "" */ command = malloc (strlen(MESSAGE_CMD) + 1 + 2 + strlen(text) + 1); if( command == NULL ) { @@ -159,7 +159,7 @@ static unsigned __stdcall async_notify(LPVOID param) char exec[LARGEBUF]; char notice[LARGEBUF]; - /* the following code is a copy of the content of the NOT WIN32 part of + /* the following code is a copy of the content of the NOT WIN32 part of "notify" function below */ async_notify_t *data = (async_notify_t *)param; @@ -207,6 +207,7 @@ static void notify(const char *notice, int flags, const char *ntype, if (flag_isset(flags, NOTIFY_SYSLOG)) upslogx(LOG_NOTICE, "%s", notice); + #ifndef WIN32 /* fork here so upsmon doesn't get wedged if the notifier is slow */ ret = fork(); @@ -218,6 +219,7 @@ static void notify(const char *notice, int flags, const char *ntype, if (ret != 0) /* parent */ return; + /* child continues and does all the work */ if (flag_isset(flags, NOTIFY_WALL)) @@ -539,6 +541,7 @@ static void doshutdown(void) ret = write(pipefd[1], &ch, 1); } else { /* one process model = we do all the work here */ + #ifndef WIN32 if (geteuid() != 0) upslogx(LOG_WARNING, "Not root, shutdown may fail"); @@ -2109,16 +2112,6 @@ int main(int argc, char *argv[]) exit(EXIT_SUCCESS); } - argc -= optind; - argv += optind; - - open_syslog(prog); - - loadconfig(); - - if (checking_flag) - exit(check_pdflag()); - /* otherwise, we are being asked to start. * so check if a previous instance is running by sending signal '0' * (Ie 'kill 0') */ @@ -2139,6 +2132,16 @@ int main(int argc, char *argv[]) exit(EXIT_FAILURE); } + argc -= optind; + argv += optind; + + open_syslog(prog); + + loadconfig(); + + if (checking_flag) + exit(check_pdflag()); + if (shutdowncmd == NULL) printf("Warning: no shutdown command defined!\n"); diff --git a/clients/upsmon.h b/clients/upsmon.h index 32dbdbb6ff..10208384aa 100644 --- a/clients/upsmon.h +++ b/clients/upsmon.h @@ -113,6 +113,7 @@ struct { }; /* values for signals passed between processes */ + #ifndef WIN32 #define SIGCMD_FSD SIGUSR1 #define SIGCMD_STOP SIGTERM diff --git a/clients/upssched.c b/clients/upssched.c index bd347d22b0..973b1d9b4d 100644 --- a/clients/upssched.c +++ b/clients/upssched.c @@ -561,7 +561,7 @@ static HANDLE conn_add(HANDLE sockfd) fatal_with_errno(EXIT_FAILURE, "Can't create event"); } - ReadFile (conn->fd,conn->buf,1,NULL,&(conn->read_overlapped)); + ReadFile (conn->fd,conn->buf,1,NULL,&(conn->read_overlapped)); conn->next = NULL; @@ -632,6 +632,7 @@ static int sock_read(conn_t *conn) char ch; for (i = 0; i < US_MAX_READ; i++) { + #ifndef WIN32 ret = read(conn->fd, &ch, 1); @@ -704,6 +705,7 @@ static void start_daemon(int lockfd) return; } + /* child */ close(0); @@ -925,6 +927,7 @@ static HANDLE try_connect(void) static int get_lock(const char *fn) { return open(fn, O_RDONLY | O_CREAT | O_EXCL, 0); + } #else static HANDLE get_lock(const char *fn) @@ -1083,6 +1086,7 @@ static void sendcmd(const char *cmd, const char *arg1, const char *arg2) return; /* we're connected now */ + #ifndef WIN32 ret = write(pipefd, enc, strlen(enc)); @@ -1101,6 +1105,7 @@ static void sendcmd(const char *cmd, const char *arg1, const char *arg2) alarm(0); signal(SIGALRM, SIG_IGN); + close(pipefd); /* same idea: no OK = go try it all again */ diff --git a/common/Makefile.am b/common/Makefile.am index 3ebb7502aa..2fe2e23ea6 100644 --- a/common/Makefile.am +++ b/common/Makefile.am @@ -13,4 +13,4 @@ libparseconf_la_SOURCES = parseconf.c libcommon_la_SOURCES = common.c state.c upsconf.c wincompat.c ../include/wincompat.h # ensure inclusion of local implementation of missing systems functions # using LTLIBOBJS. Refer to configure.in -> AC_REPLACE_FUNCS -libcommon_la_LIBADD = libparseconf.la @LTLIBOBJS@ @NETLIBS@ +libcommon_la_LIBADD = libparseconf.la @LTLIBOBJS@ diff --git a/common/common.c b/common/common.c index fba893c8d4..2cd545da4f 100644 --- a/common/common.c +++ b/common/common.c @@ -153,6 +153,7 @@ void background(void) #ifdef HAVE_SETSID setsid(); /* make a new session to dodge signals */ #endif + #else /* WIN32 */ xbit_set(&upslog_flags, UPSLOG_SYSLOG); xbit_clear(&upslog_flags, UPSLOG_STDERR); @@ -176,7 +177,8 @@ struct passwd *get_user_pwent(const char *name) fatalx(EXIT_FAILURE, "user %s not found", name); else fatal_with_errno(EXIT_FAILURE, "getpwnam(%s)", name); -#endif + +#endif return NULL; /* to make the compiler happy */ } @@ -208,9 +210,11 @@ void chroot_start(const char *path) { if (chdir(path)) fatal_with_errno(EXIT_FAILURE, "chdir(%s)", path); + #ifndef WIN32 if (chroot(path)) fatal_with_errno(EXIT_FAILURE, "chroot(%s)", path); + #endif if (chdir("/")) fatal_with_errno(EXIT_FAILURE, "chdir(/)"); @@ -221,7 +225,7 @@ void chroot_start(const char *path) #ifdef WIN32 /* In WIN32 all non binaries files (namely configuration and PID files) are retrieved relative to the path of the binary itself. - So this function fill "dest" with the full path to "relative_path" + So this function fill "dest" with the full path to "relative_path" depending on the .exe path */ char * getfullpath(char * relative_path) { @@ -277,11 +281,9 @@ int sendsignalfn(const char *pidfn, int sig) { char buf[SMALLBUF]; FILE *pidf; - int pid; - int ret; + int pid, ret; pidf = fopen(pidfn, "r"); - if (!pidf) { upslog_with_errno(LOG_NOTICE, "fopen %s", pidfn); return -1; @@ -319,6 +321,7 @@ int sendsignalfn(const char *pidfn, int sig) return -1; } + fclose(pidf); return 0; } #else @@ -360,6 +363,7 @@ int sendsignal(const char *progname, int sig) char fn[SMALLBUF]; snprintf(fn, sizeof(fn), "%s/%s.pid", PIDPATH, progname); + return sendsignalfn(fn, sig); } #else @@ -397,7 +401,6 @@ static void vupslog(int priority, const char *fmt, va_list va, int use_strerror) if ((ret < 0) || (ret >= (int) sizeof(buf))) syslog(LOG_WARNING, "vupslog: vsnprintf needed more than %d bytes", LARGEBUF); - if (use_strerror) { snprintfcat(buf, sizeof(buf), ": %s", strerror(errno)); @@ -406,7 +409,7 @@ static void vupslog(int priority, const char *fmt, va_list va, int use_strerror) DWORD WinErr = GetLastError(); FormatMessage( FORMAT_MESSAGE_MAX_WIDTH_MASK | - FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, diff --git a/common/wincompat.c b/common/wincompat.c index d80d1c647f..53d667ff0c 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -1,4 +1,4 @@ -/* +/* Copyright (C) 1999 Russell Kroll @@ -14,7 +14,7 @@ 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., 675 Mass Ave, Cambridge, MA 02139, USA. + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifdef WIN32 #include "wincompat.h" @@ -255,7 +255,7 @@ void syslog(int priority, const char *fmt, ...) result = WriteFile (pipe,buf1,strlen(buf2)+sizeof(DWORD),&bytesWritten,NULL); /* testing result is useless. If we have an error and try to report it, - this will probably lead to a call to this function and an infinite + this will probably lead to a call to this function and an infinite loop */ /* if (result == 0 || bytesWritten != strlen(buf2)+sizeof(DWORD) ) { @@ -288,7 +288,7 @@ void pipe_create(const char * pipe_name) } snprintf(pipe_full_name,sizeof(pipe_full_name),"\\\\.\\pipe\\%s",named_pipe_name); - + if( pipe_connection_overlapped.hEvent != 0 ) { CloseHandle(pipe_connection_overlapped.hEvent); } @@ -484,11 +484,11 @@ int w32_getcomm ( serial_handler_t * h, int * flags ) } *flags = f; - + return 0; } -/* Serial port wrapper inspired by : +/* Serial port wrapper inspired by : http://serial-programming-in-win32-os.blogspot.com/2008/07/convert-linux-code-to-windows-serial.html */ void overlapped_setup (serial_handler_t * sh) @@ -1349,11 +1349,11 @@ int tcgetattr (serial_handler_t * sh, struct termios *t) /* FIXME no difference between ispeed and ospeed */ void cfsetispeed(struct termios * t, speed_t speed) { - t->c_ispeed = t->c_ospeed = speed; + t->c_ispeed = t->c_ospeed = speed; } void cfsetospeed(struct termios * t, speed_t speed) { - t->c_ispeed = t->c_ospeed = speed; + t->c_ispeed = t->c_ospeed = speed; } speed_t cfgetispeed(const struct termios *t) { diff --git a/configure.in b/configure.in index 9375cfbaf2..c498e79bfb 100644 --- a/configure.in +++ b/configure.in @@ -306,9 +306,6 @@ if test "${nut_with_serial}" != "no"; then nut_with_serial="yes" fi -dnl ---------------------------------------------------------------------- -dnl Check for --with-ssl - NUT_REPORT_FEATURE([build serial drivers], [${nut_with_serial}], [], [WITH_SERIAL], [Define to enable serial support]) @@ -456,97 +453,6 @@ AM_CONDITIONAL(WITH_FREEIPMI, test "${nut_with_freeipmi}" = "yes") dnl AM_CONDITIONAL(WITH_OPENIPMI, test "${nut_with_openipmi}" = "yes") -dnl ---------------------------------------------------------------------- -<<<<<<< HEAD -dnl Check for with-ipmi, and --with-freeipmi (or --with-openipmi) -dnl Only one can be enabled at a time, with a preference for FreeIPMI -dnl if both are available (since it is the only one supported ATM!!) -======= -dnl The Mac OS X meta-driver looks at IOKit Power Sources keys managed by -dnl the internal USB UPS driver. -dnl -dnl FIXME: be slightly more clever here: - -NUT_ARG_WITH([macosx_ups], [build and install Mac OS X Power Sources meta-driver], [auto]) -if test "${nut_with_macosx_ups}" != no; then - if test -d /System/Library/Frameworks/IOKit.framework/ ; then - nut_with_macosx_ups="yes" - else - nut_with_macosx_ups="no" - fi -fi - -NUT_REPORT_FEATURE([build Mac OS X meta-driver], - [${nut_with_macosx_ups}], [${nut_macosx_ups_lib}], - [WITH_MACOSX], [Define to enable Mac OS X meta-driver]) - -dnl ---------------------------------------------------------------------- -dnl Check for --with-ssl ->>>>>>> Merge from trunk [[SVN:3692]] to [[SVN:3713]] (upgrade to 2.6.5) - -nut_ipmi_lib="" - -NUT_ARG_WITH([ipmi], [build and install IPMI PSU driver], [auto]) -NUT_ARG_WITH([freeipmi], [enable IPMI support using FreeIPMI], [auto]) -dnl NUT_ARG_WITH([openipmi], [enable IPMI support using OpenIPMI], [auto]) - -dnl ${nut_with_ipmi}: any value except "yes" or "no" is treated as "auto". -if test "${nut_with_ipmi}" != "no"; then - dnl check if FreeIPMI (and maybe later OpenIPMI) was explicitly requested - if test "${nut_with_freeipmi}" = "yes"; then - NUT_CHECK_LIBFREEIPMI - if test "${nut_have_freeipmi}" != "yes"; then - AC_MSG_ERROR(["GNU FreeIPMI not found, required for IPMI support"]) - fi - dnl Implies --with-ipmi - nut_with_ipmi="yes" - dnl elif test "${nut_with_openipmi}" = "yes"; then - dnl AC_MSG_ERROR(["OpenIPMI is not yet supported"]) - dnl NUT_CHECK_LIBOPENIPMI - dnl if test "${nut_have_openipmi}" != "yes"; then - dnl AC_MSG_ERROR(["OpenIPMI not found, required for IPMI support"]) - dnl fi - dnl Implies --with-ipmi - dnl nut_with_ipmi="yes" - dnl AC_DEFINE(WITH_OPENIPMI, 1, [Define to enable IPMI support using OpenIPMI]) - else - dnl Prefer FreeIPMI over OpenIPMI otherwise - NUT_CHECK_LIBFREEIPMI - if test "${nut_have_freeipmi}" != "yes"; then - if test "${nut_with_ipmi}" = "yes"; then - AC_MSG_ERROR(["FreeIPMI not found, required for IPMI support"]) - fi - nut_with_ipmi="no" - dnl NUT_CHECK_OPENIPMI - dnl if test "${nut_have_openipmi}" != "yes"; then - dnl if test "${nut_with_ipmi}" = "yes"; then - dnl AC_MSG_ERROR(["GNU FreeIPMI and OpenIPMI neither found, required for IPMI support"]) - dnl fi - dnl nut_with_ipmi="no" - dnl else - dnl Implies --with-ipmi - dnl nut_with_ipmi="yes" - dnl nut_with_openipmi="yes" - dnl fi - else - dnl Implies --with-ipmi - nut_with_ipmi="yes" - nut_with_freeipmi="yes" - AC_DEFINE(WITH_FREEIPMI, 1, [Define to enable IPMI support using FreeIPMI]) - fi - fi -fi - - -NUT_REPORT_FEATURE([build IPMI driver], [${nut_with_ipmi}], [${nut_ipmi_lib}], - [WITH_IPMI], [Define to enable IPMI support]) - -dnl Note: we still have to manually enable complementary AC_DEFINEs (see above) -dnl and AM_CONDITIONALs (see below)... -AM_CONDITIONAL(WITH_FREEIPMI, test "${nut_with_freeipmi}" = "yes") -dnl AM_CONDITIONAL(WITH_OPENIPMI, test "${nut_with_openipmi}" = "yes") - - dnl ---------------------------------------------------------------------- dnl The Mac OS X meta-driver looks at IOKit Power Sources keys managed by dnl the internal USB UPS driver. @@ -1334,9 +1240,7 @@ AC_OUTPUT([ scripts/augeas/nuthostsconf.aug scripts/augeas/nutupssetconf.aug scripts/avahi/nut.service - man/Makefile scripts/Windows/Makefile - scripts/avahi/nut.service scripts/hal/Makefile scripts/hal/ups-nut-device.fdi scripts/hotplug/Makefile @@ -1354,13 +1258,6 @@ AC_OUTPUT([ scripts/Solaris/postinstall scripts/Solaris/preremove scripts/Solaris/nut - scripts/java/Makefile - scripts/python/Makefile - scripts/systemd/Makefile - scripts/systemd/nut-driver.service - scripts/systemd/nut-monitor.service - scripts/systemd/nut-server.service - scripts/systemd/nutshutdown scripts/udev/Makefile scripts/udev/nut-ipmipsu.rules scripts/udev/nut-usbups.rules diff --git a/docs/Makefile.am b/docs/Makefile.am index 06aba5f242..0b4a44f64d 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -87,12 +87,6 @@ ups-html.txt: ../data/driver.list.in cd ../data && $(MAKE) $(AM_MAKEFLAGS) driver.list cd ../tools && $(MAKE) $(AM_MAKEFLAGS) website -# Static HCL is generated automatically -# This is more of a harness, since this file should have already been -# generated, due to the top level Makefile SUBDIRS ordering (tools before docs) -ups-html.txt: - cd ../tools; $(MAKE) $(AM_MAKEFLAGS) website - ### TODO: automatic dependency generation # Add other directory deps (not for local EXTRA_DIST) and generated contents FULL_USER_MANUAL_DEPS = $(USER_MANUAL_DEPS) $(SHARED_DEPS) ../README \ diff --git a/docs/configure.txt b/docs/configure.txt index d08aa56465..a28aca6f88 100644 --- a/docs/configure.txt +++ b/docs/configure.txt @@ -58,26 +58,7 @@ To save time during the compile and disk space later on, you can use this option to just build and install a subset of the drivers. To select mge-shut and usbhid-ups, you'd do this: - --with-doc= (default: no) - -Build and install NUT documentation file(s). -The possible values are "html-single" for single page HTML, "html-chunked" -for multi pages HTML, "pdf" for a PDF file or "auto" to build all the -possible previous documentation formats. -Verbose output can be enabled using: ASCIIDOC_VERBOSE=-v make - -This feature requires AsciiDoc 8.6.3 (http://www.methods.co.nz/asciidoc). - - -Optional features ------------------ - - --with-cgi (default: no) - -Build and install the optional CGI programs, HTML files, and sample -CGI configuration files. This is not enabled by default, as they -are only useful on web servers. See data/html/README for additional -information on how to set up CGI programs. + --with-drivers=apcsmart,usbhid-ups If you need to build more drivers later on, you will need to rerun configure with a different list. To make it build all of the diff --git a/docs/developers.txt b/docs/developers.txt index 8834ddff36..52d19dce48 100644 --- a/docs/developers.txt +++ b/docs/developers.txt @@ -564,90 +564,3 @@ If you are new to Git, but are familiar with SVN, the link:http://git-scm.com/course/svn.html[following link] may be of use. -Distributed SCM systems ------------------------ - -Git and Mercurial (Hg) are two popular distributed SCM tools which provide a -bridge to a SVN repository. This makes it possible for a new developer to stay -synchronized with the latest changes to NUT, while keeping a local version -history of their changes before they are merged by the core NUT developers. - -A complete introduction to either Git or Mercurial is beyond the scope of this -document, but many others have written excellent tutorials on both the DSCM -tools, and their SVN interfaces. - -Git and SVN -~~~~~~~~~~~ - -The `git svn` tool synchronizes a Git repository with a -link:http://www.kernel.org/pub/software/scm/git/docs/git-svn.html[SVN repository]. - -In many cases, NUT developers will not need access to the entire repository -history - a snapshot starting at the most recent revision will work nicely: - - git svn clone --revision HEAD svn://svn.debian.org/nut/trunk nut-git - -From the resulting nut-git directory, you may use all of the Git commands to -record your changes, and even create new branches for working on different -aspects of the code. - -Git offers a little more flexibility than the `svn update` command. You may -fetch other developers' changes from SVN into your repository, but hold off on -actually combining them with your branch until you have compared the two -branches (for instance, with `gitk --all`). - -To import the new SVN revisions, simply run the following command from any -directory under your Git checkout (`nut-git` in the example above). Note that -this only changes the history stored in your repository - it does not touch -your checked-out files. - - git svn fetch - -Initially, the Git `master` branch tracks the SVN `trunk`. The `git svn` -command updates the `remotes/trunk` reference every time you run `git svn -fetch`, but it does not adjust the `master` branch automatically. To update -your master branch with new SVN revisions, you can run the following commands: - - git checkout master - git svn fetch # (optional; this gets commits other than on your current branch) - git svn rebase - -You may create as many branches as you like in your local Git repository. When -using `git svn`, the preferred way to combine your changes with SVN changes is -to use `git rebase` on your local branch. This re-applies your branch's changes -to the new SVN changes, much as though your branch were a series of patches. - --------------------------------------------------------------------------------- - git checkout master - git branch my-new-feature - git checkout my-new-feature - - # Hack away - - git add changed-file.c - git commit - - # Someone committed something to SVN. Fetch it. - - git svn fetch - git rebase remotes/trunk --------------------------------------------------------------------------------- - -You are encouraged to use `git rebase -i` on your private Git branches to -separate your changes into <<_patch_cohesion,logical changes>>. - -From there, you can generate patches for the Tracker, or the nut-upsdev list. - -If you are new to Git, but are familiar with SVN, the -link:http://git-scm.com/course/svn.html[following link] may be of use. - - -Mercurial and SVN -~~~~~~~~~~~~~~~~~ - -Synchronizing a Mercurial repository against the NUT SVN repository should be -similar in spirit to the Git method discussed above. -link:http://mercurial.selenic.com/wiki/WorkingWithSubversion[This wiki page] -discusses your options. - -We would welcome any feedback about this process on the nut-upsdev mailing list. diff --git a/docs/man/Makefile.am b/docs/man/Makefile.am index 87d07efa9b..6dc58c066e 100644 --- a/docs/man/Makefile.am +++ b/docs/man/Makefile.am @@ -525,7 +525,6 @@ MAN_MANS = \ $(MAN_POWERMAN_PAGES) \ $(MAN_IPMIPSU_PAGES) \ $(MAN_MACOSX_PAGES) - $(MAN_IPMIPSU_PAGES) # distribute everything, even those not installed by default # Note that 'dist' target requires AsciiDoc! @@ -558,7 +557,6 @@ HTML_MANS = \ $(HTML_POWERMAN_MANS) \ $(HTML_IPMIPSU_MANS) \ $(HTML_MACOSX_MANS) - $(HTML_IPMIPSU_MANS) all: @@ -608,15 +606,15 @@ else !HAVE_ASCIIDOC @echo "Not (re)building $@ manual page, since 'asciidoc' was not found." .txt.1: - @echo "Using existing or faked $@ manual page, since 'asciidoc' was not found." > $@ + @echo "Using existing $@ manual page, since 'asciidoc' was not found." .txt.3: - @echo "Using existing or faked $@ manual page, since 'asciidoc' was not found." > $@ + @echo "Using existing $@ manual page, since 'asciidoc' was not found." .txt.5: - @echo "Using existing or faked $@ manual page, since 'asciidoc' was not found." > $@ + @echo "Using existing $@ manual page, since 'asciidoc' was not found." .txt.8: - @echo "Using existing or faked $@ manual page, since 'asciidoc' was not found." > $@ + @echo "Using existing $@ manual page, since 'asciidoc' was not found." endif !HAVE_ASCIIDOC diff --git a/docs/man/blazer.txt b/docs/man/blazer.txt index 5a155b8e15..c4387a1e4a 100644 --- a/docs/man/blazer.txt +++ b/docs/man/blazer.txt @@ -4,7 +4,7 @@ BLAZER(8) NAME ---- -blazer - Driver for Megatec/Q1 protocol serial (blazer_ser) and USB (blazer_usb) based UPS equipment +blazer, blazer_ser, blazer_usb - Driver for Megatec/Q1 protocol serial and USB based UPS equipment NOTE ---- diff --git a/docs/man/snmp-ups.txt b/docs/man/snmp-ups.txt index 00fa083481..9584d20fbe 100644 --- a/docs/man/snmp-ups.txt +++ b/docs/man/snmp-ups.txt @@ -58,14 +58,16 @@ linkman:ups.conf[5]: *mibs*='name':: Set MIB compliance (default=auto, allowed entries: refer to the above SUPPORTED HARDWARE). With "auto", the driver will try a select set of SNMP objects until it finds -one that the device responds to. - +one that the device responds to. Note that, since NUT 2.6.2, snmp-ups has a new +method that uses sysObjectID, which is a pointer to the prefered MIB of the +device, to detect supported devices. This renders void the use of 'mib' option. + *community*='name':: Set community name (default = public). Note that you require a RW community name to change UPS settings (as for a powerdown). *snmp_version*='version':: -Set SNMP version (default = v1, the other allowed value is v2c) +Set SNMP version (default = v1, allowed: v2c, v3) *pollfreq*='value':: Set polling frequency in seconds, to reduce network flow (default=30) @@ -132,14 +134,13 @@ The hostname of the UPS is specified with the "port" value in port = snmp-ups.example.com community = public snmp_version = v1 - mibs = ietf pollfreq = 15 desc = "Example SNMP v1 device" [snmpv3] driver = snmp-ups port = 166.99.224.132 - mibs = mge + snmp_version = v3 secLevel = authPriv secName = mysecurityname authPassword = myauthenticationpassphrase @@ -150,9 +151,6 @@ AUTHORS ------- Arnaud Quette, Dmitry Frolov -Sponsored by Eaton -and originally by MGE UPS SYSTEMS - SEE ALSO -------- diff --git a/docs/man/upsrw.txt b/docs/man/upsrw.txt index fd4b49ca68..de09067398 100644 --- a/docs/man/upsrw.txt +++ b/docs/man/upsrw.txt @@ -73,6 +73,9 @@ will put up a prompt and your program will hang. This is not necessary when displaying the list, as the username and password are not required for read-only mode. +Moreover, if you run this program inside a shell script or similar, you +should only consider using output from stdout, not stderr. + DIAGNOSTICS ----------- diff --git a/docs/website/web-layout.conf b/docs/website/web-layout.conf index f72426e950..29ba745719 100644 --- a/docs/website/web-layout.conf +++ b/docs/website/web-layout.conf @@ -180,5 +180,6 @@ endif::badges[] })(); +endif::analytics[] diff --git a/drivers/Makefile.am b/drivers/Makefile.am index bf08c5d24c..0f1d0c9ef7 100644 --- a/drivers/Makefile.am +++ b/drivers/Makefile.am @@ -149,7 +149,7 @@ voltronic_ser_LDADD = $(LDADD) -lm # dummy dummy_ups_SOURCES = dummy-ups.c dummy_ups_CFLAGS = $(AM_CFLAGS) -I$(top_srcdir)/clients -dummy_ups_LDADD = $(LDADD_DRIVERS) ../clients/libupsclient.la $(NETLIBS) +dummy_ups_LDADD = $(LDADD_DRIVERS) ../clients/libupsclient.la if WITH_SSL dummy_ups_CFLAGS += $(LIBSSL_CFLAGS) dummy_ups_LDADD += $(LIBSSL_LIBS) diff --git a/drivers/apc-mib.c b/drivers/apc-mib.c index 62f0ed6b93..8851a6fb06 100644 --- a/drivers/apc-mib.c +++ b/drivers/apc-mib.c @@ -28,33 +28,6 @@ #define APCC_MIB_VERSION "1.2" -/* Other APC sysOID: - * - * examples found on the Net and other sources: - * 'enterprises.apc.products.system.smartUPS.smartUPS700' - * - from fence agents - * '.1.3.6.1.4.1.318.1.3.4.5': ApcRPDU, - * '.1.3.6.1.4.1.318.1.3.4.4': ApcMSP - * - from Bill Seligman - * .1.3.6.1.4.1.318.1.3.2.11 - * .1.3.6.1.4.1.318.1.3.2.12 - * .1.3.6.1.4.1.318.1.3.27 - * .1.3.6.1.4.1.318.1.3.2.7 - * .1.3.6.1.4.1.318.1.3.2.8 - */ - -/* TODO: find the right sysOID for this MIB - * Ie ".1.3.6.1.4.1.318.1.1.1" or ".1.3.6.1.4.1.318" or? */ - -/* .1.3.6.1.4.1.318.1.1.1 - * enterprise^ - * apc ---------^ - * products ------^ - * hardware --------^ - * ups ---------------^ - * ref: ftp://ftp.apc.com/apc/public/software/pnetmib/mib/404/powernet404.mib - */ - /* Other APC sysOID: * * examples found on the Net and other sources: diff --git a/drivers/apcsmart.c b/drivers/apcsmart.c index 8f6c296ba1..d362c815bd 100644 --- a/drivers/apcsmart.c +++ b/drivers/apcsmart.c @@ -1621,11 +1621,6 @@ static void upsdrv_shutdown_advanced(void) if (sdlist[val[i] - '0'](arg) == STAT_INSTCMD_HANDLED) break; /* finish if command succeeded */ } - - if (testvar("advorder") && strcasecmp(getval("advorder"), "no")) - upsdrv_shutdown_advanced(status); - else - upsdrv_shutdown_simple(status); } /* power down the attached load immediately */ diff --git a/drivers/bcmxcp_usb.c b/drivers/bcmxcp_usb.c index 5086ea6462..e64cd614bf 100644 --- a/drivers/bcmxcp_usb.c +++ b/drivers/bcmxcp_usb.c @@ -406,8 +406,7 @@ usb_dev_handle *nutusb_open(const char *port) usb_find_busses(); usb_find_devices(); - - for (retry = 0; dev_h == NULL && retry < 32; retry++) + for (retry = 0; retry < MAX_TRY ; retry++) { dev_h = open_powerware_usb(); if (!dev_h) { diff --git a/drivers/belkinunv.c b/drivers/belkinunv.c index 761ab42dad..e1e4e0df03 100644 --- a/drivers/belkinunv.c +++ b/drivers/belkinunv.c @@ -803,7 +803,6 @@ static int belkin_wait(void) if (fd == ERROR_FD) { fd = belkin_std_open_tty(device_path); } - if (fd == ERROR_FD) { failcount++; failerrno = errno; diff --git a/drivers/bestuferrups.c b/drivers/bestuferrups.c index 84244d1f69..d60cb027d6 100644 --- a/drivers/bestuferrups.c +++ b/drivers/bestuferrups.c @@ -396,6 +396,7 @@ static void setup_serial(void) sync_serial(); } + void upsdrv_initups () { char temp[256], fcstring[512]; diff --git a/drivers/blazer_usb.c b/drivers/blazer_usb.c index 1962103890..88a51555b5 100644 --- a/drivers/blazer_usb.c +++ b/drivers/blazer_usb.c @@ -443,6 +443,7 @@ int blazer_command(const char *cmd, char *buf, size_t buflen) usb->close(udev); udev = NULL; break; + case -ETIMEDOUT: /* Connection timed out */ /* libusb win32 does not know EPROTO and EOVERFLOW, it only returns EIO for any IO errors */ diff --git a/drivers/clone-outlet.c b/drivers/clone-outlet.c index f40db52b2f..14f61dbc32 100644 --- a/drivers/clone-outlet.c +++ b/drivers/clone-outlet.c @@ -146,6 +146,7 @@ static int parse_args(int numargs, char **arg) return 0; } + #ifndef WIN32 static int sstate_connect(void) { diff --git a/drivers/clone.c b/drivers/clone.c index db011d716f..36187cccd9 100644 --- a/drivers/clone.c +++ b/drivers/clone.c @@ -160,6 +160,7 @@ static int parse_args(int numargs, char **arg) return 0; } + #ifndef WIN32 static int sstate_connect(void) { diff --git a/drivers/dstate.c b/drivers/dstate.c index 94b0ad4f3a..9e9af51919 100644 --- a/drivers/dstate.c +++ b/drivers/dstate.c @@ -29,8 +29,8 @@ #include #include #else -#include -#include +#include +#include #include "wincompat.h" #endif @@ -40,15 +40,14 @@ #include "parseconf.h" #ifndef WIN32 - static int sockfd = -1, stale = 1, alarm_active = 0, ignorelb = 0; + static int sockfd = -1; static char *sockfn = NULL; #else - static HANDLE sockfd = INVALID_HANDLE_VALUE; - static int stale = 1, alarm_active = 0; ignorelb = 0; + static HANDLE sockfd = INVALID_HANDLE_VALUE; static OVERLAPPED connect_overlapped; static char *pipename = NULL; #endif - static int ignorelb = 0; + static int stale = 1, alarm_active = 0, ignorelb = 0; static char status_buf[ST_MAX_VALUE_LEN], alarm_buf[ST_MAX_VALUE_LEN]; static st_tree_t *dtree_root = NULL; static conn_t *connhead = NULL; @@ -156,18 +155,18 @@ static HANDLE sock_open(const char *fn) { HANDLE fd; - fd = CreateNamedPipe( - fn, // pipe name - PIPE_ACCESS_DUPLEX | // read/write access + fd = CreateNamedPipe( + fn, // pipe name + PIPE_ACCESS_DUPLEX | // read/write access FILE_FLAG_OVERLAPPED, // async IO - PIPE_TYPE_BYTE | - PIPE_READMODE_BYTE | - PIPE_WAIT, - PIPE_UNLIMITED_INSTANCES, // max. instances - ST_SOCK_BUF_LEN, // output buffer size - ST_SOCK_BUF_LEN, // input buffer size - 0, // client time-out - NULL); // FIXME: default security attribute + PIPE_TYPE_BYTE | + PIPE_READMODE_BYTE | + PIPE_WAIT, + PIPE_UNLIMITED_INSTANCES, // max. instances + ST_SOCK_BUF_LEN, // output buffer size + ST_SOCK_BUF_LEN, // input buffer size + 0, // client time-out + NULL); // FIXME: default security attribute if (fd == INVALID_HANDLE_VALUE) { fatal_with_errno(EXIT_FAILURE, "Can't create a state socket (windows named pipe)"); @@ -320,7 +319,7 @@ static void sock_connect(HANDLE sock) #ifndef WIN32 int ret; - int fd; + int fd; struct sockaddr_un sa; #if defined(__hpux) && !defined(_XOPEN_SOURCE_EXTENDED) @@ -373,18 +372,18 @@ static void sock_connect(HANDLE sock) conn->fd = sock; /* sockfd is the handle of the connection pending pipe */ - sockfd = CreateNamedPipe( - pipename, // pipe name - PIPE_ACCESS_DUPLEX | // read/write access + sockfd = CreateNamedPipe( + pipename, // pipe name + PIPE_ACCESS_DUPLEX | // read/write access FILE_FLAG_OVERLAPPED, // async IO - PIPE_TYPE_BYTE | - PIPE_READMODE_BYTE | - PIPE_WAIT, - PIPE_UNLIMITED_INSTANCES, // max. instances - ST_SOCK_BUF_LEN, // output buffer size - ST_SOCK_BUF_LEN, // input buffer size - 0, // client time-out - NULL); // FIXME: default security attribute + PIPE_TYPE_BYTE | + PIPE_READMODE_BYTE | + PIPE_WAIT, + PIPE_UNLIMITED_INSTANCES, // max. instances + ST_SOCK_BUF_LEN, // output buffer size + ST_SOCK_BUF_LEN, // input buffer size + 0, // client time-out + NULL); // FIXME: default security attribute if (sockfd == INVALID_HANDLE_VALUE) { fatal_with_errno(EXIT_FAILURE, "Can't create a state socket (windows named pipe)"); @@ -855,7 +854,7 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) rfds[maxfd] = connect_overlapped.hEvent; maxfd++; - ret = WaitForMultipleObjects( + ret = WaitForMultipleObjects( maxfd, /* number of objects in array */ rfds, /* array of objects */ FALSE, /* wait for any object */ @@ -887,7 +886,7 @@ int dstate_poll_fds(struct timeval timeout, HANDLE extrafd) sock_read(conn); } } - + /* tell the caller if that fd woke up */ /* if ((extrafd != -1) && (ret == extrafd)) { diff --git a/drivers/genericups.c b/drivers/genericups.c index ff9085281d..64db77a7a6 100644 --- a/drivers/genericups.c +++ b/drivers/genericups.c @@ -156,7 +156,7 @@ void upsdrv_initinfo(void) /* normal idle loop - keep up with the current state of the UPS */ void upsdrv_updateinfo(void) { - int ol, bl,flags,ret; + int flags, ol, bl, ret; #ifndef WIN32 ret = ioctl(upsfd, TIOCMGET, &flags); @@ -345,8 +345,6 @@ void upsdrv_initups(void) #endif fatal_with_errno(EXIT_FAILURE, "ioctl TIOCMSET"); } - - } void upsdrv_cleanup(void) diff --git a/drivers/genericups.h b/drivers/genericups.h index fdf72f3bc3..eb1977e0b5 100644 --- a/drivers/genericups.h +++ b/drivers/genericups.h @@ -16,6 +16,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + struct { const char *mfr; /* value for INFO_MFR */ const char *model; /* value for INFO_MODEL */ diff --git a/drivers/isbmex.c b/drivers/isbmex.c index 2c87c6ae8f..ef538032e9 100644 --- a/drivers/isbmex.c +++ b/drivers/isbmex.c @@ -161,6 +161,7 @@ static const char *getpacket(int *we_know){ bytes_per_packet=*we_know; D(printf("getpacket with %d\n",bytes_per_packet);) + #ifndef WIN32 FD_ZERO(&readfds); FD_SET(upsfd,&readfds); diff --git a/drivers/main.c b/drivers/main.c index 81ad6507c1..0f0c4c41dd 100644 --- a/drivers/main.c +++ b/drivers/main.c @@ -639,75 +639,41 @@ int main(int argc, char **argv) pidfn = xstrdup(buffer); writepid(pidfn); /* before backgrounding */ } -#endif - /* Setup signals to communicate with driver once backgrounded. */ - if ((nut_debug_level == 0) && (!do_forceshutdown)) { - char buffer[SMALLBUF]; - - setup_signals(); - - snprintf(buffer, sizeof(buffer), "%s/%s-%s.pid", altpidpath(), progname, upsname); - - /* Try to prevent that driver is started multiple times. If a PID file */ - /* already exists, send a TERM signal to the process and try if it goes */ - /* away. If not, retry a couple of times. */ - for (i = 0; i < 3; i++) { - struct stat st; - - if (stat(buffer, &st) != 0) { - /* PID file not found */ - break; - } - - if (sendsignalfn(buffer, SIGTERM) != 0) { - /* Can't send signal to PID, assume invalid file */ - break; - } +#else + char name[SMALLBUF]; - upslogx(LOG_WARNING, "Duplicate driver instance detected! Terminating other driver!"); + snprintf(name,sizeof(name), "%s-%s",progname,upsname); - /* Allow driver some time to quit */ - sleep(5); + mutex = CreateMutex(NULL,TRUE,name); + if(mutex == NULL ) { + if( GetLastError() != ERROR_ACCESS_DENIED ) { + fatalx(EXIT_FAILURE, "Can not create mutex %s : %d.\n",name,(int)GetLastError()); } - - pidfn = xstrdup(buffer); - writepid(pidfn); /* before backgrounding */ } -#else - char name[SMALLBUF]; - - snprintf(name,sizeof(name), "%s-%s",progname,upsname); - mutex = CreateMutex(NULL,TRUE,name); - if(mutex == NULL ) { - if( GetLastError() != ERROR_ACCESS_DENIED ) { - fatalx(EXIT_FAILURE, "Can not create mutex %s : %d.\n",name,(int)GetLastError()); + if (GetLastError() == ERROR_ALREADY_EXISTS || GetLastError() == ERROR_ACCESS_DENIED) { + upslogx(LOG_WARNING, "Duplicate driver instance detected! Terminating other driver!"); + for(i=0;i<10;i++) { + DWORD res; + sendsignal(name, COMMAND_STOP); + if(mutex != NULL ) { + res = WaitForSingleObject(mutex,1000); + if(res==WAIT_OBJECT_0) { + break; + } } - } - - if (GetLastError() == ERROR_ALREADY_EXISTS || GetLastError() == ERROR_ACCESS_DENIED) { - upslogx(LOG_WARNING, "Duplicate driver instance detected! Terminating other driver!"); - for(i=0;i<10;i++) { - DWORD res; - sendsignal(name, COMMAND_STOP); + else { + sleep(1); + mutex = CreateMutex(NULL,TRUE,name); if(mutex != NULL ) { - res = WaitForSingleObject(mutex,1000); - if(res==WAIT_OBJECT_0) { - break; - } - } - else { - sleep(1); - mutex = CreateMutex(NULL,TRUE,name); - if(mutex != NULL ) { - break; - } + break; } } - if(i >= 10 ) { - fatalx(EXIT_FAILURE, "Can not terminate the previous driver.\n"); - } } + if(i >= 10 ) { + fatalx(EXIT_FAILURE, "Can not terminate the previous driver.\n"); + } + } #endif /* clear out callback handler data */ @@ -795,5 +761,7 @@ int main(int argc, char **argv) } /* if we get here, the exit flag was set by a signal handler */ - return 0; + upslogx(LOG_INFO, "Signal %d: exiting", exit_flag); + + exit(EXIT_SUCCESS); } diff --git a/drivers/mge-xml.c b/drivers/mge-xml.c index b68b53cf69..e0a514a4ef 100644 --- a/drivers/mge-xml.c +++ b/drivers/mge-xml.c @@ -30,6 +30,7 @@ #include "netxml-ups.h" #include "mge-xml.h" + #ifdef WIN32 #include "wincompat.h" #endif diff --git a/drivers/nut-libfreeipmi.c b/drivers/nut-libfreeipmi.c index 9d315c47a2..dd063695c1 100644 --- a/drivers/nut-libfreeipmi.c +++ b/drivers/nut-libfreeipmi.c @@ -61,16 +61,6 @@ ipmi_ctx_t ipmi_ctx = NULL; ipmi_monitoring_ctx_t mon_ctx = NULL; struct ipmi_monitoring_ipmi_config ipmi_config; -/* SDR management API has changed with 1.1.X and later */ -#ifdef HAVE_FREEIPMI_11X_12X - ipmi_sdr_ctx_t sdr_ctx = NULL; -#else - ipmi_sdr_cache_ctx_t sdr_cache_ctx = NULL; - ipmi_sdr_parse_ctx_t sdr_parse_ctx = NULL; -#ifndef IPMI_SDR_MAX_RECORD_LENGTH - #define IPMI_SDR_MAX_RECORD_LENGTH IPMI_SDR_CACHE_MAX_SDR_RECORD_LENGTH -#endif -#endif /* HAVE_FREEIPMI_11X_12X */ /* SDR management API has changed with 1.1.X and later */ #ifdef HAVE_FREEIPMI_11X_12X @@ -559,7 +549,6 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); } } -#endif /* HAVE_FREEIPMI_11X_12X */ if (ipmi_sdr_ctx_errnum (sdr_ctx) == IPMI_SDR_ERR_CACHE_READ_CACHE_DOES_NOT_EXIST) { @@ -585,7 +574,6 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) } } } -#endif /* HAVE_FREEIPMI_11X_12X */ if (ipmi_sdr_cache_record_count (sdr_ctx, &record_count) < 0) { fprintf (stderr, @@ -593,7 +581,6 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); goto cleanup; } -#endif /* HAVE_FREEIPMI_11X_12X */ upsdebugx(3, "Found %i records in SDR cache", record_count); @@ -619,7 +606,6 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); goto cleanup; } -#endif /* HAVE_FREEIPMI_11X_12X */ upsdebugx (5, "Checking record %i (/%i)", i, record_count); @@ -642,7 +628,6 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); goto cleanup; } -#endif /* HAVE_FREEIPMI_11X_12X */ upsdebugx(2, "Checking device %i/%i", logical_physical_fru_device, logical_fru_device_device_slave_address); @@ -663,7 +648,6 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); goto cleanup; } -#endif /* HAVE_FREEIPMI_11X_12X */ break; } } @@ -682,24 +666,6 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); goto cleanup; } -#endif /* HAVE_FREEIPMI_11X_12X */ - -#ifdef HAVE_FREEIPMI_11X_12X - for (i = 0; i < record_count; i++, ipmi_sdr_cache_next (sdr_ctx)) - { - /* uint8_t sdr_record[IPMI_SDR_CACHE_MAX_SDR_RECORD_LENGTH]; - uint8_t record_type, tmp_entity_id, tmp_entity_instance; - int sdr_record_len; */ - - memset (sdr_record, '\0', IPMI_SDR_MAX_RECORD_LENGTH); - if ((sdr_record_len = ipmi_sdr_cache_record_read (sdr_ctx, - sdr_record, - IPMI_SDR_MAX_RECORD_LENGTH)) < 0) - { - fprintf (stderr, "ipmi_sdr_cache_record_read: %s", - ipmi_sdr_ctx_errormsg (sdr_ctx)); - goto cleanup; - } for (i = 0; i < record_count; i++, ipmi_sdr_cache_next (sdr_ctx)) { @@ -727,7 +693,6 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); goto cleanup; } -#endif /* HAVE_FREEIPMI_11X_12X */ upsdebugx (5, "Checking record %i (/%i)", record_id, record_count); @@ -748,7 +713,6 @@ static int libfreeipmi_get_sensors_info (IPMIDevice_t *ipmi_dev) ipmi_sdr_ctx_errormsg (sdr_ctx)); goto cleanup; } -#endif /* HAVE_FREEIPMI_11X_12X */ if (tmp_entity_id == entity_id && tmp_entity_instance == entity_instance) diff --git a/drivers/serial.c b/drivers/serial.c index c48af58975..d6dd6bc78e 100644 --- a/drivers/serial.c +++ b/drivers/serial.c @@ -77,6 +77,7 @@ static void ser_open_error(const char *port) if (group) printf("Serial port group: %s (%d)\n", group->gr_name, (int) fs.st_gid); + #endif printf(" Mode of port: %04o\n\n", (int) fs.st_mode & 07777); diff --git a/drivers/serial.h b/drivers/serial.h index 069c356d36..4116361e65 100644 --- a/drivers/serial.h +++ b/drivers/serial.h @@ -10,11 +10,11 @@ # include /* for speed_t */ #else # include -#endif -#else +#endif /* HAVE_SYS_TERMIOS_H */ +#else /* WIN32 */ #include "common.h" #include "wincompat.h" -#endif /* HAVE_SYS_TERMIOS_H */ +#endif /* WIN32 */ /* limit the amount of spew that goes in the syslog when we lose the UPS */ #define SER_ERR_LIMIT 10 /* start limiting after 10 in a row */ @@ -79,7 +79,7 @@ int ser_send(TYPE_FD fd, const char *fmt, ...) int ser_send_buf(TYPE_FD fd, const void *buf, size_t buflen); /* send buflen bytes from buf with d_usec delay after each char */ -int ser_send_buf_pace(TYPE_FD fd, unsigned long d_usec, const void *buf, +int ser_send_buf_pace(TYPE_FD fd, unsigned long d_usec, const void *buf, size_t buflen); int ser_get_char(TYPE_FD fd, void *ch, long d_sec, long d_usec); diff --git a/drivers/upsdrvctl.c b/drivers/upsdrvctl.c index c664b2482e..84c838d3e8 100644 --- a/drivers/upsdrvctl.c +++ b/drivers/upsdrvctl.c @@ -266,7 +266,7 @@ static void forkexec(char *const argv[], const ups_t *ups) /* the command line is made of the driver name followed by args */ snprintf(commandline,sizeof(commandline),"%s", ups->driver); - while( argv[i] != NULL ) { + while( argv[i] != NULL ) { snprintfcat(commandline, sizeof(commandline), " %s", argv[i]); i++; } diff --git a/include/common.h b/include/common.h index 0176020259..566c3e17f8 100644 --- a/include/common.h +++ b/include/common.h @@ -54,6 +54,7 @@ /* *INDENT-OFF* */ extern "C" { /* *INDENT-ON* */ +#endif #ifdef WIN32 typedef struct serial_handler_s { @@ -184,6 +185,7 @@ extern int optind; /* *INDENT-OFF* */ } /* *INDENT-ON* */ +#endif #ifdef WIN32 /* FIXME : this might not be the optimal mapping between syslog and ReportEvent*/ diff --git a/include/wincompat.h b/include/wincompat.h index f670217d43..5eae270dfc 100644 --- a/include/wincompat.h +++ b/include/wincompat.h @@ -1,7 +1,7 @@ #ifndef NUT_WINCOMPAT_H #define NUT_WINCOMPAT_H -/* +/* Copyright (C) 2001 Andrew Delpha (delpha@computer.org) This program is free software; you can redistribute it and/or modify @@ -16,7 +16,7 @@ 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., 675 Mass Ave, Cambridge, MA 02139, USA. + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ @@ -49,7 +49,7 @@ char * filter_path(const char * source); /* Network compatibility */ /* This is conditional because read/write are generic in unix, and this will make them network specific */ -#ifdef W32_NETWORK_CALL_OVERRIDE +#ifdef W32_NETWORK_CALL_OVERRIDE #define close(h) sktclose(h) #define read(h,b,s) sktread(h,b,s) #define write(h,b,s) sktwrite( h ,(char *) b , s ) diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 0afa03afbb..a59e89d674 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -24,4 +24,4 @@ upower/95-upower-hid.rules \ Windows/halt.c \ Windows/Makefile -SUBDIRS = augeas hal hotplug java python systemd udev Solaris Windows +SUBDIRS = augeas hal hotplug python systemd udev Solaris Windows diff --git a/scripts/Windows/README b/scripts/Windows/README index b7300d561f..f21c65eb1f 100644 --- a/scripts/Windows/README +++ b/scripts/Windows/README @@ -10,7 +10,7 @@ Cross compiling from Linux -------------------------- Fortunately, you are not forced to have a real Windows system to compile NUT. -The following chapters will guide you through setting up up a +The following chapters will guide you through setting up up a link:http://mingw-w64.sourceforge.net[MinGW-w64] build environment and compiling NUT. diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index ffda7710ac..dbc2045238 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -80,7 +80,7 @@ static void print_event(DWORD priority, const char * fmt, ...) } - if( buf ) + if( buf ) free(buf); } @@ -570,7 +570,7 @@ static void WINAPI SvcMain( DWORD argc, LPTSTR *argv ) ReportSvcStatus( SERVICE_STOPPED, NO_ERROR, 0); } return; - } + } /* Retrieve the signaled connection */ for(conn = pipe_connhead; conn != NULL; conn = conn->next) { diff --git a/scripts/systemd/nut-driver.service.in b/scripts/systemd/nut-driver.service.in index 846b34f8f1..8664162ebb 100644 --- a/scripts/systemd/nut-driver.service.in +++ b/scripts/systemd/nut-driver.service.in @@ -6,7 +6,5 @@ StopWhenUnneeded=yes [Service] ExecStart=@DRVPATH@/upsdrvctl start ExecStop=@DRVPATH@/upsdrvctl stop -ExecStart=/sbin/upsdrvctl start -ExecStop=/sbin/upsdrvctl stop Type=forking diff --git a/server/Makefile.am b/server/Makefile.am index 22c36723f9..664a07d30d 100644 --- a/server/Makefile.am +++ b/server/Makefile.am @@ -30,5 +30,5 @@ upsd_SOURCES = upsd.c user.c conf.c netssl.c sstate.c desc.c \ if HAVE_WINDOWS sockdebug_SOURCES = pipedebug.c else !HAVE_WINDOWS -sockdebug_SOURCES = sockdebug.c + sockdebug_SOURCES = sockdebug.c endif !HAVE_WINDOWS diff --git a/server/conf.c b/server/conf.c index d1a8ddd7a7..1e439b7d17 100644 --- a/server/conf.c +++ b/server/conf.c @@ -50,17 +50,6 @@ static void ups_create(const char *fn, const char *name, const char *desc) temp->stale = 1; temp->retain = 1; - temp->sock_fd = sstate_connect(temp); - - /* preload this to the current time to avoid false staleness */ - time(&temp->last_heard); - - temp->next = firstups; - firstups = temp; - temp->last_ping = 0; - temp->last_connfail = 0; - temp->inforoot = NULL; - temp->cmdlist = NULL; #ifdef WIN32 memset(&temp->read_overlapped,0,sizeof(temp->read_overlapped)); memset(temp->buf,0,sizeof(temp->buf)); @@ -69,7 +58,7 @@ static void ups_create(const char *fn, const char *name, const char *desc) FALSE, /* initial state = non signaled */ NULL /* no name */); if(temp->read_overlapped.hEvent == NULL ) { - upslogx(LOG_ERR, "Can't create event for UPS [%s]", + upslogx(LOG_ERR, "Can't create event for UPS [%s]", name); return; } @@ -113,6 +102,7 @@ static void ups_update(const char *fn, const char *name, const char *desc) sstate_infofree(temp); sstate_cmdfree(temp); pconf_finish(&temp->sock_ctx); + #ifndef WIN32 close(temp->sock_fd); temp->sock_fd = -1; diff --git a/server/netssl.c b/server/netssl.c index da3bf40e4e..7719bf2219 100644 --- a/server/netssl.c +++ b/server/netssl.c @@ -31,15 +31,32 @@ #include #endif + #include "upsd.h" #include "neterr.h" #include "netssl.h" +#ifdef WITH_NSS + #include + #include + #include + #include + #include + #include + #include +#endif /* WITH_NSS */ + char *certfile = NULL; +char *certname = NULL; +char *certpasswd = NULL; + +#ifdef WITH_CLIENT_CERTIFICATE_VALIDATION +int certrequest = 0; +#endif /* WITH_CLIENT_CERTIFICATE_VALIDATION */ static int ssl_initialized = 0; -#ifndef HAVE_SSL +#ifndef WITH_SSL /* stubs for non-ssl compiles */ void net_starttls(nut_ctype_t *client, int numarg, const char **arg) @@ -72,8 +89,14 @@ void ssl_finish(nut_ctype_t *client) } } +void ssl_cleanup(void) +{ +} + #else +#ifdef WITH_OPENSSL + static SSL_CTX *ssl_ctx = NULL; static void ssl_debug(void) @@ -87,22 +110,156 @@ static void ssl_debug(void) } } +static int ssl_error(SSL *ssl, int ret) +{ + int e; + + e = SSL_get_error(ssl, ret); + + switch (e) + { + case SSL_ERROR_WANT_READ: + upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_WANT_READ", ret); + break; + + case SSL_ERROR_WANT_WRITE: + upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_WANT_WRITE", ret); + break; + + case SSL_ERROR_SYSCALL: + if (ret == 0 && ERR_peek_error() == 0) { + upsdebugx(1, "ssl_error() EOF from client"); + } else { + upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_SYSCALL", ret); + } + break; + + default: + upsdebugx(1, "ssl_error() ret=%d SSL_ERROR %d", ret, e); + ssl_debug(); + } + + return -1; +} + +#elif defined(WITH_NSS) /* WITH_OPENSSL */ + +static CERTCertificate *cert; +static SECKEYPrivateKey *privKey; + +static char *nss_password_callback(PK11SlotInfo *slot, PRBool retry, + void *arg) +{ + if (retry) { + /* Force not inted to retrieve password many times. */ + return NULL; + } + upslogx(LOG_INFO, "Intend to retrieve password for %s / %s: password %sconfigured", + PK11_GetSlotName(slot), PK11_GetTokenName(slot), certpasswd?"":"not "); + return certpasswd ? PL_strdup(certpasswd) : NULL; +} + +static void nss_error(const char* text) +{ + char buffer[SMALLBUF]; + PRInt32 length = PR_GetErrorText(buffer); + if (length > 0 && length < SMALLBUF) { + upsdebugx(1, "nss_error %ld in %s : %s", (long)PR_GetError(), text, buffer); + }else{ + upsdebugx(1, "nss_error %ld in %s", (long)PR_GetError(), text); + } +} + +static int ssl_error(PRFileDesc *ssl, int ret) +{ + char buffer[256]; + PRInt32 length; + PRErrorCode e; + + e = PR_GetError(); + length = PR_GetErrorText(buffer); + if (length > 0 && length < 256) { + upsdebugx(1, "ssl_error() ret=%d %*s", e, length, buffer); + } else { + upsdebugx(1, "ssl_error() ret=%d", e); + } + + return -1; +} + +static SECStatus AuthCertificate(CERTCertDBHandle *arg, PRFileDesc *fd, + PRBool checksig, PRBool isServer) +{ + nut_ctype_t *client = (nut_ctype_t *)SSL_RevealPinArg(fd); + SECStatus status = SSL_AuthCertificate(arg, fd, checksig, isServer); + upslogx(LOG_INFO, "Intend to authenticate client %s : %s.", + client?client->addr:"(unnamed)", + status==SECSuccess?"SUCCESS":"FAILED"); + return status; +} + +static SECStatus BadCertHandler(nut_ctype_t *arg, PRFileDesc *fd) +{ + upslogx(LOG_WARNING, "Certificate validation failed for %s", + (arg&&arg->addr)?arg->addr:""); +#ifdef WITH_CLIENT_CERTIFICATE_VALIDATION + /* BadCertHandler is called when the NSS certificate validation is failed. + * If the certificate verification (user conf) is mandatory, reject authentication + * else accept it. + */ + return certrequest==NETSSL_CERTREQ_REQUIRE?SECFailure:SECSuccess; +#else /* WITH_CLIENT_CERTIFICATE_VALIDATION */ + /* Always accept clients. */ + return SECSuccess; +#endif /* WITH_CLIENT_CERTIFICATE_VALIDATION */ +} + +static void HandshakeCallback(PRFileDesc *fd, nut_ctype_t *client_data) +{ + upslogx(LOG_INFO, "SSL handshake done successfully with client %s", + client_data->addr); +} + + +#endif /* WITH_OPENSSL | WITH_NSS */ + void net_starttls(nut_ctype_t *client, int numarg, const char **arg) { +#ifdef WITH_OPENSSL + int ret; +#elif defined(WITH_NSS) /* WITH_OPENSSL */ + SECStatus status; + PRFileDesc *socket; +#endif /* WITH_OPENSSL | WITH_NSS */ + if (client->ssl) { send_err(client, NUT_ERR_ALREADY_SSL_MODE); return; } - if ((!ssl_ctx) || (!certfile) || (!ssl_initialized)) { + client->ssl_connected = 0; + + if ((!certfile) || (!ssl_initialized)) { send_err(client, NUT_ERR_FEATURE_NOT_CONFIGURED); return; } - + +#ifdef WITH_OPENSSL + if (!ssl_ctx) { +#elif defined(WITH_NSS) /* WITH_OPENSSL */ + if (!NSS_IsInitialized()) { +#endif /* WITH_OPENSSL | WITH_NSS */ + send_err(client, NUT_ERR_FEATURE_NOT_CONFIGURED); + ssl_initialized = 0; + return; + } + if (!sendback(client, "OK STARTTLS\n")) { return; } +#ifdef WITH_OPENSSL + client->ssl = SSL_new(ssl_ctx); if (!client->ssl) { @@ -114,22 +271,126 @@ void net_starttls(nut_ctype_t *client, int numarg, const char **arg) if (SSL_set_fd(client->ssl, client->sock_fd) != 1) { upslog_with_errno(LOG_ERR, "SSL_set_fd failed\n"); ssl_debug(); + return; + } + + ret = SSL_accept(client->ssl); + switch (ret) + { + case 1: + client->ssl_connected = 1; + upsdebugx(3, "SSL connected"); + break; + + case 0: + upslog_with_errno(LOG_ERR, "SSL_accept do not accept handshake."); + ssl_error(client->ssl, ret); + break; + case -1: + upslog_with_errno(LOG_ERR, "Unknown return value from SSL_accept"); + ssl_error(client->ssl, ret); + break; + } + +#elif defined(WITH_NSS) /* WITH_OPENSSL */ + + socket = PR_ImportTCPSocket(client->sock_fd); + if (socket == NULL){ + upslogx(LOG_ERR, "Can not inialize SSL connexion"); + nss_error("net_starttls / PR_ImportTCPSocket"); + return; + } + + client->ssl = SSL_ImportFD(NULL, socket); + if (client->ssl == NULL){ + upslogx(LOG_ERR, "Can not inialize SSL connexion"); + nss_error("net_starttls / SSL_ImportFD"); + return; + } + + if (SSL_SetPKCS11PinArg(client->ssl, client) == -1){ + upslogx(LOG_ERR, "Can not inialize SSL connexion"); + nss_error("net_starttls / SSL_SetPKCS11PinArg"); + return; + } + + /* Note cast to SSLAuthCertificate to prevent warning due to + * bad function prototype in NSS. + */ + status = SSL_AuthCertificateHook(client->ssl, (SSLAuthCertificate)AuthCertificate, CERT_GetDefaultCertDB()); + if (status != SECSuccess) { + upslogx(LOG_ERR, "Can not inialize SSL connexion"); + nss_error("net_starttls / SSL_AuthCertificateHook"); + return; + } + + status = SSL_BadCertHook(client->ssl, (SSLBadCertHandler)BadCertHandler, client); + if (status != SECSuccess) { + upslogx(LOG_ERR, "Can not inialize SSL connexion"); + nss_error("net_starttls / SSL_BadCertHook"); + return; + } + + status = SSL_HandshakeCallback(client->ssl, (SSLHandshakeCallback)HandshakeCallback, client); + if (status != SECSuccess) { + upslogx(LOG_ERR, "Can not inialize SSL connexion"); + nss_error("net_starttls / SSL_HandshakeCallback"); + return; } + + status = SSL_ConfigSecureServer(client->ssl, cert, privKey, NSS_FindCertKEAType(cert)); + if (status != SECSuccess) { + upslogx(LOG_ERR, "Can not inialize SSL connexion"); + nss_error("net_starttls / SSL_ConfigSecureServer"); + return; + } + + status = SSL_ResetHandshake(client->ssl, PR_TRUE); + if (status != SECSuccess) { + upslogx(LOG_ERR, "Can not inialize SSL connexion"); + nss_error("net_starttls / SSL_ResetHandshake"); + return; + } + + /* Note: this call can generate memory leaks not resolvable + * by any release function. + * Probably SSL session key object allocation. */ + status = SSL_ForceHandshake(client->ssl); + if (status != SECSuccess) { + PRErrorCode code = PR_GetError(); + if (code==SSL_ERROR_NO_CERTIFICATE) { + upslogx(LOG_WARNING, "Client %s do not provide certificate.", + client->addr); + } else { + nss_error("net_starttls / SSL_ForceHandshake"); + /* TODO : Close the connexion. */ + return; + } + } + client->ssl_connected = 1; +#endif /* WITH_OPENSSL | WITH_NSS */ } void ssl_init(void) { +#ifdef WITH_NSS + SECStatus status; +#elif defined(WITH_OPENSSL) #if OPENSSL_VERSION_NUMBER >= 0x10000000L const SSL_METHOD *ssl_method; #else SSL_METHOD *ssl_method; #endif +#endif /* WITH_NSS|WITH_OPENSSL */ + if (!certfile) { return; } check_perms(certfile); +#ifdef WITH_OPENSSL + SSL_load_error_strings(); SSL_library_init(); @@ -166,60 +427,105 @@ void ssl_init(void) SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_NONE, NULL); ssl_initialized = 1; -} + +#elif defined(WITH_NSS) /* WITH_OPENSSL */ -static int ssl_error(SSL *ssl, int ret) -{ - int e; + if (!certname || certname[0]==0 ) { + upslogx(LOG_ERR, "The SSL certificate name is not specified."); + return; + } - e = SSL_get_error(ssl, ret); + PR_Init(PR_USER_THREAD, PR_PRIORITY_NORMAL, 0); + + PK11_SetPasswordFunc(nss_password_callback); + + if (certfile) + /* Note: this call can generate memory leaks not resolvable + * by any release function. + * Probably NSS key module object allocation and + * probably NSS key db object allocation too. */ + status = NSS_Init(certfile); + else + status = NSS_NoDB_Init(NULL); + if (status != SECSuccess) { + upslogx(LOG_ERR, "Can not initialize SSL context"); + nss_error("upscli_init / NSS_[NoDB]_Init"); + return; + } + + status = NSS_SetDomesticPolicy(); + if (status != SECSuccess) { + upslogx(LOG_ERR, "Can not initialize SSL policy"); + nss_error("upscli_init / NSS_SetDomesticPolicy"); + return; + } - switch (e) - { - case SSL_ERROR_WANT_READ: - upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_WANT_READ", ret); - break; + /* Default server cache config */ + status = SSL_ConfigServerSessionIDCache(0, 0, 0, NULL); + if (status != SECSuccess) { + upslogx(LOG_ERR, "Can not initialize SSL server cache"); + nss_error("upscli_init / SSL_ConfigServerSessionIDCache"); + return; + } + + status = SSL_OptionSetDefault(SSL_ENABLE_SSL3, PR_TRUE); + if (status != SECSuccess) { + upslogx(LOG_ERR, "Can not enable SSLv3"); + nss_error("upscli_init / SSL_OptionSetDefault(SSL_ENABLE_SSL3)"); + return; + } + status = SSL_OptionSetDefault(SSL_ENABLE_TLS, PR_TRUE); + if (status != SECSuccess) { + upslogx(LOG_ERR, "Can not enable TLSv1"); + nss_error("upscli_init / SSL_OptionSetDefault(SSL_ENABLE_TLS)"); + return; + } - case SSL_ERROR_WANT_WRITE: - upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_WANT_WRITE", ret); - break; +#ifdef WITH_CLIENT_CERTIFICATE_VALIDATION + if (certrequest < NETSSL_CERTREQ_NO && + certrequest > NETSSL_CERTREQ_REQUEST) { + upslogx(LOG_ERR, "Invalid certificate requirement"); + return; + } - case SSL_ERROR_SYSCALL: - if (ret == 0 && ERR_peek_error() == 0) { - upsdebugx(1, "ssl_error() EOF from client"); - } else { - upsdebugx(1, "ssl_error() ret=%d SSL_ERROR_SYSCALL", ret); + if (certrequest == NETSSL_CERTREQ_REQUEST || + certrequest == NETSSL_CERTREQ_REQUIRE ) { + status = SSL_OptionSetDefault(SSL_REQUEST_CERTIFICATE, PR_TRUE); + if (status != SECSuccess) { + upslogx(LOG_ERR, "Can not enable certificate request"); + nss_error("upscli_init / SSL_OptionSetDefault(SSL_REQUEST_CERTIFICATE)"); + return; } - break; - - default: - upsdebugx(1, "ssl_error() ret=%d SSL_ERROR %d", ret, e); - ssl_debug(); } - return -1; -} + if (certrequest == NETSSL_CERTREQ_REQUIRE ) { + status = SSL_OptionSetDefault(SSL_REQUIRE_CERTIFICATE, PR_TRUE); + if (status != SECSuccess) { + upslogx(LOG_ERR, "Can not enable certificate requirement"); + nss_error("upscli_init / SSL_OptionSetDefault(SSL_REQUIRE_CERTIFICATE)"); + return; + } + } +#endif /* WITH_CLIENT_CERTIFICATE_VALIDATION */ -static int ssl_accept(nut_ctype_t *client) -{ - int ret; - - ret = SSL_accept(client->ssl); - - switch (ret) - { - case 1: - client->ssl_connected = 1; - upsdebugx(3, "SSL connected"); - return 0; - - case 0: - case -1: - return ssl_error(client->ssl, ret); + cert = PK11_FindCertFromNickname(certname, NULL); + if(cert==NULL) { + upslogx(LOG_ERR, "Can not find server certificate"); + nss_error("upscli_init / PK11_FindCertFromNickname"); + return; } - upslog_with_errno(LOG_ERR, "Unknown return value from SSL_accept"); - return -1; + privKey = PK11_FindKeyByAnyCert(cert, NULL); + if(privKey==NULL){ + upslogx(LOG_ERR, "Can not find private key associate to server certificate"); + nss_error("upscli_init / PK11_FindKeyByAnyCert"); + return; + } + + ssl_initialized = 1; +#else /* WITH_OPENSSL | WITH_NSS */ + upslogx(LOG_ERR, "ssl_init called but SSL wasn't compiled in"); +#endif /* WITH_OPENSSL | WITH_NSS */ } int ssl_read(nut_ctype_t *client, char *buf, size_t buflen) @@ -227,11 +533,14 @@ int ssl_read(nut_ctype_t *client, char *buf, size_t buflen) int ret; if (!client->ssl_connected) { - if (ssl_accept(client) != 0) - return -1; + return -1; } +#ifdef WITH_OPENSSL ret = SSL_read(client->ssl, buf, buflen); +#elif defined(WITH_NSS) /* WITH_OPENSSL */ + ret = PR_Read(client->ssl, buf, buflen); +#endif /* WITH_OPENSSL | WITH_NSS */ if (ret < 1) { ssl_error(client->ssl, ret); @@ -245,7 +554,15 @@ int ssl_write(nut_ctype_t *client, const char *buf, size_t buflen) { int ret; + if (!client->ssl_connected) { + return -1; + } + +#ifdef WITH_OPENSSL ret = SSL_write(client->ssl, buf, buflen); +#elif defined(WITH_NSS) /* WITH_OPENSSL */ + ret = PR_Write(client->ssl, buf, buflen); +#endif /* WITH_OPENSSL | WITH_NSS */ upsdebugx(5, "ssl_write ret=%d", ret); @@ -255,8 +572,36 @@ int ssl_write(nut_ctype_t *client, const char *buf, size_t buflen) void ssl_finish(nut_ctype_t *client) { if (client->ssl) { +#ifdef WITH_OPENSSL SSL_free(client->ssl); +#elif defined(WITH_NSS) + PR_Shutdown(client->ssl, PR_SHUTDOWN_BOTH); + PR_Close(client->ssl); +#endif /* WITH_OPENSSL | WITH_NSS */ + client->ssl_connected = 0; + client->ssl = NULL; + } +} + +void ssl_cleanup(void) +{ +#ifdef WITH_OPENSSL + if (ssl_ctx) { + SSL_CTX_free(ssl_ctx); + ssl_ctx = NULL; } +#elif defined(WITH_NSS) /* WITH_OPENSSL */ + CERT_DestroyCertificate(cert); + SECKEY_DestroyPrivateKey(privKey); + NSS_Shutdown(); + PR_Cleanup(); + /* Called to release memory arena used by NSS/NSPR. + * Prevent to show all PL_ArenaAllocate mem alloc as leaks. + * https://developer.mozilla.org/en/NSS_Memory_allocation + */ + PL_ArenaFinish(); +#endif /* WITH_OPENSSL | WITH_NSS */ + ssl_initialized = 0; } -#endif /* HAVE_SSL */ +#endif /* WITH_SSL */ diff --git a/server/sstate.c b/server/sstate.c index bc7ab58e87..b1dc119de1 100644 --- a/server/sstate.c +++ b/server/sstate.c @@ -255,15 +255,15 @@ HANDLE sstate_connect(upstype_t *ups) return INVALID_HANDLE_VALUE; } - fd = CreateFile( - pipename, // pipe name - GENERIC_READ | // read and write access - GENERIC_WRITE, - 0, // no sharing + fd = CreateFile( + pipename, // pipe name + GENERIC_READ | // read and write access + GENERIC_WRITE, + 0, // no sharing NULL, // default security attributes FIXME - OPEN_EXISTING, // opens existing pipe + OPEN_EXISTING, // opens existing pipe FILE_FLAG_OVERLAPPED, // enable async IO - NULL); // no template file + NULL); // no template file if (fd == INVALID_HANDLE_VALUE) { upslog_with_errno(LOG_ERR, "Can't connect to UPS [%s] (%s)", ups->name, ups->fn); diff --git a/server/upsd.c b/server/upsd.c index 92b291853d..ecfeb537ab 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -250,6 +250,7 @@ static void setuptcp(stype_t *server) if (fcntl(sock_fd, F_SETFL, v | O_NDELAY) == -1) { fatal_with_errno(EXIT_FAILURE, "setuptcp: fcntl(set)"); } + #endif if (listen(sock_fd, 16) < 0) { upsdebug_with_errno(3, "setuptcp: listen"); @@ -756,11 +757,11 @@ static void set_reload_flag(int sig) /* service requests and check on new data */ static void mainloop(void) { + int nfds = 0; #ifndef WIN32 - int i, ret, nfds = 0; + int i, ret; #else DWORD ret; - int nfds = 0; pipe_conn_t * conn; #endif @@ -1056,6 +1057,7 @@ static void help(const char *progname) printf(" -V display the version of this software\n"); printf(" -4 IPv4 only\n"); printf(" -6 IPv6 only\n"); + exit(EXIT_SUCCESS); } @@ -1169,6 +1171,7 @@ int main(int argc, char **argv) case 'V': /* do nothing - we already printed the banner */ exit(EXIT_SUCCESS); + case 'c': if (!strncmp(optarg, "reload", strlen(optarg))) cmd = SIGCMD_RELOAD; @@ -1179,6 +1182,7 @@ int main(int argc, char **argv) if (cmd == 0) help(progname); break; + case 'D': nut_debug_level++; break; @@ -1190,6 +1194,7 @@ int main(int argc, char **argv) case '6': opt_af = AF_INET6; break; + default: help(progname); break; diff --git a/tools/nut-scanner/nut-scanner.c b/tools/nut-scanner/nut-scanner.c index 97c7fd0155..b52b74fd10 100644 --- a/tools/nut-scanner/nut-scanner.c +++ b/tools/nut-scanner/nut-scanner.c @@ -81,7 +81,6 @@ static char * start_ip = NULL; static char * end_ip = NULL; static char * port = NULL; static char * serial_ports = NULL; ->>>>>>> Merge from trunk [[SVN:3060]] to [[SVN:3318]] #ifdef HAVE_PTHREAD static pthread_t thread[TYPE_END]; @@ -177,8 +176,6 @@ int main(int argc, char *argv[]) nutscan_init(); - nutscan_init(); - display_func = nutscan_display_ups_conf; while((opt_ret = getopt_long(argc, argv, optstring, longopts, NULL))!=-1) { diff --git a/tools/nut-scanner/nutscan-init.c b/tools/nut-scanner/nutscan-init.c index 6c7539b82a..9ec6799f28 100644 --- a/tools/nut-scanner/nutscan-init.c +++ b/tools/nut-scanner/nutscan-init.c @@ -34,8 +34,10 @@ int nutscan_load_avahi_library(void); int nutscan_load_ipmi_library(void); int nutscan_load_upsclient_library(void); +#ifdef WIN32 /* Stub for libupsclient */ void do_upsconf_args(char *confupsname, char *var, char *val) {;}; +#endif void nutscan_init(void) { diff --git a/tools/nut-scanner/scan_avahi.c b/tools/nut-scanner/scan_avahi.c index c7cc3bef27..198e1f223f 100644 --- a/tools/nut-scanner/scan_avahi.c +++ b/tools/nut-scanner/scan_avahi.c @@ -360,7 +360,6 @@ static void resolve_callback( switch (event) { case AVAHI_RESOLVER_FAILURE: fprintf(stderr, "(Resolver) Failed to resolve service '%s' of type '%s' in domain '%s': %s\n", name, type, domain, (*nut_avahi_strerror)((*nut_avahi_client_errno)((*nut_avahi_service_resolver_get_client)(r)))); - fprintf(stderr, "(Resolver) Failed to resolve service '%s' of type '%s' in domain '%s': %s\n", name, type, domain, avahi_strerror(avahi_client_errno(avahi_service_resolver_get_client(r)))); break; case AVAHI_RESOLVER_FOUND: { @@ -515,10 +514,4 @@ nutscan_device_t * nutscan_scan_avahi(long usec_timeout) { return NULL; } -#else /* WITH_AVAHI */ -/* stub function */ -nutscan_device_t * nutscan_scan_avahi(long usec_timeout) -{ - return NULL; -} #endif /* WITH_AVAHI */ diff --git a/tools/nut-scanner/scan_nut.c b/tools/nut-scanner/scan_nut.c index d167cf2cac..a2b26054e3 100644 --- a/tools/nut-scanner/scan_nut.c +++ b/tools/nut-scanner/scan_nut.c @@ -205,7 +205,6 @@ nutscan_device_t * nutscan_scan_nut(const char* startIP, const char* stopIP, con char * ip_str = NULL; char * ip_dest = NULL; char buf[SMALLBUF]; - int change_action_handler = 0; int i; #ifndef WIN32 struct sigaction oldact; @@ -218,7 +217,6 @@ nutscan_device_t * nutscan_scan_nut(const char* startIP, const char* stopIP, con #endif #ifdef HAVE_PTHREAD - int i; pthread_t thread; pthread_t * thread_array = NULL; int thread_count = 0; diff --git a/tools/nut-scanner/scan_snmp.c b/tools/nut-scanner/scan_snmp.c index 4f70b07ddc..d5e27242a0 100644 --- a/tools/nut-scanner/scan_snmp.c +++ b/tools/nut-scanner/scan_snmp.c @@ -376,7 +376,6 @@ static void try_all_oid(void * arg) scan_snmp_add_device(sec,response,snmp_device_table[index].mib); (*nut_snmp_free_pdu)(response); - snmp_free_pdu(response); response = NULL; index++; @@ -715,11 +714,6 @@ nutscan_device_t * nutscan_scan_snmp(const char * start_ip, const char * stop_ip { return NULL; } -#else /* WITH_SNMP */ -nutscan_device_t * nutscan_scan_snmp(const char * start_ip, const char * stop_ip,long usec_timeout, nutscan_snmp_t * sec) -{ - return NULL; -} #endif /* WITH_SNMP */ diff --git a/tools/nut-scanner/scan_usb.c b/tools/nut-scanner/scan_usb.c index e003a6369d..065e67a587 100644 --- a/tools/nut-scanner/scan_usb.c +++ b/tools/nut-scanner/scan_usb.c @@ -276,10 +276,5 @@ nutscan_device_t * nutscan_scan_usb() { return NULL; } -#else /* WITH_USB */ -nutscan_device_t * nutscan_scan_usb() -{ - return NULL; -} #endif /* WITH_USB */ diff --git a/tools/nut-scanner/scan_xml_http.c b/tools/nut-scanner/scan_xml_http.c index bd85b2850e..da5a551d24 100644 --- a/tools/nut-scanner/scan_xml_http.c +++ b/tools/nut-scanner/scan_xml_http.c @@ -107,6 +107,7 @@ int nutscan_load_neon_library() lt_dlexit(); return 0; } + static int startelm_cb(void *userdata, int parent, const char *nspace, const char *name, const char **atts) { nutscan_device_t * dev = (nutscan_device_t *)userdata; char buf[SMALLBUF]; @@ -251,9 +252,4 @@ nutscan_device_t * nutscan_scan_xml_http(long usec_timeout) { return NULL; } -#else /* WITH_NEON */ -nutscan_device_t * nutscan_scan_xml_http(long usec_timeout) -{ - return NULL; -} #endif /* WITH_NEON */ From a5aa9b4568c1721b8b63b505c5d7736b1664d615 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 27 Sep 2013 16:24:01 +0200 Subject: [PATCH 197/218] Fix upsclient link after rebase --- clients/Makefile.am | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/clients/Makefile.am b/clients/Makefile.am index 0a26b03a00..ddcf763422 100644 --- a/clients/Makefile.am +++ b/clients/Makefile.am @@ -52,19 +52,21 @@ upsstats_cgi_SOURCES = upsstats.c upsclient.h status.h upsstats.h \ upsimagearg.h cgilib.c cgilib.h # not LDADD. + +# libupsclient version information +# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html if HAVE_WINDOWS_SOCKETS - libupsclient_la_SOURCES = upsclient.c upsclient.h ../common/wincompat.c ../common/common.c +libupsclient_la_SOURCES = upsclient.c upsclient.h ../common/wincompat.c ../common/common.c +libupsclient_la_LIBADD = ../common/libparseconf.la -lws2_32 +libupsclient_la_LDFLAGS = -version-info 3:1:0 -no-undefined else !HAVE_WINDOWS_SOCKETS - libupsclient_la_SOURCES = upsclient.c upsclient.h -endif !HAVE_WINDOWS_SOCKETS +libupsclient_la_SOURCES = upsclient.c upsclient.h libupsclient_la_LIBADD = ../common/libparseconf.la +libupsclient_la_LDFLAGS = -version-info 3:1:0 +endif !HAVE_WINDOWS_SOCKETS + if WITH_SSL libupsclient_la_LIBADD += $(LIBSSL_LIBS) endif -# libupsclient version information -# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html -libupsclient_la_LDFLAGS = -version-info 3:1:0 -no-undefined - libnutclient_la_SOURCES = nutclient.h nutclient.cpp - From 03e11627c496fafcc01f50fa658e44e53e6b5f12 Mon Sep 17 00:00:00 2001 From: Frederic BOHE Date: Thu, 3 Oct 2013 11:00:54 +0200 Subject: [PATCH 198/218] Fix compilation on Windows --- clients/Makefile.am | 4 +- common/Makefile.am | 2 +- common/wincompat.c | 14 ++----- drivers/Makefile.am | 3 +- drivers/apcsmart.c | 2 +- drivers/dstate.c | 12 +++--- drivers/netxml-ups.c | 9 +++++ drivers/riello_usb.c | 8 +++- drivers/serial.c | 45 ++++++++++++--------- drivers/serial.h | 19 ++------- drivers/upsdrvctl.c | 4 +- drivers/voltronic_usb.c | 8 +++- scripts/Windows/Installer/NUT-Installer.xml | 26 ++++-------- scripts/Windows/wininit.c | 2 +- server/sstate.c | 1 + server/upsd.c | 6 ++- tools/nut-scanner/Makefile.am | 8 ++-- tools/nut-scanner/nutscan-serial.c | 3 ++ tools/nut-scanner/scan_eaton_serial.c | 25 ++++++++---- 19 files changed, 113 insertions(+), 88 deletions(-) diff --git a/clients/Makefile.am b/clients/Makefile.am index ddcf763422..6b6e8909d7 100644 --- a/clients/Makefile.am +++ b/clients/Makefile.am @@ -21,10 +21,12 @@ bin_PROGRAMS = upsc upslog upsrw upscmd dist_bin_SCRIPTS = upssched-cmd if HAVE_WINDOWS_SOCKETS sbin_PROGRAMS = upsmon upssched message +#TODO : port libnutclient +lib_LTLIBRARIES = libupsclient.la else !HAVE_WINDOWS_SOCKETS sbin_PROGRAMS = upsmon upssched -endif !HAVE_WINDOWS_SOCKETS lib_LTLIBRARIES = libupsclient.la libnutclient.la +endif !HAVE_WINDOWS_SOCKETS if WITH_DEV include_HEADERS = upsclient.h ../include/parseconf.h nutclient.h endif diff --git a/common/Makefile.am b/common/Makefile.am index 2fe2e23ea6..3ebb7502aa 100644 --- a/common/Makefile.am +++ b/common/Makefile.am @@ -13,4 +13,4 @@ libparseconf_la_SOURCES = parseconf.c libcommon_la_SOURCES = common.c state.c upsconf.c wincompat.c ../include/wincompat.h # ensure inclusion of local implementation of missing systems functions # using LTLIBOBJS. Refer to configure.in -> AC_REPLACE_FUNCS -libcommon_la_LIBADD = libparseconf.la @LTLIBOBJS@ +libcommon_la_LIBADD = libparseconf.la @LTLIBOBJS@ @NETLIBS@ diff --git a/common/wincompat.c b/common/wincompat.c index 53d667ff0c..fc3b597d51 100644 --- a/common/wincompat.c +++ b/common/wincompat.c @@ -172,7 +172,7 @@ int win_system(const char * command) si.cb = sizeof(si); memset(&pi,0,sizeof(pi)); - res = CreateProcess(NULL,command,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi); + res = CreateProcess(NULL,(char *)command,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi); if( res != 0 ) { return 0; @@ -188,7 +188,7 @@ explanation in the documentation */ char * filter_path(const char * source) { char * res; - int i,j; + unsigned int i,j; if( source == NULL ) { return NULL; @@ -217,7 +217,6 @@ void syslog(int priority, const char *fmt, ...) char buf2[LARGEBUF]; va_list ap; HANDLE pipe; - BOOL result = FALSE; DWORD bytesWritten = 0; if( EventLogName == NULL ) { @@ -252,16 +251,11 @@ void syslog(int priority, const char *fmt, ...) return; } - result = WriteFile (pipe,buf1,strlen(buf2)+sizeof(DWORD),&bytesWritten,NULL); + WriteFile (pipe,buf1,strlen(buf2)+sizeof(DWORD),&bytesWritten,NULL); /* testing result is useless. If we have an error and try to report it, this will probably lead to a call to this function and an infinite loop */ - /* - if (result == 0 || bytesWritten != strlen(buf2)+sizeof(DWORD) ) { - return;; - } - */ CloseHandle(pipe); } @@ -370,7 +364,7 @@ void pipe_disconnect(pipe_conn_t *conn) } if( conn->handle != INVALID_HANDLE_VALUE) { if ( DisconnectNamedPipe(conn->handle) == 0 ) { - upslogx(LOG_ERR,"DisconnectNamedPipe error : %d",GetLastError()); + upslogx(LOG_ERR,"DisconnectNamedPipe error : %d",(int)GetLastError()); } CloseHandle(conn->handle); conn->handle = INVALID_HANDLE_VALUE; diff --git a/drivers/Makefile.am b/drivers/Makefile.am index 0f1d0c9ef7..5f80d0796f 100644 --- a/drivers/Makefile.am +++ b/drivers/Makefile.am @@ -99,6 +99,7 @@ upsdrvctl_LDADD = $(LDADD_COMMON) # serial drivers: all of them use standard LDADD and CFLAGS apcsmart_SOURCES = apcsmart.c apcsmart_tabs.c +apcsmart_LDADD = $(LDADD) $(LIBREGEX_LIBS) apcsmart_old_SOURCES = apcsmart-old.c bcmxcp_SOURCES = bcmxcp.c bcmxcp_ser.c bcmxcp_LDADD = $(LDADD) -lm @@ -224,7 +225,7 @@ hald_addon_voltronic_usb_LDADD = $(LDADD_HAL_DRIVERS) $(LIBUSB_LIBS) $(LIBHAL_LI # NEON XML/HTTP netxml_ups_SOURCES = netxml-ups.c mge-xml.c -netxml_ups_LDADD = $(LDADD_DRIVERS) $(LIBNEON_LIBS) +netxml_ups_LDADD = $(LDADD_DRIVERS) $(LIBNEON_LIBS) -lintl # Powerman powerman_pdu_SOURCES = powerman-pdu.c diff --git a/drivers/apcsmart.c b/drivers/apcsmart.c index d362c815bd..a127867274 100644 --- a/drivers/apcsmart.c +++ b/drivers/apcsmart.c @@ -447,7 +447,7 @@ static int apc_read_i(char *buf, size_t buflen, int flags, const char *fn, unsig int i, ret, sec = 3, usec = 0; char temp[APC_LBUF]; - if (upsfd == -1) + if (upsfd == ERROR_FD) return 0; if (flags & SER_D0) { sec = 0; usec = 0; diff --git a/drivers/dstate.c b/drivers/dstate.c index 9e9af51919..d7cefd9b17 100644 --- a/drivers/dstate.c +++ b/drivers/dstate.c @@ -55,6 +55,7 @@ struct ups_handler upsh; +#ifndef WIN32 /* this may be a frequent stumbling point for new users, so be verbose here */ static void sock_fail(const char *fn) { @@ -110,7 +111,6 @@ static void sock_fail(const char *fn) fatalx(EXIT_FAILURE, "Exiting."); } -#ifndef WIN32 static int sock_open(const char *fn) { int ret, fd; @@ -183,8 +183,7 @@ static HANDLE sock_open(const char *fn) } /* Wait for a connection */ - BOOL ret; - ret = ConnectNamedPipe(fd,&connect_overlapped); + ConnectNamedPipe(fd,&connect_overlapped); #endif @@ -401,8 +400,7 @@ static void sock_connect(HANDLE sock) } /* Wait for a connection */ - BOOL ret; - ret = ConnectNamedPipe(sockfd,&connect_overlapped); + ConnectNamedPipe(sockfd,&connect_overlapped); /* A new pipe waiting for new client connection has been created. We could manage the current connection now */ /* Start a read operation on the newly connected pipe so we could wait on the event associated to this IO */ @@ -591,6 +589,10 @@ static int sock_arg(conn_t *conn, int numarg, char **arg) return 0; } +#ifdef WIN32 +void set_exit_flag(int sig); +#endif + static void sock_read(conn_t *conn) { int i, ret; diff --git a/drivers/netxml-ups.c b/drivers/netxml-ups.c index 5faff8cf2d..c9b8566dec 100644 --- a/drivers/netxml-ups.c +++ b/drivers/netxml-ups.c @@ -278,7 +278,10 @@ void upsdrv_initinfo(void) dstate_setinfo("driver.version.data", "%s", subdriver->version); if (testvar("subscribe") && (netxml_alarm_subscribe(subdriver->subscribe) == NE_OK)) { +/* TODO: port extrafd to Windows */ +#ifndef WIN32 extrafd = ne_sock_fd(sock); +#endif time(&lastheard); } @@ -333,13 +336,19 @@ void upsdrv_updateinfo(void) ne_sock_close(sock); if (netxml_alarm_subscribe(subdriver->subscribe) == NE_OK) { +/* TODO: port extrafd to Windows */ +#ifndef WIN32 extrafd = ne_sock_fd(sock); +#endif time(&lastheard); return; } dstate_datastale(); +/* TODO: port extrafd to Windows */ +#ifndef WIN32 extrafd = -1; +#endif return; } } diff --git a/drivers/riello_usb.c b/drivers/riello_usb.c index 799fb4437c..0d61b00823 100644 --- a/drivers/riello_usb.c +++ b/drivers/riello_usb.c @@ -354,8 +354,12 @@ int riello_command(uint8_t *cmd, uint8_t *buf, uint16_t length, uint16_t buflen) break; case -ETIMEDOUT: /* Connection timed out */ - case -EOVERFLOW: /* Value too large for defined data type */ - case -EPROTO: /* Protocol error */ +#ifndef WIN32 +/* libusb win32 does not know EPROTO and EOVERFLOW, it only returns EIO for any + IO errors */ + case -EOVERFLOW: /* Value too large for defined data type */ + case -EPROTO: /* Protocol error */ +#endif default: break; } diff --git a/drivers/serial.c b/drivers/serial.c index d6dd6bc78e..a1de9140d8 100644 --- a/drivers/serial.c +++ b/drivers/serial.c @@ -95,7 +95,7 @@ static void lock_set(TYPE_FD fd, const char *port) int ret; if (fd == ERROR_FD) - fatal_with_errno(EXIT_FAILURE, "lock_set: programming error: fd = %d", fd); + fatal_with_errno(EXIT_FAILURE, "lock_set: programming error: fd = %d", PRINT_FD(fd)); if (do_lock_port == 0) return; @@ -162,7 +162,7 @@ int ser_set_speed_nf(TYPE_FD fd, const char *port, speed_t speed) struct termios tio; if (tcgetattr(fd, &tio) != 0) { - return ERROR_FD; + return -1; } tio.c_cflag = CS8 | CLOCAL | CREAD; @@ -186,10 +186,10 @@ int ser_set_speed_nf(TYPE_FD fd, const char *port, speed_t speed) } int ser_set_speed(TYPE_FD fd, const char *port, speed_t speed) { - TYPE_FD res; + int res; res = ser_set_speed_nf(fd,port,speed); - if(res == ERROR_FD) { + if(res == -1) { fatal_with_errno(EXIT_FAILURE, "tcgetattr(%s)", port); } @@ -197,7 +197,7 @@ int ser_set_speed(TYPE_FD fd, const char *port, speed_t speed) } #ifndef WIN32 -static int ser_set_control(int fd, int line, int state) +static int ser_set_control(TYPE_FD fd, int line, int state) { if (state) { return ioctl(fd, TIOCMBIS, &line); @@ -206,7 +206,7 @@ static int ser_set_control(int fd, int line, int state) } } -int ser_set_dtr(int fd, int state) +int ser_set_dtr(TYPE_FD fd, int state) { return ser_set_control(fd, TIOCM_DTR, state); } @@ -216,7 +216,7 @@ int ser_set_rts(int fd, int state) return ser_set_control(fd, TIOCM_RTS, state); } #else -int ser_set_dtr(serial_handler_t * fd, int state) +int ser_set_dtr(TYPE_FD fd, int state) { DWORD action; @@ -226,10 +226,15 @@ int ser_set_dtr(serial_handler_t * fd, int state) else { action = SETDTR; } - return EscapeCommFunction(fd->handle,action); + + /* Success */ + if( EscapeCommFunction(fd->handle,action) != 0) { + return 0; + } + return -1; } -int ser_set_rts(serial_handler_t * fd, int state) +int ser_set_rts(TYPE_FD fd, int state) { DWORD action; @@ -239,12 +244,16 @@ int ser_set_rts(serial_handler_t * fd, int state) else { action = SETRTS; } - return EscapeCommFunction(fd->handle,action); + /* Success */ + if( EscapeCommFunction(fd->handle,action) != 0) { + return 0; + } + return -1; } #endif #ifndef WIN32 -static int ser_get_control(int fd, int line) +static int ser_get_control(TYPE_FD fd, int line) { int flags; @@ -253,22 +262,22 @@ static int ser_get_control(int fd, int line) return (flags & line); } -int ser_get_dsr(int fd) +int ser_get_dsr(TYPE_FD fd) { return ser_get_control(fd, TIOCM_DSR); } -int ser_get_cts(int fd) +int ser_get_cts(TYPE_FD fd) { return ser_get_control(fd, TIOCM_CTS); } -int ser_get_dcd(int fd) +int ser_get_dcd(TYPE_FD fd) { return ser_get_control(fd, TIOCM_CD); } #else -int ser_get_dsr(serial_handler_t * fd) +int ser_get_dsr(TYPE_FD fd) { int flags; @@ -276,7 +285,7 @@ int ser_get_dsr(serial_handler_t * fd) return (flags & TIOCM_DSR); } -int ser_get_cts(serial_handler_t * fd) +int ser_get_cts(TYPE_FD fd) { int flags; @@ -284,7 +293,7 @@ int ser_get_cts(serial_handler_t * fd) return (flags & TIOCM_CTS); } -int ser_get_dcd(serial_handler_t * fd) +int ser_get_dcd(TYPE_FD fd) { int flags; @@ -302,7 +311,7 @@ int ser_flush_io(TYPE_FD fd) int ser_close(TYPE_FD fd, const char *port) { if (fd == ERROR_FD) - fatal_with_errno(EXIT_FAILURE, "ser_close: programming error: fd=%d port=%s", fd, port); + fatal_with_errno(EXIT_FAILURE, "ser_close: programming error: fd=%d port=%s", PRINT_FD(fd), port); if (close(fd) != 0) return -1; diff --git a/drivers/serial.h b/drivers/serial.h index 4116361e65..09be4319f3 100644 --- a/drivers/serial.h +++ b/drivers/serial.h @@ -24,33 +24,22 @@ #ifndef WIN32 #define ERROR_FD (-1) #define TYPE_FD int +#define PRINT_FD(x) x #else #define ERROR_FD (NULL) #define TYPE_FD serial_handler_t * +#define PRINT_FD(x) (int)x->handle /* TODO : support "open" flags */ #define O_NONBLOCK 0 #define O_NOCTTY 0 #endif -int ser_open_nf(const char *port); -int ser_open(const char *port); - -int ser_set_speed_nf(int fd, const char *port, speed_t speed); -int ser_set_speed(int fd, const char *port, speed_t speed); - -/* set the state of modem control lines */ -int ser_set_dtr(int fd, int state); -int ser_set_rts(int fd, int state); - -/* get the status of modem control lines */ -int ser_get_dsr(int fd); -int ser_get_cts(int fd); -int ser_get_dcd(int fd); - +TYPE_FD ser_open_nf(const char *port); TYPE_FD ser_open(const char *port); int ser_set_speed(TYPE_FD fd, const char *port, speed_t speed); +int ser_set_speed_nf(TYPE_FD fd, const char *port, speed_t speed); /* set the state of modem control lines */ int ser_set_dtr(TYPE_FD fd, int state); diff --git a/drivers/upsdrvctl.c b/drivers/upsdrvctl.c index 84c838d3e8..32ac6557af 100644 --- a/drivers/upsdrvctl.c +++ b/drivers/upsdrvctl.c @@ -127,11 +127,11 @@ static void stop_driver(const ups_t *ups) { char pidfn[SMALLBUF]; int ret; - struct stat fs; upsdebugx(1, "Stopping UPS: %s", ups->upsname); #ifndef WIN32 + struct stat fs; snprintf(pidfn, sizeof(pidfn), "%s/%s-%s.pid", altpidpath(), ups->driver, ups->upsname); ret = stat(pidfn, &fs); @@ -170,11 +170,13 @@ static void stop_driver(const ups_t *ups) } } +#ifndef WIN32 static void waitpid_timeout(const int sig) { /* do nothing */ return; } +#endif /* print out a command line at the given debug level. */ static void debugcmdline(int level, const char *msg, char *const argv[]) diff --git a/drivers/voltronic_usb.c b/drivers/voltronic_usb.c index 4fa350d10b..633f7396a3 100644 --- a/drivers/voltronic_usb.c +++ b/drivers/voltronic_usb.c @@ -195,8 +195,12 @@ int voltronic_command(const char *cmd, char *buf, size_t buflen) break; case -ETIMEDOUT: /* Connection timed out */ - case -EOVERFLOW: /* Value too large for defined data type */ - case -EPROTO: /* Protocol error */ +#ifndef WIN32 +/* libusb win32 does not know EPROTO and EOVERFLOW, it only returns EIO for any + IO errors */ + case -EOVERFLOW: /* Value too large for defined data type */ + case -EPROTO: /* Protocol error */ +#endif default: break; } diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index 5629997914..e2e254e238 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1389,20 +1389,11 @@ Public License instead of this License. - - - - - - - - - - - + + @@ -1443,8 +1434,8 @@ Public License instead of this License. - - + + @@ -1899,11 +1890,8 @@ Public License instead of this License. - - - - + @@ -1921,7 +1909,7 @@ Public License instead of this License. - + @@ -2080,4 +2068,4 @@ Public License instead of this License. LIBUSBINSTALL=1 - \ No newline at end of file + diff --git a/scripts/Windows/wininit.c b/scripts/Windows/wininit.c index dbc2045238..4395162271 100644 --- a/scripts/Windows/wininit.c +++ b/scripts/Windows/wininit.c @@ -73,7 +73,7 @@ static void print_event(DWORD priority, const char * fmt, ...) NULL, /* no security identifier*/ 1, /* size of string array */ 0, /* no binary data */ - &buf, /* array of string */ + (const char **)&buf, /* array of string */ NULL); /* no binary data */ DeregisterEventSource(EventSource); diff --git a/server/sstate.c b/server/sstate.c index b1dc119de1..8c80985652 100644 --- a/server/sstate.c +++ b/server/sstate.c @@ -444,6 +444,7 @@ int sstate_dead(upstype_t *ups, int maxage) return 1; /* dead */ } + printf("now = %d, ups->last_heard = %d\n",now,ups->last_heard); elapsed = difftime(now, ups->last_heard); /* somewhere beyond a third of the maximum time - prod it to make it talk */ diff --git a/server/upsd.c b/server/upsd.c index ecfeb537ab..19a58a617d 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -935,7 +935,11 @@ static void mainloop(void) cnext = client->next; - if (difftime(now, client->last_heard) > 60) { + printf("difftime = %d\n",now-client->last_heard); + //printf("difftime = %f\n",difftime(now, client->last_heard)); + //if (difftime(now, client->last_heard) > 60) { + if (difftime(time(NULL), client->last_heard) > 60) { + //if (now - client->last_heard > 60) { /* shed clients after 1 minute of inactivity */ client_disconnect(client); continue; diff --git a/tools/nut-scanner/Makefile.am b/tools/nut-scanner/Makefile.am index 56278eed26..5f0c3a5d89 100644 --- a/tools/nut-scanner/Makefile.am +++ b/tools/nut-scanner/Makefile.am @@ -14,14 +14,16 @@ libnutscan_la_SOURCES = scan_nut.c scan_ipmi.c \ scan_avahi.c scan_eaton_serial.c nutscan-serial.c \ $(top_srcdir)/drivers/serial.c \ $(top_srcdir)/drivers/bcmxcp_ser.c \ - $(top_srcdir)/common/common.c + $(top_srcdir)/common/common.c \ + $(top_srcdir)/common/wincompat.c libnutscan_la_LIBADD = $(NETLIBS) $(LIBLTDL_LIBS) libnutscan_la_LDFLAGS = $(SERLIBS) -version-info 1:0:0 libnutscan_la_CFLAGS = -I$(top_srcdir)/clients -I$(top_srcdir)/include $(LIBLTDL_CFLAGS) -I$(top_srcdir)/drivers -nut_scanner_SOURCES = nut-scanner.c +nut_scanner_SOURCES = nut-scanner.c $(top_srcdir)/common/common.c \ + $(top_srcdir)/common/wincompat.c nut_scanner_CFLAGS = -I$(top_srcdir)/clients -I$(top_srcdir)/include -nut_scanner_LDADD = libnutscan.la ../../common/libcommon.la +nut_scanner_LDADD = libnutscan.la if WITH_SSL libnutscan_la_CFLAGS += $(LIBSSL_CFLAGS) diff --git a/tools/nut-scanner/nutscan-serial.c b/tools/nut-scanner/nutscan-serial.c index 65e0c03788..600860a2d6 100644 --- a/tools/nut-scanner/nutscan-serial.c +++ b/tools/nut-scanner/nutscan-serial.c @@ -22,6 +22,9 @@ #include #include #include "nut_platform.h" +#ifdef WIN32 +#include "wincompat.h" +#endif #ifdef WIN32 /* Windows: all serial port names start with "COM" */ diff --git a/tools/nut-scanner/scan_eaton_serial.c b/tools/nut-scanner/scan_eaton_serial.c index ecfbe1498b..ac95cc9976 100644 --- a/tools/nut-scanner/scan_eaton_serial.c +++ b/tools/nut-scanner/scan_eaton_serial.c @@ -68,7 +68,11 @@ static pthread_mutex_t dev_mutex; /* Fake driver main, for using serial functions, needed for bcmxcp_ser.c */ char *device_path; +#ifndef WIN32 int upsfd; +#else +HANDLE upsfd; +#endif int exit_flag = 0; int do_lock_port; @@ -110,7 +114,7 @@ unsigned char calc_checksum(const unsigned char *buf) /* Light version of of drivers/libshut.c->shut_synchronise() * return 1 if OK, 0 otherwise */ -int shut_synchronise(int upsfd) +int shut_synchronise(TYPE_FD upsfd) { int try; u_char reply = '\0'; @@ -136,9 +140,9 @@ int shut_synchronise(int upsfd) nutscan_device_t * nutscan_scan_eaton_serial_shut(const char* port_name) { nutscan_device_t * dev = NULL; - int devfd = -1; + TYPE_FD devfd = ERROR_FD; - if ( (devfd = ser_open_nf(port_name)) != -1 ) { + if ( (devfd = ser_open_nf(port_name)) != ERROR_FD ) { /* set RTS to off and DTR to on to allow correct behavior * with UPS using PnP feature */ if (ser_set_dtr(devfd, 1) != -1) { @@ -185,13 +189,14 @@ nutscan_device_t * nutscan_scan_eaton_serial_shut(const char* port_name) nutscan_device_t * nutscan_scan_eaton_serial_xcp(const char* port_name) { nutscan_device_t * dev = NULL; - int i, ret, devfd = -1; + int i, ret; + TYPE_FD devfd = ERROR_FD; unsigned char answer[256]; unsigned char sbuf[128]; memset(sbuf, 0, 128); - if ( (devfd = ser_open_nf(port_name)) != -1 ) { + if ( (devfd = ser_open_nf(port_name)) != ERROR_FD ) { #ifdef HAVE_PTHREAD pthread_mutex_lock(&dev_mutex); #endif @@ -276,10 +281,10 @@ nutscan_device_t * nutscan_scan_eaton_serial_q1(const char* port_name) nutscan_device_t * dev = NULL; struct termios tio; int ret = 0, retry; - int devfd = -1; + TYPE_FD devfd = ERROR_FD; char buf[128]; - if ( (devfd = ser_open_nf(port_name)) != -1 ) { + if ( (devfd = ser_open_nf(port_name)) != ERROR_FD ) { if (ser_set_speed_nf(devfd, port_name, B2400) != -1) { if (!tcgetattr(devfd, &tio)) { @@ -371,8 +376,10 @@ static void * nutscan_scan_eaton_serial_device(void * port_arg) nutscan_device_t * nutscan_scan_eaton_serial(const char* ports_range) { +#ifndef WIN32 struct sigaction oldact; int change_action_handler = 0; +#endif char *current_port_name = NULL; char **serial_ports_list; int current_port_nb; @@ -391,6 +398,7 @@ nutscan_device_t * nutscan_scan_eaton_serial(const char* ports_range) return NULL; } +#ifndef WIN32 /* Ignore SIGPIPE if the caller hasn't set a handler for it yet */ if( sigaction(SIGPIPE, NULL, &oldact) == 0 ) { if( oldact.sa_handler == SIG_DFL ) { @@ -398,6 +406,7 @@ nutscan_device_t * nutscan_scan_eaton_serial(const char* ports_range) signal(SIGPIPE,SIG_IGN); } } +#endif /* port(s) iterator */ current_port_nb = 0; @@ -424,9 +433,11 @@ nutscan_device_t * nutscan_scan_eaton_serial(const char* ports_range) free(thread_array); #endif +#ifndef WIN32 if(change_action_handler) { signal(SIGPIPE,SIG_DFL); } +#endif /* free everything... */ i=0; From 1adb7fed2e521cedc4c881f73c9a96ae3fb9cad2 Mon Sep 17 00:00:00 2001 From: Frederic BOHE Date: Thu, 3 Oct 2013 11:32:48 +0200 Subject: [PATCH 199/218] Remove useless link to intl which break compilation on Linux --- drivers/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/Makefile.am b/drivers/Makefile.am index 5f80d0796f..18ddd2f0b8 100644 --- a/drivers/Makefile.am +++ b/drivers/Makefile.am @@ -225,7 +225,7 @@ hald_addon_voltronic_usb_LDADD = $(LDADD_HAL_DRIVERS) $(LIBUSB_LIBS) $(LIBHAL_LI # NEON XML/HTTP netxml_ups_SOURCES = netxml-ups.c mge-xml.c -netxml_ups_LDADD = $(LDADD_DRIVERS) $(LIBNEON_LIBS) -lintl +netxml_ups_LDADD = $(LDADD_DRIVERS) $(LIBNEON_LIBS) # Powerman powerman_pdu_SOURCES = powerman-pdu.c From 471179d3168dcef8e7e22d28d17450d158afb916 Mon Sep 17 00:00:00 2001 From: Frederic BOHE Date: Thu, 3 Oct 2013 15:53:42 +0200 Subject: [PATCH 200/218] Update gitignore for Windows --- clients/.gitignore | 1 + drivers/.gitignore | 1 + scripts/Windows/.gitignore | 5 +++++ scripts/Windows/Installer/.gitignore | 4 ++++ .../Windows/Installer/ImageFiles/Others/.gitignore | 14 ++++++++++++++ server/.gitignore | 1 + tools/nut-scanner/.gitignore | 1 + 7 files changed, 27 insertions(+) create mode 100644 scripts/Windows/.gitignore create mode 100644 scripts/Windows/Installer/.gitignore create mode 100644 scripts/Windows/Installer/ImageFiles/Others/.gitignore diff --git a/clients/.gitignore b/clients/.gitignore index 9f46af6772..1b3c7d7eff 100644 --- a/clients/.gitignore +++ b/clients/.gitignore @@ -12,3 +12,4 @@ upsmon upsrw upssched .libs +*.exe diff --git a/drivers/.gitignore b/drivers/.gitignore index d63a5d8024..d01136a38d 100644 --- a/drivers/.gitignore +++ b/drivers/.gitignore @@ -77,3 +77,4 @@ riello_ser riello_usb voltronic_ser voltronic_usb +*.exe diff --git a/scripts/Windows/.gitignore b/scripts/Windows/.gitignore new file mode 100644 index 0000000000..381b62880a --- /dev/null +++ b/scripts/Windows/.gitignore @@ -0,0 +1,5 @@ +.wininit.c.swp +*.exe +winevent.h +winevent.rc +MSG00409.bin diff --git a/scripts/Windows/Installer/.gitignore b/scripts/Windows/Installer/.gitignore new file mode 100644 index 0000000000..5466afe66c --- /dev/null +++ b/scripts/Windows/Installer/.gitignore @@ -0,0 +1,4 @@ +NUT-Installer.msi +NUT-Installer.wixobj +NUT-Installer.wixpdb +log.txt diff --git a/scripts/Windows/Installer/ImageFiles/Others/.gitignore b/scripts/Windows/Installer/ImageFiles/Others/.gitignore new file mode 100644 index 0000000000..7771adbbb2 --- /dev/null +++ b/scripts/Windows/Installer/ImageFiles/Others/.gitignore @@ -0,0 +1,14 @@ +libexpat-1.dll +libgcc_s_dw2-1.dll +libiconv-2.dll +libintl-8.dll +libltdl-7.dll +libneon-27.dll +libnetsnmp-30.dll +libregex-1.dll +libz-1.dll +msys-1.0.dll +msys-crypto-1.0.0.dll +msys-regex-1.dll +msys-ssl-1.0.0.dll +pthreadgc2.dll diff --git a/server/.gitignore b/server/.gitignore index 517aa6c6d2..04bf3ef009 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -3,3 +3,4 @@ upsd .deps Makefile.in .libs +*.exe diff --git a/tools/nut-scanner/.gitignore b/tools/nut-scanner/.gitignore index 29db0a024e..a5e77c1bc9 100644 --- a/tools/nut-scanner/.gitignore +++ b/tools/nut-scanner/.gitignore @@ -5,3 +5,4 @@ nut-scanner nutscan-snmp.h nutscan-usb.h test-nutscan +*.exe From 946c51cfe7eebbe5392aac24cea85f89757b8e10 Mon Sep 17 00:00:00 2001 From: Frederic BOHE Date: Thu, 3 Oct 2013 15:55:12 +0200 Subject: [PATCH 201/218] Try to get rid of warnings --- clients/message.c | 4 ++- clients/nutclient.cpp | 4 +-- clients/upsclient.c | 6 ++++- clients/upslog.c | 4 +++ clients/upsmon.c | 6 +++++ clients/upssched.c | 9 ++++--- common/snprintf.c | 19 ++++++++------ drivers/clone.c | 7 +++--- drivers/libhid.c | 22 ++++++++--------- drivers/libhid.h | 19 ++++++++------ drivers/libshut.h | 27 +++++++------------- drivers/libusb.h | 2 ++ drivers/mge-shut.c | 4 +-- drivers/serial.c | 2 ++ drivers/snmp-ups.h | 5 ++++ drivers/usbhid-ups.c | 7 +++--- drivers/usbhid-ups.h | 3 ++- drivers/win_shut_compat.h | 41 +++++++++++++++++++++++++++++++ tools/nut-scanner/scan_snmp.c | 2 ++ tools/nut-scanner/scan_xml_http.c | 4 ++- 20 files changed, 134 insertions(+), 63 deletions(-) create mode 100644 drivers/win_shut_compat.h diff --git a/clients/message.c b/clients/message.c index 387990673e..b4c3598317 100644 --- a/clients/message.c +++ b/clients/message.c @@ -1,8 +1,10 @@ #ifdef WIN32 #include -void main(int args,char ** argv) +int main(int args,char ** argv) { MessageBox(NULL,argv[1],"Network UPS Tools",MB_OK|MB_ICONEXCLAMATION|MB_SERVICE_NOTIFICATION); + + return 0; } #endif diff --git a/clients/nutclient.cpp b/clients/nutclient.cpp index dcf0c2da75..2abec9db49 100644 --- a/clients/nutclient.cpp +++ b/clients/nutclient.cpp @@ -16,7 +16,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - +#ifndef WIN32 #include "nutclient.h" #include @@ -1723,4 +1723,4 @@ void nutclient_execute_device_command(NUTCLIENT_t client, const char* dev, const } /* extern "C" */ - +#endif diff --git a/clients/upsclient.c b/clients/upsclient.c index 3783ef6ebc..d83a31663a 100644 --- a/clients/upsclient.c +++ b/clients/upsclient.c @@ -21,10 +21,12 @@ #include "config.h" /* safe because it doesn't contain prototypes */ +#ifndef WIN32 #ifdef HAVE_PTHREAD /* this include is needed on AIX to have errno stored in thread local storage */ #include #endif +#endif #include #include @@ -37,7 +39,9 @@ #include #include #include +#define SOCK_OPT_CAST #else +#define SOCK_OPT_CAST (char *) /* Those 2 files for support of getaddrinfo, getnameinfo and freeaddrinfo on Windows 2000 and older versions */ #include @@ -960,7 +964,7 @@ int upscli_tryconnect(UPSCONN_t *ups, const char *host, int port, int flags,stru if (FD_ISSET(sock_fd, &wfds)) { error_size = sizeof(error); getsockopt(sock_fd,SOL_SOCKET,SO_ERROR, - &error,&error_size); + SOCK_OPT_CAST&error,&error_size); if( error == 0) { /* connect successful */ v = 0; diff --git a/clients/upslog.c b/clients/upslog.c index 6b27f2f62d..b6b169d138 100644 --- a/clients/upslog.c +++ b/clients/upslog.c @@ -49,7 +49,9 @@ static FILE *logfile; static const char *logfn, *monhost; +#ifndef WIN32 static sigset_t nut_upslog_sigmask; +#endif static char logbuffer[LARGEBUF], *logformat; static flist_t *fhead = NULL; @@ -71,6 +73,7 @@ static void reopen_log(void) fatal_with_errno(EXIT_FAILURE, "could not reopen logfile %s", logfn); } +#ifndef WIN32 static void set_reopen_flag(int sig) { reopen_flag = sig; @@ -80,6 +83,7 @@ static void set_exit_flag(int sig) { exit_flag = sig; } +#endif /* handlers: reload on HUP, exit on INT/QUIT/TERM */ static void setup_signals(void) diff --git a/clients/upsmon.c b/clients/upsmon.c index d4edf2403e..5a46405a10 100644 --- a/clients/upsmon.c +++ b/clients/upsmon.c @@ -1411,11 +1411,13 @@ static void loadconfig(void) pconf_finish(&ctx); } +#ifndef WIN32 /* SIGPIPE handler */ static void sigpipe(int sig) { upsdebugx(1, "SIGPIPE: dazed and confused, but continuing..."); } +#endif /* SIGQUIT, SIGTERM handler */ static void set_exit_flag(int sig) @@ -1480,11 +1482,13 @@ static void set_reload_flag(int sig) reload_flag = 1; } +#ifndef WIN32 /* handler for alarm when getupsvarfd times out */ static void read_timeout(int sig) { /* don't do anything here, just return */ } +#endif /* install handlers for a few signals */ static void setup_signals(void) @@ -1807,6 +1811,7 @@ static void help(const char *progname) exit(EXIT_SUCCESS); } +#ifndef WIN32 static void runparent(int fd) { int ret; @@ -1843,6 +1848,7 @@ static void runparent(int fd) close(fd); exit(EXIT_SUCCESS); } +#endif /* fire up the split parent/child scheme */ static void start_pipe(void) diff --git a/clients/upssched.c b/clients/upssched.c index 973b1d9b4d..0523756f7e 100644 --- a/clients/upssched.c +++ b/clients/upssched.c @@ -48,6 +48,7 @@ #include #include #else +#include "wincompat.h" #include #include #endif @@ -996,7 +997,7 @@ static HANDLE check_parent(const char *cmd, const char *arg2) /* it's not running, so there's nothing to cancel */ if (!strcmp(cmd, "CANCEL") && (arg2 == NULL)) - return PARENT_UNNECESSARY; + return (HANDLE)PARENT_UNNECESSARY; /* arg2 non-NULL means there is a cancel action available */ @@ -1006,7 +1007,7 @@ static HANDLE check_parent(const char *cmd, const char *arg2) if (lockfd != INVALID_HANDLE_VALUE) { start_daemon(lockfd); - return PARENT_STARTED; /* started successfully */ + return (HANDLE)PARENT_STARTED; /* started successfully */ } /* we didn't get the lock - must be two upsscheds running */ @@ -1074,7 +1075,7 @@ static void sendcmd(const char *cmd, const char *arg1, const char *arg2) pipefd = check_parent(cmd, arg2); - if (pipefd == PARENT_STARTED) { + if (pipefd == (HANDLE)PARENT_STARTED) { /* loop back and try to connect now */ usleep(250000); @@ -1082,7 +1083,7 @@ static void sendcmd(const char *cmd, const char *arg1, const char *arg2) } /* special case for CANCEL when no parent is running */ - if (pipefd == PARENT_UNNECESSARY) + if (pipefd == (HANDLE)PARENT_UNNECESSARY) return; /* we're connected now */ diff --git a/common/snprintf.c b/common/snprintf.c index a1802696b1..6d6f2affbd 100644 --- a/common/snprintf.c +++ b/common/snprintf.c @@ -275,7 +275,7 @@ static void dopr (char *buffer, size_t maxlen, const char *format, va_list args) case 'd': case 'i': if (cflags == DP_C_SHORT) - value = va_arg (args, short int); + value = va_arg (args, int); else if (cflags == DP_C_LONG) value = va_arg (args, long int); else if (cflags == DP_C_LLONG) @@ -287,7 +287,7 @@ static void dopr (char *buffer, size_t maxlen, const char *format, va_list args) case 'o': flags |= DP_F_UNSIGNED; if (cflags == DP_C_SHORT) - value = va_arg (args, unsigned short int); + value = va_arg (args, int); else if (cflags == DP_C_LONG) value = (long)va_arg (args, unsigned long int); else if (cflags == DP_C_LLONG) @@ -299,9 +299,9 @@ static void dopr (char *buffer, size_t maxlen, const char *format, va_list args) case 'u': flags |= DP_F_UNSIGNED; if (cflags == DP_C_SHORT) - value = va_arg (args, unsigned short int); + value = va_arg (args, int); else if (cflags == DP_C_LONG) - value = (long)va_arg (args, unsigned long int); + value = (long)va_arg (args, int); else if (cflags == DP_C_LLONG) value = (LLONG)va_arg (args, unsigned LLONG); else @@ -313,7 +313,7 @@ static void dopr (char *buffer, size_t maxlen, const char *format, va_list args) case 'x': flags |= DP_F_UNSIGNED; if (cflags == DP_C_SHORT) - value = va_arg (args, unsigned short int); + value = va_arg (args, int); else if (cflags == DP_C_LONG) value = (long)va_arg (args, unsigned long int); else if (cflags == DP_C_LLONG) @@ -553,6 +553,7 @@ static LDOUBLE abs_val (LDOUBLE value) return result; } +#ifndef WIN32 static LDOUBLE pow10 (int exp) { LDOUBLE result = 1; @@ -577,6 +578,7 @@ static long round (LDOUBLE value) return intpart; } +#endif static void fmtfp (char *buffer, size_t *currlen, size_t maxlen, LDOUBLE fvalue, int min, int max, int flags) @@ -602,9 +604,6 @@ static void fmtfp (char *buffer, size_t *currlen, size_t maxlen, int fplace = 0; int padlen = 0; /* amount to pad */ int zpadlen = 0; - int caps = 0; - long intpart; - long fracpart; /* * AIX manpage says the default is 0, but Solaris says the default @@ -629,6 +628,10 @@ static void fmtfp (char *buffer, size_t *currlen, size_t maxlen, #endif #ifndef HAVE_FCVT + long fracpart; + long intpart; + int caps = 0; + intpart = (long)ufvalue; /* diff --git a/drivers/clone.c b/drivers/clone.c index 36187cccd9..151092988b 100644 --- a/drivers/clone.c +++ b/drivers/clone.c @@ -63,9 +63,10 @@ static int offdelay = 120, ondelay = 30; static PCONF_CTX_t sock_ctx; static time_t last_poll = 0, last_heard = 0, - last_ping = 0, last_connfail = 0; - -#ifdef WIN32 + last_ping = 0; +#ifndef WIN32 +static time_t last_connfail = 0; +#else static char read_buf[SMALLBUF]; static OVERLAPPED read_overlapped; #endif diff --git a/drivers/libhid.c b/drivers/libhid.c index d0ba7c5761..1f645d8275 100644 --- a/drivers/libhid.c +++ b/drivers/libhid.c @@ -143,7 +143,7 @@ reportbuf_t *new_report_buffer(HIDDesc_t *pDesc) /* because buggy firmwares from APC return wrong report size, we either ask the report with the found report size or with the whole buffer size depending on the max_report_size flag */ -static int refresh_report_buffer(reportbuf_t *rbuf, hid_dev_handle_t udev, HIDData_t *pData, int age) +static int refresh_report_buffer(reportbuf_t *rbuf, TYPE_FD udev, HIDData_t *pData, int age) { int id = pData->ReportID; int r; @@ -178,7 +178,7 @@ static int refresh_report_buffer(reportbuf_t *rbuf, hid_dev_handle_t udev, HIDDa conversion is performed. If age>0, the read operation is buffered if the item's age is less than "age". On success, return 0 and store the answer in *value. On failure, return -1 and set errno. */ -static int get_item_buffered(reportbuf_t *rbuf, hid_dev_handle_t udev, HIDData_t *pData, long *Value, int age) +static int get_item_buffered(reportbuf_t *rbuf, TYPE_FD udev, HIDData_t *pData, long *Value, int age) { int id = pData->ReportID; int r; @@ -196,7 +196,7 @@ static int get_item_buffered(reportbuf_t *rbuf, hid_dev_handle_t udev, HIDData_t /* set the logical value for the given pData. No physical to logical conversion is performed. On success, return 0, and failure, return -1 and set errno. The updated value is sent to the device. */ -static int set_item_buffered(reportbuf_t *rbuf, hid_dev_handle_t udev, HIDData_t *pData, long Value) +static int set_item_buffered(reportbuf_t *rbuf, TYPE_FD udev, HIDData_t *pData, long Value) { int id = pData->ReportID; int r; @@ -266,7 +266,7 @@ static struct { * since it's used to produce sub-drivers "stub" using * scripts/subdriver/gen-usbhid-subdriver.sh */ -void HIDDumpTree(hid_dev_handle_t udev, usage_tables_t *utab) +void HIDDumpTree(TYPE_FD udev, usage_tables_t *utab) { int i; #ifndef SHUT_MODE @@ -362,7 +362,7 @@ char *HIDGetDataItem(const HIDData_t *hiddata, usage_tables_t *utab) /* Return the physical value associated with the given HIDData path. * return 1 if OK, 0 on fail, -errno otherwise (ie disconnect). */ -int HIDGetDataValue(hid_dev_handle_t udev, HIDData_t *hiddata, double *Value, int age) +int HIDGetDataValue(TYPE_FD udev, HIDData_t *hiddata, double *Value, int age) { int r; long hValue; @@ -391,14 +391,14 @@ int HIDGetDataValue(hid_dev_handle_t udev, HIDData_t *hiddata, double *Value, in /* Return the physical value associated with the given path. * return 1 if OK, 0 on fail, -errno otherwise (ie disconnect). */ -int HIDGetItemValue(hid_dev_handle_t udev, const char *hidpath, double *Value, usage_tables_t *utab) +int HIDGetItemValue(TYPE_FD udev, const char *hidpath, double *Value, usage_tables_t *utab) { return HIDGetDataValue(udev, HIDGetItemData(hidpath, utab), Value, MAX_TS); } /* Return pointer to indexed string (empty if not found) */ -char *HIDGetIndexString(hid_dev_handle_t udev, const int Index, char *buf, size_t buflen) +char *HIDGetIndexString(TYPE_FD udev, const int Index, char *buf, size_t buflen) { if (comm_driver->get_string(udev, Index, buf, buflen) < 1) buf[0] = '\0'; @@ -408,7 +408,7 @@ char *HIDGetIndexString(hid_dev_handle_t udev, const int Index, char *buf, size_ /* Return pointer to indexed string from HID path (empty if not found) */ -char *HIDGetItemString(hid_dev_handle_t udev, const char *hidpath, char *buf, size_t buflen, usage_tables_t *utab) +char *HIDGetItemString(TYPE_FD udev, const char *hidpath, char *buf, size_t buflen, usage_tables_t *utab) { double Index; @@ -423,7 +423,7 @@ char *HIDGetItemString(hid_dev_handle_t udev, const char *hidpath, char *buf, si /* Set the given physical value for the variable associated with * path. return 1 if OK, 0 on fail, -errno otherwise (ie disconnect). */ -int HIDSetDataValue(hid_dev_handle_t udev, HIDData_t *hiddata, double Value) +int HIDSetDataValue(TYPE_FD udev, HIDData_t *hiddata, double Value) { int i, r; long hValue; @@ -460,7 +460,7 @@ int HIDSetDataValue(hid_dev_handle_t udev, HIDData_t *hiddata, double Value) return 1; } -bool_t HIDSetItemValue(hid_dev_handle_t udev, const char *hidpath, double Value, usage_tables_t *utab) +bool_t HIDSetItemValue(TYPE_FD udev, const char *hidpath, double Value, usage_tables_t *utab) { if (HIDSetDataValue(udev, HIDGetItemData(hidpath, utab), Value) != 1) return FALSE; @@ -471,7 +471,7 @@ bool_t HIDSetItemValue(hid_dev_handle_t udev, const char *hidpath, double Value, /* On success, return item count >0. When no notifications are available, * return 'error' or 'no event' code. */ -int HIDGetEvents(hid_dev_handle_t udev, HIDData_t **event, int eventsize) +int HIDGetEvents(TYPE_FD udev, HIDData_t **event, int eventsize) { unsigned char buf[SMALLBUF]; int itemCount = 0; diff --git a/drivers/libhid.h b/drivers/libhid.h index 0e513f9531..cb6a16c2cb 100644 --- a/drivers/libhid.h +++ b/drivers/libhid.h @@ -35,6 +35,9 @@ #include "hidtypes.h" #include "timehead.h" + +#include "win_shut_compat.h" + #ifdef SHUT_MODE #include "libshut.h" typedef SHUTDevice_t HIDDevice_t; @@ -94,17 +97,17 @@ extern reportbuf_t *reportbuf; /* buffer for most recent reports */ /* * HIDGetItemValue * -------------------------------------------------------------------------- */ -int HIDGetItemValue(hid_dev_handle_t udev, const char *hidpath, double *Value, usage_tables_t *utab); +int HIDGetItemValue(TYPE_FD udev, const char *hidpath, double *Value, usage_tables_t *utab); /* * HIDGetItemString * -------------------------------------------------------------------------- */ -char *HIDGetItemString(hid_dev_handle_t udev, const char *hidpath, char *buf, size_t buflen, usage_tables_t *utab); +char *HIDGetItemString(TYPE_FD udev, const char *hidpath, char *buf, size_t buflen, usage_tables_t *utab); /* * HIDSetItemValue * -------------------------------------------------------------------------- */ -bool_t HIDSetItemValue(hid_dev_handle_t udev, const char *hidpath, double value, usage_tables_t *utab); +bool_t HIDSetItemValue(TYPE_FD udev, const char *hidpath, double value, usage_tables_t *utab); /* * GetItemData @@ -119,27 +122,27 @@ char *HIDGetDataItem(const HIDData_t *hiddata, usage_tables_t *utab); /* * HIDGetDataValue * -------------------------------------------------------------------------- */ -int HIDGetDataValue(hid_dev_handle_t udev, HIDData_t *hiddata, double *Value, int age); +int HIDGetDataValue(TYPE_FD udev, HIDData_t *hiddata, double *Value, int age); /* * HIDSetDataValue * -------------------------------------------------------------------------- */ -int HIDSetDataValue(hid_dev_handle_t udev, HIDData_t *hiddata, double Value); +int HIDSetDataValue(TYPE_FD udev, HIDData_t *hiddata, double Value); /* * HIDGetIndexString * -------------------------------------------------------------------------- */ -char *HIDGetIndexString(hid_dev_handle_t udev, int Index, char *buf, size_t buflen); +char *HIDGetIndexString(TYPE_FD udev, int Index, char *buf, size_t buflen); /* * HIDGetEvents * -------------------------------------------------------------------------- */ -int HIDGetEvents(hid_dev_handle_t udev, HIDData_t **event, int eventlen); +int HIDGetEvents(TYPE_FD udev, HIDData_t **event, int eventlen); /* * Support functions * -------------------------------------------------------------------------- */ -void HIDDumpTree(hid_dev_handle_t udev, usage_tables_t *utab); +void HIDDumpTree(TYPE_FD udev, usage_tables_t *utab); const char *HIDDataType(const HIDData_t *hiddata); void free_report_buffer(reportbuf_t *rbuf); diff --git a/drivers/libshut.h b/drivers/libshut.h index 32d3b39927..a5b78a2f2e 100644 --- a/drivers/libshut.h +++ b/drivers/libshut.h @@ -27,20 +27,11 @@ #ifndef LIBSHUT_H #define LIBSHUT_H +#include "win_shut_compat.h" + #include "main.h" /* for subdrv_info_t */ #include "nut_stdint.h" /* for uint16_t */ -/* porting stuff for WIN32 */ -#ifndef WIN32 -#define ERROR_FD (-1) -#define VALID_FD(a) (a>0) -#define TYPE_FD int -#else -#define ERROR_FD (NULL) -#define VALID_FD(a) (a!=NULL) -#define TYPE_FD serial_handler_t * -#endif - extern upsdrv_info_t comm_upsdrv_info; /*! @@ -67,18 +58,18 @@ typedef struct SHUTDevice_s { typedef struct shut_communication_subdriver_s { const char *name; /* name of this subdriver */ const char *version; /* version of this subdriver */ - int (*open)(int *upsfd, /* try to open the next available */ + int (*open)(TYPE_FD *upsfd, /* try to open the next available */ SHUTDevice_t *curDevice, /* device matching USBDeviceMatcher_t */ char *device_path, - int (*callback)(int upsfd, SHUTDevice_t *hd, unsigned char *rdbuf, int rdlen)); - void (*close)(int upsfd); - int (*get_report)(int upsfd, int ReportId, + int (*callback)(TYPE_FD upsfd, SHUTDevice_t *hd, unsigned char *rdbuf, int rdlen)); + void (*close)(TYPE_FD upsfd); + int (*get_report)(TYPE_FD upsfd, int ReportId, unsigned char *raw_buf, int ReportSize ); - int (*set_report)(int upsfd, int ReportId, + int (*set_report)(TYPE_FD upsfd, int ReportId, unsigned char *raw_buf, int ReportSize ); - int (*get_string)(int upsfd, + int (*get_string)(TYPE_FD upsfd, int StringIdx, char *buf, size_t buflen); - int (*get_interrupt)(int upsfd, + int (*get_interrupt)(TYPE_FD upsfd, unsigned char *buf, int bufsize, int timeout); } shut_communication_subdriver_t; diff --git a/drivers/libusb.h b/drivers/libusb.h index 66d2633553..ab30ec7600 100644 --- a/drivers/libusb.h +++ b/drivers/libusb.h @@ -31,6 +31,8 @@ #ifndef LIBUSB_H #define LIBUSB_H +#include "win_shut_compat.h" + #include "main.h" /* for subdrv_info_t */ #include "usb-common.h" /* for USBDevice_t and USBDeviceMatcher_t */ diff --git a/drivers/mge-shut.c b/drivers/mge-shut.c index cd9659d6d0..66df796dc6 100644 --- a/drivers/mge-shut.c +++ b/drivers/mge-shut.c @@ -547,15 +547,15 @@ int shut_wait_ack (void) static int char_read (char *bytes, int size, int read_timeout) { struct timeval serial_timeout; - fd_set readfs; int bytes_read = 0; - int rc = 0; int now; serial_timeout.tv_usec = (read_timeout % 1000) * 1000; serial_timeout.tv_sec = (read_timeout / 1000); #ifndef WIN32 + fd_set readfs; + int rc = 0; FD_ZERO (&readfs); FD_SET (upsfd, &readfs); diff --git a/drivers/serial.c b/drivers/serial.c index a1de9140d8..9cf660b5ee 100644 --- a/drivers/serial.c +++ b/drivers/serial.c @@ -125,6 +125,8 @@ static void lock_set(TYPE_FD fd, const char *port) #else + ret = 0; /* Make compiler happy */ + ret = ret; upslog_with_errno(LOG_WARNING, "Warning: no locking method is available"); #endif diff --git a/drivers/snmp-ups.h b/drivers/snmp-ups.h index 8b281df131..78e1e86aee 100644 --- a/drivers/snmp-ups.h +++ b/drivers/snmp-ups.h @@ -72,9 +72,14 @@ for each OID request we made), instead of sending many small packets #undef HAVE_DMALLOC_H #endif +#ifdef WIN32 +#undef random +#undef _WIN32_WINNT +#endif #include #include +#undef DISABLE_MIB_LOADING /* Force numeric OIDs by disabling MIB loading */ #define DISABLE_MIB_LOADING 1 diff --git a/drivers/usbhid-ups.c b/drivers/usbhid-ups.c index 39465b1370..4e838080b0 100644 --- a/drivers/usbhid-ups.c +++ b/drivers/usbhid-ups.c @@ -29,6 +29,7 @@ #define DRIVER_NAME "Generic HID driver" #define DRIVER_VERSION "0.38" +#include "win_shut_compat.h" #include "main.h" #include "libhid.h" #include "usbhid-ups.h" @@ -115,7 +116,7 @@ bool_t use_interrupt_pipe = TRUE; bool_t use_interrupt_pipe = FALSE; #endif static time_t lastpoll; /* Timestamp the last polling */ -hid_dev_handle_t udev; +TYPE_FD udev; /* support functions */ static hid_info_t *find_nut_info(const char *varname); @@ -128,7 +129,7 @@ static void ups_status_set(void); static bool_t hid_ups_walk(walkmode_t mode); static int reconnect_ups(void); static int ups_infoval_set(hid_info_t *item, double value); -static int callback(hid_dev_handle_t udev, HIDDevice_t *hd, unsigned char *rdbuf, int rdlen); +static int callback(TYPE_FD udev, HIDDevice_t *hd, unsigned char *rdbuf, int rdlen); #ifdef DEBUG static double interval(void); #endif @@ -1060,7 +1061,7 @@ static void process_boolean_info(const char *nutvalue) upsdebugx(5, "Warning: %s not in list of known values", nutvalue); } -static int callback(hid_dev_handle_t udev, HIDDevice_t *hd, unsigned char *rdbuf, int rdlen) +static int callback(TYPE_FD udev, HIDDevice_t *hd, unsigned char *rdbuf, int rdlen) { int i; const char *mfr = NULL, *model = NULL, *serial = NULL; diff --git a/drivers/usbhid-ups.h b/drivers/usbhid-ups.h index 4f4b3c320e..145c663446 100644 --- a/drivers/usbhid-ups.h +++ b/drivers/usbhid-ups.h @@ -32,8 +32,9 @@ #include #include "config.h" #include "libhid.h" +#include "libshut.h" -extern hid_dev_handle_t udev; +extern TYPE_FD udev; extern bool_t use_interrupt_pipe; /* Set to FALSE if interrupt reports should not be used */ /* Driver's parameters */ diff --git a/drivers/win_shut_compat.h b/drivers/win_shut_compat.h new file mode 100644 index 0000000000..a8e36d6100 --- /dev/null +++ b/drivers/win_shut_compat.h @@ -0,0 +1,41 @@ +/*! + * @file win_shut_comapt.h + * @brief Windows specific macros for shut protocol + * + * @author Copyright (C) 2013 + * Arnaud Quette + * + * 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., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * -------------------------------------------------------------------------- */ + +#ifndef WIN_SHUT_COMPAT +#define WIN_SHUT_COMPAT + +#ifndef WIN32 +#define ERROR_FD (-1) +#define VALID_FD(a) (a>0) +#define TYPE_FD int +#else /* WIN32 */ +#define ERROR_FD (NULL) +#define VALID_FD(a) (a!=NULL) +#ifdef SHUT_MODE +#define TYPE_FD serial_handler_t * +#else /* SHUT_MODE */ +#define TYPE_FD hid_dev_handle_t +#endif /* SHUT_MODE */ +#endif /* WIN32 */ + +#endif diff --git a/tools/nut-scanner/scan_snmp.c b/tools/nut-scanner/scan_snmp.c index d5e27242a0..3c432529ec 100644 --- a/tools/nut-scanner/scan_snmp.c +++ b/tools/nut-scanner/scan_snmp.c @@ -24,6 +24,8 @@ #ifndef WIN32 #include +#else +#undef _WIN32_WINNT #endif #include diff --git a/tools/nut-scanner/scan_xml_http.c b/tools/nut-scanner/scan_xml_http.c index da5a551d24..cf16c87225 100644 --- a/tools/nut-scanner/scan_xml_http.c +++ b/tools/nut-scanner/scan_xml_http.c @@ -27,7 +27,9 @@ #include #include #include +#define SOCK_OPT_CAST #else +#define SOCK_OPT_CAST (char*) /* Those 2 files for support of getaddrinfo, getnameinfo and freeaddrinfo on Windows 2000 and older versions */ #include @@ -158,7 +160,7 @@ nutscan_device_t * nutscan_scan_xml_http(long usec_timeout) sockAddress.sin_family = AF_INET; sockAddress.sin_addr.s_addr = INADDR_BROADCAST; sockAddress.sin_port = htons(port); - setsockopt(peerSocket, SOL_SOCKET, SO_BROADCAST, &sockopt_on, + setsockopt(peerSocket, SOL_SOCKET, SO_BROADCAST, SOCK_OPT_CAST&sockopt_on, sizeof(sockopt_on)); /* Send scan request */ From 46796b5150649a6c12ffa00a265334995515e785 Mon Sep 17 00:00:00 2001 From: Frederic BOHE Date: Fri, 4 Oct 2013 10:54:55 +0200 Subject: [PATCH 202/218] Fix weird difftime behavior --- include/common.h | 4 ++++ server/sstate.c | 1 - server/upsd.c | 6 +----- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/include/common.h b/include/common.h index 566c3e17f8..dcdccbb7e8 100644 --- a/include/common.h +++ b/include/common.h @@ -67,6 +67,10 @@ typedef struct serial_handler_s { unsigned int r_binary; unsigned int w_binary; } serial_handler_t; + +/* difftime returns erroneous value so we use this macro.*/ +#undef difftime +#define difftime(t1,t0) (double)(t1 - t0) #endif extern const char *UPS_VERSION; diff --git a/server/sstate.c b/server/sstate.c index 8c80985652..b1dc119de1 100644 --- a/server/sstate.c +++ b/server/sstate.c @@ -444,7 +444,6 @@ int sstate_dead(upstype_t *ups, int maxage) return 1; /* dead */ } - printf("now = %d, ups->last_heard = %d\n",now,ups->last_heard); elapsed = difftime(now, ups->last_heard); /* somewhere beyond a third of the maximum time - prod it to make it talk */ diff --git a/server/upsd.c b/server/upsd.c index 19a58a617d..ecfeb537ab 100644 --- a/server/upsd.c +++ b/server/upsd.c @@ -935,11 +935,7 @@ static void mainloop(void) cnext = client->next; - printf("difftime = %d\n",now-client->last_heard); - //printf("difftime = %f\n",difftime(now, client->last_heard)); - //if (difftime(now, client->last_heard) > 60) { - if (difftime(time(NULL), client->last_heard) > 60) { - //if (now - client->last_heard > 60) { + if (difftime(now, client->last_heard) > 60) { /* shed clients after 1 minute of inactivity */ client_disconnect(client); continue; From 119cf4ffa9447a05aa16a2d8b481c6a5f59bf080 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20BOHE?= Date: Fri, 4 Oct 2013 11:12:42 +0200 Subject: [PATCH 203/218] Fix Linux compilation --- clients/upssched.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/clients/upssched.c b/clients/upssched.c index 0523756f7e..fda3452bd9 100644 --- a/clients/upssched.c +++ b/clients/upssched.c @@ -1069,26 +1069,25 @@ static void sendcmd(const char *cmd, const char *arg1, const char *arg2) snprintf(enc, sizeof(enc), "%s\n", buf); +#ifndef WIN32 /* see if the parent needs to be started (and maybe start it) */ for (i = 0; i < MAX_TRIES; i++) { pipefd = check_parent(cmd, arg2); - if (pipefd == (HANDLE)PARENT_STARTED) { - + if (pipefd == PARENT_STARTED) { /* loop back and try to connect now */ usleep(250000); continue; } /* special case for CANCEL when no parent is running */ - if (pipefd == (HANDLE)PARENT_UNNECESSARY) + if (pipefd == PARENT_UNNECESSARY) return; /* we're connected now */ -#ifndef WIN32 ret = write(pipefd, enc, strlen(enc)); /* if we can't send the whole thing, loop back and try again */ @@ -1116,6 +1115,23 @@ static void sendcmd(const char *cmd, const char *arg1, const char *arg2) } #else + /* see if the parent needs to be started (and maybe start it) */ + + for (i = 0; i < MAX_TRIES; i++) { + + pipefd = check_parent(cmd, arg2); + + if (pipefd == (HANDLE)PARENT_STARTED) { + /* loop back and try to connect now */ + usleep(250000); + continue; + } + + /* special case for CANCEL when no parent is running */ + if (pipefd == (HANDLE)PARENT_UNNECESSARY) + return; + + /* we're connected now */ ret = WriteFile(pipefd,enc,strlen(enc),&bytesWritten,NULL); if (ret == 0 || bytesWritten != strlen(enc)) { upslogx(LOG_ERR, "write failed, trying again"); From 7efba4158d2b9c5d819d611b21b048786807cd2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20BOHE?= Date: Tue, 8 Oct 2013 16:04:16 +0200 Subject: [PATCH 204/218] Fix Linux compilation warning --- drivers/win_shut_compat.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/win_shut_compat.h b/drivers/win_shut_compat.h index a8e36d6100..7d76e9a945 100644 --- a/drivers/win_shut_compat.h +++ b/drivers/win_shut_compat.h @@ -27,7 +27,11 @@ #ifndef WIN32 #define ERROR_FD (-1) #define VALID_FD(a) (a>0) +#ifdef SHUT_MODE #define TYPE_FD int +#else /* NO SHUT MODE -> USB MODE*/ +#define TYPE_FD struct usb_dev_handle * +#endif /* NO SHUT MODE */ #else /* WIN32 */ #define ERROR_FD (NULL) #define VALID_FD(a) (a!=NULL) From 7ccf807cd4176fa482e0a085390d8de64f9186a8 Mon Sep 17 00:00:00 2001 From: Charles Lepple Date: Tue, 12 Nov 2013 22:18:22 -0500 Subject: [PATCH 205/218] a2x: use --destination-dir This option seems to work now. Previously, Asciidoc source files were copied to the destination directory, but this did not account for included files. --- docs/man/Makefile.am | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/docs/man/Makefile.am b/docs/man/Makefile.am index 6dc58c066e..a5c69801cf 100644 --- a/docs/man/Makefile.am +++ b/docs/man/Makefile.am @@ -577,28 +577,24 @@ if HAVE_ASCIIDOC --attribute localtime=`TZ=UTC date +%H:%M:%S` \ -o $@ $< -### The --destination-dir flag doesn't seem to affect the intermediate .xml file. -### Hence, the copying dance below. +### Prior to Asciidoc ~8.6.8, the --destination-dir flag didn't seem to affect the location of the intermediate .xml file. A2X_MANPAGE_OPTS = --doctype manpage --format manpage \ --attribute mansource="Network UPS Tools" \ --attribute manversion="@PACKAGE_VERSION@" \ - --attribute manmanual="NUT Manual" + --attribute manmanual="NUT Manual" \ + --destination-dir=. .txt.1: - test -f `basename $<` || cp -p $< . - $(A2X) $(A2X_MANPAGE_OPTS) `basename $<` + $(A2X) $(A2X_MANPAGE_OPTS) $< .txt.3: - test -f `basename $<` || cp -p $< . - $(A2X) $(A2X_MANPAGE_OPTS) `basename $<` + $(A2X) $(A2X_MANPAGE_OPTS) $< .txt.5: - test -f `basename $<` || cp -p $< . - $(A2X) $(A2X_MANPAGE_OPTS) `basename $<` + $(A2X) $(A2X_MANPAGE_OPTS) $< .txt.8: - test -f `basename $<` || cp -p $< . - $(A2X) $(A2X_MANPAGE_OPTS) `basename $<` + $(A2X) $(A2X_MANPAGE_OPTS) $< else !HAVE_ASCIIDOC From eb9bd2edb9903747535d54756f50014155547ade Mon Sep 17 00:00:00 2001 From: Charles Lepple Date: Wed, 13 Nov 2013 09:50:48 -0500 Subject: [PATCH 206/218] windows_port: distribute win_shut_compat.h Fixes 'make distcheck' error. --- drivers/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/Makefile.am b/drivers/Makefile.am index 18ddd2f0b8..182f5a00c6 100644 --- a/drivers/Makefile.am +++ b/drivers/Makefile.am @@ -258,7 +258,7 @@ dist_noinst_HEADERS = apc-mib.h apc-hid.h baytech-mib.h bcmxcp.h \ safenet.h serial.h snmp-ups.h solis.h tripplite.h tripplite-hid.h \ upshandler.h usb-common.h usbhid-ups.h powercom-hid.h compaq-mib.h idowell-hid.h \ apcsmart.h apcsmart_tabs.h apcsmart-old.h cyberpower-mib.h riello.h openups-hid.h \ - delta_ups-mib.h voltronic.h + delta_ups-mib.h voltronic.h win_shut_compat.h # Define a dummy library so that Automake builds rules for the # corresponding object files. This library is not actually built, From 9519d871d6f09150faef8f5d5b5b1762666cef85 Mon Sep 17 00:00:00 2001 From: Charles Lepple Date: Wed, 13 Nov 2013 09:57:36 -0500 Subject: [PATCH 207/218] windows_port: remove conflict markers from blazer_ser.c --- drivers/blazer_ser.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/blazer_ser.c b/drivers/blazer_ser.c index d2bccae5bc..a45da52ff5 100644 --- a/drivers/blazer_ser.c +++ b/drivers/blazer_ser.c @@ -130,15 +130,8 @@ void upsdrv_initups(void) int i; const char *val; -<<<<<<< HEAD -======= -#ifndef TESTING -<<<<<<< HEAD #ifndef WIN32 /* TODO : Correctly set the port parameters for WIN32 */ ->>>>>>> caf5d58... More work on serial drivers. -======= ->>>>>>> 1c3900e... First implementation of termios functions struct termios tio; /* @@ -189,7 +182,8 @@ void upsdrv_initups(void) * Allow some time to settle for the cablepower */ usleep(100000); -#endif +#endif /* WIN32 */ +#endif /* TESTING */ blazer_initups(); } From 03df76ff676df046481363462df186db5ed692a4 Mon Sep 17 00:00:00 2001 From: Emilien Kia Date: Mon, 13 Jan 2014 14:16:01 +0100 Subject: [PATCH 208/218] Add basic Windows wait for launch process. Wait for process return or timeout Look at returned code. --- drivers/upsdrvctl.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/upsdrvctl.c b/drivers/upsdrvctl.c index 32ac6557af..a6e4a52c7e 100644 --- a/drivers/upsdrvctl.c +++ b/drivers/upsdrvctl.c @@ -259,6 +259,8 @@ static void forkexec(char *const argv[], const ups_t *ups) fatal_with_errno(EXIT_FAILURE, "execv"); #else BOOL ret; + DWORD res; + DWORD exit_code = 0; char commandline[SMALLBUF]; STARTUPINFO StartupInfo; PROCESS_INFORMATION ProcessInformation; @@ -272,6 +274,7 @@ static void forkexec(char *const argv[], const ups_t *ups) snprintfcat(commandline, sizeof(commandline), " %s", argv[i]); i++; } + ret = CreateProcess( argv[0], commandline, @@ -288,6 +291,21 @@ static void forkexec(char *const argv[], const ups_t *ups) if( ret == 0 ) { fatal_with_errno(EXIT_FAILURE, "execv"); } + + res = WaitForSingleObject(ProcessInformation.hProcess, (ups->maxstartdelay!=-1?ups->maxstartdelay:maxstartdelay)*1000); + +if (res == WAIT_TIMEOUT) { + upslogx(LOG_WARNING, "Startup timer elapsed, continuing..."); + exec_error++; + return; + } + + GetExitCodeProcess( ProcessInformation.hProcess, &exit_code ); + if( ret != 0) { + upslogx(LOG_WARNING, "Driver failed to start (exit status=%d)", ret); + exec_error++; + return; + } #endif } From 8a914aed98e924f173b6fcbe20516961b74a812d Mon Sep 17 00:00:00 2001 From: Emilien Kia Date: Mon, 13 Jan 2014 16:28:02 +0100 Subject: [PATCH 209/218] Fix Windows driver starting model and add comments. --- drivers/upsdrvctl.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/upsdrvctl.c b/drivers/upsdrvctl.c index a6e4a52c7e..e33baaf96f 100644 --- a/drivers/upsdrvctl.c +++ b/drivers/upsdrvctl.c @@ -292,20 +292,21 @@ static void forkexec(char *const argv[], const ups_t *ups) fatal_with_errno(EXIT_FAILURE, "execv"); } - res = WaitForSingleObject(ProcessInformation.hProcess, (ups->maxstartdelay!=-1?ups->maxstartdelay:maxstartdelay)*1000); + /* Wait a bit then look at driver process. + Unlike under Linux, Windows spwan drivers directly. If the driver is alive, all is OK. + An optimization can probably be implemented to prevent waiting so much time when all is OK. + */ + res = WaitForSingleObject(ProcessInformation.hProcess, + (ups->maxstartdelay!=-1?ups->maxstartdelay:maxstartdelay)*1000); -if (res == WAIT_TIMEOUT) { - upslogx(LOG_WARNING, "Startup timer elapsed, continuing..."); - exec_error++; - return; - } - - GetExitCodeProcess( ProcessInformation.hProcess, &exit_code ); - if( ret != 0) { + if (res != WAIT_TIMEOUT) { + GetExitCodeProcess( ProcessInformation.hProcess, &exit_code ); upslogx(LOG_WARNING, "Driver failed to start (exit status=%d)", ret); exec_error++; return; } + + return; #endif } From fc94fc05f54e085ecdb9734612c227f009fca137 Mon Sep 17 00:00:00 2001 From: Arnaud Quette Date: Thu, 20 Feb 2014 15:08:33 +0100 Subject: [PATCH 210/218] Fix "no OFF status in "ups.status" although UPS is switched off" and "OB status in "ups.status" although power supply is present" in mge-hid driver. Fix problem up from Schleicher. --- drivers/mge-hid.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/mge-hid.c b/drivers/mge-hid.c index 6383379dcd..86d4a5b7fc 100644 --- a/drivers/mge-hid.c +++ b/drivers/mge-hid.c @@ -912,7 +912,9 @@ static hid_info_t mge_hid2nut[] = /* Special case: boolean values that are mapped to ups.status and ups.alarm */ { "BOOL", 0, 0, "UPS.PowerSummary.PresentStatus.ACPresent", NULL, NULL, HU_FLAG_QUICK_POLL, online_info }, { "BOOL", 0, 0, "UPS.PowerConverter.Input.[3].PresentStatus.Used", NULL, NULL, 0, mge_onbatt_info }, +#if 0 { "BOOL", 0, 0, "UPS.PowerConverter.Input.[1].PresentStatus.Used", NULL, NULL, 0, online_info }, +#endif { "BOOL", 0, 0, "UPS.PowerSummary.PresentStatus.Discharging", NULL, NULL, HU_FLAG_QUICK_POLL, discharging_info }, { "BOOL", 0, 0, "UPS.PowerSummary.PresentStatus.Charging", NULL, NULL, HU_FLAG_QUICK_POLL, charging_info }, /* FIXME: on Dell, the above requires an "AND" with "UPS.BatterySystem.Charger.Mode = 1" */ From a874a7700aecea6e9fb48a30d3ef95a8e8154ab3 Mon Sep 17 00:00:00 2001 From: Emilien Kia Date: Fri, 28 Feb 2014 14:27:31 +0100 Subject: [PATCH 211/218] Fix Windows Installer file list. Use splitted Blazer driver html man pages (ser & usb). --- scripts/Windows/Installer/NUT-Installer.xml | 3426 ++++++++++--------- 1 file changed, 1715 insertions(+), 1711 deletions(-) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index e2e254e238..04c21f89ab 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1,281 +1,281 @@ - - - - - - - - -

    - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + If the automatic USB driver installation fails, you can try to install a driver manually. For this go to : https://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/ -After installling libusb-win32, run libUSB's Inf Wizard and choose your device. - - - Click Next to continue [Wizard]. - - - - - - If you use a USB UPS, please plug it in now, so that we can try to install the relevant driver. - - - - - - - - - - - - - - - - - - - [DlgTitleFont][ProductName] installs the following libraries, location of licenses are - - - - Click Next to continue [Wizard]. - - - - 1. msys-1.0.dll - http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/msys-core/msys-1.0.16-1/ - - - 2. msys-ssl-1.0.0.dll and msys-crypto-1.0.0.dll - http://sourceforge.net/projects/mingw/files/MSYS/openssl/openssl-1.0.0-1/ - - - 3. libregex-1.dll - http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/regex/regex-1.20090805-2/ - - - - - - - - - - - - - Click the Finish button to exit the [Wizard]. - - - {\VerdanaBold13}Completing the [ProductName] [Wizard] - - - - - - - - - - - - {\VerdanaBold13}[ProductName] [Wizard] ended prematurely - - - [ProductName] setup ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again. - - - Click the Finish button to exit the [Wizard]. - - - - - - - - - - Please wait while the [Wizard] prepares to guide you through the installation. - - - {\VerdanaBold13}Welcome to the [ProductName] [Wizard] - - - - - - - - - - - - - - - - - - Please wait while the [Wizard] [Progress2] [ProductName]. This may take several minutes. - - - - [DlgTitleFont][Progress1] [ProductName] - - - - - - - - - - - - - - - - - - - - {\VerdanaBold13}[ProductName] [Wizard] was interrupted - - - [ProductName] setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again. - - - Click the Finish button to exit the [Wizard]. - - - - - - - - - - - - - - - - - - - - - - - - - - - Browse to the destination folder - - - [DlgTitleFont]Change current destination folder - - - - - - - - - - - - - - - - Are you sure you want to cancel [ProductName] installation? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The following applications are using files that need to be updated by this setup. Close these applications and then click Retry to continue the installation or Cancel to exit it. - - - - Some files that need to be updated are currently in use. - - - [DlgTitleFont]Files in Use - - - - - - - - - - - "Yes"]]> - - - - - - - - +After installling libusb-win32, run libUSB's Inf Wizard and choose your device. + + + Click Next to continue [Wizard]. + + + + + + If you use a USB UPS, please plug it in now, so that we can try to install the relevant driver. + + + + + + + + + + + + + + + + + + + [DlgTitleFont][ProductName] installs the following libraries, location of licenses are - + + + Click Next to continue [Wizard]. + + + + 1. msys-1.0.dll - http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/msys-core/msys-1.0.16-1/ + + + 2. msys-ssl-1.0.0.dll and msys-crypto-1.0.0.dll - http://sourceforge.net/projects/mingw/files/MSYS/openssl/openssl-1.0.0-1/ + + + 3. libregex-1.dll - http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/regex/regex-1.20090805-2/ + + + + + + + + + + + + + Click the Finish button to exit the [Wizard]. + + + {\VerdanaBold13}Completing the [ProductName] [Wizard] + + + + + + + + + + + + {\VerdanaBold13}[ProductName] [Wizard] ended prematurely + + + [ProductName] setup ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again. + + + Click the Finish button to exit the [Wizard]. + + + + + + + + + + Please wait while the [Wizard] prepares to guide you through the installation. + + + {\VerdanaBold13}Welcome to the [ProductName] [Wizard] + + + + + + + + + + + + + + + + + + Please wait while the [Wizard] [Progress2] [ProductName]. This may take several minutes. + + + + [DlgTitleFont][Progress1] [ProductName] + + + + + + + + + + + + + + + + + + + + {\VerdanaBold13}[ProductName] [Wizard] was interrupted + + + [ProductName] setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again. + + + Click the Finish button to exit the [Wizard]. + + + + + + + + + + + + + + + + + + + + + + + + + + + Browse to the destination folder + + + [DlgTitleFont]Change current destination folder + + + + + + + + + + + + + + + + Are you sure you want to cancel [ProductName] installation? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The following applications are using files that need to be updated by this setup. Close these applications and then click Retry to continue the installation or Cancel to exit it. + + + + Some files that need to be updated are currently in use. + + + [DlgTitleFont]Files in Use + + + + + + + + + + + "Yes"]]> + + + + + + + + {\rtf1\ansi\ansicpg1252\deff0\deftab720 {\fonttbl{\f0\froman\fprq2 Times New Roman;}} {\colortbl\red0\green0\blue0;} @@ -632,1440 +632,1444 @@ Public License instead of this License. \par \par } - - - - - - - - [DlgTitleFont]Re&pair - - - - - - - - - [DlgTitleFont]&Remove - - - - - - - - - - - - - - - - - - - Select the operation you wish to perform. - - - [DlgTitleFont]Repair or Remove installation - - - Removes [ProductName] from your computer. - - - Repairs errors in the most recent installation state - fixes missing or corrupt files, shortcuts and registry entries. - - - - - - - - - - - - - - - The [Wizard] will allow you to change the way [ProductName] features are installed on your computer or even to remove [ProductName] from your computer. Click Next to continue or Cancel to exit the [Wizard]. - - - {\VerdanaBold13}Welcome to the [ProductName] [Wizard] - - - - - 1]]> - - - - - - - - - - - The [Wizard] will complete the installation of [ProductName] on your computer. Click Install to continue or Cancel to exit the [Wizard]. - - - {\VerdanaBold13}Resuming the [ProductName] [Wizard] - - - - - 1]]> - - - - - - - - - - - - - Click Install to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. - - - - The [Wizard] is ready to begin the [InstallMode] installation - - - [DlgTitleFont]Ready to Install - - - - - - - - - 1]]> - 1]]> - - - - - - - - - - Click Remove to remove [ProductName] from your computer. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. - - - - You have chosen to remove the program from your computer. - - - [DlgTitleFont]Remove [ProductName] - - - - - - 1]]> - 1]]> - 1]]> - - - - - - - - - - - - - Click Repair to repair the installation of [ProductName]. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. - - - - The [Wizard] is ready to begin the repair of [ProductName]. - - - [DlgTitleFont]Repair [ProductName] - - - - - - - - - - - - - - - - The [Wizard] will install [ProductName] on your computer. Click Next to continue or Cancel to exit the [Wizard]. - - - {\VerdanaBold13}Welcome to the [ProductName] [Wizard] - - - - - - - - - - - bytes - GB - KB - MB - Entire feature will be unavailable - Feature will be installed when required - Entire feature will be installed to run from CD - Entire feature will be installed on local hard drive - Entire feature will be installed to run from network - Will be installed to run from CD - Will be installed on local hard drive - Will be installed to run from network - Gathering required information... - This feature will remain uninstalled - This feature will be set to be installed when required - This feature will be installed to run from CD - This feature will be installed on the local hard drive - This feature will be installed to run from the network - This feature will become unavailable - Will be installed when required - This feature will be available to run from CD - This feature will be installed on your local hard drive - This feature will be available to run from the network - This feature will be uninstalled completely, you won't be able to run it from CD - This feature will change from run from CD state to set to be installed when required - This feature will remain to be run from CD - This feature will change from run from CD state to be installed on the local hard drive - This feature frees up [1] on your hard drive. - This feature requires [1] on your hard drive. - Compiling cost for this feature... - This feature will be completely removed - This feature will be removed from your local hard drive, but will be set to be installed when required - This feature will be removed from your local hard drive, but will be still available to run from CD - This feature will remain on you local hard drive - This feature will be removed from your local hard drive, but will be still available to run from the network - This feature will be uninstalled completely, you won't be able to run it from the network - This feature will change from run from network state to set to be installed when required - This feature will change from run from network state to be installed on the local hard drive - This feature will remain to be run from the network - This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive. - This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive. - This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive. - This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive. - Time remaining: {[1] minutes }{[2] seconds} - Available - Difference - Required - Disk Size - Volume - Validating install - Copying new files - Copying network install files - Computing space requirements - Computing space requirements - Computing space requirements - Creating shortcuts - Publishing Qualified Components - Publishing Product Features - Publishing product information - Registering Class servers - Registering extension servers - Registering MIME info - Registering program identifiers - Allocating registry space - Searching for installed applications - Binding executables - Searching for qualifying products - Creating folders - Deleting services - Creating duplicate files - Searching for related applications - Installing ODBC components - Installing new services - Evaluating launch conditions - Migrating feature states from related applications - Moving files - Patching files - Updating component registration - Registering COM+ Applications and Components - Registering fonts - Registering product - Registering type libraries - Registering user - Removing duplicated files - Updating environment strings - Removing applications - Removing files - Removing folders - Removing INI files entries - Removing ODBC components - Removing system registry values - Removing shortcuts - Searching for qualifying products - Registering modules - Unregistering modules - Initializing ODBC directories - Starting services - Stopping services - Unpublishing Qualified Components - Unpublishing Product Features - Unregister Class servers - Unregistering COM+ Applications and Components - Unregistering extension servers - Unregistering fonts - Unregistering MIME info - Unregistering program identifiers - Unregistering type libraries - Updating environment strings - Writing INI files values - Writing system registry values - Advertising application - Generating script operations for action: - Installing system catalog - Publishing assembly information - Unpublishing assembly information - Rolling back action: - Removing backup files - Removing moved files - Unpublishing product information - {{Fatal error: }} - {{Error [1]. }} - Warning [1]. - - Info [1]. - The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}} - - {{Disk full: }} - Action [Time]: [1]. [2] - [ProductName] - {[2]}{, [3]}{, [4]} - Message type: [1], Argument: [2] - === Logging started: [Date] [Time] === - === Logging stopped: [Date] [Time] === - Action start [Time]: [1]. - Action ended [Time]: [1]. Return value [2]. - Time remaining: {[1] minutes }{[2] seconds} - Out of memory. Shut down other applications before retrying. - Installer is no longer responding. - Installer stopped prematurely. - Please wait while Windows configures [ProductName] - Gathering required information... - Removing older versions of this application... - Preparing to remove older versions of this application... - {[ProductName] }Setup completed successfully. - {[ProductName] }Setup failed. - Error reading from file: [2]. {{ System error [3].}} Verify that the file exists and that you can access it. - Cannot create the file '[2]'. A directory with this name already exists. Cancel the install and try installing to a different location. - Please insert the disk: [2] - The installer has insufficient privileges to access this directory: [2]. The installation cannot continue. Log on as administrator or contact your system administrator. - Error writing to file: [2]. Verify that you have access to that directory. - Error reading from file [2]. {{ System error [3].}} Verify that the file exists and that you can access it. - Another application has exclusive access to the file '[2]'. Please shut down all other applications, then click Retry. - There is not enough disk space to install this file: [2]. Free some disk space and click Retry, or click Cancel to exit. - Source file not found: [2]. Verify that the file exists and that you can access it. - Error reading from file: [3]. {{ System error [2].}} Verify that the file exists and that you can access it. - Error writing to file: [3]. {{ System error [2].}} Verify that you have access to that directory. - Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it. - Cannot create the directory '[2]'. A file with this name already exists. Please rename or remove the file and click retry, or click Cancel to exit. - The volume [2] is currently unavailable. Please select another. - The specified path '[2]' is unavailable. - Unable to write to the specified folder: [2]. - A network error occurred while attempting to read from the file: [2] - An error occurred while attempting to create the directory: [2] - A network error occurred while attempting to create the directory: [2] - A network error occurred while attempting to open the source file cabinet: [2] - The specified path is too long: [2] - The Installer has insufficient privileges to modify this file: [2]. - A portion of the folder path '[2]' is invalid. It is either empty or exceeds the length allowed by the system. - The folder path '[2]' contains words that are not valid in folder paths. - The folder path '[2]' contains an invalid character. - '[2]' is not a valid short file name. - Error getting file security: [3] GetLastError: [2] - Invalid Drive: [2] - Error applying patch to file [2]. It has probably been updated by other means, and can no longer be modified by this patch. For more information contact your patch vendor. {{System Error: [3]}} - A file that is required cannot be installed because the cabinet file [2] is not digitally signed. This may indicate that the cabinet file is corrupt. - A file that is required cannot be installed because the cabinet file [2] has an invalid digital signature. This may indicate that the cabinet file is corrupt.{{ Error [3] was returned by WinVerifyTrust.}} - Failed to correctly copy [2] file: CRC error. - Failed to correctly move [2] file: CRC error. - Failed to correctly patch [2] file: CRC error. - The file '[2]' cannot be installed because the file cannot be found in cabinet file '[3]'. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package. - The cabinet file '[2]' required for this installation is corrupt and cannot be used. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package. - There was an error creating a temporary file that is needed to complete this installation.{{ Folder: [3]. System error code: [2]}} - Could not create key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not open key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not delete value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not delete key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not read value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not write value [2] to key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not get value names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not get sub key names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not read security information for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. - Could not increase the available registry space. [2] KB of free registry space is required for the installation of this application. - Another installation is in progress. You must complete that installation before continuing this one. - Error accessing secured data. Please make sure the Windows Installer is configured properly and try the install again. - User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product. Your current install will now continue. - User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product. - Out of disk space -- Volume: '[2]'; required space: [3] KB; available space: [4] KB. Free some disk space and retry. - Are you sure you want to cancel? - The file [2][3] is being held in use{ by the following process: Name: [4], Id: [5], Window Title: '[6]'}. Close that application and retry. - The product '[2]' is already installed, preventing the installation of this product. The two products are incompatible. - There is not enough disk space on the volume '[2]' to continue the install with recovery enabled. [3] KB are required, but only [4] KB are available. Click Ignore to continue the install without saving recovery information, click Retry to check for available space again, or click Cancel to quit the installation. - Could not access network location [2]. - The following applications should be closed before continuing the install: - Could not find any previously installed compliant products on the machine for installing this product. - An error occurred while applying security settings. [2] is not a valid user or group. This could be a problem with the package, or a problem connecting to a domain controller on the network. Check your network connection and click Retry, or Cancel to end the install. {{Unable to locate the user's SID, system error [3]}} - The key [2] is not valid. Verify that you entered the correct key. - The installer must restart your system before configuration of [2] can continue. Click Yes to restart now or No if you plan to manually restart later. - You must restart your system for the configuration changes made to [2] to take effect. Click Yes to restart now or No if you plan to manually restart later. - An installation for [2] is currently suspended. You must undo the changes made by that installation to continue. Do you want to undo those changes? - A previous installation for this product is in progress. You must undo the changes made by that installation to continue. Do you want to undo those changes? - An installation package for the product [2] cannot be found. Try the installation again using a valid copy of the installation package '[3]'. - Installation completed successfully. - Installation failed. - Product: [2] -- [3] - You may either restore your computer to its previous state or continue the install later. Would you like to restore? - An error occurred while writing installation information to disk. Check to make sure enough disk space is available, and click Retry, or Cancel to end the install. - One or more of the files required to restore your computer to its previous state could not be found. Restoration will not be possible. - [2] cannot install one of its required products. Contact your technical support group. {{System Error: [3].}} - The older version of [2] cannot be removed. Contact your technical support group. {{System Error [3].}} - Installed [2] - Configured [2] - Removed [2] - File [2] was rejected by digital signature policy. - The Windows Installer Service could not be accessed. This can occur if you are running Windows in safe mode, or if the Windows Installer is not correctly installed. Contact your support personnel for assistance. - There is a problem with this Windows Installer package. A script required for this install to complete could not be run. Contact your support personnel or package vendor. {{Custom action [2] script error [3], [4]: [5] Line [6], Column [7], [8] }} - There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action: [2], location: [3], command: [4] }} - There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor. {{Action [2], location: [3], command: [4] }} - There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action [2], entry: [3], library: [4] }} - Removal completed successfully. - Removal failed. - Advertisement completed successfully. - Advertisement failed. - Configuration completed successfully. - Configuration failed. - You must be an Administrator to remove this application. To remove this application, you can log on as an Administrator, or contact your technical support group for assistance. - The path [2] is not valid. Please specify a valid path. - Out of memory. Shut down other applications before retrying. - There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to go back to the previously selected volume. - There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to return to the browse dialog and select a different volume. - The folder [2] does not exist. Please enter a path to an existing folder. - You have insufficient privileges to read this folder. - A valid destination folder for the install could not be determined. - Error attempting to read from the source install database: [2]. - Scheduling reboot operation: Renaming file [2] to [3]. Must reboot to complete operation. - Scheduling reboot operation: Deleting file [2]. Must reboot to complete operation. - Module [2] failed to register. HRESULT [3]. Contact your support personnel. - Module [2] failed to unregister. HRESULT [3]. Contact your support personnel. - Failed to cache package [2]. Error: [3]. Contact your support personnel. - Could not register font [2]. Verify that you have sufficient permissions to install fonts, and that the system supports this font. - Could not unregister font [2]. Verify that you that you have sufficient permissions to remove fonts. - Could not create Shortcut [2]. Verify that the destination folder exists and that you can access it. - Could not remove Shortcut [2]. Verify that the shortcut file exists and that you can access it. - Could not register type library for file [2]. Contact your support personnel. - Could not unregister type library for file [2]. Contact your support personnel. - Could not update the ini file [2][3]. Verify that the file exists and that you can access it. - Could not schedule file [2] to replace file [3] on reboot. Verify that you have write permissions to file [3]. - Error removing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel. - Error installing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel. - Error removing ODBC driver: [4], ODBC error [2]: [3]. Verify that you have sufficient privileges to remove ODBC drivers. - Error installing ODBC driver: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it. - Error configuring ODBC data source: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it. - Service '[2]' ([3]) failed to start. Verify that you have sufficient privileges to start system services. - Service '[2]' ([3]) could not be stopped. Verify that you have sufficient privileges to stop system services. - Service '[2]' ([3]) could not be deleted. Verify that you have sufficient privileges to remove system services. - Service '[2]' ([3]) could not be installed. Verify that you have sufficient privileges to install system services. - Could not update environment variable '[2]'. Verify that you have sufficient privileges to modify environment variables. - You do not have sufficient privileges to complete this installation for all users of the machine. Log on as administrator and then retry this installation. - Could not set file security for file '[3]'. Error: [2]. Verify that you have sufficient privileges to modify the security permissions for this file. - Component Services (COM+ 1.0) are not installed on this computer. This installation requires Component Services in order to complete successfully. Component Services are available on Windows 2000. - Error registering COM+ Application. Contact your support personnel for more information. - Error unregistering COM+ Application. Contact your support personnel for more information. - The description for service '[2]' ([3]) could not be changed. - The Windows Installer service cannot update the system file [2] because the file is protected by Windows. You may need to update your operating system for this program to work correctly. {{Package version: [3], OS Protected version: [4]}} - The Windows Installer service cannot update the protected Windows file [2]. {{Package version: [3], OS Protected version: [4], SFP Error: [5]}} - The Windows Installer service cannot update one or more protected Windows files. {{SFP Error: [2]. List of protected files:\r\n[3]}} - User installations are disabled via policy on the machine. - An error occured during the installation of assembly component [2]. HRESULT: [3]. {{assembly interface: [4], function: [5], assembly name: [6]}} - - TARGETDIR="" - - - - - - - - - - - - - - - TARGETDIR="" - - - - - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - @@@@@]]> - - - - - - - - - - - TARGETDIR="" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TARGETDIR="" - - - - - - - LIBUSBINSTALL=1 - - - + + + + + + + + [DlgTitleFont]Re&pair + + + + + + + + + [DlgTitleFont]&Remove + + + + + + + + + + + + + + + + + + + Select the operation you wish to perform. + + + [DlgTitleFont]Repair or Remove installation + + + Removes [ProductName] from your computer. + + + Repairs errors in the most recent installation state - fixes missing or corrupt files, shortcuts and registry entries. + + + + + + + + + + + + + + + The [Wizard] will allow you to change the way [ProductName] features are installed on your computer or even to remove [ProductName] from your computer. Click Next to continue or Cancel to exit the [Wizard]. + + + {\VerdanaBold13}Welcome to the [ProductName] [Wizard] + + + + + 1]]> + + + + + + + + + + + The [Wizard] will complete the installation of [ProductName] on your computer. Click Install to continue or Cancel to exit the [Wizard]. + + + {\VerdanaBold13}Resuming the [ProductName] [Wizard] + + + + + 1]]> + + + + + + + + + + + + + Click Install to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. + + + + The [Wizard] is ready to begin the [InstallMode] installation + + + [DlgTitleFont]Ready to Install + + + + + + + + + 1]]> + 1]]> + + + + + + + + + + Click Remove to remove [ProductName] from your computer. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. + + + + You have chosen to remove the program from your computer. + + + [DlgTitleFont]Remove [ProductName] + + + + + + 1]]> + 1]]> + 1]]> + + + + + + + + + + + + + Click Repair to repair the installation of [ProductName]. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard. + + + + The [Wizard] is ready to begin the repair of [ProductName]. + + + [DlgTitleFont]Repair [ProductName] + + + + + + + + + + + + + + + + The [Wizard] will install [ProductName] on your computer. Click Next to continue or Cancel to exit the [Wizard]. + + + {\VerdanaBold13}Welcome to the [ProductName] [Wizard] + + + + + + + + + + + bytes + GB + KB + MB + Entire feature will be unavailable + Feature will be installed when required + Entire feature will be installed to run from CD + Entire feature will be installed on local hard drive + Entire feature will be installed to run from network + Will be installed to run from CD + Will be installed on local hard drive + Will be installed to run from network + Gathering required information... + This feature will remain uninstalled + This feature will be set to be installed when required + This feature will be installed to run from CD + This feature will be installed on the local hard drive + This feature will be installed to run from the network + This feature will become unavailable + Will be installed when required + This feature will be available to run from CD + This feature will be installed on your local hard drive + This feature will be available to run from the network + This feature will be uninstalled completely, you won't be able to run it from CD + This feature will change from run from CD state to set to be installed when required + This feature will remain to be run from CD + This feature will change from run from CD state to be installed on the local hard drive + This feature frees up [1] on your hard drive. + This feature requires [1] on your hard drive. + Compiling cost for this feature... + This feature will be completely removed + This feature will be removed from your local hard drive, but will be set to be installed when required + This feature will be removed from your local hard drive, but will be still available to run from CD + This feature will remain on you local hard drive + This feature will be removed from your local hard drive, but will be still available to run from the network + This feature will be uninstalled completely, you won't be able to run it from the network + This feature will change from run from network state to set to be installed when required + This feature will change from run from network state to be installed on the local hard drive + This feature will remain to be run from the network + This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive. + This feature frees up [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive. + This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures free up [4] on your hard drive. + This feature requires [1] on your hard drive. It has [2] of [3] subfeatures selected. The subfeatures require [4] on your hard drive. + Time remaining: {[1] minutes }{[2] seconds} + Available + Difference + Required + Disk Size + Volume + Validating install + Copying new files + Copying network install files + Computing space requirements + Computing space requirements + Computing space requirements + Creating shortcuts + Publishing Qualified Components + Publishing Product Features + Publishing product information + Registering Class servers + Registering extension servers + Registering MIME info + Registering program identifiers + Allocating registry space + Searching for installed applications + Binding executables + Searching for qualifying products + Creating folders + Deleting services + Creating duplicate files + Searching for related applications + Installing ODBC components + Installing new services + Evaluating launch conditions + Migrating feature states from related applications + Moving files + Patching files + Updating component registration + Registering COM+ Applications and Components + Registering fonts + Registering product + Registering type libraries + Registering user + Removing duplicated files + Updating environment strings + Removing applications + Removing files + Removing folders + Removing INI files entries + Removing ODBC components + Removing system registry values + Removing shortcuts + Searching for qualifying products + Registering modules + Unregistering modules + Initializing ODBC directories + Starting services + Stopping services + Unpublishing Qualified Components + Unpublishing Product Features + Unregister Class servers + Unregistering COM+ Applications and Components + Unregistering extension servers + Unregistering fonts + Unregistering MIME info + Unregistering program identifiers + Unregistering type libraries + Updating environment strings + Writing INI files values + Writing system registry values + Advertising application + Generating script operations for action: + Installing system catalog + Publishing assembly information + Unpublishing assembly information + Rolling back action: + Removing backup files + Removing moved files + Unpublishing product information + {{Fatal error: }} + {{Error [1]. }} + Warning [1]. + + Info [1]. + The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is [1]. {{The arguments are: [2], [3], [4]}} + + {{Disk full: }} + Action [Time]: [1]. [2] + [ProductName] + {[2]}{, [3]}{, [4]} + Message type: [1], Argument: [2] + === Logging started: [Date] [Time] === + === Logging stopped: [Date] [Time] === + Action start [Time]: [1]. + Action ended [Time]: [1]. Return value [2]. + Time remaining: {[1] minutes }{[2] seconds} + Out of memory. Shut down other applications before retrying. + Installer is no longer responding. + Installer stopped prematurely. + Please wait while Windows configures [ProductName] + Gathering required information... + Removing older versions of this application... + Preparing to remove older versions of this application... + {[ProductName] }Setup completed successfully. + {[ProductName] }Setup failed. + Error reading from file: [2]. {{ System error [3].}} Verify that the file exists and that you can access it. + Cannot create the file '[2]'. A directory with this name already exists. Cancel the install and try installing to a different location. + Please insert the disk: [2] + The installer has insufficient privileges to access this directory: [2]. The installation cannot continue. Log on as administrator or contact your system administrator. + Error writing to file: [2]. Verify that you have access to that directory. + Error reading from file [2]. {{ System error [3].}} Verify that the file exists and that you can access it. + Another application has exclusive access to the file '[2]'. Please shut down all other applications, then click Retry. + There is not enough disk space to install this file: [2]. Free some disk space and click Retry, or click Cancel to exit. + Source file not found: [2]. Verify that the file exists and that you can access it. + Error reading from file: [3]. {{ System error [2].}} Verify that the file exists and that you can access it. + Error writing to file: [3]. {{ System error [2].}} Verify that you have access to that directory. + Source file not found{{(cabinet)}}: [2]. Verify that the file exists and that you can access it. + Cannot create the directory '[2]'. A file with this name already exists. Please rename or remove the file and click retry, or click Cancel to exit. + The volume [2] is currently unavailable. Please select another. + The specified path '[2]' is unavailable. + Unable to write to the specified folder: [2]. + A network error occurred while attempting to read from the file: [2] + An error occurred while attempting to create the directory: [2] + A network error occurred while attempting to create the directory: [2] + A network error occurred while attempting to open the source file cabinet: [2] + The specified path is too long: [2] + The Installer has insufficient privileges to modify this file: [2]. + A portion of the folder path '[2]' is invalid. It is either empty or exceeds the length allowed by the system. + The folder path '[2]' contains words that are not valid in folder paths. + The folder path '[2]' contains an invalid character. + '[2]' is not a valid short file name. + Error getting file security: [3] GetLastError: [2] + Invalid Drive: [2] + Error applying patch to file [2]. It has probably been updated by other means, and can no longer be modified by this patch. For more information contact your patch vendor. {{System Error: [3]}} + A file that is required cannot be installed because the cabinet file [2] is not digitally signed. This may indicate that the cabinet file is corrupt. + A file that is required cannot be installed because the cabinet file [2] has an invalid digital signature. This may indicate that the cabinet file is corrupt.{{ Error [3] was returned by WinVerifyTrust.}} + Failed to correctly copy [2] file: CRC error. + Failed to correctly move [2] file: CRC error. + Failed to correctly patch [2] file: CRC error. + The file '[2]' cannot be installed because the file cannot be found in cabinet file '[3]'. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package. + The cabinet file '[2]' required for this installation is corrupt and cannot be used. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package. + There was an error creating a temporary file that is needed to complete this installation.{{ Folder: [3]. System error code: [2]}} + Could not create key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not open key: [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not delete value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not delete key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not read value [2] from key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not write value [2] to key [3]. {{ System error [4].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not get value names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not get sub key names for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not read security information for key [2]. {{ System error [3].}} Verify that you have sufficient access to that key, or contact your support personnel. + Could not increase the available registry space. [2] KB of free registry space is required for the installation of this application. + Another installation is in progress. You must complete that installation before continuing this one. + Error accessing secured data. Please make sure the Windows Installer is configured properly and try the install again. + User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product. Your current install will now continue. + User '[2]' has previously initiated an install for product '[3]'. That user will need to run that install again before they can use that product. + Out of disk space -- Volume: '[2]'; required space: [3] KB; available space: [4] KB. Free some disk space and retry. + Are you sure you want to cancel? + The file [2][3] is being held in use{ by the following process: Name: [4], Id: [5], Window Title: '[6]'}. Close that application and retry. + The product '[2]' is already installed, preventing the installation of this product. The two products are incompatible. + There is not enough disk space on the volume '[2]' to continue the install with recovery enabled. [3] KB are required, but only [4] KB are available. Click Ignore to continue the install without saving recovery information, click Retry to check for available space again, or click Cancel to quit the installation. + Could not access network location [2]. + The following applications should be closed before continuing the install: + Could not find any previously installed compliant products on the machine for installing this product. + An error occurred while applying security settings. [2] is not a valid user or group. This could be a problem with the package, or a problem connecting to a domain controller on the network. Check your network connection and click Retry, or Cancel to end the install. {{Unable to locate the user's SID, system error [3]}} + The key [2] is not valid. Verify that you entered the correct key. + The installer must restart your system before configuration of [2] can continue. Click Yes to restart now or No if you plan to manually restart later. + You must restart your system for the configuration changes made to [2] to take effect. Click Yes to restart now or No if you plan to manually restart later. + An installation for [2] is currently suspended. You must undo the changes made by that installation to continue. Do you want to undo those changes? + A previous installation for this product is in progress. You must undo the changes made by that installation to continue. Do you want to undo those changes? + An installation package for the product [2] cannot be found. Try the installation again using a valid copy of the installation package '[3]'. + Installation completed successfully. + Installation failed. + Product: [2] -- [3] + You may either restore your computer to its previous state or continue the install later. Would you like to restore? + An error occurred while writing installation information to disk. Check to make sure enough disk space is available, and click Retry, or Cancel to end the install. + One or more of the files required to restore your computer to its previous state could not be found. Restoration will not be possible. + [2] cannot install one of its required products. Contact your technical support group. {{System Error: [3].}} + The older version of [2] cannot be removed. Contact your technical support group. {{System Error [3].}} + Installed [2] + Configured [2] + Removed [2] + File [2] was rejected by digital signature policy. + The Windows Installer Service could not be accessed. This can occur if you are running Windows in safe mode, or if the Windows Installer is not correctly installed. Contact your support personnel for assistance. + There is a problem with this Windows Installer package. A script required for this install to complete could not be run. Contact your support personnel or package vendor. {{Custom action [2] script error [3], [4]: [5] Line [6], Column [7], [8] }} + There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action: [2], location: [3], command: [4] }} + There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor. {{Action [2], location: [3], command: [4] }} + There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. {{Action [2], entry: [3], library: [4] }} + Removal completed successfully. + Removal failed. + Advertisement completed successfully. + Advertisement failed. + Configuration completed successfully. + Configuration failed. + You must be an Administrator to remove this application. To remove this application, you can log on as an Administrator, or contact your technical support group for assistance. + The path [2] is not valid. Please specify a valid path. + Out of memory. Shut down other applications before retrying. + There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to go back to the previously selected volume. + There is no disk in drive [2]. Please insert one and click Retry, or click Cancel to return to the browse dialog and select a different volume. + The folder [2] does not exist. Please enter a path to an existing folder. + You have insufficient privileges to read this folder. + A valid destination folder for the install could not be determined. + Error attempting to read from the source install database: [2]. + Scheduling reboot operation: Renaming file [2] to [3]. Must reboot to complete operation. + Scheduling reboot operation: Deleting file [2]. Must reboot to complete operation. + Module [2] failed to register. HRESULT [3]. Contact your support personnel. + Module [2] failed to unregister. HRESULT [3]. Contact your support personnel. + Failed to cache package [2]. Error: [3]. Contact your support personnel. + Could not register font [2]. Verify that you have sufficient permissions to install fonts, and that the system supports this font. + Could not unregister font [2]. Verify that you that you have sufficient permissions to remove fonts. + Could not create Shortcut [2]. Verify that the destination folder exists and that you can access it. + Could not remove Shortcut [2]. Verify that the shortcut file exists and that you can access it. + Could not register type library for file [2]. Contact your support personnel. + Could not unregister type library for file [2]. Contact your support personnel. + Could not update the ini file [2][3]. Verify that the file exists and that you can access it. + Could not schedule file [2] to replace file [3] on reboot. Verify that you have write permissions to file [3]. + Error removing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel. + Error installing ODBC driver manager, ODBC error [2]: [3]. Contact your support personnel. + Error removing ODBC driver: [4], ODBC error [2]: [3]. Verify that you have sufficient privileges to remove ODBC drivers. + Error installing ODBC driver: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it. + Error configuring ODBC data source: [4], ODBC error [2]: [3]. Verify that the file [4] exists and that you can access it. + Service '[2]' ([3]) failed to start. Verify that you have sufficient privileges to start system services. + Service '[2]' ([3]) could not be stopped. Verify that you have sufficient privileges to stop system services. + Service '[2]' ([3]) could not be deleted. Verify that you have sufficient privileges to remove system services. + Service '[2]' ([3]) could not be installed. Verify that you have sufficient privileges to install system services. + Could not update environment variable '[2]'. Verify that you have sufficient privileges to modify environment variables. + You do not have sufficient privileges to complete this installation for all users of the machine. Log on as administrator and then retry this installation. + Could not set file security for file '[3]'. Error: [2]. Verify that you have sufficient privileges to modify the security permissions for this file. + Component Services (COM+ 1.0) are not installed on this computer. This installation requires Component Services in order to complete successfully. Component Services are available on Windows 2000. + Error registering COM+ Application. Contact your support personnel for more information. + Error unregistering COM+ Application. Contact your support personnel for more information. + The description for service '[2]' ([3]) could not be changed. + The Windows Installer service cannot update the system file [2] because the file is protected by Windows. You may need to update your operating system for this program to work correctly. {{Package version: [3], OS Protected version: [4]}} + The Windows Installer service cannot update the protected Windows file [2]. {{Package version: [3], OS Protected version: [4], SFP Error: [5]}} + The Windows Installer service cannot update one or more protected Windows files. {{SFP Error: [2]. List of protected files:\r\n[3]}} + User installations are disabled via policy on the machine. + An error occured during the installation of assembly component [2]. HRESULT: [3]. {{assembly interface: [4], function: [5], assembly name: [6]}} + + TARGETDIR="" + + + + + + + + + + + + + + + TARGETDIR="" + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + @@@@@]]> + + + + + + + + + + + TARGETDIR="" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TARGETDIR="" + + + + + + + LIBUSBINSTALL=1 + + + \ No newline at end of file From 7627947ba6b875d7b5421863da94773105856c02 Mon Sep 17 00:00:00 2001 From: Emilien Kia Date: Tue, 4 Mar 2014 11:19:02 +0100 Subject: [PATCH 212/218] Use only NOTIFY_SYSLOG as default notify flag in upsmon for Windows. Define a NOTIFY_DEFAULT flag. Set it accordingly to platform. Use it to initialize upsmon. --- clients/upsmon.h | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/clients/upsmon.h b/clients/upsmon.h index 10208384aa..5cb70b8401 100644 --- a/clients/upsmon.h +++ b/clients/upsmon.h @@ -88,8 +88,15 @@ typedef struct { #define NOTIFY_WALL (1 << 2) /* send the msg to all users */ #define NOTIFY_EXEC (1 << 3) /* send the msg to NOTIFYCMD script */ -/* flags are set to NOTIFY_SYSLOG | NOTIFY_WALL at program init */ -/* the user can override with NOTIFYFLAGS in the upsmon.conf */ +/* flags are set to NOTIFY_SYSLOG | NOTIFY_WALL at program init */ +/* except under Windows where they are set to NOTIFY_SYSLOG only */ +/* the user can override with NOTIFYFLAGS in the upsmon.conf */ + +#ifdef WIN32 +#define NOTIFY_DEFAULT NOTIFY_SYSLOG +#else +#define NOTIFY_DEFAULT (NOTIFY_SYSLOG | NOTIFY_WALL) +#endif struct { int type; @@ -99,16 +106,16 @@ struct { int flags; } notifylist[] = { - { NOTIFY_ONLINE, "ONLINE", NULL, "UPS %s on line power", NOTIFY_SYSLOG | NOTIFY_WALL }, - { NOTIFY_ONBATT, "ONBATT", NULL, "UPS %s on battery", NOTIFY_SYSLOG | NOTIFY_WALL }, - { NOTIFY_LOWBATT, "LOWBATT", NULL, "UPS %s battery is low", NOTIFY_SYSLOG | NOTIFY_WALL }, - { NOTIFY_FSD, "FSD", NULL, "UPS %s: forced shutdown in progress", NOTIFY_SYSLOG | NOTIFY_WALL }, - { NOTIFY_COMMOK, "COMMOK", NULL, "Communications with UPS %s established", NOTIFY_SYSLOG | NOTIFY_WALL }, - { NOTIFY_COMMBAD, "COMMBAD", NULL, "Communications with UPS %s lost", NOTIFY_SYSLOG | NOTIFY_WALL }, - { NOTIFY_SHUTDOWN, "SHUTDOWN", NULL, "Auto logout and shutdown proceeding", NOTIFY_SYSLOG | NOTIFY_WALL }, - { NOTIFY_REPLBATT, "REPLBATT", NULL, "UPS %s battery needs to be replaced", NOTIFY_SYSLOG | NOTIFY_WALL }, - { NOTIFY_NOCOMM, "NOCOMM", NULL, "UPS %s is unavailable", NOTIFY_SYSLOG | NOTIFY_WALL }, - { NOTIFY_NOPARENT, "NOPARENT", NULL, "upsmon parent process died - shutdown impossible", NOTIFY_SYSLOG | NOTIFY_WALL }, + { NOTIFY_ONLINE, "ONLINE", NULL, "UPS %s on line power", NOTIFY_DEFAULT }, + { NOTIFY_ONBATT, "ONBATT", NULL, "UPS %s on battery", NOTIFY_DEFAULT }, + { NOTIFY_LOWBATT, "LOWBATT", NULL, "UPS %s battery is low", NOTIFY_DEFAULT }, + { NOTIFY_FSD, "FSD", NULL, "UPS %s: forced shutdown in progress", NOTIFY_DEFAULT }, + { NOTIFY_COMMOK, "COMMOK", NULL, "Communications with UPS %s established", NOTIFY_DEFAULT }, + { NOTIFY_COMMBAD, "COMMBAD", NULL, "Communications with UPS %s lost", NOTIFY_DEFAULT }, + { NOTIFY_SHUTDOWN, "SHUTDOWN", NULL, "Auto logout and shutdown proceeding", NOTIFY_DEFAULT }, + { NOTIFY_REPLBATT, "REPLBATT", NULL, "UPS %s battery needs to be replaced", NOTIFY_DEFAULT }, + { NOTIFY_NOCOMM, "NOCOMM", NULL, "UPS %s is unavailable", NOTIFY_DEFAULT }, + { NOTIFY_NOPARENT, "NOPARENT", NULL, "upsmon parent process died - shutdown impossible", NOTIFY_DEFAULT }, { 0, NULL, NULL, NULL, 0 } }; From f8dd8f76824ef5f646164f82f12893aaddabc1f0 Mon Sep 17 00:00:00 2001 From: Emilien Kia Date: Tue, 4 Mar 2014 11:22:24 +0100 Subject: [PATCH 213/218] Update upsmon config to note that Windows only writes to syslog on Windows by default. --- conf/upsmon.conf.sample.in | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/conf/upsmon.conf.sample.in b/conf/upsmon.conf.sample.in index 98b3a92e01..d2133c0525 100644 --- a/conf/upsmon.conf.sample.in +++ b/conf/upsmon.conf.sample.in @@ -245,7 +245,9 @@ POWERDOWNFLAG @CONFPATH@/killpower # NOTIFYFLAG - change behavior of upsmon when NOTIFY events occur # # By default, upsmon sends walls (global messages to all logged in users) -# and writes to the syslog when things happen. You can change this. +# and writes to the syslog when things happen. +# Except for Windows where upsmon only writes to the syslog by default. +# You can change this. # # NOTIFYFLAG [+][+] ... # From 05a5111df5697d3b877cb8d3525accf44e8015a8 Mon Sep 17 00:00:00 2001 From: Emilien Kia Date: Tue, 4 Mar 2014 11:28:37 +0100 Subject: [PATCH 214/218] Add upsmon default flag for Windows notice in documentation. --- docs/man/upsmon.conf.txt | 5 +++-- docs/man/upsmon.txt | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/man/upsmon.conf.txt b/docs/man/upsmon.conf.txt index 6117d91d57..caaaf79f5a 100644 --- a/docs/man/upsmon.conf.txt +++ b/docs/man/upsmon.conf.txt @@ -216,8 +216,9 @@ NOCOMM;; A UPS is unavailable (can't be contacted for monitoring) *NOTIFYFLAG* 'type' 'flag'[\+'flag'][+'flag']...:: By default, upsmon sends walls global messages to all logged in users) -via /bin/wall and writes to the syslog when things happen. You can -change this. +via /bin/wall and writes to the syslog when things happen. +Except for Windows where upsmon only writes to the syslog by default. +You can change this. + Examples: + diff --git a/docs/man/upsmon.txt b/docs/man/upsmon.txt index 077144dea0..ba6fdfc9ad 100644 --- a/docs/man/upsmon.txt +++ b/docs/man/upsmon.txt @@ -169,8 +169,9 @@ NOTIFY FLAGS ------------ By default, all notify events (see above) generate a global message -(wall) to all users, plus they are logged via the syslog. You can change -this with the NOTIFYFLAG directive in the configuration file: +(wall) to all users, plus they are logged via the syslog. +Except for Windows where upsmon only writes to the syslog by default. +You can change this with the NOTIFYFLAG directive in the configuration file: +NOTIFYFLAG+ 'notifytype' 'flags' From 3bd5557b764517430670f831f30fdf48d18971e3 Mon Sep 17 00:00:00 2001 From: Emilien Kia Date: Tue, 4 Mar 2014 13:25:39 +0100 Subject: [PATCH 215/218] Add Windows registry entry for NUT installation path. --- scripts/Windows/Installer/NUT-Installer.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index 04c21f89ab..fb5405d4d8 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1803,6 +1803,9 @@ Public License instead of this License. + + + From 72f380c74f998b98c9c7c08a74d25b3e3109f241 Mon Sep 17 00:00:00 2001 From: Emilien Kia Date: Tue, 4 Mar 2014 13:33:31 +0100 Subject: [PATCH 216/218] Update Windows release version in doc. --- docs/download.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/download.txt b/docs/download.txt index cc1eaf5a97..068011128c 100644 --- a/docs/download.txt +++ b/docs/download.txt @@ -128,7 +128,7 @@ link:http://pdb.finkproject.org/pdb/package.php/nut[Fink], link:http://trac.macports.org/browser/trunk/dports/sysutils/nut/Portfile[MacPorts] - Windows (complete port, Beta): -link:http://www.networkupstools.org/package/windows/NUT-Installer-2.6.5-3.msi[Windows MSI installer 2.6.5-3] +link:http://www.networkupstools.org/package/windows/NUT-Installer-2.6.5-6.msi[Windows MSI installer 2.6.5-6] Java packages From 6d53cfe37c9c2c5779ac5efd3dc5428586d67961 Mon Sep 17 00:00:00 2001 From: Emilien Kia Date: Wed, 5 Mar 2014 15:07:31 +0100 Subject: [PATCH 217/218] Modify version in Windows installer description file. --- scripts/Windows/Installer/NUT-Installer.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/Windows/Installer/NUT-Installer.xml b/scripts/Windows/Installer/NUT-Installer.xml index fb5405d4d8..dd863c44ef 100644 --- a/scripts/Windows/Installer/NUT-Installer.xml +++ b/scripts/Windows/Installer/NUT-Installer.xml @@ -1,6 +1,6 @@ - + From 290ce6dc84fd5cc7a66fc64d366b789e8ae01c0f Mon Sep 17 00:00:00 2001 From: Emilien Kia Date: Wed, 5 Mar 2014 15:08:02 +0100 Subject: [PATCH 218/218] Modify version in configuration descriptor. --- configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.in b/configure.in index c498e79bfb..74b46566ef 100644 --- a/configure.in +++ b/configure.in @@ -3,7 +3,7 @@ dnl | Network UPS Tools: configure.in | dnl +------------------------------------------------------------------+ dnl NUT version number is defined here, with a Git suffix in include/nut_version.h -AC_INIT(nut, 2.7.1-pre1) +AC_INIT(nut, 2.6.5-5) AC_CONFIG_SRCDIR(server/upsd.c) AC_CONFIG_MACRO_DIR([m4]) echo "Network UPS Tools version ${PACKAGE_VERSION}"