Commit d37b22f7dbf93089b206284e56f6420265d6e734

Authored by Perry Werneck
1 parent 681143c5
Exists in master and in 1 other branch develop

Fixing small bugs on windows.

client/src/session/remote/wait.cc
@@ -57,16 +57,17 @@ @@ -57,16 +57,17 @@
57 57
58 rc = worker(); 58 rc = worker();
59 59
60 - debug("rc=",rc); 60 + debug("rc=",rc," (",strerror(rc),")");
61 61
62 if(rc == 0) 62 if(rc == 0)
63 return; 63 return;
64 - else if(rc != ETIMEDOUT) 64 +
  65 + if(rc != ETIMEDOUT)
65 chkResponse(rc); 66 chkResponse(rc);
66 67
67 } 68 }
68 69
69 - chkResponse(ETIMEDOUT); 70 + throw runtime_error("Timeout");
70 71
71 } 72 }
72 73
@@ -196,7 +197,7 @@ @@ -196,7 +197,7 @@
196 .call() 197 .call()
197 .pop(rc); 198 .pop(rc);
198 199
199 - debug("rc=",rc); 200 + debug("waitForStringAt rc=",rc);
200 return rc; 201 return rc;
201 202
202 }); 203 });
client/src/session/remote/windows/session.cc
@@ -77,7 +77,10 @@ @@ -77,7 +77,10 @@
77 ); 77 );
78 78
79 if (hPipe == INVALID_HANDLE_VALUE) { 79 if (hPipe == INVALID_HANDLE_VALUE) {
80 - throw std::runtime_error("Can't open IPC Channel"); 80 + string msg = "Can't open IPC Channel \"";
  81 + msg += pipename;
  82 + msg += "\"";
  83 + throw std::runtime_error(msg);
81 } 84 }
82 85
83 // The pipe connected; change to message-read mode. 86 // The pipe connected; change to message-read mode.
server/src/core/windows/gobject.h
@@ -90,10 +90,10 @@ @@ -90,10 +90,10 @@
90 GObjectClass parent; 90 GObjectClass parent;
91 }; 91 };
92 92
93 - G_GNUC_INTERNAL GSourceFuncs ipc3270_source_funcs; 93 + G_GNUC_INTERNAL GSourceFuncs * ipc3270_get_source_funcs();
94 94
95 - G_GNUC_INTERNAL void ipc3270_release_object(ipc3270 *object);  
96 - G_GNUC_INTERNAL void ipc3270_wait_for_client(IPC3270_PIPE_SOURCE *source); 95 + G_GNUC_INTERNAL void ipc3270_release_object(ipc3270 *object);
  96 + G_GNUC_INTERNAL void ipc3270_wait_for_client(IPC3270_PIPE_SOURCE *source);
