Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    /services_dyndns_edit.php: phpDynDNS: (Unknown Response)

    Scheduled Pinned Locked Moved General pfSense Questions
    21 Posts 6 Posters 3.1k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      amello @FSC830
      last edited by

      @fsc830 said in /services_dyndns_edit.php: phpDynDNS: (Unknown Response):

      Hi,
      first of all you should edit your post and remove/mask serial and device ID.

      Ok, thanks, done.

      Second: did your ever check if your dyndns command for renewing the IPs is working?
      Is it exactly the same command when using your Linux host?

      From pf I only can see the entry in the log that I have in my subject.

      That was configured over an year ago and worked. Now that the IP changed, it is not working. Even deleted and recreated the entries in pf to no avail.

      1 Reply Last reply Reply Quote 0
      • F
        FSC830
        last edited by

        You should see your setting in services - ddns menu (not sure about the exact wording)!?

        At least at my pfSense I can see and edit the command for updating the ddns service.

        Regards

        A 1 Reply Last reply Reply Quote 0
        • A
          amello @FSC830
          last edited by

          @fsc830 said in /services_dyndns_edit.php: phpDynDNS: (Unknown Response):

          You should see your setting in services - ddns menu (not sure about the exact wording)!?

          At least at my pfSense I can see and edit the command for updating the ddns service.

          Regards

          Yes, correct. It is there and with IPs 0.0.0.0 (the new one created for test) and N/A the old one (already in my config for years). In fact I've moved the install to another location in Jan and it did update the IPs. Either pf 2.6 or google are at fault.

          1 Reply Last reply Reply Quote 0
          • P
            plfinch @amello
            last edited by plfinch

            @amello Refer to the following post for details on a patch required for successful Google Domains Dynamic DNS updating:

            Forum Post

            Peter

            A 1 Reply Last reply Reply Quote 1
            • A
              amello @plfinch
              last edited by

              @plfinch
              Thanks for the tip. I'll check the patch and apply.

              1 Reply Last reply Reply Quote 0
              • stephenw10S
                stephenw10 Netgate Administrator
                last edited by

                That patch is in the 'recommended patches' list in the new System Patches package so it's one click to apply it.

                Steve

                P B 2 Replies Last reply Reply Quote 2
                • P
                  plfinch @stephenw10
                  last edited by

                  @stephenw10 I was very pleasantly surprised this morning when I updated package patches and saw the list of recommended patches with Redmine numbers listed. This is great!

                  Peter

                  1 Reply Last reply Reply Quote 0
                  • B
                    bdaniel7 @stephenw10
                    last edited by

                    @stephenw10
                    Hi, I have the same problem. The response from namecheap is not correctly parsed. I applied the patch for Redmine #12816 to pfSense 2.6.0-RELEASE, but the response is still not parsed. The cached IP still says 0.0.0.0. I have also rebooted the router.

                    1 Reply Last reply Reply Quote 0
                    • stephenw10S
                      stephenw10 Netgate Administrator
                      last edited by

                      What is namecheap responding with?

                      Does it correctly update from a different dyndns client?

                      Steve

                      B 1 Reply Last reply Reply Quote 0
                      • B
                        bdaniel7 @stephenw10
                        last edited by

                        <?xml version="1.0" encoding="utf-16"?>
                        <interface-response>
                        <Command>SETDNSHOST</Command>
                        <Language>eng</Language>
                        <IP>xxx.yyy.zzz.aaa</IP> <---- the IP from my external gateway
                        <ErrCount>0</ErrCount>
                        <errors/>
                        <ResponseCount>0</ResponseCount>
                        <responses/>
                        <Done>true</Done>
                        <debug><![CDATA[]]></debug>
                        </interface-response>

                        I'm only using namecheap for dynamic dns.

                        B 1 Reply Last reply Reply Quote 0
                        • B
                          bdaniel7 @bdaniel7
                          last edited by

                          I removed the .cache file generated for namecheap, and now when I save the settings for its client, the .cache file contains "0.0.0.0|1661343037", and in the UI it's displayed "0.0.0.0".
                          I also added a freeDNS API Version 2 client, which corectly registers and caches the dynamic IP.

                          1 Reply Last reply Reply Quote 0
                          • stephenw10S
                            stephenw10 Netgate Administrator
                            last edited by

                            Hmm, looks OK. Are you actually seeing the 'Unknown Response' error logged?

                            B 1 Reply Last reply Reply Quote 0
                            • B
                              bdaniel7 @stephenw10
                              last edited by

                              Yes, this is the log generated after I saved the settings for namecheap:

                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: phpDynDNS (home): (Unknown Response)
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: phpDynDNS (home): PAYLOAD: <?xml version="1.0" encoding="utf-16"?><interface-response><Command>SETDNSHOST</Command><Language>eng</Language><IP>xxx.yyy.zzz.aaa</IP><ErrCount>0</ErrCount><errors /><ResponseCount>0</ResponseCount><responses /><Done>true</Done><debug><![CDATA[]]></debug></interface-response>
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Dynamic DNS namecheap (home.XMX.net): _checkStatus() starting.
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Response Data: <?xml version="1.0" encoding="utf-16"?><interface-response><Command>SETDNSHOST</Command><Language>eng</Language><IP>xxx.yyy.zzz.aaa</IP><ErrCount>0</ErrCount><errors /><ResponseCount>0</ResponseCount><responses /><Done>true</Done><debug><![CDATA[]]></debug></interface-response>
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Response Header:
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Response Header:
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Response Header: alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Response Header: cf-ray: 73fc6680cbc5c1af-BUD
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Response Header: server: cloudflare
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Response Header: expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Response Header: cf-cache-status: DYNAMIC
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Response Header: strict-transport-security: max-age=16000000; includeSubDomains
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Response Header: strict-transport-security: max-age=16000000; includeSubDomains
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Response Header: set-cookie: .s=3b275e1f0d8248488011fad0e6fa3ad4; domain=.www.namecheap.com; path=/; httponly
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Response Header: vary: Accept-Encoding
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Response Header: content-type: application/json
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Response Header: date: Wed, 24 Aug 2022 13:23:04 GMT
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Response Header: HTTP/2 200
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Dynamic DNS namecheap (home.XMX.net): _update() starting.
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Dynamic DNS (home.XMX.net): running get_failover_interface for wan. found igb0
                              Aug 24 16:23:04	php-fpm	11484	/services_dyndns_edit.php: Dynamic DNS namecheap (home.XMX.net): xxx.yyy.zzz.aaa extracted from Check IP Service
                              Aug 24 16:23:03	php-fpm	11484	/services_dyndns_edit.php: Dynamic DNS namecheap (home.XMX.net): _checkIP() starting.
                              Aug 24 16:23:03	php-fpm	11484	/services_dyndns_edit.php: Dynamic DNS: updatedns() starting
                              
                              1 Reply Last reply Reply Quote 0
                              • stephenw10S
                                stephenw10 Netgate Administrator
                                last edited by

                                Hmm, looks exactly like what that patch should correct.

                                Does it show as applied? Is the change actually present in /etc/inc/dyndns.class?

                                B 1 Reply Last reply Reply Quote 0
                                • B
                                  bdaniel7 @stephenw10
                                  last edited by

                                  This is the namecheap section in the /etc/inc/dyndns.class file:

                                  30877f76-3203-4102-9b0c-933da07bd62c-image.png

                                  S 1 Reply Last reply Reply Quote 0
                                  • S
                                    SteveITS Galactic Empire @bdaniel7
                                    last edited by

                                    @bdaniel7 See also thread https://forum.netgate.com/topic/173646/namecheap-dynamic-dns-seems-to-be-broken-again

                                    Pre-2.7.2/23.09: Only install packages for your version, or risk breaking it. Select your branch in System/Update/Update Settings.
                                    When upgrading, allow 10-15 minutes to restart, or more depending on packages and device speed.
                                    Upvote 👍 helpful posts!

                                    1 Reply Last reply Reply Quote 0
                                    • stephenw10S
                                      stephenw10 Netgate Administrator
                                      last edited by

                                      Hmm, sure looks like the response is correct. 🤔

                                      B 1 Reply Last reply Reply Quote 0
                                      • B
                                        bdaniel7 @stephenw10
                                        last edited by

                                        @stephenw10
                                        With my limited php experience I was able to find out the problem.
                                        The response is an xml sent on one line, with the encoding set to utf-16, so line $ncresponse = xml2array(substr($tmp, strpos($tmp, "\n") + 1)); gets executed, and $ncresponse is actually empty.
                                        Which means that $ncresponse does not match any of the ifs. so it ends up in the last else.

                                        B 1 Reply Last reply Reply Quote 0
                                        • B
                                          bdaniel7 @bdaniel7
                                          last edited by bdaniel7

                                          I just added this line
                                          $tmp = str_replace("utf-16", "utf-8", $data);
                                          under line
                                          $tmp = str_replace("^M", "", $data);.

                                          It's rather crude, but it works :))

                                          edit:
                                          This could work too: $tmp = str_replace("utf-16\"?>", "utf-16\"?>\n", $data);

                                          1 Reply Last reply Reply Quote 3
                                          • First post
                                            Last post
                                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.