X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/adns/blobdiff_plain/68948548ee3e88d02f18e3a88cb6ce0a8324a0e4..09a06b84370268b712de43ef3ff71c47f48e9b6e:/regress/hplayback.c.m4 diff --git a/regress/hplayback.c.m4 b/regress/hplayback.c.m4 index aec0393..5f8b456 100644 --- a/regress/hplayback.c.m4 +++ b/regress/hplayback.c.m4 @@ -215,6 +215,7 @@ int H$1(hm_args_massage($3,void)) { m4_define(`hm_rv_len',`') m4_define(`hm_rv_must',`') m4_define(`hm_rv_succfail',`') + m4_define(`hm_rv_fcntl',`') $2 hm_create_hqcall_vars @@ -259,6 +260,23 @@ int H$1(hm_args_massage($3,void)) { vb2.used= ep - (char*)vb2.buf; ') m4_define(`hm_rv_fd',`hm_rv_any') + m4_define(`hm_rv_fcntl',` + r= 0; + if (cmd == F_GETFL) { + if (!memcmp(vb2.buf+hm_r_offset,"O_NONBLOCK|...",14)) { + r= O_NONBLOCK; + vb2.used= hm_r_offset+14; + } else if (!memcmp(vb2.buf+hm_r_offset,"~O_NONBLOCK&...",15)) { + vb2.used= hm_r_offset+15; + } else { + Psyntax("fcntl flags not O_NONBLOCK|... or ~O_NONBLOCK&..."); + } + } else if (cmd == F_SETFL) { + hm_rv_succfail + } else { + Psyntax("fcntl not F_GETFL or F_SETFL"); + } + ') $2 hm_create_nothing