libfreerdp-core: got NLA back to a working state

This commit is contained in:
Marc-André Moreau 2011-07-07 14:11:12 -04:00
parent 1ef3b140a6
commit 64f71b0b30
6 changed files with 36 additions and 49 deletions

View File

@ -62,7 +62,10 @@ int main(int argc, char* argv[])
printf("hostname: %s username: %s password: %s\n",
hostname, username, password);
settings->hostname = hostname;
settings->username = username;
settings->password = password;
settings->domain = NULL;
nego_init(nego);
nego_set_target(nego, hostname, 3389);

View File

@ -66,16 +66,15 @@ struct rdp_settings
int num_monitors;
struct rdp_monitor monitors[16];
char hostname[16];
char server[64];
char domain[16];
char* hostname;
char* username;
char* password;
char* domain;
char shell[256];
char directory[256];
char username[256];
int tcp_port_rdp;
int performance_flags;
int tcp_port_rdp;
int encryption;
int tls_security;

View File

@ -142,10 +142,9 @@ stream_extend(STREAM * stream);
*_s->p++ = ((_v) >> 8) & 0xFF; \
*_s->p++ = (_v) & 0xFF; } while (0)
#define stream_write_uint32_be(_s, _v) do { \
*_s->p++ = ((_v) >> 8) & 0xFF; \
*_s->p++ = (_v) & 0xFF; \
*_s->p++ = ((_v) >> 24) & 0xFF; \
*_s->p++ = ((_v) >> 16) & 0xFF; } while (0)
stream_write_uint16_be(_s, ((_v) >> 16 & 0xFFFF)); \
stream_write_uint16_be(_s, ((_v) & 0xFFFF)); \
} while (0)
#define stream_copy(_dst, _src, _n) do { \
memcpy(_dst->p, _src->p, _n); \

View File

@ -156,7 +156,7 @@ NTLMSSP* ntlmssp_new();
void ntlmssp_init(NTLMSSP* ntlmssp);
void ntlmssp_free(NTLMSSP* ntlmssp);
#define WITH_DEBUG_NLA
#define WITH_DEBUG_NLA 1
#ifdef WITH_DEBUG_NLA
#define DEBUG_NLA(fmt, ...) DEBUG_CLASS(NLA, fmt, ## __VA_ARGS__)

View File

@ -22,8 +22,7 @@
#include "tls.h"
boolean
tls_connect(rdpTls * tls)
boolean tls_connect(rdpTls* tls)
{
int connection_status;
@ -59,14 +58,12 @@ tls_connect(rdpTls * tls)
return True;
}
boolean
tls_disconnect(rdpTls * tls)
boolean tls_disconnect(rdpTls* tls)
{
return True;
}
int
tls_read(rdpTls * tls, char* data, int length)
int tls_read(rdpTls* tls, char* data, int length)
{
int status;
@ -94,11 +91,10 @@ tls_read(rdpTls * tls, char* data, int length)
return 0;
}
int
tls_write(rdpTls * tls, char* data, int length)
int tls_write(rdpTls* tls, char* data, int length)
{
int write_status;
int bytes = 0;
int write_status;
while (bytes < length)
{
@ -123,8 +119,7 @@ tls_write(rdpTls * tls, char* data, int length)
return bytes;
}
boolean
tls_print_error(char *func, SSL *connection, int value)
boolean tls_print_error(char *func, SSL *connection, int value)
{
switch (SSL_get_error(connection, value))
{
@ -154,11 +149,10 @@ tls_print_error(char *func, SSL *connection, int value)
}
}
CryptoCert
tls_get_certificate(rdpTls * tls)
CryptoCert tls_get_certificate(rdpTls * tls)
{
CryptoCert cert;
X509 * server_cert;
X509* server_cert;
server_cert = SSL_get_peer_certificate(tls->ssl);
@ -176,10 +170,11 @@ tls_get_certificate(rdpTls * tls)
return cert;
}
rdpTls*
tls_new()
rdpTls* tls_new()
{
rdpTls *tls = (rdpTls*) xzalloc(sizeof(rdpTls));
rdpTls* tls;
tls = (rdpTls*) xzalloc(sizeof(rdpTls));
if (tls != NULL)
{
@ -216,8 +211,7 @@ tls_new()
return tls;
}
void
tls_free(rdpTls* tls)
void tls_free(rdpTls* tls)
{
if (tls != NULL)
{

View File

@ -30,35 +30,27 @@
#include <freerdp/utils/stream.h>
typedef struct rdp_tls rdpTls;
typedef boolean (*TlsConnect) (rdpTls * tls);
typedef boolean (*TlsDisconnect) (rdpTls * tls);
typedef boolean (*TlsConnect) (rdpTls* tls);
typedef boolean (*TlsDisconnect) (rdpTls* tls);
struct rdp_tls
{
SSL * ssl;
SSL* ssl;
int sockfd;
SSL_CTX * ctx;
SSL_CTX* ctx;
struct timespec ts;
TlsConnect connect;
TlsDisconnect disconnect;
};
boolean
tls_connect(rdpTls * tls);
boolean
tls_disconnect(rdpTls * tls);
int
tls_read(rdpTls * tls, char* data, int length);
int
tls_write(rdpTls * tls, char* data, int length);
CryptoCert
tls_get_certificate(rdpTls * tls);
boolean
tls_print_error(char *func, SSL *connection, int value);
boolean tls_connect(rdpTls* tls);
boolean tls_disconnect(rdpTls* tls);
int tls_read(rdpTls* tls, char* data, int length);
int tls_write(rdpTls* tls, char* data, int length);
CryptoCert tls_get_certificate(rdpTls* tls);
boolean tls_print_error(char* func, SSL* connection, int value);
rdpTls*
tls_new();
void
tls_free(rdpTls* tls);
rdpTls* tls_new();
void tls_free(rdpTls* tls);
#endif /* __TLS_H */