⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sip_miscdefs.h

📁 VoIP use SIP protocol interface
💻 H
字号:
/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END *//* * Copyright 2006 Sun Microsystems, Inc.  All rights reserved. * Use is subject to license terms. */#ifndef	_SIP_MISCDEFS_H#define	_SIP_MISCDEFS_H#pragma ident	"@(#)sip_miscdefs.h	1.10	06/08/16 SMI"#ifdef	__cplusplusextern "C" {#endif#include <sys/types.h>#include <sip.h>#define	SIP_CR			'\r'#define	SIP_SP			' '#define	SIP_HCOLON		':'#define	SIP_SEMI		';'#define	SIP_COMMA		','#define	SIP_LAQUOT		'<'#define	SIP_RAQUOT		'>'#define	SIP_QUOTE		'"'#define	SIP_EQUAL		'='#define	SIP_SLASH		'/'#define	SIP_PERIOD		'.'#define	SIP_LPAR		'('#define	SIP_RPAR		')'#define	SIP_SPACE		sizeof (char)#define	SIP_BRANCHID_LEN	28	/* incl. the magic cookie */#define	SIP_TAG_LEN		20#define	SIP_URI_LEN		25#define	SIP_DISPLAY_LEN		25#define	SIP_DOMAIN_LEN		25#define	SIP_MAX_FWDLEN		5#define	SIP_TRANSPORT_LEN	5#define	SIP_SIZE_OF_STATUS_CODE	3#define	SIP_MS			1L#define	SIP_SECONDS		(1000 * SIP_MS)#define	SIP_MINUTES		(60 * SIP_SECONDS)#define	SIP_HOURS   		(60 * SIP_MINUTES)/* timer granularity is in msecs */#define	SIP_TIMER_T1		(1 * SIP_SECONDS)#define	SIP_TIMER_T2		(4 * SIP_SECONDS)#define	SIP_TIMER_T4		(5 * SIP_SECONDS)#ifdef		__linux__#define		SEC		1#define		MILLISEC	1000#define		MICROSEC	1000000#define		NANOSEC		1000000000typedef struct timespec	timestruc_t;typedef	long long	hrtime_t;#endifextern int	sip_timer_T1;extern int	sip_timer_T2;extern int	sip_timer_T4;extern int	sip_timer_TD;/* Structure for SIP timers */typedef struct sip_timer_s {	uint_t		sip_timerid;	struct timeval	sip_timeout_val;}sip_timer_t;/* time is in msec */#define	SIP_SET_TIMEOUT(timer, time) {					\	int	mtime = (time);						\									\	if (mtime > MILLISEC) {						\		(timer).sip_timeout_val.tv_sec = mtime / MILLISEC;	\		mtime -= (timer).sip_timeout_val.tv_sec * MILLISEC;	\	} else {							\		(timer).sip_timeout_val.tv_sec = 0;			\	}								\	(timer).sip_timeout_val.tv_usec = mtime * MILLISEC;		\}/* time is in msec */#define	SIP_INIT_TIMER(timer, time) {				\	SIP_SET_TIMEOUT(timer, time);				\	(timer).sip_timerid = 0;				\}#define	SIP_SCHED_TIMER(timer, obj, func) {			\	(timer).sip_timerid = sip_stack_timeout((void *)(obj),	\	    (func), &((timer).sip_timeout_val));			\}#define	SIP_CANCEL_TIMER(timer) {				\	if ((timer).sip_timerid != 0) {				\		sip_stack_untimeout((timer).sip_timerid);	\		(timer).sip_timerid = 0;			\	}							\}/* returned time is in msec */#define	SIP_GET_TIMEOUT(timer)					\	((timer).sip_timeout_val.tv_sec * MILLISEC +		\	(timer).sip_timeout_val.tv_usec / MILLISEC)#define	SIP_IS_TIMER_RUNNING(timer)	((timer).sip_timerid != 0)/* This is the transaction list */typedef struct sip_conn_cache_s {	void			*obj;	struct sip_conn_cache_s	*next;	struct sip_conn_cache_s	*prev;} sip_conn_cache_t;/* TCP fragment entry */typedef struct sip_reass_entry_s {	char		*sip_reass_msg;	int		sip_reass_msglen;}sip_reass_entry_t;/* Library data in stored in connection object */typedef struct sip_conn_obj_pvt_s {	sip_reass_entry_t	*sip_conn_obj_reass;	pthread_mutex_t		sip_conn_obj_reass_lock;	sip_conn_cache_t	*sip_conn_obj_cache;	pthread_mutex_t		sip_conn_obj_cache_lock;} sip_conn_obj_pvt_t;extern boolean_t sip_manage_dialog;/* To salt the hash function */extern uint64_t	sip_hash_salt;extern void		sip_timeout_init();extern uint_t		sip_timeout(void *, void (*)(void *), struct timeval *);extern boolean_t	sip_untimeout(uint_t);extern void		sip_md5_hash(char *, int, char *, int, char *, int,			    char *, int, char *, int, char *, int, uchar_t *);boolean_t		sip_sent_by_registered(const sip_str_t *);#ifdef	__cplusplus}#endif#endif	/* _SIP_MISCDEFS_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -