added QSE_NWIO_KEEPALIVE and QSE_NWIO_REUSEADDR
This commit is contained in:
parent
efdb33cd30
commit
5943d9d190
@ -127,6 +127,8 @@ enum qse_fio_mode_t
|
||||
typedef unsigned long qse_fio_hnd_t;
|
||||
#elif defined(__DOS__)
|
||||
typedef int qse_fio_hnd_t;
|
||||
#elif defined(vms) || defined(__vms)
|
||||
typedef void* qse_fio_hnd_t; /* struct FAB* */
|
||||
#else
|
||||
typedef int qse_fio_hnd_t;
|
||||
#endif
|
||||
|
@ -41,6 +41,8 @@ enum qse_nwio_flag_t
|
||||
QSE_NWIO_TCP = (1 << 9),
|
||||
QSE_NWIO_UDP = (1 << 10),
|
||||
|
||||
QSE_NWIO_REUSEADDR = (1 << 12),
|
||||
QSE_NWIO_KEEPALIVE = (1 << 13),
|
||||
/** do not reread if read has been interrupted */
|
||||
QSE_NWIO_READNORETRY = (1 << 14),
|
||||
/** do not rewrite if write has been interrupted */
|
||||
|
@ -806,7 +806,7 @@ static qse_ssize_t nwio_handler_open (
|
||||
handle = qse_nwio_open (
|
||||
qse_awk_rtx_getmmgr(rtx), 0, nwad,
|
||||
flags | QSE_NWIO_TEXT | QSE_NWIO_IGNOREMBWCERR |
|
||||
QSE_NWIO_READNORETRY | QSE_NWIO_WRITENORETRY
|
||||
QSE_NWIO_REUSEADDR | QSE_NWIO_READNORETRY | QSE_NWIO_WRITENORETRY
|
||||
);
|
||||
if (handle == QSE_NULL) return -1;
|
||||
|
||||
|
@ -33,7 +33,6 @@ libqsecmn_la_SOURCES = \
|
||||
env.c \
|
||||
gdl.c \
|
||||
htb.c \
|
||||
lda.c \
|
||||
fio.c \
|
||||
fma.c \
|
||||
fmt.c \
|
||||
@ -42,6 +41,7 @@ libqsecmn_la_SOURCES = \
|
||||
fs-move.c \
|
||||
hton.c \
|
||||
ipad.c \
|
||||
lda.c \
|
||||
main.c \
|
||||
mbwc.c \
|
||||
mbwc-str.c \
|
||||
|
@ -78,10 +78,10 @@ am__DEPENDENCIES_1 =
|
||||
libqsecmn_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
|
||||
am_libqsecmn_la_OBJECTS = alg-rand.lo alg-search.lo alg-sort.lo \
|
||||
assert.lo chr.lo cp949.lo cp950.lo dll.lo env.lo gdl.lo htb.lo \
|
||||
lda.lo fio.lo fma.lo fmt.lo fs.lo fs-err.lo fs-move.lo hton.lo \
|
||||
ipad.lo main.lo mbwc.lo mbwc-str.lo mem.lo nwad.lo nwio.lo \
|
||||
oht.lo opt.lo path-basename.lo path-canon.lo pio.lo pma.lo \
|
||||
rbt.lo rex.lo sio.lo sll.lo slmb.lo stdio.lo str-beg.lo \
|
||||
fio.lo fma.lo fmt.lo fs.lo fs-err.lo fs-move.lo hton.lo \
|
||||
ipad.lo lda.lo main.lo mbwc.lo mbwc-str.lo mem.lo nwad.lo \
|
||||
nwio.lo oht.lo opt.lo path-basename.lo path-canon.lo pio.lo \
|
||||
pma.lo rbt.lo rex.lo sio.lo sll.lo slmb.lo stdio.lo str-beg.lo \
|
||||
str-cat.lo str-chr.lo str-cnv.lo str-cmp.lo str-cpy.lo \
|
||||
str-del.lo str-dup.lo str-dynm.lo str-dynw.lo str-end.lo \
|
||||
str-excl.lo str-fcpy.lo str-fnmat.lo str-incl.lo str-len.lo \
|
||||
@ -309,7 +309,6 @@ libqsecmn_la_SOURCES = \
|
||||
env.c \
|
||||
gdl.c \
|
||||
htb.c \
|
||||
lda.c \
|
||||
fio.c \
|
||||
fma.c \
|
||||
fmt.c \
|
||||
@ -318,6 +317,7 @@ libqsecmn_la_SOURCES = \
|
||||
fs-move.c \
|
||||
hton.c \
|
||||
ipad.c \
|
||||
lda.c \
|
||||
main.c \
|
||||
mbwc.c \
|
||||
mbwc-str.c \
|
||||
|
@ -316,10 +316,17 @@ int qse_nwio_init (
|
||||
goto oops;
|
||||
}
|
||||
|
||||
if ((flags & QSE_NWIO_TCP) && (flags & QSE_NWIO_KEEPALIVE))
|
||||
{
|
||||
int optval = 1;
|
||||
setsockopt (nwio->handle, SOL_SOCKET, SO_KEEPALIVE, (void*)&optval, QSE_SIZEOF(optval));
|
||||
}
|
||||
|
||||
if (flags & QSE_NWIO_PASSIVE)
|
||||
{
|
||||
qse_nwio_hnd_t handle;
|
||||
|
||||
if (flags & QSE_NWIO_REUSEADDR)
|
||||
{
|
||||
int optval = 1;
|
||||
setsockopt (nwio->handle, SOL_SOCKET, SO_REUSEADDR, (void*)&optval, QSE_SIZEOF(optval));
|
||||
@ -371,10 +378,17 @@ int qse_nwio_init (
|
||||
goto oops;
|
||||
}
|
||||
|
||||
if ((flags & QSE_NWIO_TCP) && (flags & QSE_NWIO_KEEPALIVE))
|
||||
{
|
||||
int optval = 1;
|
||||
setsockopt (nwio->handle, SOL_SOCKET, SO_KEEPALIVE, (void*)&optval, QSE_SIZEOF(optval));
|
||||
}
|
||||
|
||||
if (flags & QSE_NWIO_PASSIVE)
|
||||
{
|
||||
qse_nwio_hnd_t handle;
|
||||
|
||||
if (flags & QSE_NWIO_REUSEADDR)
|
||||
{
|
||||
int optval = 1;
|
||||
setsockopt (nwio->handle, SOL_SOCKET, SO_REUSEADDR, (void*)&optval, QSE_SIZEOF(optval));
|
||||
@ -437,11 +451,18 @@ int qse_nwio_init (
|
||||
}
|
||||
#endif
|
||||
|
||||
if ((flags & QSE_NWIO_TCP) && (flags & QSE_NWIO_KEEPALIVE))
|
||||
{
|
||||
int optval = 1;
|
||||
setsockopt (nwio->handle, SOL_SOCKET, SO_KEEPALIVE, (void*)&optval, QSE_SIZEOF(optval));
|
||||
}
|
||||
|
||||
if (flags & QSE_NWIO_PASSIVE)
|
||||
{
|
||||
qse_nwio_hnd_t handle;
|
||||
|
||||
#if defined(SO_REUSEADDR)
|
||||
if (flags & QSE_NWIO_REUSEADDR)
|
||||
{
|
||||
int optval = 1;
|
||||
setsockopt (nwio->handle, SOL_SOCKET, SO_REUSEADDR, (void*)&optval, QSE_SIZEOF(optval));
|
||||
|
Loading…
Reference in New Issue
Block a user