You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kamailio/sctp_ev.h

98 lines
3.4 KiB

/*
* $Id$
*
* Copyright (C) 2009 iptelorg GmbH
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* sctp_ev.h - sctp events
*/
/*
* History:
* --------
* 2009-04-28 initial version (andrei)
*/
#ifndef __sctp_ev_h
#define __sctp_ev_h
#include <errno.h>
#include <string.h>
#ifndef USE_SCTP_EV
#define SCTP_EV_ASSOC_CHANGE(lip, lport, src, reason, state)
#define SCTP_EV_PEER_ADDR_CHANGE(lip, lport, src, reason, state, addr_su)
#define SCTP_EV_REMOTE_ERROR(lip, lport, src, err)
#define SCTP_EV_SEND_FAILED(lip, lport, src, err)
#define SCTP_EV_SHUTDOWN_EVENT(lip, lport, src)
#define SCTP_EV_SENDER_DRY_EVENT(lip, lport, src)
#else /* USE_SCTP_EV */
#include "ip_addr.h"
/** an association has either been opened or closed.
* called for each SCTP_ASSOC_CHANGE event.
*
* @param err - if 0 it should be ignored (no corresp. libc error), if non-0
* it will contain the errno.
* @param lip - pointer to an ip_addr containing the local ip
* or 0 if dynamic (WARNING can be 0).
* @param lport - pointer to an ip_addr containing the local port or 0
* if unknown/dynamic.
* @param src - pointer to a sockaddr_union containing the src.
* @param proto - protocol used
*/
#define SCTP_EV_ASSOC_CHANGE(lip, lport, src, reason, state) \
DBG("SCTP_ASSOC_CHANGE from %s on %s:%d: %s\n", \
su2a(src, sizeof(*(src))), ip_addr2a(lip), lport, reason)
/** an address part of an assoc. changed state.
* called for the SCTP_PEER_ADDR_CHANGE event.*/
#define SCTP_EV_PEER_ADDR_CHANGE(lip, lport, src, reason, state, addr_su) \
DBG("SCTP_PEER_ADDR_CHANGE from %s on %s:%d: %s\n", \
su2a(src, sizeof(*(src))), ip_addr2a(lip), lport, reason)
/** remote operation error from the peer.
* called for the SCTP_REMOTE_ERROR event.*/
#define SCTP_EV_REMOTE_ERROR(lip, lport, src, err) \
DBG("SCTP_REMOTE_ERROR from %s on %s:%d: %d\n", \
su2a(src, sizeof(*(src))), ip_addr2a(lip), lport, err)
/** send failed.
* called for the SCTP_SEND_FAILED event.*/
#define SCTP_EV_SEND_FAILED(lip, lport, src, err) \
DBG("SCTP_SEND_FAILED from %s on %s:%d: %d\n", \
su2a(src, sizeof(*(src))), ip_addr2a(lip), lport, err)
/** the peer has sent a shutdown.
* called for the SCTP_SHUTDOWN_EVENT event.*/
#define SCTP_EV_SHUTDOWN_EVENT(lip, lport, src) \
DBG("SCTP_SHUTDOWN_EVENT from %s on %s:%d\n", \
su2a(src, sizeof(*(src))), ip_addr2a(lip), lport)
/** kernel has finished sending all the queued data.
* called for the SCTP_SENDER_DRY_EVENT event.*/
#define SCTP_EV_SENDER_DRY_EVENT(lip, lport, src) \
DBG("SCTP_SENDER_DRY_EVENT from %s on %s:%d\n", \
su2a(src, sizeof(*(src))), ip_addr2a(lip), lport)
#endif /* USE_SCTP_EV */
#endif /*__sctp_ev_h*/
/* vi: set ts=4 sw=4 tw=79:ai:cindent: */