|
@@ -1,540 +0,0 @@
|
|
|
-$Id$
|
|
|
|
|
-
|
|
|
|
|
- cjb.net support by <tg@freewrt.org>
|
|
|
|
|
-
|
|
|
|
|
---- ez-ipupdate-3.0.11b8.orig/ez-ipupdate.c Mon Mar 11 23:31:25 2002
|
|
|
|
|
-+++ ez-ipupdate-3.0.11b8/ez-ipupdate.c Tue Jul 31 14:05:00 2007
|
|
|
|
|
-@@ -87,6 +87,10 @@
|
|
|
|
|
- #define JUSTL_REQUEST "/bin/controlpanel/dyndns/jlc.pl"
|
|
|
|
|
- #define JUSTL_VERSION "2.0"
|
|
|
|
|
-
|
|
|
|
|
-+#define CJB_DEFAULT_SERVER "www.cjb.net"
|
|
|
|
|
-+#define CJB_DEFAULT_PORT "80"
|
|
|
|
|
-+#define CJB_REQUEST "/cgi-bin/dynip.cgi"
|
|
|
|
|
-+
|
|
|
|
|
- #define DYNS_DEFAULT_SERVER "www.dyns.cx"
|
|
|
|
|
- #define DYNS_DEFAULT_PORT "80"
|
|
|
|
|
- #define DYNS_REQUEST "/postscript.php"
|
|
|
|
|
-@@ -139,6 +143,9 @@
|
|
|
|
|
- #if HAVE_SIGNAL_H
|
|
|
|
|
- # include <signal.h>
|
|
|
|
|
- #endif
|
|
|
|
|
-+#if HAVE_TIME_H
|
|
|
|
|
-+# include <time.h>
|
|
|
|
|
-+#endif
|
|
|
|
|
- #if HAVE_SYS_TIME_H
|
|
|
|
|
- # include <sys/time.h>
|
|
|
|
|
- #endif
|
|
|
|
|
-@@ -165,7 +172,7 @@
|
|
|
|
|
- #endif
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
--#if __linux__ || __SVR4 || __OpenBSD__ || __FreeBSD__ || __NetBSD__
|
|
|
|
|
-+#if __GLIBC__ || __SVR4 || __OpenBSD__ || __FreeBSD__ || __NetBSD__
|
|
|
|
|
- # define IF_LOOKUP 1
|
|
|
|
|
- # include <sys/ioctl.h>
|
|
|
|
|
- # include <net/if.h>
|
|
|
|
|
-@@ -325,6 +332,10 @@ int JUSTL_update_entry(void);
|
|
|
|
|
- int JUSTL_check_info(void);
|
|
|
|
|
- static char *JUSTL_fields_used[] = { "server", "user", "host", NULL };
|
|
|
|
|
-
|
|
|
|
|
-+int CJB_update_entry(void);
|
|
|
|
|
-+int CJB_check_info(void);
|
|
|
|
|
-+static char *CJB_fields_used[] = { "server", "user", NULL };
|
|
|
|
|
-+
|
|
|
|
|
- int DYNS_update_entry(void);
|
|
|
|
|
- int DYNS_check_info(void);
|
|
|
|
|
- static char *DYNS_fields_used[] = { "server", "user", "host", NULL };
|
|
|
|
|
-@@ -474,6 +485,16 @@ struct service_t services[] = {
|
|
|
|
|
- JUSTL_DEFAULT_PORT,
|
|
|
|
|
- JUSTL_REQUEST
|
|
|
|
|
- },
|
|
|
|
|
-+ { "cjb.net",
|
|
|
|
|
-+ { "cjb", 0, 0, },
|
|
|
|
|
-+ NULL,
|
|
|
|
|
-+ CJB_update_entry,
|
|
|
|
|
-+ CJB_check_info,
|
|
|
|
|
-+ CJB_fields_used,
|
|
|
|
|
-+ CJB_DEFAULT_SERVER,
|
|
|
|
|
-+ CJB_DEFAULT_PORT,
|
|
|
|
|
-+ CJB_REQUEST
|
|
|
|
|
-+ },
|
|
|
|
|
- { "dyns",
|
|
|
|
|
- { "dyns", 0, 0, },
|
|
|
|
|
- NULL,
|
|
|
|
|
-@@ -640,7 +661,7 @@ void print_usage( void )
|
|
|
|
|
- fprintf(stdout, " -q, --quiet \t\t\tbe quiet\n");
|
|
|
|
|
- fprintf(stdout, " -r, --retrys <num>\t\tnumber of trys (default: 1)\n");
|
|
|
|
|
- fprintf(stdout, " -R, --run-as-user <user>\tchange to <user> for running, be ware\n\t\t\t\tthat this can cause problems with handeling\n\t\t\t\tSIGHUP properly if that user can't read the\n\t\t\t\tconfig file. also it can't write it's pid file \n\t\t\t\tto a root directory\n");
|
|
|
|
|
-- fprintf(stdout, " -Q, --run-as-euser <user>\tchange to effective <user> for running, \n\t\t\t\tthis is NOT secure but it does solve the \n\t\t\t\tproblems with run-as-user and config files and \n\t\t\t\tpid files.\n");
|
|
|
|
|
-+ fprintf(stdout, " -Q, --run-as-euser <user>\tchange to effective <user> for running, \n\t\t\t\tthis is NOT secure but it does solve the \n\t\t\t\tproblems with run-as-user and config files and \n\t\t\t\tpid files\n");
|
|
|
|
|
- fprintf(stdout, " -s, --server <server[:port]>\tthe server to connect to\n");
|
|
|
|
|
- fprintf(stdout, " -S, --service-type <server>\tthe type of service that you are using\n");
|
|
|
|
|
- width = fprintf(stdout, "\t\t\t\ttry one of: ") + 4*7;
|
|
|
|
|
-@@ -682,7 +703,7 @@ void print_credits( void )
|
|
|
|
|
-
|
|
|
|
|
- void print_signalhelp( void )
|
|
|
|
|
- {
|
|
|
|
|
-- fprintf(stdout, "\nsignals are only really used when in daemon mode.\n\n");
|
|
|
|
|
-+ fprintf(stdout, "\nsignals are only really used when in daemon mode\n\n");
|
|
|
|
|
- fprintf(stdout, "signals: \n");
|
|
|
|
|
- fprintf(stdout, " HUP\t\tcauses it to re-read its config file\n");
|
|
|
|
|
- fprintf(stdout, " TERM\t\twake up and possibly perform an update\n");
|
|
|
|
|
-@@ -693,7 +714,7 @@ void print_signalhelp( void )
|
|
|
|
|
- #if HAVE_SIGNAL_H
|
|
|
|
|
- RETSIGTYPE sigint_handler(int sig)
|
|
|
|
|
- {
|
|
|
|
|
-- char message[] = "interupted.\n";
|
|
|
|
|
-+ char message[] = "interrupted\n";
|
|
|
|
|
- close(client_sockfd);
|
|
|
|
|
- write(2, message, sizeof(message)-1);
|
|
|
|
|
-
|
|
|
|
|
-@@ -704,6 +725,10 @@ RETSIGTYPE sigint_handler(int sig)
|
|
|
|
|
- }
|
|
|
|
|
- #endif
|
|
|
|
|
-
|
|
|
|
|
-+#if HAVE_SYSLOG_H
|
|
|
|
|
-+ closelog();
|
|
|
|
|
-+#endif
|
|
|
|
|
-+
|
|
|
|
|
- exit(1);
|
|
|
|
|
- }
|
|
|
|
|
- RETSIGTYPE generic_sig_handler(int sig)
|
|
|
|
|
-@@ -798,7 +823,7 @@ void show_message(char *fmt, ...)
|
|
|
|
|
- sprintf(buf, "message incomplete because your OS sucks: %s\n", fmt);
|
|
|
|
|
- #endif
|
|
|
|
|
-
|
|
|
|
|
-- syslog(LOG_NOTICE, buf);
|
|
|
|
|
-+ syslog(LOG_NOTICE, "%s", buf);
|
|
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
-@@ -1439,7 +1464,7 @@ int do_connect(int *sock, char *host, ch
|
|
|
|
|
- if(!(options & OPT_QUIET))
|
|
|
|
|
- {
|
|
|
|
|
- fprintf(stderr,
|
|
|
|
|
-- "connected to %s (%s) on port %d.\n",
|
|
|
|
|
-+ "connected to %s (%s) on port %d\n",
|
|
|
|
|
- host,
|
|
|
|
|
- inet_ntoa(address.sin_addr),
|
|
|
|
|
- ntohs(address.sin_port));
|
|
|
|
|
-@@ -1683,7 +1708,7 @@ static int ODS_read_response(char *buf,
|
|
|
|
|
- close(client_sockfd);
|
|
|
|
|
- return(-1);
|
|
|
|
|
- }
|
|
|
|
|
-- if(strstr(buf, "\r\n") > 0)
|
|
|
|
|
-+ if(strstr(buf, "\n") != NULL)
|
|
|
|
|
- {
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
-@@ -1702,8 +1727,8 @@ int NULL_check_info(void)
|
|
|
|
|
-
|
|
|
|
|
- if(options & OPT_DAEMON)
|
|
|
|
|
- {
|
|
|
|
|
-- fprintf(stderr, "no compile time default service was set therefor you must "
|
|
|
|
|
-- "specify a service type.\n");
|
|
|
|
|
-+ fprintf(stderr, "no compile time default service was set, you must "
|
|
|
|
|
-+ "specify a service type\n");
|
|
|
|
|
-
|
|
|
|
|
- return(-1);
|
|
|
|
|
- }
|
|
|
|
|
-@@ -2039,7 +2064,7 @@ int DYNDNS_update_entry(void)
|
|
|
|
|
- }
|
|
|
|
|
- else if(strstr(buf, "\nnumhost") != NULL)
|
|
|
|
|
- {
|
|
|
|
|
-- show_message("Too many or too few hosts found\n");
|
|
|
|
|
-+ show_message("too many or too few hosts found\n");
|
|
|
|
|
- retval = UPDATERES_SHUTDOWN;
|
|
|
|
|
- }
|
|
|
|
|
- else if(strstr(buf, "\ndnserr") != NULL)
|
|
|
|
|
-@@ -2051,17 +2076,17 @@ int DYNDNS_update_entry(void)
|
|
|
|
|
- }
|
|
|
|
|
- else if(strstr(buf, "\n911") != NULL)
|
|
|
|
|
- {
|
|
|
|
|
-- show_message("Ahhhh! call 911!\n");
|
|
|
|
|
-+ show_message("ahhhh! call 911!\n");
|
|
|
|
|
- retval = UPDATERES_SHUTDOWN;
|
|
|
|
|
- }
|
|
|
|
|
- else if(strstr(buf, "\n999") != NULL)
|
|
|
|
|
- {
|
|
|
|
|
-- show_message("Ahhhh! call 999!\n");
|
|
|
|
|
-+ show_message("ahhhh! call 999!\n");
|
|
|
|
|
- retval = UPDATERES_SHUTDOWN;
|
|
|
|
|
- }
|
|
|
|
|
- else if(strstr(buf, "\n!donator") != NULL)
|
|
|
|
|
- {
|
|
|
|
|
-- show_message("a feature requested is only available to donators, please donate.\n", host);
|
|
|
|
|
-+ show_message("a feature requested is only available to donators, please donate\n", host);
|
|
|
|
|
- retval = UPDATERES_OK;
|
|
|
|
|
- }
|
|
|
|
|
- // this one should be last as it is a stupid string to signify waits
|
|
|
|
|
-@@ -2095,9 +2120,9 @@ int DYNDNS_update_entry(void)
|
|
|
|
|
- sprintf(reason, "problem parsing reason for wait response");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-- show_message("Wait response received, waiting for %s before next update.\n",
|
|
|
|
|
-+ show_message("wait response received, waiting for %s before next update\n",
|
|
|
|
|
- format_time(howlong));
|
|
|
|
|
-- show_message("Wait response reason: %d\n", N_STR(reason));
|
|
|
|
|
-+ show_message("wait response reason: %d\n", N_STR(reason));
|
|
|
|
|
- sleep(howlong);
|
|
|
|
|
- retval = UPDATERES_ERROR;
|
|
|
|
|
- }
|
|
|
|
|
-@@ -3370,7 +3395,7 @@ int GNUDIP_check_info(void)
|
|
|
|
|
- {
|
|
|
|
|
- if(!(options & OPT_QUIET))
|
|
|
|
|
- {
|
|
|
|
|
-- fprintf(stderr, "warning: for GNUDIP the \"address\" parpameter is only used if set to \"0.0.0.0\" thus making an offline request.\n");
|
|
|
|
|
-+ fprintf(stderr, "warning: for GNUDIP the \"address\" parameter is only used if set to \"0.0.0.0\" thus making an offline request\n");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-@@ -3392,7 +3417,7 @@ int GNUDIP_update_entry(void)
|
|
|
|
|
-
|
|
|
|
|
- // send an offline request if address 0.0.0.0 is used
|
|
|
|
|
- // otherwise, we ignore the address and send an update request
|
|
|
|
|
-- gnudip_request[0] = strcmp(address, "0.0.0.0") == 0 ? '1' : '0';
|
|
|
|
|
-+ gnudip_request[0] = address && strcmp(address, "0.0.0.0") == 0 ? '1' : '0';
|
|
|
|
|
- gnudip_request[1] = '\0';
|
|
|
|
|
-
|
|
|
|
|
- // find domainname
|
|
|
|
|
-@@ -3660,6 +3685,140 @@ int JUSTL_update_entry(void)
|
|
|
|
|
- return(UPDATERES_OK);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-+int CJB_check_info(void)
|
|
|
|
|
-+{
|
|
|
|
|
-+ char buf[BUFSIZ+1];
|
|
|
|
|
-+
|
|
|
|
|
-+ if(interface == NULL && address == NULL)
|
|
|
|
|
-+ {
|
|
|
|
|
-+ if(options & OPT_DAEMON)
|
|
|
|
|
-+ {
|
|
|
|
|
-+ fprintf(stderr, "you must provide either an interface or an address\n");
|
|
|
|
|
-+ return(-1);
|
|
|
|
|
-+ }
|
|
|
|
|
-+ if(interface) { free(interface); }
|
|
|
|
|
-+ printf("interface: ");
|
|
|
|
|
-+ *buf = '\0';
|
|
|
|
|
-+ fgets(buf, BUFSIZ, stdin);
|
|
|
|
|
-+ chomp(buf);
|
|
|
|
|
-+ option_handler(CMD_interface, buf);
|
|
|
|
|
-+ }
|
|
|
|
|
-+
|
|
|
|
|
-+ warn_fields(service->fields_used);
|
|
|
|
|
-+
|
|
|
|
|
-+ return 0;
|
|
|
|
|
-+}
|
|
|
|
|
-+
|
|
|
|
|
-+int CJB_update_entry(void)
|
|
|
|
|
-+{
|
|
|
|
|
-+ char buf[BUFFER_SIZE+1];
|
|
|
|
|
-+ char *bp = buf;
|
|
|
|
|
-+ int bytes;
|
|
|
|
|
-+ int btot;
|
|
|
|
|
-+ int ret;
|
|
|
|
|
-+
|
|
|
|
|
-+ buf[BUFFER_SIZE] = '\0';
|
|
|
|
|
-+
|
|
|
|
|
-+ if(do_connect((int*)&client_sockfd, server, port) != 0)
|
|
|
|
|
-+ {
|
|
|
|
|
-+ if(!(options & OPT_QUIET))
|
|
|
|
|
-+ {
|
|
|
|
|
-+ show_message("error connecting to %s:%s\n", server, port);
|
|
|
|
|
-+ }
|
|
|
|
|
-+ return(UPDATERES_ERROR);
|
|
|
|
|
-+ }
|
|
|
|
|
-+
|
|
|
|
|
-+ snprintf(buf, BUFFER_SIZE, "GET %s?", request);
|
|
|
|
|
-+ output(buf);
|
|
|
|
|
-+ snprintf(buf, BUFFER_SIZE, "%s=%s&", "username", user_name);
|
|
|
|
|
-+ output(buf);
|
|
|
|
|
-+ snprintf(buf, BUFFER_SIZE, "%s=%s", "password", password);
|
|
|
|
|
-+ output(buf);
|
|
|
|
|
-+#if 0
|
|
|
|
|
-+ /* cjb does IP address autodetection */
|
|
|
|
|
-+ snprintf(buf, BUFFER_SIZE, "&%s=%s", "ip", address);
|
|
|
|
|
-+ output(buf);
|
|
|
|
|
-+#endif
|
|
|
|
|
-+ snprintf(buf, BUFFER_SIZE, " HTTP/1.0\015\012");
|
|
|
|
|
-+ output(buf);
|
|
|
|
|
-+ snprintf(buf, BUFFER_SIZE, "User-Agent: %s-%s %s [%s] (%s)\015\012",
|
|
|
|
|
-+ "ez-update", VERSION, OS, (options & OPT_DAEMON) ? "daemon" : "", "by OpenADK");
|
|
|
|
|
-+ output(buf);
|
|
|
|
|
-+ snprintf(buf, BUFFER_SIZE, "\015\012");
|
|
|
|
|
-+ output(buf);
|
|
|
|
|
-+
|
|
|
|
|
-+ bp = buf;
|
|
|
|
|
-+ bytes = 0;
|
|
|
|
|
-+ btot = 0;
|
|
|
|
|
-+ while((bytes=read_input(bp, BUFFER_SIZE-btot)) > 0)
|
|
|
|
|
-+ {
|
|
|
|
|
-+ bp += bytes;
|
|
|
|
|
-+ btot += bytes;
|
|
|
|
|
-+ dprintf((stderr, "btot: %d\n", btot));
|
|
|
|
|
-+ }
|
|
|
|
|
-+ close(client_sockfd);
|
|
|
|
|
-+ buf[btot] = '\0';
|
|
|
|
|
-+
|
|
|
|
|
-+ dprintf((stderr, "server output: %s\n", buf));
|
|
|
|
|
-+
|
|
|
|
|
-+ if(sscanf(buf, " HTTP/1.%*c %3d", &ret) != 1)
|
|
|
|
|
-+ {
|
|
|
|
|
-+ ret = -1;
|
|
|
|
|
-+ }
|
|
|
|
|
-+
|
|
|
|
|
-+ switch(ret)
|
|
|
|
|
-+ {
|
|
|
|
|
-+ case -1:
|
|
|
|
|
-+ if(!(options & OPT_QUIET))
|
|
|
|
|
-+ {
|
|
|
|
|
-+ show_message("strange server response, are you connecting to the right server?\n");
|
|
|
|
|
-+ }
|
|
|
|
|
-+ return(UPDATERES_ERROR);
|
|
|
|
|
-+ break;
|
|
|
|
|
-+
|
|
|
|
|
-+ case 200:
|
|
|
|
|
-+ if(strstr(buf, " updated ") != NULL)
|
|
|
|
|
-+ {
|
|
|
|
|
-+ if(!(options & OPT_QUIET))
|
|
|
|
|
-+ {
|
|
|
|
|
-+ printf("request successful\n");
|
|
|
|
|
-+ }
|
|
|
|
|
-+ }
|
|
|
|
|
-+ else
|
|
|
|
|
-+ {
|
|
|
|
|
-+ show_message("error processing request\n");
|
|
|
|
|
-+ if(!(options & OPT_QUIET))
|
|
|
|
|
-+ {
|
|
|
|
|
-+ fprintf(stderr, "server output: %s\n", buf);
|
|
|
|
|
-+ }
|
|
|
|
|
-+ return(UPDATERES_ERROR);
|
|
|
|
|
-+ }
|
|
|
|
|
-+ break;
|
|
|
|
|
-+
|
|
|
|
|
-+ case 401:
|
|
|
|
|
-+ if(!(options & OPT_QUIET))
|
|
|
|
|
-+ {
|
|
|
|
|
-+ show_message("authentication failure\n");
|
|
|
|
|
-+ }
|
|
|
|
|
-+ return(UPDATERES_SHUTDOWN);
|
|
|
|
|
-+ break;
|
|
|
|
|
-+
|
|
|
|
|
-+ default:
|
|
|
|
|
-+ if(!(options & OPT_QUIET))
|
|
|
|
|
-+ {
|
|
|
|
|
-+ // reuse the auth buffer
|
|
|
|
|
-+ *auth = '\0';
|
|
|
|
|
-+ sscanf(buf, " HTTP/1.%*c %*3d %255[^\r\n]", auth);
|
|
|
|
|
-+ show_message("unknown return code: %d\n", ret);
|
|
|
|
|
-+ show_message("server response: %s\n", auth);
|
|
|
|
|
-+ }
|
|
|
|
|
-+ return(UPDATERES_ERROR);
|
|
|
|
|
-+ break;
|
|
|
|
|
-+ }
|
|
|
|
|
-+
|
|
|
|
|
-+ return(UPDATERES_OK);
|
|
|
|
|
-+}
|
|
|
|
|
-+
|
|
|
|
|
- int DYNS_check_info(void)
|
|
|
|
|
- {
|
|
|
|
|
- char buf[BUFSIZ+1];
|
|
|
|
|
-@@ -3943,22 +4102,22 @@ int HN_update_entry(void)
|
|
|
|
|
- break;
|
|
|
|
|
-
|
|
|
|
|
- case 201:
|
|
|
|
|
-- show_message("Last update was less than %d seconds ago.\n", 300);
|
|
|
|
|
-+ show_message("last update was less than %d seconds ago\n", 300);
|
|
|
|
|
- return(UPDATERES_ERROR);
|
|
|
|
|
- break;
|
|
|
|
|
-
|
|
|
|
|
- case 202:
|
|
|
|
|
-- show_message("Server error.\n");
|
|
|
|
|
-+ show_message("server error\n");
|
|
|
|
|
- return(UPDATERES_ERROR);
|
|
|
|
|
- break;
|
|
|
|
|
-
|
|
|
|
|
- case 203:
|
|
|
|
|
-- show_message("Failure because account is frozen (by admin).\n");
|
|
|
|
|
-+ show_message("failure because account is frozen (by admin)\n");
|
|
|
|
|
- return(UPDATERES_SHUTDOWN);
|
|
|
|
|
- break;
|
|
|
|
|
-
|
|
|
|
|
- case 204:
|
|
|
|
|
-- show_message("Failure because account is locked (by user).\n");
|
|
|
|
|
-+ show_message("failure because account is locked (by user)\n");
|
|
|
|
|
- return(UPDATERES_SHUTDOWN);
|
|
|
|
|
- break;
|
|
|
|
|
-
|
|
|
|
|
-@@ -4215,8 +4374,6 @@ int HEIPV6TB_update_entry(void)
|
|
|
|
|
-
|
|
|
|
|
- switch(ret)
|
|
|
|
|
- {
|
|
|
|
|
-- char *p;
|
|
|
|
|
--
|
|
|
|
|
- case -1:
|
|
|
|
|
- if(!(options & OPT_QUIET))
|
|
|
|
|
- {
|
|
|
|
|
-@@ -4349,7 +4506,7 @@ void handle_sig(int sig)
|
|
|
|
|
- case SIGHUP:
|
|
|
|
|
- if(config_file)
|
|
|
|
|
- {
|
|
|
|
|
-- show_message("SIGHUP recieved, re-reading config file\n");
|
|
|
|
|
-+ show_message("SIGHUP received, re-reading config file\n");
|
|
|
|
|
- if(parse_conf_file(config_file, conf_commands) != 0)
|
|
|
|
|
- {
|
|
|
|
|
- show_message("error parsing config file \"%s\"\n", config_file);
|
|
|
|
|
-@@ -4384,6 +4541,7 @@ void handle_sig(int sig)
|
|
|
|
|
-
|
|
|
|
|
- int main(int argc, char **argv)
|
|
|
|
|
- {
|
|
|
|
|
-+ char *tmp;
|
|
|
|
|
- int ifresolve_warned = 0;
|
|
|
|
|
- int i;
|
|
|
|
|
- int retval = 1;
|
|
|
|
|
-@@ -4395,9 +4553,10 @@ int main(int argc, char **argv)
|
|
|
|
|
- mcheck(NULL);
|
|
|
|
|
- #endif
|
|
|
|
|
-
|
|
|
|
|
-- dprintf((stderr, "staring...\n"));
|
|
|
|
|
-+ dprintf((stderr, "starting...\n"));
|
|
|
|
|
-
|
|
|
|
|
-- program_name = argv[0];
|
|
|
|
|
-+ tmp = strrchr(argv[0], '/');
|
|
|
|
|
-+ program_name = tmp ? tmp + 1 : argv[0];
|
|
|
|
|
- options = 0;
|
|
|
|
|
- *user = '\0';
|
|
|
|
|
- timeout.tv_sec = DEFAULT_TIMEOUT;
|
|
|
|
|
-@@ -4417,7 +4576,7 @@ int main(int argc, char **argv)
|
|
|
|
|
-
|
|
|
|
|
- if(!(options & OPT_QUIET) && !(options & OPT_DAEMON))
|
|
|
|
|
- {
|
|
|
|
|
-- fprintf(stderr, "ez-ipupdate Version %s\nCopyright (C) 1998-2001 Angus Mackay.\n", VERSION);
|
|
|
|
|
-+ fprintf(stderr, "%s Version %s\nCopyright (C) 1998-2001 Angus Mackay\n", program_name, VERSION);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- dprintf((stderr, "options: 0x%04X\n", options));
|
|
|
|
|
-@@ -4434,7 +4593,7 @@ int main(int argc, char **argv)
|
|
|
|
|
- {
|
|
|
|
|
- if(service->check_info() != 0)
|
|
|
|
|
- {
|
|
|
|
|
-- fprintf(stderr, "invalid data to perform requested action.\n");
|
|
|
|
|
-+ fprintf(stderr, "invalid data to perform requested action\n");
|
|
|
|
|
- exit(1);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-@@ -4456,13 +4615,13 @@ int main(int argc, char **argv)
|
|
|
|
|
- dprintf((stderr, "user_name: %s\n", user_name));
|
|
|
|
|
- dprintf((stderr, "password: %s\n", password));
|
|
|
|
|
- }
|
|
|
|
|
-- if(*user_name == '\0')
|
|
|
|
|
-+ if(*user_name == '\0' && !(options & OPT_DAEMON))
|
|
|
|
|
- {
|
|
|
|
|
- printf("user name: ");
|
|
|
|
|
- fgets(user_name, sizeof(user_name), stdin);
|
|
|
|
|
- chomp(user_name);
|
|
|
|
|
- }
|
|
|
|
|
-- if(*password == '\0')
|
|
|
|
|
-+ if(*password == '\0' && !(options & OPT_DAEMON))
|
|
|
|
|
- {
|
|
|
|
|
- strncpy(password, getpass("password: "), sizeof(password));
|
|
|
|
|
- }
|
|
|
|
|
-@@ -4480,7 +4639,7 @@ int main(int argc, char **argv)
|
|
|
|
|
-
|
|
|
|
|
- if(service->check_info() != 0)
|
|
|
|
|
- {
|
|
|
|
|
-- fprintf(stderr, "invalid data to perform requested action.\n");
|
|
|
|
|
-+ fprintf(stderr, "invalid data to perform requested action\n");
|
|
|
|
|
- exit(1);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-@@ -4503,7 +4662,7 @@ int main(int argc, char **argv)
|
|
|
|
|
-
|
|
|
|
|
- if(interface == NULL)
|
|
|
|
|
- {
|
|
|
|
|
-- fprintf(stderr, "invalid data to perform requested action.\n");
|
|
|
|
|
-+ fprintf(stderr, "invalid data to perform requested action\n");
|
|
|
|
|
- fprintf(stderr, "you must provide an interface for daemon mode");
|
|
|
|
|
- exit(1);
|
|
|
|
|
- }
|
|
|
|
|
-@@ -4519,23 +4678,25 @@ int main(int argc, char **argv)
|
|
|
|
|
- if(fork() > 0) { exit(0); } /* parent */
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-+# if HAVE_SYSLOG_H
|
|
|
|
|
-+ openlog(program_name, LOG_PID, LOG_DAEMON );
|
|
|
|
|
-+ //options |= OPT_QUIET;
|
|
|
|
|
-+# endif
|
|
|
|
|
-+ show_message("version %s, interface %s, host %s, server %s, service %s\n",
|
|
|
|
|
-+ VERSION, N_STR(interface), N_STR(host), server, service->title);
|
|
|
|
|
-+
|
|
|
|
|
- #if HAVE_GETPID
|
|
|
|
|
- if(pid_file && pid_file_create(pid_file) != 0)
|
|
|
|
|
- {
|
|
|
|
|
-- fprintf(stderr, "exiting...\n");
|
|
|
|
|
-+ show_message("could not create pid file %s (%s), exiting\n",
|
|
|
|
|
-+ pid_file, strerror(errno));
|
|
|
|
|
-+#if HAVE_SYSLOG_H
|
|
|
|
|
-+ closelog();
|
|
|
|
|
-+#endif
|
|
|
|
|
- exit(1);
|
|
|
|
|
- }
|
|
|
|
|
- #endif
|
|
|
|
|
-
|
|
|
|
|
--# if HAVE_SYSLOG_H
|
|
|
|
|
-- openlog(program_name, LOG_PID, LOG_USER );
|
|
|
|
|
-- options |= OPT_QUIET;
|
|
|
|
|
--# endif
|
|
|
|
|
-- show_message("ez-ipupdate Version %s, Copyright (C) 1998-2001 Angus Mackay.\n",
|
|
|
|
|
-- VERSION);
|
|
|
|
|
-- show_message("%s started for interface %s host %s using server %s and service %s\n",
|
|
|
|
|
-- program_name, N_STR(interface), N_STR(host), server, service->title);
|
|
|
|
|
--
|
|
|
|
|
- memset(&sin, 0, sizeof(sin));
|
|
|
|
|
-
|
|
|
|
|
- if(cache_file)
|
|
|
|
|
-@@ -4560,7 +4721,7 @@ int main(int argc, char **argv)
|
|
|
|
|
- strftime(timebuf, sizeof(timebuf), "%Y/%m/%d %H:%M", ts);
|
|
|
|
|
- show_message("got last update %s on %s from cache file\n", ipstr, timebuf);
|
|
|
|
|
- }
|
|
|
|
|
-- else
|
|
|
|
|
-+ else if(ipstr||ipdate)
|
|
|
|
|
- {
|
|
|
|
|
- show_message("malformed cache file: %s\n", cache_file);
|
|
|
|
|
- }
|
|
|
|
|
-@@ -4647,7 +4808,7 @@ int main(int argc, char **argv)
|
|
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
-- show_message("failure to update %s->%s (%s)\n",
|
|
|
|
|
-+ show_message("failed to update %s->%s (%s)\n",
|
|
|
|
|
- interface, inet_ntoa(sin.sin_addr), N_STR(host));
|
|
|
|
|
- memset(&sin, 0, sizeof(sin));
|
|
|
|
|
-
|
|
|
|
|
-@@ -4671,7 +4832,7 @@ int main(int argc, char **argv)
|
|
|
|
|
- dprintf((stderr, "updateres: %d\n", updateres));
|
|
|
|
|
- if(updateres == UPDATERES_SHUTDOWN)
|
|
|
|
|
- {
|
|
|
|
|
-- show_message("shuting down updater for %s due to fatal error\n",
|
|
|
|
|
-+ show_message("shutting down updater for %s due to fatal error\n",
|
|
|
|
|
- N_STR(host));
|
|
|
|
|
-
|
|
|
|
|
- if(notify_email && *notify_email != '\0')
|
|
|
|
|
-@@ -4711,7 +4872,7 @@ int main(int argc, char **argv)
|
|
|
|
|
- #endif
|
|
|
|
|
-
|
|
|
|
|
- #else
|
|
|
|
|
-- fprintf(stderr, "sorry, this mode is only available on platforms that the ");
|
|
|
|
|
-+ fprintf(stderr, "sorry, this mode is only available on platforms where the ");
|
|
|
|
|
- fprintf(stderr, "IP address \ncan be determined. feel free to hack the code");
|
|
|
|
|
- fprintf(stderr, " though.\n");
|
|
|
|
|
- exit(1);
|
|
|
|
|
-@@ -4799,7 +4960,7 @@ int main(int argc, char **argv)
|
|
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
-- show_message("could not resolve ip address for %s.\n", interface);
|
|
|
|
|
-+ show_message("could not resolve ip address for %s\n", interface);
|
|
|
|
|
- exit(1);
|
|
|
|
|
- }
|
|
|
|
|
- close(sock);
|
|
|