libfreerdp-core: cleanup TS Gateway code
authorMarc-André Moreau <marcandre.moreau@gmail.com>
Fri, 11 Oct 2013 09:07:33 +0000 (05:07 -0400)
committerMarc-André Moreau <marcandre.moreau@gmail.com>
Fri, 11 Oct 2013 09:07:33 +0000 (05:07 -0400)
libfreerdp/core/gateway/tsg.c
libfreerdp/core/tcp.c
libfreerdp/crypto/tls.c
libfreerdp/utils/tcp.c

index 33ce771..8637b40 100644 (file)
 
 BYTE TsProxyCreateTunnelUnknownTrailerBytes[60] =
 {
-       0x8A, 0xE3, 0x13, 0x71, 0x02, 0xF4, 0x36, 0x71, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00,
-       0x02, 0x40, 0x28, 0x00, 0xDD, 0x65, 0xE2, 0x44, 0xAF, 0x7D, 0xCD, 0x42, 0x85, 0x60, 0x3C, 0xDB,
-       0x6E, 0x7A, 0x27, 0x29, 0x01, 0x00, 0x03, 0x00, 0x04, 0x5D, 0x88, 0x8A, 0xEB, 0x1C, 0xC9, 0x11,
-       0x9F, 0xE8, 0x08, 0x00, 0x2B, 0x10, 0x48, 0x60, 0x02, 0x00, 0x00, 0x00
+               0x8A, 0xE3, 0x13, 0x71, 0x02, 0xF4, 0x36, 0x71, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00,
+               0x02, 0x40, 0x28, 0x00, 0xDD, 0x65, 0xE2, 0x44, 0xAF, 0x7D, 0xCD, 0x42, 0x85, 0x60, 0x3C, 0xDB,
+               0x6E, 0x7A, 0x27, 0x29, 0x01, 0x00, 0x03, 0x00, 0x04, 0x5D, 0x88, 0x8A, 0xEB, 0x1C, 0xC9, 0x11,
+               0x9F, 0xE8, 0x08, 0x00, 0x2B, 0x10, 0x48, 0x60, 0x02, 0x00, 0x00, 0x00
 };
 
 DWORD TsProxySendToServer(handle_t IDL_handle, byte pRpcMessage[], UINT32 count, UINT32* lengths)
@@ -390,7 +390,7 @@ BOOL TsProxyCreateTunnelReadResponse(rdpTsg* tsg, RPC_PDU* pdu)
                        Pointer = *((UINT32*) &buffer[offset]); /* Ptr (4 bytes): 0x00020008 */
                        offset += 4;
                }
-        
+
                versionCaps = (PTSG_PACKET_VERSIONCAPS) malloc(sizeof(TSG_PACKET_VERSIONCAPS));
                ZeroMemory(versionCaps, sizeof(TSG_PACKET_VERSIONCAPS));
                packetQuarEncResponse->versionCaps = versionCaps;
@@ -402,7 +402,7 @@ BOOL TsProxyCreateTunnelReadResponse(rdpTsg* tsg, RPC_PDU* pdu)
                if (versionCaps->tsgHeader.ComponentId != TS_GATEWAY_TRANSPORT)
                {
                        fprintf(stderr, "Unexpected ComponentId: 0x%04X, Expected TS_GATEWAY_TRANSPORT\n",
-                               versionCaps->tsgHeader.ComponentId);
+                                       versionCaps->tsgHeader.ComponentId);
                        free(versionCaps);
                        free(packetQuarEncResponse);
                        free(packet);
