mirror of
https://repo.or.cz/socat.git
synced 2024-12-22 23:42:34 +00:00
65 lines
2 KiB
C
65 lines
2 KiB
C
|
/* $Id: xio-socks.c,v 1.25 2006/02/08 19:46:59 gerhard Exp $ */
|
||
|
/* Copyright Gerhard Rieger 2006-2007 */
|
||
|
/* Published under the GNU General Public License V.2, see file COPYING */
|
||
|
|
||
|
/* this file contains the source for a degenerated address that just transfers
|
||
|
data */
|
||
|
|
||
|
#include "xiosysincludes.h"
|
||
|
#include "xioopen.h"
|
||
|
|
||
|
#include "xio-nop.h"
|
||
|
|
||
|
|
||
|
#if WITH_NOP
|
||
|
|
||
|
static int xioopen_nop(int argc, const char *argv[], struct opt *opts,
|
||
|
int xioflags, xiofile_t *xxfd,
|
||
|
unsigned groups, int dummy1, int dummy2,
|
||
|
int dummy3);
|
||
|
|
||
|
static const struct xioaddr_inter_desc xiointer_nop0ro = { XIOADDR_PROT, "nop", 0, XIOBIT_RDONLY, 0/*groups*/, XIOSHUT_CLOSE, XIOCLOSE_NONE, xioopen_nop, 0, 0, 0, XIOBIT_WRONLY HELP("") };
|
||
|
static const struct xioaddr_inter_desc xiointer_nop0wo = { XIOADDR_PROT, "nop", 0, XIOBIT_WRONLY, 0/*groups*/, XIOSHUT_CLOSE, XIOCLOSE_NONE, xioopen_nop, 0, 0, 0, XIOBIT_RDONLY HELP("") };
|
||
|
static const struct xioaddr_inter_desc xiointer_nop0rw = { XIOADDR_PROT, "nop", 0, XIOBIT_RDWR, 0/*groups*/, XIOSHUT_CLOSE, XIOCLOSE_NONE, xioopen_nop, 0, 0, 0, XIOBIT_RDWR HELP("") };
|
||
|
|
||
|
const union xioaddr_desc *xioaddrs_nop[] = {
|
||
|
(union xioaddr_desc *)&xiointer_nop0ro,
|
||
|
(union xioaddr_desc *)&xiointer_nop0wo,
|
||
|
(union xioaddr_desc *)&xiointer_nop0rw,
|
||
|
NULL };
|
||
|
|
||
|
static int xioopen_nop(int argc, const char *argv[], struct opt *opts,
|
||
|
int xioflags, xiofile_t *xxfd,
|
||
|
unsigned groups, int dummy, int dummy2,
|
||
|
int dummy3) {
|
||
|
struct single *xfd = &xxfd->stream;
|
||
|
int result;
|
||
|
|
||
|
if (argc != 1) {
|
||
|
Error("address NOP takes no arguments");
|
||
|
return STAT_NORETRY;
|
||
|
}
|
||
|
|
||
|
if (xfd->fd1 < 0 && xfd->fd2 < 0) {
|
||
|
Error("NOP cannot be endpoint");
|
||
|
return STAT_NORETRY;
|
||
|
}
|
||
|
|
||
|
applyopts(-1, opts, PH_INIT);
|
||
|
if (applyopts_single(xfd, opts, PH_INIT) < 0) return -1;
|
||
|
|
||
|
Notice("opening NOP");
|
||
|
|
||
|
xfd->dtype = XIODATA_STREAM;
|
||
|
/*xfd->fdtype = FDTYPE_DOUBLE;*/
|
||
|
|
||
|
applyopts(xfd->fd1, opts, PH_ALL);
|
||
|
|
||
|
if ((result = _xio_openlate(xfd, opts)) < 0)
|
||
|
return result;
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
#endif /* WITH_NOP */
|
||
|
|