Commit 9f4c953b5a492599983919f481cf3a8526132fe7
1 parent
0753e7a8
Exists in
master
and in
1 other branch
Fixing windows errors.
Showing
2 changed files
with
18 additions
and
3 deletions
Show diff stats
client/src/core/windows/request.cc
... | ... | @@ -152,7 +152,22 @@ |
152 | 152 | // It´s an error, extract message |
153 | 153 | in.block[in.used] = 0; |
154 | 154 | debug("Error was ",rc," (\"",(const char *) (in.block + in.current),"\")"); |
155 | - throw std::system_error(std::error_code(rc,std::system_category()),(const char *) (in.block + in.current)); | |
155 | + | |
156 | + // Overload system error mostly because of the lack of ENOTCONN message on windows. | |
157 | + class Error : public std::system_error { | |
158 | + private: | |
159 | + std::string message; | |
160 | + | |
161 | + public: | |
162 | + Error(int rc, const char *msg) : std::system_error((int) rc, std::generic_category()), message(msg) { | |
163 | + } | |
164 | + | |
165 | + const char *what() const noexcept override { | |
166 | + return message.c_str(); | |
167 | + } | |
168 | + }; | |
169 | + | |
170 | + throw Error(rc, (const char *) (in.block + in.current)); | |
156 | 171 | |
157 | 172 | } |
158 | 173 | ... | ... |
server/src/core/methods/methods.c
... | ... | @@ -89,7 +89,7 @@ int ipc3270_method_call(GObject *object, const gchar *method_name, GVariant *req |
89 | 89 | if(!g_ascii_strcasecmp(methods[ix].name,method_name)) { |
90 | 90 | |
91 | 91 | #ifdef _DEBUG_ |
92 | - g_message("Calling %s",methods[ix].name); | |
92 | + lib3270_write_log(hSession,"IPC","Calling %s",methods[ix].name); | |
93 | 93 | #endif // _DEBUG_ |
94 | 94 | |
95 | 95 | int rc = methods[ix].call(object,request,response,error); |
... | ... | @@ -99,7 +99,7 @@ int ipc3270_method_call(GObject *object, const gchar *method_name, GVariant *req |
99 | 99 | if(rc) |
100 | 100 | { |
101 | 101 | debug("%s exits with rc=%d (%s)",methods[ix].name,rc,ipc3270_get_error_message(rc)); |
102 | - g_message("%s exits with rc=%d (%s)",methods[ix].name,rc,ipc3270_get_error_message(rc)); | |
102 | + lib3270_write_log(hSession,"IPC","%s exits with rc=%d (%s)",methods[ix].name,rc,ipc3270_get_error_message(rc)); | |
103 | 103 | ipc3270_set_error(object,rc,error); |
104 | 104 | debug("Error Message was set to %s",(*error)->message); |
105 | 105 | } | ... | ... |