@@ -747,61 +747,61 @@ BOOL TsProxyMakeTunnelCallReadResponse(rdpTsg* tsg, RPC_PDU* pdu)
 
        switch (SwitchValue)
        {
-               case TSG_ASYNC_MESSAGE_CONSENT_MESSAGE:
-                       packetStringMessage = (PTSG_PACKET_STRING_MESSAGE) malloc(sizeof(TSG_PACKET_STRING_MESSAGE));
-                       ZeroMemory(packetStringMessage, sizeof(TSG_PACKET_STRING_MESSAGE));
-                       packetMsgResponse->messagePacket.consentMessage = packetStringMessage;
-
-                       Pointer = *((UINT32*) &buffer[offset + 28]); /* ConsentMessagePtr */
-                       packetStringMessage->isDisplayMandatory = *((INT32*) &buffer[offset + 32]); /* IsDisplayMandatory */
-                       packetStringMessage->isConsentMandatory = *((INT32*) &buffer[offset + 36]); /* IsConsentMandatory */
-                       packetStringMessage->msgBytes = *((UINT32*) &buffer[offset + 40]); /* MsgBytes */
-
-                       Pointer = *((UINT32*) &buffer[offset + 44]); /* MsgPtr */
-                       MaxCount = *((UINT32*) &buffer[offset + 48]); /* MaxCount */
-                       /* Offset */
-                       ActualCount = *((UINT32*) &buffer[offset + 56]); /* ActualCount */
-
-                       ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) &buffer[offset + 60], ActualCount, &messageText, 0, NULL, NULL);
-                       fprintf(stderr, "Consent Message: %s\n", messageText);
-                       free(messageText);
-
-                       break;
-
-               case TSG_ASYNC_MESSAGE_SERVICE_MESSAGE:
-                       packetStringMessage = (PTSG_PACKET_STRING_MESSAGE) malloc(sizeof(TSG_PACKET_STRING_MESSAGE));
-                       ZeroMemory(packetStringMessage, sizeof(TSG_PACKET_STRING_MESSAGE));
-                       packetMsgResponse->messagePacket.serviceMessage = packetStringMessage;
-
-                       Pointer = *((UINT32*) &buffer[offset + 28]); /* ServiceMessagePtr */
-                       packetStringMessage->isDisplayMandatory = *((INT32*) &buffer[offset + 32]); /* IsDisplayMandatory */
-                       packetStringMessage->isConsentMandatory = *((INT32*) &buffer[offset + 36]); /* IsConsentMandatory */
-                       packetStringMessage->msgBytes = *((UINT32*) &buffer[offset + 40]); /* MsgBytes */
-
-                       Pointer = *((UINT32*) &buffer[offset + 44]); /* MsgPtr */
-                       MaxCount = *((UINT32*) &buffer[offset + 48]); /* MaxCount */
-                       /* Offset */
-                       ActualCount = *((UINT32*) &buffer[offset + 56]); /* ActualCount */
-
-                       ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) &buffer[offset + 60], ActualCount, &messageText, 0, NULL, NULL);
-                       fprintf(stderr, "Service Message: %s\n", messageText);
-                       free(messageText);
-
-                       break;
-
-               case TSG_ASYNC_MESSAGE_REAUTH:
-                       packetReauthMessage = (PTSG_PACKET_REAUTH_MESSAGE) malloc(sizeof(TSG_PACKET_REAUTH_MESSAGE));
-                       ZeroMemory(packetReauthMessage, sizeof(TSG_PACKET_REAUTH_MESSAGE));
-                       packetMsgResponse->messagePacket.reauthMessage = packetReauthMessage;
-
-                       Pointer = *((UINT32*) &buffer[offset + 28]); /* ReauthMessagePtr */
-                       break;
-
-               default:
-                       fprintf(stderr, "TsProxyMakeTunnelCallReadResponse: unexpected message type: %d\n",
-                                       SwitchValue);
-                       rc = FALSE;
-                       break;
+       case TSG_ASYNC_MESSAGE_CONSENT_MESSAGE:
+               packetStringMessage = (PTSG_PACKET_STRING_MESSAGE) malloc(sizeof(TSG_PACKET_STRING_MESSAGE));
+               ZeroMemory(packetStringMessage, sizeof(TSG_PACKET_STRING_MESSAGE));
+               packetMsgResponse->messagePacket.consentMessage = packetStringMessage;
+
+               Pointer = *((UINT32*) &buffer[offset + 28]); /* ConsentMessagePtr */
+               packetStringMessage->isDisplayMandatory = *((INT32*) &buffer[offset + 32]); /* IsDisplayMandatory */
+               packetStringMessage->isConsentMandatory = *((INT32*) &buffer[offset + 36]); /* IsConsentMandatory */
+               packetStringMessage->msgBytes = *((UINT32*) &buffer[offset + 40]); /* MsgBytes */
+
+               Pointer = *((UINT32*) &buffer[offset + 44]); /* MsgPtr */
+               MaxCount = *((UINT32*) &buffer[offset + 48]); /* MaxCount */
+               /* Offset */
+               ActualCount = *((UINT32*) &buffer[offset + 56]); /* ActualCount */
+
+               ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) &buffer[offset + 60], ActualCount, &messageText, 0, NULL, NULL);
+               fprintf(stderr, "Consent Message: %s\n", messageText);
+               free(messageText);
+
+               break;
+
+       case TSG_ASYNC_MESSAGE_SERVICE_MESSAGE:
+               packetStringMessage = (PTSG_PACKET_STRING_MESSAGE) malloc(sizeof(TSG_PACKET_STRING_MESSAGE));
+               ZeroMemory(packetStringMessage, sizeof(TSG_PACKET_STRING_MESSAGE));
+               packetMsgResponse->messagePacket.serviceMessage = packetStringMessage;
+
+               Pointer = *((UINT32*) &buffer[offset + 28]); /* ServiceMessagePtr */
+               packetStringMessage->isDisplayMandatory = *((INT32*) &buffer[offset + 32]); /* IsDisplayMandatory */
+               packetStringMessage->isConsentMandatory = *((INT32*) &buffer[offset + 36]); /* IsConsentMandatory */
+               packetStringMessage->msgBytes = *((UINT32*) &buffer[offset + 40]); /* MsgBytes */
+
+               Pointer = *((UINT32*) &buffer[offset + 44]); /* MsgPtr */
+               MaxCount = *((UINT32*) &buffer[offset + 48]); /* MaxCount */
+               /* Offset */
+               ActualCount = *((UINT32*) &buffer[offset + 56]); /* ActualCount */
+
+               ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) &buffer[offset + 60], ActualCount, &messageText, 0, NULL, NULL);
+               fprintf(stderr, "Service Message: %s\n", messageText);
+               free(messageText);
+
+               break;
+
+       case TSG_ASYNC_MESSAGE_REAUTH:
+               packetReauthMessage = (PTSG_PACKET_REAUTH_MESSAGE) malloc(sizeof(TSG_PACKET_REAUTH_MESSAGE));
+               ZeroMemory(packetReauthMessage, sizeof(TSG_PACKET_REAUTH_MESSAGE));
+               packetMsgResponse->messagePacket.reauthMessage = packetReauthMessage;
+
+               Pointer = *((UINT32*) &buffer[offset + 28]); /* ReauthMessagePtr */
+               break;
+
+       default:
+               fprintf(stderr, "TsProxyMakeTunnelCallReadResponse: unexpected message type: %d\n",
+                               SwitchValue);
+               rc = FALSE;
+               break;
        }
 
        if (packet)
