X-Git-Url: https://git.sesse.net/?p=rdpsrv;a=blobdiff_plain;f=rdpsrv.c;h=dda4a173ad0856c0e27bc2e4482a06fdc8540b20;hp=8355426ebc0755b51cef60570dd9ac7bd77cc155;hb=63fa9a9043d4a58ee7994e669bcc566f09bc9e9b;hpb=b3ae47054997c61d01087d17a3ab001b0a54324b diff --git a/rdpsrv.c b/rdpsrv.c index 8355426..dda4a17 100644 --- a/rdpsrv.c +++ b/rdpsrv.c @@ -10,24 +10,16 @@ const int tcp_port_rdp = 3389; int create_server_socket(); -int serve_client(int sock); +int serve_client(); int main() { int server_sock = create_server_socket(); for ( ;; ) { - struct sockaddr_in sin; - socklen_t len; - int sock = accept(server_sock, (struct sockaddr *)&sin, &len); - - if (sock == -1) { - perror("accept()"); - exit(1); - } - - serve_client(sock); - - close(sock); + iso_recv_connect(server_sock); + printf("Got connection.\n"); + serve_client(); + printf("Client closed.\n"); } } @@ -67,13 +59,18 @@ int create_server_socket() } -int serve_client(int sock) +int serve_client() { + if (!mcs_recv_connect_initial()) + error("MCS_CONNECT_INITIAL recv failed"); + mcs_send_connect_response(); + for ( ;; ) { - unsigned char buf[4096]; - short channel; - - /* receive ISO packets */ - mcs_recv(&channel); + uint8 type; + STREAM s; + + while ((s = rdp_recv(&type)) != NULL) { + printf("RDP packet! type %u\n", type); + } } }