97 97
98 G_END_DECLS 98 G_END_DECLS
99 99
server/src/core/windows/inout.c
@@ -46,6 +46,8 @@ unsigned char * ipc3270_pack_error(const GError *error, size_t * szPacket) { @@ -46,6 +46,8 @@ unsigned char * ipc3270_pack_error(const GError *error, size_t * szPacket) {
46 46
47 static const char * error_response = "error"; 47 static const char * error_response = "error";
48 48
  49 + debug("%s(%d,%s)",__FUNCTION__,(int) error_response,error->message);
  50 +
49 *szPacket = strlen(error_response) + 1 + (sizeof(guint16) * 2) + strlen(error->message); 51 *szPacket = strlen(error_response) + 1 + (sizeof(guint16) * 2) + strlen(error->message);
50 52
51 // Allocate buffer 53 // Allocate buffer
@@ -94,40 +96,54 @@ unsigned char * pack_value(unsigned char *txtptr, GVariant *value) { @@ -94,40 +96,54 @@ unsigned char * pack_value(unsigned char *txtptr, GVariant *value) {
94 strcpy((char *) txtptr,g_variant_get_string(value,NULL)); 96 strcpy((char *) txtptr,g_variant_get_string(value,NULL));
95 txtptr += (strlen((char *) txtptr)+1); 97 txtptr += (strlen((char *) txtptr)+1);
96 98
  99 + debug("%s(%s)",__FUNCTION__,g_variant_get_string(value,NULL));
  100 +
97 } else if(g_variant_type_equal(type,G_VARIANT_TYPE_BOOLEAN)) { 101 } else if(g_variant_type_equal(type,G_VARIANT_TYPE_BOOLEAN)) {
98 102
99 *(txtptr++) = 'b'; 103 *(txtptr++) = 'b';
100 *(txtptr++) = g_variant_get_boolean(value) ? 1 : 0; 104 *(txtptr++) = g_variant_get_boolean(value) ? 1 : 0;
101 105
  106 + debug("%s(%s)",__FUNCTION__,g_variant_get_boolean(value) ? "True" : "False");
  107 +
102 } else if(g_variant_type_equal(type,G_VARIANT_TYPE_BYTE)) { 108 } else if(g_variant_type_equal(type,G_VARIANT_TYPE_BYTE)) {
103 109
104 *(txtptr++) = 'y'; 110 *(txtptr++) = 'y';
105 *(txtptr++) = g_variant_get_byte(value); 111 *(txtptr++) = g_variant_get_byte(value);
106 112
  113 + debug("%s(%d)",__FUNCTION__,(int) g_variant_get_byte(value));
  114 +
107 } else if(g_variant_type_equal(type,G_VARIANT_TYPE_INT16)) { 115 } else if(g_variant_type_equal(type,G_VARIANT_TYPE_INT16)) {
108 116
109 *(txtptr++) = 'n'; 117 *(txtptr++) = 'n';
110 *((gint16 *) txtptr) = g_variant_get_int16(value); 118 *((gint16 *) txtptr) = g_variant_get_int16(value);
111 txtptr += sizeof(gint16); 119 txtptr += sizeof(gint16);
112 120
  121 + debug("%s(%d)",__FUNCTION__,(int) g_variant_get_int16(value));
  122 +
113 } else if(g_variant_type_equal(type,G_VARIANT_TYPE_UINT16)) { 123 } else if(g_variant_type_equal(type,G_VARIANT_TYPE_UINT16)) {
114 124
115 *(txtptr++) = 'q'; 125 *(txtptr++) = 'q';
116 *((guint16 *) txtptr) = g_variant_get_uint16(value); 126 *((guint16 *) txtptr) = g_variant_get_uint16(value);
117 txtptr += sizeof(guint16); 127 txtptr += sizeof(guint16);
118 128
  129 + debug("%s(%d)",__FUNCTION__,(int) g_variant_get_uint16(value));
  130 +
119 } else if(g_variant_type_is_subtype_of(type,G_VARIANT_TYPE_INT32)) { 131 } else if(g_variant_type_is_subtype_of(type,G_VARIANT_TYPE_INT32)) {
120 132
121 *(txtptr++) = 'i'; 133 *(txtptr++) = 'i';
122 *((gint32 *) txtptr) = g_variant_get_int32(value); 134 *((gint32 *) txtptr) = g_variant_get_int32(value);
123 txtptr += sizeof(gint32); 135 txtptr += sizeof(gint32);
124 136
  137 + debug("%s(%d)",__FUNCTION__,(int) g_variant_get_int32(value));
  138 +
125 } else if(g_variant_type_equal(type,G_VARIANT_TYPE_UINT32)) { 139 } else if(g_variant_type_equal(type,G_VARIANT_TYPE_UINT32)) {
126 140
127 *(txtptr++) = 'u'; 141 *(txtptr++) = 'u';
128 *((guint32 *) txtptr) = g_variant_get_uint32(value); 142 *((guint32 *) txtptr) = g_variant_get_uint32(value);
129 txtptr += sizeof(guint32); 143 txtptr += sizeof(guint32);
130 144
  145 + debug("%s(%d)",__FUNCTION__,(int) g_variant_get_uint32(value));
  146 +
131 } else if(g_variant_type_equal(type,G_VARIANT_TYPE_INT64)) { 147 } else if(g_variant_type_equal(type,G_VARIANT_TYPE_INT64)) {
132 148
133 *(txtptr++) = 'x'; 149 *(txtptr++) = 'x';
@@ -294,7 +310,7 @@ GVariant * ipc3270_unpack(const unsigned char *packet, int *id) { @@ -294,7 +310,7 @@ GVariant * ipc3270_unpack(const unsigned char *packet, int *id) {
294 break; 310 break;
295 311
296 default: 312 default:
297 - g_message("Unexpected format for argument %d: \"%c\"",ix,descrs[ix+1]); 313 + g_message("Unexpected format for argument %d: \"%c\"",(int) ix,descrs[ix+1]);
298 errno = EINVAL; 314 errno = EINVAL;
299 return NULL; 315 return NULL;
300 } 316 }
server/src/core/windows/pipesource.c
@@ -290,11 +290,17 @@ static void IO_finalize(GSource *source) { @@ -290,11 +290,17 @@ static void IO_finalize(GSource *source) {
290 290
291 } 291 }
292 292
293 -GSourceFuncs ipc3270_source_funcs = {  
294 - IO_prepare,  
295 - IO_check,  
296 - IO_dispatch,  
297 - IO_finalize,  
298 - IO_closure,  
299 - NULL  
300 -}; 293 +GSourceFuncs * ipc3270_get_source_funcs() {
  294 +
  295 + static GSourceFuncs source_funcs = {
  296 + IO_prepare,
  297 + IO_check,
  298 + IO_dispatch,
  299 + IO_finalize,
  300 + IO_closure,
  301 + NULL
  302 + };
  303 +
  304 + return &source_funcs;
  305 +}
  306 +
server/src/core/windows/start.c
@@ -68,7 +68,7 @@ void ipc3270_export_object(GObject *object, const char *name, GError G_GNUC_UNUS @@ -68,7 +68,7 @@ void ipc3270_export_object(GObject *object, const char *name, GError G_GNUC_UNUS
68 68
69 if(hPipe != INVALID_HANDLE_VALUE) { 69 if(hPipe != INVALID_HANDLE_VALUE) {
70 70
71 - ipc->source = (IPC3270_PIPE_SOURCE *) g_source_new(&ipc3270_source_funcs,sizeof(IPC3270_PIPE_SOURCE)); 71 + ipc->source = (IPC3270_PIPE_SOURCE *) g_source_new(ipc3270_get_source_funcs(),sizeof(IPC3270_PIPE_SOURCE));
72 72
73 g_message("Got session \"%c\"",id); 73 g_message("Got session \"%c\"",id);
74 74
server/src/testprogram/testprogram.c
@@ -111,7 +111,7 @@ @@ -111,7 +111,7 @@
111 #ifdef _WIN32 111 #ifdef _WIN32
112 { 112 {
113 // Setup font name 113 // Setup font name
114 - v3270_set_font_family(terminal,"Droid Sans Mono"); 114 + //v3270_set_font_family(terminal,"Droid Sans Mono");
115 115
116 // WIN32 path settings. 116 // WIN32 path settings.
117 static const char * sep = "\\/."; 117 static const char * sep = "\\/.";