@@ -1403,19 +1403,19 @@ BOOL tsg_disconnect(rdpTsg* tsg)
         */
 
 
-    if (tsg == NULL)
-        return FALSE;
+       if (tsg == NULL)
+               return FALSE;
 
        tsg->rpc->client->SynchronousReceive = TRUE;
 
-    /* if we are already in state pending (i.e. if a server initiated disconnect was issued)
+       /* if we are already in state pending (i.e. if a server initiated disconnect was issued)
        we have to skip TsProxyCloseChannel - see Figure 13 in section 3.2.3
-     */
-    if (tsg->state != TSG_STATE_TUNNEL_CLOSE_PENDING)
-    {
-        if (!TsProxyCloseChannel(tsg, NULL))
-            return FALSE;
-    }
+        */
+       if (tsg->state != TSG_STATE_TUNNEL_CLOSE_PENDING)
+       {
+               if (!TsProxyCloseChannel(tsg, NULL))
+                       return FALSE;
+       }
 
        if (!TsProxyMakeTunnelCall(tsg, &tsg->TunnelContext, TSG_TUNNEL_CANCEL_ASYNC_MSG_REQUEST, NULL, NULL))
                return FALSE;
@@ -1429,12 +1429,12 @@ BOOL tsg_disconnect(rdpTsg* tsg)
 int tsg_read(rdpTsg* tsg, BYTE* data, UINT32 length)
 {
        int CopyLength;
-    rdpRpc* rpc;
+       rdpRpc* rpc;
 
-    if (tsg == NULL)
-        return -1;
+       if (tsg == NULL)
+               return -1;
 
-    rpc = tsg->rpc;
+       rpc = tsg->rpc;
 
        if (tsg->PendingPdu)
        {
index 908e06a..9048655 100644 (file)
@@ -120,7 +120,7 @@ BOOL tcp_connect(rdpTcp* tcp, const char* hostname, UINT16 port)
        UINT32 option_value;
        socklen_t option_len;
 
-       if (hostname == NULL)
+       if (!hostname)
                return FALSE;
 
        if (hostname[0] == '/')
@@ -275,7 +275,7 @@ rdpTcp* tcp_new(rdpSettings* settings)
 
        tcp = (rdpTcp*) malloc(sizeof(rdpTcp));
 
-       if (tcp != NULL)
+       if (tcp)
        {
                ZeroMemory(tcp, sizeof(rdpTcp));
 
index 3e089e4..1e75472 100644 (file)
@@ -171,7 +171,7 @@ BOOL tls_connect(rdpTls* tls)
 
        cert = tls_get_certificate(tls, TRUE);
 
-       if (cert == NULL)
+       if (!cert)
        {
                fprintf(stderr, "tls_connect: tls_get_certificate failed to return the server certificate.\n");
                return FALSE;
index 54188ca..9adad8f 100644 (file)
@@ -76,7 +76,7 @@ int freerdp_tcp_connect(const char* hostname, int port)
        struct addrinfo* res;
        struct addrinfo hints = { 0 };
 
-       memset(&hints, 0, sizeof(struct addrinfo));
+       ZeroMemory(&hints, sizeof(struct addrinfo));
        hints.ai_family = AF_UNSPEC;
        hints.ai_socktype = SOCK_STREAM;
 
@@ -166,8 +166,8 @@ int freerdp_tcp_write(int sockfd, BYTE* data, int length)
                /* No data available */
                if (wsa_error == WSAEWOULDBLOCK)
                        status = 0;
-                else
-                        perror("send");
+               else
+                       perror("send");
 #else
                if (errno == EAGAIN || errno == EWOULDBLOCK)
                        status = 0;
@@ -182,11 +182,13 @@ int freerdp_tcp_write(int sockfd, BYTE* data, int length)
 int freerdp_tcp_wait_read(int sockfd)
 {
        fd_set fds;
-       if(sockfd<1)
+
+       if (sockfd < 1)
        {
-           fprintf(stderr, "Invalid socket to watch: %d\n", sockfd);
-           return 0 ;      
+               fprintf(stderr, "Invalid socket to watch: %d\n", sockfd);
+               return 0 ;
        }
+
        FD_ZERO(&fds);
        FD_SET(sockfd, &fds);
        select(sockfd+1, &fds, NULL, NULL, NULL);
@@ -197,10 +199,11 @@ int freerdp_tcp_wait_read(int sockfd)
 int freerdp_tcp_wait_write(int sockfd)
 {
        fd_set fds;
-       if(sockfd<1)
+
+       if (sockfd < 1)
        {
-           fprintf(stderr, "Invalid socket to watch: %d\n", sockfd);
-           return 0;
+               fprintf(stderr, "Invalid socket to watch: %d\n", sockfd);
+               return 0;
        }
 
        FD_ZERO(&fds);