summaryrefslogtreecommitdiff
path: root/support/dktools/dk4socka08.ctr
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/dktools/dk4socka08.ctr
Initial commit
Diffstat (limited to 'support/dktools/dk4socka08.ctr')
-rw-r--r--support/dktools/dk4socka08.ctr112
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;
+}
+