Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 75368 Details for
Bug 116439
ez-ipupdate dnsexit support
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
ez-ipupdate-3.0.11b8-dnsexit-support.diff
ez-ipupdate-3.0.11b8-dnsexit-support.diff (text/plain), 6.71 KB, created by
Pedro Algarvio
on 2005-12-22 19:00:31 UTC
(
hide
)
Description:
ez-ipupdate-3.0.11b8-dnsexit-support.diff
Filename:
MIME Type:
Creator:
Pedro Algarvio
Created:
2005-12-22 19:00:31 UTC
Size:
6.71 KB
patch
obsolete
>diff -Naur ez-ipupdate-3.0.11b8-patched/example-dnsexit.conf ez-ipupdate-3.0.11b8-dnsexit/example-dnsexit.conf >--- ez-ipupdate-3.0.11b8-patched/example-dnsexit.conf 1970-01-01 01:00:00.000000000 +0100 >+++ ez-ipupdate-3.0.11b8-dnsexit/example-dnsexit.conf 2005-12-23 01:34:51.000000000 +0000 >@@ -0,0 +1,20 @@ >+#!/usr/sbin/ez-ipupdate -c >+# >+# example config file for ez-ipupdate >+# >+# this file is actually executable! >+# >+ >+service-type=dnsexit >+user=loginname:password >+host=www.yourdomain.com >+interface=eth0 >+ >+# please ensure the user has permission to write this file >+cache-file=/tmp/ez-ipupdate.cache >+ >+run-as-user=ez-ipupd >+# uncomment this once you have everything working how you want and you are >+# ready to have ez-ipupdate running in the background all the time. to stop it >+# you can use "killall -QUIT ez-ipupdate" under linux. >+#daemon >diff -Naur ez-ipupdate-3.0.11b8-patched/ez-ipupdate.c ez-ipupdate-3.0.11b8-dnsexit/ez-ipupdate.c >--- ez-ipupdate-3.0.11b8-patched/ez-ipupdate.c 2005-12-23 01:33:54.000000000 +0000 >+++ ez-ipupdate-3.0.11b8-dnsexit/ez-ipupdate.c 2005-12-23 02:51:19.000000000 +0000 >@@ -103,6 +103,10 @@ > #define HEIPV6TB_DEFAULT_PORT "80" > #define HEIPV6TB_REQUEST "/index.cgi" > >+#define DNSEXIT_DEFAULT_SERVER "www.dnsexit.com" >+#define DNSEXIT_DEFAULT_PORT "80" >+#define DNSEXIT_REQUEST "/RemoteUpdate.sv" >+ > #define DEFAULT_TIMEOUT 120 > #define DEFAULT_UPDATE_PERIOD 120 > #define DEFAULT_RESOLV_PERIOD 30 >@@ -344,6 +348,11 @@ > int HEIPV6TB_check_info(void); > static char *HEIPV6TB_fields_used[] = { "server", "user", NULL }; > >+int DNSEXIT_update_entry(void); >+int DNSEXIT_check_info(void); >+static char *DNSEXIT_fields_used[] = { "server", "user", "address", "wildcard", "mx", "host", NULL }; >+ >+ > struct service_t services[] = { > { "NULL", > { "null", "NULL", 0, }, >@@ -517,6 +526,16 @@ > HEIPV6TB_DEFAULT_PORT, > HEIPV6TB_REQUEST > }, >+ { "dnsexit", >+ { "dnsexit", 0, 0, }, >+ NULL, >+ DNSEXIT_update_entry, >+ DNSEXIT_check_info, >+ DNSEXIT_fields_used, >+ DNSEXIT_DEFAULT_SERVER, >+ DNSEXIT_DEFAULT_PORT, >+ DNSEXIT_REQUEST >+ }, > }; > > static struct service_t *service = NULL; >@@ -4251,6 +4270,195 @@ > return(UPDATERES_OK); > } > >+int DNSEXIT_check_info(void) >+{ >+ char buf[BUFSIZ+1]; >+ >+ if((host == NULL) || (*host == '\0')) >+ { >+ if(options & OPT_DAEMON) >+ { >+ return(-1); >+ } >+ if(host) { free(host); } >+ printf("host: "); >+ *buf = '\0'; >+ fgets(buf, BUFSIZ, stdin); >+ host = strdup(buf); >+ chomp(host); >+ } >+ >+ 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 DNSEXIT_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?action=edit&", request); >+ output(buf); >+ if(address != NULL && *address != '\0') >+ { >+ snprintf(buf, BUFFER_SIZE, "%s=%s&", "myip", address); >+ output(buf); >+ } >+ snprintf(buf, BUFFER_SIZE, "%s=%s&", "wildcard", wildcard ? "ON" : "OFF"); >+ output(buf); >+ snprintf(buf, BUFFER_SIZE, "%s=%s&", "mx", mx); >+ output(buf); >+ snprintf(buf, BUFFER_SIZE, "%s=%s&", "backmx", *mx == '\0' ? "NO" : "YES"); >+ output(buf); >+ snprintf(buf, BUFFER_SIZE, "%s=%s&", "host", host); >+ output(buf); >+ snprintf(buf, BUFFER_SIZE, "%s=%s&", "login", user_name); >+ output(buf); >+ snprintf(buf, BUFFER_SIZE, "%s=%s&", "password", password); >+ output(buf); >+ snprintf(buf, BUFFER_SIZE, " HTTP/1.0\015\012"); >+ output(buf); >+ snprintf(buf, BUFFER_SIZE, "Authorization: Basic %s\015\012", auth); >+ output(buf); >+ snprintf(buf, BUFFER_SIZE, "User-Agent: %s-%s %s [%s] (%s)\015\012", >+ "ez-update", VERSION, OS, (options & OPT_DAEMON) ? "daemon" : "", "by Angus Mackay"); >+ output(buf); >+ snprintf(buf, BUFFER_SIZE, "Host: %s\015\012", server); >+ 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, "0=Success") != NULL) >+ { >+ if(!(options & OPT_QUIET)) >+ { >+ printf("Request successful\n"); >+ } >+ } >+ else if(strstr(buf, "1=IP is the same as the IP on the system") != NULL) >+ { >+ if(!(options & OPT_QUIET)) >+ { >+ printf("Request successful but the IP is the same as previous update\n"); >+ } >+ } >+ else if(strstr(buf, "2=Invalid passwords") != NULL) >+ { >+ if(!(options & OPT_QUIET)) >+ { >+ printf("Invalid Password\n"); >+ } >+ } >+ else if(strstr(buf, "3=User not found") != NULL) >+ { >+ if(!(options & OPT_QUIET)) >+ { >+ printf("Username not found\n"); >+ } >+ } >+ else if(strstr(buf, "4=Update too often") != NULL) >+ { >+ if(!(options & OPT_QUIET)) >+ { >+ printf("Updatting too often\n"); >+ } >+ } >+ else >+ { >+ show_message("Errors return from server\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); >+} >+ > static int is_in_list(char *needle, char **haystack) > { > char **p;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 116439
:
75361
|
75362
|
75363
|
75367
| 75368