92 lines
2.6 KiB
C
92 lines
2.6 KiB
C
/*
|
|
* Copyright (C) 2004-2005 by Objective Systems, Inc.
|
|
*
|
|
* This software is furnished under an open source license and may be
|
|
* used and copied only in accordance with the terms of this license.
|
|
* The text of the license may generally be found in the root
|
|
* directory of this installation in the COPYING file. It
|
|
* can also be viewed online at the following URL:
|
|
*
|
|
* http://www.obj-sys.com/open/license.html
|
|
*
|
|
* Any redistributions of this file including modified versions must
|
|
* maintain this copyright notice.
|
|
*
|
|
*****************************************************************************/
|
|
|
|
/**
|
|
* @file ooports.h
|
|
* This file contains functions to manage ports used by the stack.
|
|
*/
|
|
|
|
#ifndef _OOPORTS_H_
|
|
#define _OOPORTS_H_
|
|
|
|
#include "ootypes.h"
|
|
|
|
typedef enum OOH323PortType {
|
|
OOTCP, OOUDP, OORTP
|
|
} OOH323PortType;
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef EXTERN
|
|
#ifdef MAKE_DLL
|
|
#define EXTERN __declspec(dllexport)
|
|
#else
|
|
#define EXTERN
|
|
#endif /* MAKE_DLL */
|
|
#endif /* EXTERN */
|
|
|
|
/**
|
|
* Get the next port of type TCP/UDP/RTP from the corresponding range.
|
|
* When max value for the range is reached, it starts again from the
|
|
* first port number of the range.
|
|
*
|
|
* @param ep Reference to the H323 Endpoint structure.
|
|
* @param type Type of the port to be retrieved(OOTCP/OOUDP/OORTP).
|
|
*
|
|
* @return The next port number for the specified type is returned.
|
|
*/
|
|
EXTERN int ooGetNextPort (OOH323PortType type);
|
|
|
|
/**
|
|
* Bind socket to a port within the port range specified by the
|
|
* application at the startup.
|
|
*
|
|
* @param ep Reference to H323 Endpoint structure.
|
|
* @param type Type of the port required for the socket.
|
|
* @param socket The socket to be bound.
|
|
* @param ip Dotted Ip address to bind to.
|
|
*
|
|
* @return In case of success returns the port number to which
|
|
* socket is bound and in case of failure just returns
|
|
* a negative value.
|
|
*/
|
|
EXTERN int ooBindPort (OOH323PortType type, OOSOCKET socket, char *ip);
|
|
|
|
/**
|
|
* This function is supported for windows version only.
|
|
* Windows sockets have problem in reusing the addresses even after
|
|
* setting SO_REUSEADDR, hence in windows we just allow os to bind
|
|
* to any random port.
|
|
* @param socket Socket to be bound.
|
|
* @param ip Dotted ip address to bind to.
|
|
*
|
|
* @return In case of success returns the port number to which
|
|
* socket is bound and in case of failure just returns
|
|
* a negative value.
|
|
*/
|
|
#ifdef _WIN32
|
|
EXTERN int ooBindOSAllocatedPort(OOSOCKET socket, char *ip);
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|