Git Product home page Git Product logo

Comments (12)

matracine avatar matracine commented on May 30, 2024

Here is a more complete proposition :

        // if :
        //  - we have more than one response
        //  - response is '!done'
        // => problem with legacy version, swap it and retry
        // Only tested with ROS pre 6.43, will test with post 6.43 => this could make legacy parameter obsolete ?
        if (count($response)>1 && $response[0] === '!done' && !$this->config('legacy'))
        {
            $this->_config->set('legacy', true);
            return $this->login();
        }
        // Return true if we have only one line from server and this line is !done
        return (1 === count($response)) &&  isset($response[0]) && ($response[0] === '!done');

from routeros-api-php.

EvilFreelancer avatar EvilFreelancer commented on May 30, 2024

@matracine hello! And thank you for this good solution. Maybe you can create Merge Request with your fixes?

from routeros-api-php.

EvilFreelancer avatar EvilFreelancer commented on May 30, 2024

Nice, can you add these few lines to unit tests of Client class?

from routeros-api-php.

matracine avatar matracine commented on May 30, 2024

Will try, didn't looked your tests, sorry.

from routeros-api-php.

EvilFreelancer avatar EvilFreelancer commented on May 30, 2024

You can use my other project with RouterOS in Docker container for running unit testing on your computer. You just need to have expect, Docker, Docker Compose, next clone the repo and exec docker-compose up -d, then you need preconfigure virtual routers via preconf.tcl script from root of routeros-api-php:

./preconf.tcl 12223
./preconf.tcl 22223

And after this you can run tests:

./vendor/bin/phpunit

from routeros-api-php.

matracine avatar matracine commented on May 30, 2024

Great, I was looking how to do that, thanks. On the way....

from routeros-api-php.

matracine avatar matracine commented on May 30, 2024

Almost ready, but I'm not super "pull request aware" ;)
How do I modify my pull request ?
Can you review my branch and tell me if this is OK for you (added test__constructLegacy2() in ClientTest.php.
I did phpunit --html-coverage to verify my code was tested.

from routeros-api-php.

EvilFreelancer avatar EvilFreelancer commented on May 30, 2024

Small update by me, I've added endless loop detection logic.
Thanks for your help @matracine! Now $this library can automaticaly detect legacy firmware and this is awesome.

from routeros-api-php.

matracine avatar matracine commented on May 30, 2024

Happy if I helped, this is realy a great lib.
Nothing more to do for me ?
Thanks.

from routeros-api-php.

EvilFreelancer avatar EvilFreelancer commented on May 30, 2024

If you want you may help me with other issue #2 it's about queries in loop, sometimes library returned empty array. The second issue is achieving 100% coverage of code (details is here).

By the way, look at new syntax, you can simplify your code little bit.

In any way thank you for help :)

from routeros-api-php.

EvilFreelancer avatar EvilFreelancer commented on May 30, 2024

Oh, I forgot to say, your edits are available in the 0.8.1 version of the library.

from routeros-api-php.

matracine avatar matracine commented on May 30, 2024

Hello,
Thanks, saw it for 0.8.1, I already updated my projects :)
I will have a look for #2 and code coverage.

Regards,

from routeros-api-php.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.