id_query.c
来自「Linux下的socks的程序源程序,用于socks的代理服务」· C语言 代码 · 共 69 行
C
69 行
/*** id_query.c Transmit a query to an IDENT server**** Author: Peter Eriksson <pen@lysator.liu.se>*/#include <stdio.h>#include <errno.h>#if defined(ISC)#include <net/errno.h>#endif /* #if defined(ISC) */#include <signal.h>#include <sys/types.h>#if defined(ISC)#include <sys/bsdtypes.h>#endif /* #if defined(ISC) */#include <sys/wait.h>#include <sys/time.h>#include "ident.h"int id_query#ifdef __STDC__ (ident_t *id, int lport, int fport, struct timeval *timeout)#else (id, lport, fport, timeout)ident_t *id;int lport;int fport;struct timeval *timeout;#endif{#if defined(SOLARIS) || defined(_SEQUENT_) void (*old_sig)();#else void *old_sig;#endif int res; char buf[80]; fd_set ws; sprintf(buf, "%d , %d\r\n", lport, fport); if (timeout) { FD_ZERO(&ws); FD_SET(id->fd, &ws); if ((res = select(FD_SETSIZE, (fd_set *)0, &ws, (fd_set *)0, timeout)) < 0) return -1; if (res == 0) { errno = ETIMEDOUT; return -1; } } old_sig = signal(SIGPIPE, SIG_IGN); res = write(id->fd, buf, strlen(buf)); signal(SIGPIPE, old_sig); return res;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?