Esempio n. 1
0
void
sanei_debug_msg
  (int level, int max_level, const char *be, const char *fmt, va_list ap)
{
  char *msg;
	
  if (max_level >= level)
    {
#ifdef S_IFSOCK
      if ( 1 == isfdtype(fileno(stderr), S_IFSOCK) )
	{
	  msg = (char *)malloc (sizeof(char) * (strlen(be) + strlen(fmt) + 4));
	  if (msg == NULL)
	    {
	      syslog (LOG_DEBUG, "[sanei_debug] malloc() failed\n");
	      vsyslog (LOG_DEBUG, fmt, ap);
	    }
	  else
	    {
	      sprintf (msg, "[%s] %s", be, fmt);
              vsyslog(LOG_DEBUG, msg, ap);
	      free (msg);
	    }
	}
      else
#endif
	{
	  fprintf (stderr, "[%s] ", be);
          vfprintf (stderr, fmt, ap);
	}
	 
    }
}
Esempio n. 2
0
/*赋值
  入参:nSockfd - socket句柄
  出参:赋值后的socket句柄
*/
int CTcp::operator = (int p_iSockfd)
{
	//isfdtype判断nSockfd是否为指定类型,S_IFSOCK判断是否为套接字描述符,返回1是,0不是,-1出错
    assert ((m_nSock == -1) && (p_iSockfd > -1) && (isfdtype (p_iSockfd, S_IFSOCK) == 1));
    m_nSock = p_iSockfd;

    return m_nSock;
}
int
Isfdtype(int fd, int fdtype)
{
	int		n;

	if ( (n = isfdtype(fd, fdtype)) < 0)
		err_sys("isfdtype error");
	return(n);
}
Esempio n. 4
0
/* determine if a file descriptor is in fact a socket */
int
is_socket(int fd)
{
    return (isfdtype(fd, S_IFSOCK) == 1);
}