acc9d8b5cf
This is the No-IP.com Dynamic DNS update client.
74 lines
2.4 KiB
Plaintext
74 lines
2.4 KiB
Plaintext
$OpenBSD: patch-noip_c,v 1.1.1.1 2002/03/08 16:56:10 wilfried Exp $
|
|
--- noip.c.orig Thu Oct 11 01:48:12 2001
|
|
+++ noip.c Fri Mar 8 17:40:50 2002
|
|
@@ -94,9 +94,8 @@
|
|
#define CLIENT_IP_PORT 8245
|
|
#define OURBUFLEN 8192
|
|
#define IPLEN 16
|
|
-#define SAVEDIPFILE "/tmp/no-ip_save"
|
|
-#define CONFIG_FILENAME "/usr/local/lib/no-ip.conf"
|
|
-#define CONFIG_FILENAME_ETC "/usr/local/etc/no-ip.conf"
|
|
+#define SAVEDIPFILE "/var/db/no-ip_save"
|
|
+#define CONFIG_FILENAME SYSCONFDIR "/no-ip.conf"
|
|
#define CONFIGNUM 10
|
|
#define CONFSTRLEN 1024
|
|
#define NUMBER 2
|
|
@@ -224,8 +223,8 @@ void Usage()
|
|
#ifdef DEBUG
|
|
fprintf(stderr, " -d increase debug verbosity\n");
|
|
#endif
|
|
- fprintf(stderr, "\n config file is either\n");
|
|
- fprintf(stderr, " %s or %s\n", CONFIG_FILENAME,CONFIG_FILENAME_ETC);
|
|
+ fprintf(stderr, "\n config file is\n");
|
|
+ fprintf(stderr, " %s\n", CONFIG_FILENAME);
|
|
fprintf(stderr, " and must contain %d required entries", CONFIGNUM);
|
|
fprintf(stderr, " in the form of KEYWORD = value\n");
|
|
fprintf(stderr, " A complete description of the config file is in the README file.\n");
|
|
@@ -254,12 +253,8 @@ int main(int argc, char *argv[])
|
|
program = argv[0];
|
|
openlog(program, LOG_PID, LOG_DAEMON);
|
|
process_options(argc, argv);
|
|
- if (config_filename == NULL) {
|
|
- if(!access(CONFIG_FILENAME, R_OK))
|
|
- config_filename = CONFIG_FILENAME;
|
|
- else
|
|
- config_filename = CONFIG_FILENAME_ETC;
|
|
- }
|
|
+ if (config_filename == NULL)
|
|
+ config_filename = CONFIG_FILENAME;
|
|
if (handle_config_error(parse_config()) != SUCCESS)
|
|
return -1;
|
|
if (*groupname)
|
|
@@ -375,7 +370,7 @@ void save_IP(int sig)
|
|
void getip(char *p)
|
|
{
|
|
int fd;
|
|
- int *x;
|
|
+ struct sockaddr_in *sin;
|
|
struct ifreq ifr;
|
|
struct in_addr z;
|
|
|
|
@@ -402,8 +397,8 @@ void getip(char *p)
|
|
return;
|
|
}
|
|
close(fd);
|
|
- x = (int *)&ifr.ifr_addr; // seems to be off by 2 bytes
|
|
- z.s_addr = x[1];
|
|
+ sin = (struct sockaddr_in *)&ifr.ifr_addr;
|
|
+ z = sin->sin_addr;
|
|
strcpy(p, inet_ntoa(z));
|
|
sprintf(suppliedIP, "&ip=%s", p); // force sending local address
|
|
#ifdef DEBUG
|
|
@@ -439,9 +434,9 @@ int run_as_background()
|
|
fclose(fildes);
|
|
}
|
|
if (fp != NULL)
|
|
- strncpy(Last_IP_Addr, buffer, IPLEN);
|
|
+ strlcpy(Last_IP_Addr, buffer, IPLEN);
|
|
else
|
|
- memset(Last_IP_Addr, 1, IPLEN); // bogus address at start
|
|
+ memset(Last_IP_Addr, 0, IPLEN); // bogus address at start
|
|
unlink(SAVEDIPFILE);
|
|
while (background) {
|
|
delay = MAX(60, interval * 60);
|