Net-Oping

 view release on metacpan or  search on metacpan

Oping.xs  view on Meta::CPAN

	const char *host
	CODE:
		RETVAL = ping_host_add (obj, host);
	OUTPUT:
		RETVAL

int 
_ping_host_remove (obj, host)
	pingobj_t *obj
	const char *host
	CODE:
		RETVAL = ping_host_remove (obj, host);
	OUTPUT:
		RETVAL

int 
_ping_send (obj)
	pingobj_t *obj
	CODE:
		RETVAL=ping_send (obj);
	OUTPUT:
		RETVAL

pingobj_iter_t *
_ping_iterator_get (obj)
	pingobj_t *obj
	CODE:
		RETVAL = ping_iterator_get (obj);
	OUTPUT:
		RETVAL

pingobj_iter_t *
_ping_iterator_next (iter)
	pingobj_iter_t *iter
	CODE:
		RETVAL = ping_iterator_next (iter);
	OUTPUT:
		RETVAL

double
_ping_iterator_get_latency (iter)
	pingobj_iter_t *iter
	CODE:
		double tmp;
		size_t tmp_size;
		int status;

		RETVAL = -1.0;

		tmp_size = sizeof (tmp);
		status = ping_iterator_get_info (iter, PING_INFO_LATENCY,
			(void *) &tmp, &tmp_size);
		if (status == 0)
			RETVAL = tmp;
	OUTPUT:
		RETVAL

void
_ping_iterator_get_hostname (iter)
	pingobj_iter_t *iter
	PPCODE:
		char *buffer;
		size_t buffer_size;
		int status;

	do {
		buffer = NULL;
		buffer_size = 0;
		status = ping_iterator_get_info (iter, PING_INFO_HOSTNAME,
				(void *) buffer, &buffer_size);
		if (status != ENOMEM)
			break;
#if !defined(OPING_VERSION) || (OPING_VERSION <= 3005)
		/* This is a workaround for a bug in 0.3.5. */
		buffer_size++;
#endif

		buffer = (char *) malloc (buffer_size);
		if (buffer == NULL)
			break;

		status = ping_iterator_get_info (iter, PING_INFO_HOSTNAME,
				(void *) buffer, &buffer_size);
		if (status != 0)
		{
			free (buffer);
			break;
		}
		buffer[buffer_size - 1] = 0;

		XPUSHs (sv_2mortal (newSVpvn(buffer, strlen (buffer))));
		free(buffer);
	} while (0);

int
_ping_iterator_get_dropped (iter)
	pingobj_iter_t *iter
	CODE:
#if defined(PING_INFO_DROPPED)
		uint32_t tmp;
		size_t tmp_size;
		int status;

		RETVAL = -1;

		tmp_size = sizeof (tmp);
		status = ping_iterator_get_info (iter, PING_INFO_DROPPED,
			(void *) &tmp, &tmp_size);
		if (status == 0)
			RETVAL = (int) tmp;
#else
		RETVAL = -1;
#endif
	OUTPUT:
		RETVAL

int
_ping_iterator_get_recv_ttl (iter)
	pingobj_iter_t *iter
	CODE:
#if defined(PING_INFO_RECV_TTL)



( run in 1.561 second using v1.01-cache-2.11-cpan-71847e10f99 )