File tree Expand file tree Collapse file tree 6 files changed +70
-3
lines changed
Expand file tree Collapse file tree 6 files changed +70
-3
lines changed Original file line number Diff line number Diff line change 44#include "crocket_base.h"
55
66#include "socket.h"
7+ #include "error_context.h"
78
8- #endif
9+ #endif
Original file line number Diff line number Diff line change 3434
3535 return true;
3636 }
37- #endif
37+ #endif
Original file line number Diff line number Diff line change @@ -60,4 +60,4 @@ extern "C" {
6060}
6161#endif
6262
63- #endif
63+ #endif
Original file line number Diff line number Diff line change 1+ #include "error_context.h"
2+
3+ typedef struct _CROCKET_ERROR_CONTEXT {
4+ char message [CROCKET_ERROR_MESSAGE_LENGTH ];
5+ int code ;
6+ } error_context_t ;
7+
8+ static error_context_t _crocket_error_context ;
9+
10+ char * crocket_get_last_error_message () {
11+ return _crocket_error_context .message [0 ] ? _crocket_error_context .message : "???" ;
12+ }
13+
14+ int crocket_get_last_error_code () {
15+ return _crocket_error_context .code ;
16+ }
17+
18+ void crocket_clear_last_error () {
19+ _crocket_error_context .message [0 ] = '\0' ;
20+ _crocket_error_context .code = 0 ;
21+ }
22+
23+ void _crocket_update_error_context (const char * message , int code ) {
24+ _crocket_error_context .code = code ;
25+
26+ if (message ) {
27+ size_t context_message_length = strlen (_crocket_error_context .message );
28+
29+ strncpy (
30+ _crocket_error_context .message ,
31+ message ,
32+ context_message_length - 1
33+ );
34+
35+ _crocket_error_context .message [context_message_length ] = '\0' ;
36+ }
37+ else {
38+ _crocket_error_context .message [0 ] = '\0' ;
39+ }
40+ }
Original file line number Diff line number Diff line change 1+ #ifndef __CROCKET_ERROR_CONTEXT
2+ #define __CROCKET_ERROR_CONTEXT
3+
4+ #include "crocket_base.h"
5+
6+ #ifndef CROCKET_ERROR_MESSAGE_LENGTH
7+ #define CROCKET_ERROR_MESSAGE_LENGTH (256)
8+ #endif
9+
10+ #ifdef __cplusplus
11+ extern "C" {
12+ #endif
13+
14+ char * crocket_get_last_error_message ();
15+ int crocket_get_last_error_code ();
16+
17+ void crocket_clear_last_error ();
18+
19+ void _crocket_update_error_context (const char * message , int code );
20+
21+ #ifdef __cplusplus
22+ }
23+ #endif
24+
25+ #endif
Original file line number Diff line number Diff line change 22#define __CROCKET_SOCKET_H
33
44#include "crocket_base.h"
5+ #include "error_context.h"
56
67#if defined(CROCKET_WINDOWS )
78 #ifndef CROCKET_INVALID_SOCKET
You can’t perform that action at this time.
0 commit comments