summaryrefslogtreecommitdiff
path: root/do/sopt
diff options
context:
space:
mode:
Diffstat (limited to 'do/sopt')
-rw-r--r--do/sopt51
1 files changed, 0 insertions, 51 deletions
diff --git a/do/sopt b/do/sopt
deleted file mode 100644
index 439f3e2b5d..0000000000
--- a/do/sopt
+++ /dev/null
@@ -1,51 +0,0 @@
-int
-do_sopt(optype, stab, arglast)
-int optype;
-STAB *stab;
-int *arglast;
-{
- register STR **st = stack->ary_array;
- register int sp = arglast[1];
- register STIO *stio;
- int fd;
- unsigned int lvl;
- unsigned int optname;
-
- if (!stab)
- goto nuts;
-
- stio = stab_io(stab);
- if (!stio || !stio->ifp)
- goto nuts;
-
- fd = fileno(stio->ifp);
- lvl = (unsigned int)str_gnum(st[sp+1]);
- optname = (unsigned int)str_gnum(st[sp+2]);
- switch (optype) {
- case O_GSOCKOPT:
- st[sp] = str_2mortal(Str_new(22,257));
- st[sp]->str_cur = 256;
- st[sp]->str_pok = 1;
- if (getsockopt(fd, lvl, optname, st[sp]->str_ptr,
- (int*)&st[sp]->str_cur) < 0)
- goto nuts;
- break;
- case O_SSOCKOPT:
- st[sp] = st[sp+3];
- if (setsockopt(fd, lvl, optname, st[sp]->str_ptr, st[sp]->str_cur) < 0)
- goto nuts;
- st[sp] = &str_yes;
- break;
- }
-
- return sp;
-
-nuts:
- if (dowarn)
- warn("[gs]etsockopt() on closed fd");
- st[sp] = &str_undef;
- errno = EBADF;
- return sp;
-
-}
-