diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/dktools/dk4socka08.ctr |
Initial commit
Diffstat (limited to 'support/dktools/dk4socka08.ctr')
-rw-r--r-- | support/dktools/dk4socka08.ctr | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/support/dktools/dk4socka08.ctr b/support/dktools/dk4socka08.ctr new file mode 100644 index 0000000000..0c47f1fddc --- /dev/null +++ b/support/dktools/dk4socka08.ctr @@ -0,0 +1,112 @@ +%% options + +copyright owner = Dirk Krause +copyright year = 2015-xxxx +license = bsd + + +%% module + +#include "dk4socka.h" +#include "dk4mem.h" +#include "dk4maodd.h" + + + +$!trace-include + + + +int +dk4socket_send_attempt_app( + dk4_socket_t sock, + const void *buf, + size_t *pszbuf, + int flags, + long secs, + long usecs, + dk4_app_t *app, + int complain +) +{ + dkChar nb1[16*sizeof(dk4_um_t)]; + dkChar nb2[16*sizeof(dk4_um_t)]; + dk4_er_t er; + size_t b0 = 0; + size_t b1 = 0; + const size_t sznb1 = DK4_SIZEOF(nb1,dkChar); + const size_t sznb2 = DK4_SIZEOF(nb2,dkChar); + int back = DK4_SOCKET_RESULT_FAILED; + int res = 0; + int abok = 0; + dk4error_init(&er); + if (NULL != pszbuf) { b0 = *pszbuf; } + back = dk4socket_send(sock, buf, pszbuf, flags, secs, usecs, &er); + if (DK4_SOCKET_RESULT_SUCCESS != back) { + switch (back) { + case DK4_SOCKET_RESULT_FAILED : { + dk4socket_log_simple_1(app, DK4_LL_ERROR, 137, &er); + } break; + case DK4_SOCKET_RESULT_IN_PROGRESS : { + if (0 != complain) { + if (NULL != pszbuf) { b1 = *pszbuf; } + res = dk4ma_write_decimal_unsigned(nb1,sznb1,(dk4_um_t)b1,0,NULL); + if (0 != res) { + res = dk4ma_write_decimal_unsigned(nb2,sznb2,(dk4_um_t)b0,0,NULL); + if (0 != res) { + abok = 1; + } + } + if (0 != abok) { + dk4socket_log_simple_5(app,DK4_LL_ERROR,133,134,135,nb1,nb2,&er); + } else { + dk4socket_log_simple_1(app, DK4_LL_ERROR, 136, &er); + } + } + } break; + } + } + return back; +} + + + +int +dk4socket_send_app( + dk4_socket_t sock, + const void *buf, + size_t *pszbuf, + int flags, + long secs, + long usecs, + dk4_app_t *app +) +{ + return ( + dk4socket_send_attempt_app(sock, buf, pszbuf, flags, secs, usecs, app, 0) + ); +} + + + +int +dk4socket_recv_app( + dk4_socket_t sock, + void *buf, + size_t *pszbuf, + int flags, + long secs, + long usecs, + dk4_app_t *app +) +{ + dk4_er_t er; + int back = DK4_SOCKET_RESULT_FAILED; + dk4error_init(&er); + back = dk4socket_recv(sock, buf, pszbuf, flags, secs, usecs, &er); + if (DK4_SOCKET_RESULT_SUCCESS != back) { + dk4socket_log_simple_1(app, DK4_LL_ERROR, 138, &er); + } + return back; +} + |