Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    metalefty
    @metalefty
    NeutrinoRDP has a histroical reason why it is forked from FreeRDP
    but it no longer has any advantage to FreeRDP.
    aquesnel
    @aquesnel
    Thanks
    metzk4
    @metzk4
    Hi all! Wondering what the framerate is for XRDP?
    geweizi
    @geweizi
    hi
    metalefty
    @metalefty
    @matt335672 Since the development is relatively active than before thanks to your work. I don't see your work from corner to corner. Can you also update the NEWS wiki?
    I meant let's write draft release notes for the next release day by day.
    matt335672
    @matt335672
    OK - I'll try to keep an update going to the NEWS wiki too.
    matt335672
    @matt335672
    @metalefty - I've brought the NEWS wiki page up-to-date I think. I'll update it after each PR.
    metalefty
    @metalefty
    thank you so much
    matt335672
    @matt335672

    @metalefty - I've been looking at #1684 recently. The design choices made by the systemd team are requiring the PAM auth and session code to be called from the same process, which currently isn't the case - at the moment the auth code is called from the main sesman process and the session code is called from the first fork() process.

    That's relatively simple to fix for the SCP V0 code, but a bit messy. The SCP V1 code is harder. This code also has a denial-of-service problem I've just found which I'll send you privately.

    I've had a look back through the git logs for SCP V1, and nothing significant has happened to it since 2008, when you made some changes.

    My proposal at the moment is to disable the V1 code we're not using and fix the V0 code for #1684. After that, I think a bigger change is required to use separate forked processes to handle all authentication requests as part of an improved V1 API. This will let us implement things like password changes and proper 2FA, but will take a bit longer to implement and be more disruptive.

    How does that sound to you?

    metalefty
    @metalefty
    Actually, I'm not involved in SCP. Most work is done before I joined xrdp development.
    metalefty
    @metalefty
    As far as I see the commit logs, Jay, Laxmikant Rashinkar and ilsimo did most work on SCP. I've never talked Rashinkar and ilsimo.
    metalefty
    @metalefty
    Unfortunately, it appears they except Jay has already left xrdp project. Jay is still the owner of the project but he recently focuses on RDP protocol implementation such as GFX. We can / need to decide by ourselves how we redesign SCP. I agree with disabling the V1 code and fix up the V0 code. I think we can name the SCPv0 based bran-new code SCPv2.
    matt335672
    @matt335672

    OK - thanks for the clarification.

    I'm happy to stick with the current way of doing things with SCP V2, but I was wondering if you had any thoughts on maybe using a more modern style protocol based on something like JSON. We don't need a lot of performance from the sesman interface. The disadvantage would be more dependencies, but we'd gain (potentially) an interface that's easier to debug and tools could be written in a scripting language which might make the whole project a bit more accessible.

    I don't personally have any particular technologies to suggest or recommend in this area. At the moment I'm just interested in what your thoughts are.

    Meanwhile I'll get on with a fix for V0 and disabling V1.

    matt335672
    @matt335672
    @metalefty - I'm reviewing some code at the moment. I remember reading somewhere that we try to stick to ANSI C where all declarations in a block must be in front of the statements. However I can't find anything in the coding style to back this up. What's your take on this? Have I missed something somewhere?
    metalefty
    @metalefty
    I'm fine with the JSON like protocol. It requires more dependencies but it would not be much. One thing we should take care of is the requisite dependencies needs to be available in the distro's package repository. If the additional dependencies cannot be installed by distro package, the installation procedure will be complex. And there's less chance that the latest xrdp provided as distro package.
    metalefty
    @metalefty
    For example, json-c can be installed as package on Ubuntu/CentOS. libjsonc-dev or json-c-devel. Maybe other distro has json-c as well. So if we introduce modern style protol, json-c is a good choice.

    but we'd gain (potentially) an interface that's easier to debug and tools could be written in a scripting language which might make the whole project a bit more accessible.

    I totally agree with this. I personally don't hesitate to introduce modern style protocol at all. The current sesman is a maze to me.

    metalefty
    @metalefty
    I joined xrdp development more than 10 years after it began so I still don't understand xrdp code from corner to corner.
    metalefty
    @metalefty
    Regarding coding stlyle, I don't remember it, too. Maybe coding_style.md and astyle_config.as are everything.
    matt335672
    @matt335672

    OK - thanks. That's very useful.

    json-c also seems to be available for Arch and FreeBSD.

    matt335672
    @matt335672

    I absolutely agree about the sesman implementation. It needs a bit of tidying up. I'll put it on the longer-term list of things to look at.

    The mixed declaration/statements were introduced in C99, so personally I think that should be OK. I can't think anyone will be running a compiler on our target platforms which doesn't support it.

    manoj2patil
    @manoj2patil
    hi any one can looking the xrdp utilixed huge bandwidth utilization. please look into
    matt335672
    @matt335672

    I'm posting this developer info here in response to a query on the xrdp-questions thread.

    Should I put this on the wiki maybe?

    SCP Protocol

    V1 Current Status

    As far as I can tell, the current state of affairs with SCP V1 is as follows:-

    • SCP V1 appears to be the brainchild of a user ilsimo. This account no longer exists, in that the links to it from the commits below no longer work.
      -SCP V1 was added in commit 078b4d3f4127042b020e78bb9d9762196ff070c3 by ilsimo along with the sestest utility (Nov 2006). The idea seems to have been to add a more capable protocol allowing for password changes, etc. SCP V0 was left 'as is', as SCP V1 is new and needs some work.
    • In commit 7c7929861246310d48789748cc150c9a4a492e09 (Sep 2008), a management sub-protocol was added to SCP V1 along with sesadmin, providing a list function and a kill function (not plumbed in).
    • The last commit I can find to the project from ilsimo was 1cae42594b7d3958a6c92a201086afcbbe065fda. This was also on the same day as the previous commit but about half-an-hour later.
    • There's one pretty serious problem I've found with SCP V1 (which I've shared with metalefty).

    It will also be obvious to the reader that SCP V1 is pretty code-heavy and hence has a high maintenance overhead. For example, there's no need for the protocol to handle password changes. The protocol should simply be wrapping the PAM dialog and xrdp should be prompting the user as appropriate. This would also allow for proper 2FA to be introduced with barely any changes to our code.

    Other badly needed system functions are reconnection and NLA. Both of these will require a dialog between xrdp and sesman. Having a simpler protocol will make it easier to get these implemented.

    Next step

    My current plan is to remove the unused SCP V1 code in the near future (i.e. when we get #1708 merged). This should make the existing libscp a little easier to navigate.

    Future requirements

    A replacement protocol needs to satisfy the following requirements:-

    • Merge V0 and V1 functionality into one protocol
    • Not do more than it needs to at the protocol level.
    • Be simple to understand and maintain - this is critical for getting more developers involved in this area of XRDP.
    • Support local authentication for management functions. An administrator should be able to disconnect or stop sessions without needing to reauthenticate.
    aquesnel
    @aquesnel
    +1 to putting this in the wiki
    metalefty
    @metalefty
    Have anyone encountered this? neutrinolabs/xrdp#1740
    I'm trying to log the return value of unlink to debug. Maybe unlink needs to be retried sometime.
    I guess the deletion fails due to EBUSY.
    matt335672
    @matt335672
    Not seen that particular one, but that's down to the user cases I've encountered. I've added some thoughts to #1740
    matt335672
    @matt335672

    @metalefty - any thoughts on what PRs to focus on for inclusion in v0.9.15?

    I was wondering about 1692, 1703, 1727, 1738 and 1741

    Anything you think should be added to or omitted from that list?

    Thanks.

    metalefty
    @metalefty
    first of all, I think we should finish logging as some changes on logging are already merged.
    I've created v0.9.15 milestone https://github.com/neutrinolabs/xrdp/milestone/12
    metalefty
    @metalefty
    I've applied v0.9.15 milestone to some but not finished.
    matt335672
    @matt335672
    Agreed about the logging. 1742 could potentially be left out. It's quite a big change and I've not looked at it yet. It's also dependent on 1738.
    aquesnel
    @aquesnel
    @metalefty for v0.9.15 I'd recommend including #1753 since it fixes some logging changes that was introduced since v0.9.14.
    I agree with @matt335672 that #1742 can be left out of v0.9.15 since there are still more logging related pull requests that I plan on submitting in the future.
    @metalefty when you have a chance can you please take a look at #1738 and let me know if there is additional feedback that needs to be completed before merging?
    metalefty
    @metalefty
    hi, i'll look them one by one
    metalefty
    @metalefty
    I remember @matt335672 implemented the feature to turn off FUSE by config. Is my memory right?
    1 reply
    metalefty
    @metalefty
    okay, agreed about #1742.
    metalefty
    @metalefty
    as usual, i'll make a xorxrdp release ahead of xrdp. xorxrdp v0.2.15 will include following fixes
    Nexarian
    @Nexarian
    Would it be possible to get the nvidia_hack and egfx branches rebased off of the new release once it comes out?
    Looks like there's a ton of excellent stability enhancements that these prototypes would benefit from.
    metalefty
    @metalefty
    metalefty
    @metalefty
    @Nexarian I hope @jsorg71 do so.
    matt335672
    @matt335672
    I believe the xrdp NEWS page is now up-to-date as far as my recent merge of neutrinolabs/xrdp#1703 (commit aa5c5daf7e1867fd349f410b6a0d4dd5d2d102c4).
    metalefty
    @metalefty
    thanks alot!
    metalefty
    @metalefty
    Regarding known issues, I confirmed #965 doesn't reproduce with current Windows 10. So I'm removing it from NEWS.