Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Farook Al-Sammarraie
    @The-EDev
    No problem, let me know if you need any more help
    Erik Jongen
    @dfjongen:matrix.org
    [m]
    I will, thanks again.
    Erik Jongen
    @dfjongen:matrix.org
    [m]
    One more quick question: is the version number included somewhere in the header files?
    Farook Al-Sammarraie
    @The-EDev
    only the major and minor parts (0.3 for example), you can find it in version.h
    Farook Al-Sammarraie
    @The-EDev
    I just got word that Crow v0.3+3 is now available on Conan
    Luca Schlecker
    @luca-schlecker

    I don't believe you can do it using vcpkg install crow, but you should be able to follow the windows instructions to get the git version to run with vcpkg

    I think theres a --head option, but i dont know if it works.

    Farook Al-Sammarraie
    @The-EDev
    Update on clang format, I managed to get the bot working, the biggest problem was getting the string escaped, thankfully that's done
    Luca Schlecker
    @luca-schlecker
    @The-EDev, is the .clang-format in master already the one which will be used?
    Farook Al-Sammarraie
    @The-EDev
    no, I prepared a new one based on how Crow was already formatted (plus a few improvements)
    Luca Schlecker
    @luca-schlecker
    I guess reformatting the whole project based on the new format file and committing it all in its own commit is the way to go. I think I formatted the new file in CrowCpp/Crow#278 using the old one, so the format won't be like the other files...
    Farook Al-Sammarraie
    @The-EDev
    That's alright, I plan on formatting all the files with the new format and making a PR
    Farook Al-Sammarraie
    @The-EDev
    @luca-schlecker I'm trying to test your PR by using an example that would require #define CROW_MAIN, unfortunately following CrowCpp/Crow#110 which originally described the problem seems to compile just fine. any ideas?
    Luca Schlecker
    @luca-schlecker
    I don't quite understand. No example would require #define CROW_MAIN with my PR. What exactly are you trying to test? I"ve tested inclusion in multiple source files and I've tested putting the crow include inside a header which itself is included in multiple source files (which basically is the same thirg as the first one) and both worked.
    Farook Al-Sammarraie
    @The-EDev
    I was attempting to do the same tests you've done, I just couldn't get them to fail when compiling with an older version
    basically I was trying to build something that would fail to compile with the current version but work with your changes
    Luca Schlecker
    @luca-schlecker
    Weird, 'cause that was the first thing I tested before even coming up with my solution.
    I'll send you my test project, give me a moment.
    Farook Al-Sammarraie
    @The-EDev
    I appreciate it
    Luca Schlecker
    @luca-schlecker
    // test.hpp
    
    #pragma once
    #include <crow.h>
    #include <string>
    
    inline static void start_crow_server(unsigned int port) {
      crow::SimpleApp app;
      CROW_ROUTE(app, "/")
      ([port]() { return "Hello World " + std::to_string(port); });
      app.port(port).multithreaded().run();
    }
    
    void test();
    // a.cpp
    
    #include <test.hpp>
    #include <thread>
    
    int main(int argc, char** argv) {
      std::thread t([]() { test(); });
      start_crow_server(8002);
      t.join();
      return 0;
    }
    // b.cpp
    
    #include <test.hpp>
    
    void test() {
      start_crow_server(8001);
    }
    This project fails with the old Crow if I put #define CROW_MAIN inside the header (as expected) or leave it out (as expected). Only if I put it in one cpp file and one only it works (as expected).
    The new Crow just works.
    Luca Schlecker
    @luca-schlecker
    @The-EDev Will the CROW_MAIN-less feature land in v0.4? I'd write something like: If you are using a version below v0.4 ...
    Farook Al-Sammarraie
    @The-EDev
    well the way it's being done ATM is as masterrather than a version number (e.g. blueprints.md and routes.md), once a release is made the idea is to change those to the version number. This is because I don't want people to be confused by a v0.4 in the doc when it doesn't actually exist anywhere else
    Luca Schlecker
    @luca-schlecker
    So should I write something like: "If you are using version v0.3 or below ..."
    Farook Al-Sammarraie
    @The-EDev
    actually "If you are using version 0.3" only would suffice since 0.2 did not have CROW_MAIN
    Luca Schlecker
    @luca-schlecker
    Oh, interesting. Ok, then I'll just write "If you are using version v0.3 ..."
    And for the README, should I put it inside the ## Disclaimer region?
    Farook Al-Sammarraie
    @The-EDev
    umm, no, I think above the first example would be best
    Luca Schlecker
    @luca-schlecker
    Updated the PR, what do you think @The-EDev?
    Farook Al-Sammarraie
    @The-EDev
    All good, thanks a lot for all the work
    Luca Schlecker
    @luca-schlecker
    You're welcome, I am happy to help.
    Luca Schlecker
    @luca-schlecker
    @The-EDev By the way, if I wanted to introduce a function inside App that'd return whether or not SSL is being used, it would be callable regardless of SSL being enabled or not, wouldn't it? (Similar to bool compression_used() const)
    Farook Al-Sammarraie
    @The-EDev
    I mean, in order for it to return that SSL isn't being used it would have to operate without it being enabled right?
    Luca Schlecker
    @luca-schlecker
    Also that, but one could enable SSL through CMake but not end up using it, which should then also return false. The variable use_ssl_ already does this, but just like there are stubs for .ssl() and .ssl_file(), there should also be a stub for .ssl_used() const.
    Anyway, I'll fix a bug I've encountered having to do with SSL redirection. If SSL is enabled, but not used, one would still always be redirected to https:// leading to broken webpages (at least for me).
    Farook Al-Sammarraie
    @The-EDev
    That's interesting
    I'm pretty sure Crow doesn't do any redirection
    at least when it comes to SSL, either that or I'm completely forgetting stuff here
    Luca Schlecker
    @luca-schlecker
    There actually is some stuff going on:
    //if there is a redirection with a partial URL, treat the URL as a route.
    std::string location = res.get_header_value("Location");
    if (!location.empty() && location.find("://", 0) == std::string::npos)
    {
    #ifdef CROW_ENABLE_SSL
        location.insert(0, "https://" + req_.get_header_value("Host"));
    #else
        location.insert(0, "http://" + req_.get_header_value("Host"));
    #endif
        res.set_header("location", location);
    }
    Luca Schlecker
    @luca-schlecker
    It has to do with response::redirect and response::redirect_perm.
    Farook Al-Sammarraie
    @The-EDev
    I finally got the clang format script to fully work
    Farook Al-Sammarraie
    @The-EDev
    I just posted about creating a blog for Crow, any ideas / suggestions ?
    legendaryzyper
    @legendaryzyper
    when will crow be available for visual studio 2022?
    Farook Al-Sammarraie
    @The-EDev
    @legendaryzyper did you encounter any problems compiling a Crow project in VS2022?
    Luca Schlecker
    @luca-schlecker
    I already successfully compiled a Crow project using VS2022. Should just work. 👍
    legendaryzyper
    @legendaryzyper
    weird I got build errors saying that cant build under v143
    Luca Schlecker
    @luca-schlecker
    Are you using vcpkg?
    legendaryzyper
    @legendaryzyper
    i built manually from source
    Luca Schlecker
    @luca-schlecker
    Weird... Could you please provide some more information about what errors are occuring.