Hardening consulting

Que les VMs windows sont lentes sous KVM ! Quand on travaille sur FreeRDP on est inévitablement obligé d'avoir des VMs sous windows pour tester que les vieilles features marchent encore, ou bien pour pouvoir essayer ces nouveautés fantastiques (oui j'aime les licornes).

Lire la suite…

Souvent en utilisant FreeRDP, on se retrouve à devoir augmenter le niveau des traces et à collecter un peu plus de logs que d'ordinaire. Et évidement la plupart du temps, ça ne tient pas dans l'historique du terminal, ou bien on veut que ça se fasse rapidement (l'affichage console peut vraiment ralentir FreeRDP). On peut aussi être sur une machine à distance, et vouloir récupérer tout ça via le réseau.


Comme à chaque fois que je veux utiliser les capacités de WLog (le système de logs de FreeRDP), je dois aller regarder le code source, je me suis dit qu'un petit billet sur le sujet serait l'occasion idéale de se souvenir de tout ça.

Lire la suite…

En travaillant sur topka, j'ai eu l'occasion d'utiliser twisted. Les tutoriaux de twisted sont bien fait, on a pleins d'exemples concrets, malgrés tout après avoir acquis un peu d'expérience avec le framework, j'ai eu envie d'écrire un petit article sur le sujet.

Note: cet article ne contient rien qui ne soit déjà dans la documentation de twisted

Utilisation des deferred

Quand on utilise twisted, il peut arriver qu'on se retrouve avec un résultat qui puisse être une valeur ou bien un Deferred. C'est le cas s'il est possible que le résultat soit disponible directement, ou bien qu'on doivent attendre. On peut avoir ce genre de code:

import twisted.internet.defer as defer

def myFunc():
    def treatRet():
        ...

    ret = functionThatProcess(...)
    if isinstance(ret, defer.Deferred):
        ret.addCallback(treatRet)
    else:
        ret = treatRet(ret)

    return ret

Lire la suite…

Mieux vaut tard que jamais ! Il y a quatre ans, je faisais un talk sur FreeRDS à la XDC 2014 où j'annonçais que nous en ferions l'open sourcing sans doute fin 2014, et déjà c'était quelque chose d'initialement prévu pour Septembre 2014. Finalement l'openSourcing tant attendu est là, mais en Avril 2018: juste un tout petit peu de retard !


Présentation

Du retard

Alors évidement il s'en est passé des choses depuis fin 2014. Pour commencer, le nom du projet a changé: le nom FreeRDS appartenait à un des membres du projet, et ce sur quoi nous avons travaillé a radicalement divergé de la collaboration commune des débuts, d'où la nécessité de changer de nom. Nous avions pensé à fireRDS,

Lire la suite…

Suite à cette petite vidéo sur meson, j'ai eu envie de jouer un peu avec ce logiciel pour voir ce qu'il valait en pratique. J'ai donc fait un premier essai sur un sous-projet d'OGON qui utilise cmake comme système de build.


CMake mon amour

J'entends dire partout: tout le monde déteste cmake, mais pour plein de mauvaises raisons, plein de projets l'utilisent. Je ne fais pas exception à la masse: à chaque fois que je dois toucher à du cmake, cela commence par une appréhension, et le langage est tellement moche que même quand j'arrive à faire ce que je veux, je n'ai jamais l'impression d'avoir fait du beau boulot. Et puis souvent, ça ne se passe pas comme je veux, et là les phases de débuggage sont toujours épiques. Je ne dois vraiment pas avoir la philosophie cmake, parce qu'à chaque fois j'ai l'impression que le logiciel fait le contraire de ce à quoi je m'attendrais. Bref, dés qu'il y a du cmake à faire j'y vais à reculons.

Lire la suite…

Une de mes conférences préférée est la LCA, la Linux Conference Australia. Les talks sont toujours de très bonne qualité et avec un très bon niveau technique. Il y a quelques années, c'est un talk de Daniel Stone qui m'avait donné envie d'essayer des trucs avec Wayland.

Lire la suite…

Un peu de RDP pour bien commencer l'année 2018 (avec tous mes voeux), dans ce billet je vais parler d'une implémentation permettant de redimensionner la fenêtre dans xfreerdp.

Contexte

Dans FreeRDP, on disposait déjà de l'option smart-sizing qui permet de demander à voir la fenêtre avec un certain ratio: 100, 150 ou 180 pour cent.

Avec la spécification MS-RDPEDISP, le client peut envoyer la configuration de ses écrans au serveur en temps réel, ce qui permet notament au serveur de réagir quand le client branche ou débranche un écran, ou bien que la résolution change. Par exemple avec mstsc en mode plein écran, si on change la résolution quand il est iconomisé, et qu'on le ramène au premier plan.

Mais on peut faire un usage détourné de cette spécification pour que la fenêtre de FreeRDP devienne redimensionnable: en gros on annonce comme taille d'écran, la taille de la fenêtre client.

Lire la suite…