本文整理汇总了C++中PJ_RETURN_OS_ERROR函数的典型用法代码示例。如果您正苦于以下问题:C++ PJ_RETURN_OS_ERROR函数的具体用法?C++ PJ_RETURN_OS_ERROR怎么用?C++ PJ_RETURN_OS_ERROR使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了PJ_RETURN_OS_ERROR函数的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: PJ_DEF
/*
* Create new socket/endpoint for communication and returns a descriptor.
*/
PJ_DEF(pj_status_t) pj_sock_socket(int af,
int type,
int proto,
pj_sock_t *sock)
{
PJ_CHECK_STACK();
/* Sanity checks. */
PJ_ASSERT_RETURN(sock!=NULL, PJ_EINVAL);
PJ_ASSERT_RETURN((unsigned)PJ_INVALID_SOCKET==INVALID_SOCKET,
(*sock=PJ_INVALID_SOCKET, PJ_EINVAL));
*sock = WSASocket(af, type, proto, NULL, 0, WSA_FLAG_OVERLAPPED);
if (*sock == PJ_INVALID_SOCKET)
return PJ_RETURN_OS_ERROR(pj_get_native_netos_error());
#if PJ_SOCK_DISABLE_WSAECONNRESET && \
(!defined(PJ_WIN32_WINCE) || PJ_WIN32_WINCE==0)
#ifndef SIO_UDP_CONNRESET
#define SIO_UDP_CONNRESET _WSAIOW(IOC_VENDOR,12)
#endif
/* Disable WSAECONNRESET for UDP.
* See https://trac.pjsip.org/repos/ticket/1197
*/
if (type==PJ_SOCK_DGRAM) {
DWORD dwBytesReturned = 0;
BOOL bNewBehavior = FALSE;
DWORD rc;
rc = WSAIoctl(*sock, SIO_UDP_CONNRESET,
&bNewBehavior, sizeof(bNewBehavior),
NULL, 0, &dwBytesReturned,
NULL, NULL);
if (rc==SOCKET_ERROR) {
// Ignored..
}
}
#endif
return PJ_SUCCESS;
}
开发者ID:CryptoCall,项目名称:pjsip,代码行数:48,代码来源:sock_bsd.c
示例2: PJ_DEF
/*
* Instruct the I/O Queue to write to the handle.
*/
PJ_DEF(pj_status_t) pj_ioqueue_sendto( pj_ioqueue_key_t *key,
pj_ioqueue_op_key_t *op_key,
const void *data,
pj_ssize_t *length,
pj_uint32_t flags,
const pj_sockaddr_t *addr,
int addrlen)
{
TRequestStatus reqStatus;
TPtrC8 aBuffer;
TInetAddr inetAddr;
TSockXfrLength aLen;
pj_status_t status;
PJ_UNUSED_ARG(op_key);
// Forcing pending operation is not supported.
PJ_ASSERT_RETURN((flags & PJ_IOQUEUE_ALWAYS_ASYNC)==0, PJ_EINVAL);
// Return failure if access point is marked as down by app.
PJ_SYMBIAN_CHECK_CONNECTION();
// Convert address
status = PjSymbianOS::pj2Addr(*(const pj_sockaddr*)addr, addrlen,
inetAddr);
if (status != PJ_SUCCESS)
return status;
// Clear flag
flags &= ~PJ_IOQUEUE_ALWAYS_ASYNC;
aBuffer.Set((const TUint8*)data, (TInt)*length);
CPjSocket *pjSock = key->cbObj->get_pj_socket();
pjSock->Socket().SendTo(aBuffer, inetAddr, flags, reqStatus, aLen);
User::WaitForRequest(reqStatus);
if (reqStatus.Int() != KErrNone)
return PJ_RETURN_OS_ERROR(reqStatus.Int());
//At least in UIQ Emulator, aLen.Length() reports incorrect length
//for UDP (some newlc.com users seem to have reported this too).
//*length = aLen.Length();
return PJ_SUCCESS;
}
开发者ID:jgabrams,项目名称:csipsimple,代码行数:48,代码来源:ioqueue_symbian.cpp
示例3: PJ_DEF
PJ_DEF(pj_status_t) pj_rwmutex_create(pj_pool_t *pool, const char *name,
pj_rwmutex_t **p_mutex)
{
pj_rwmutex_t *rwm;
pj_status_t status;
PJ_UNUSED_ARG(name);
rwm = PJ_POOL_ALLOC_T(pool, pj_rwmutex_t);
PJ_ASSERT_RETURN(rwm, PJ_ENOMEM);
status = pthread_rwlock_init(&rwm->rwlock, NULL);
if (status != 0)
return PJ_RETURN_OS_ERROR(status);
*p_mutex = rwm;
return PJ_SUCCESS;
}
开发者ID:ChrisKwon,项目名称:spore,代码行数:18,代码来源:os_core_unix.c
示例4: PJ_DEF
/*
* Start listening to incoming connections.
*/
PJ_DEF(pj_status_t) pj_sock_listen( pj_sock_t sock,
int backlog)
{
PJ_CHECK_STACK();
PJ_ASSERT_RETURN(sock && backlog, PJ_EINVAL);
CPjSocket *pjSock = (CPjSocket*)sock;
RSocket &rSock = pjSock->Socket();
TInt rc = rSock.Listen((TUint)backlog);
if (rc == KErrNone) {
return PJ_SUCCESS;
} else {
return PJ_RETURN_OS_ERROR(rc);
}
}
开发者ID:avble,项目名称:natClientEx,代码行数:21,代码来源:sock_symbian.cpp
示例5: PJ_DEF
/*
* Close socket.
*/
PJ_DEF(pj_status_t) pj_sock_close(pj_sock_t sock)
{
int rc;
PJ_CHECK_STACK();
#if defined(PJ_WIN32) && PJ_WIN32!=0 || \
defined(PJ_WIN64) && PJ_WIN64 != 0 || \
defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE!=0
rc = closesocket(sock);
#else
rc = close(sock);
#endif
if (rc != 0)
return PJ_RETURN_OS_ERROR(pj_get_native_netos_error());
else
return PJ_SUCCESS;
}
开发者ID:CloudStyleStudio,项目名称:csip,代码行数:21,代码来源:sock_bsd.c
示例6: PJ_ASSERT_RETURN
int CPjSSLSocket::Connect(CPjSSLSocket_cb cb, void *key,
const TInetAddr &local_addr,
const TInetAddr &rem_addr,
const TDesC8 &servername,
const TDesC8 &ciphers)
{
pj_status_t status;
PJ_ASSERT_RETURN(state_ == SSL_STATE_NULL, PJ_EINVALIDOP);
status = pj_sock_socket(rem_addr.Family(), pj_SOCK_STREAM(), 0, &sock_);
if (status != PJ_SUCCESS)
return status;
// Apply QoS
status = pj_sock_apply_qos2(sock_, qos_type_, &qos_params_,
2, THIS_FILE, NULL);
RSocket &rSock = ((CPjSocket*)sock_)->Socket();
local_addr_ = local_addr;
if (!local_addr_.IsUnspecified()) {
TInt err = rSock.Bind(local_addr_);
if (err != KErrNone)
return PJ_RETURN_OS_ERROR(err);
}
cb_ = cb;
key_ = key;
rem_addr_ = rem_addr;
/* Note: the following members only keep the pointer, not the data */
servername_.Set(servername);
ciphers_.Set(ciphers);
rSock.Connect(rem_addr_, iStatus);
SetActive();
state_ = SSL_STATE_CONNECTING;
rSock.LocalName(local_addr_);
return PJ_EPENDING;
}
开发者ID:AGProjects,项目名称:python-sipsimple,代码行数:44,代码来源:ssl_sock_symbian.cpp
示例7: PJ_DEF
/*
* pj_mutex_trylock()
*/
PJ_DEF(pj_status_t) pj_mutex_trylock(pj_mutex_t *mutex)
{
#if PJ_HAS_THREADS
int status;
PJ_CHECK_STACK();
PJ_ASSERT_RETURN(mutex, PJ_EINVAL);
PJ_LOG(6,(mutex->obj_name, "Mutex: thread %s is trying",
pj_thread_this()->obj_name));
status = pthread_mutex_trylock( &mutex->mutex );
if (status==0)
{
#if PJ_DEBUG
mutex->owner = pj_thread_this();
pj_ansi_strcpy(mutex->owner_name, mutex->owner->obj_name);
++mutex->nesting_level;
PJ_LOG(6,(mutex->obj_name, "Mutex acquired by thread %s (level=%d)",
pj_thread_this()->obj_name,
mutex->nesting_level));
#else
PJ_LOG(6,(mutex->obj_name, "Mutex acquired by thread %s",
pj_thread_this()->obj_name));
#endif
}
else
{
PJ_LOG(6,(mutex->obj_name, "Mutex: thread %s's trylock() failed",
pj_thread_this()->obj_name));
}
if (status==0)
return PJ_SUCCESS;
else
return PJ_RETURN_OS_ERROR(status);
#else /* PJ_HAS_THREADS */
pj_assert( mutex == (pj_mutex_t*)1);
return PJ_SUCCESS;
#endif
}
开发者ID:mnhorak,项目名称:PJSIP-CMake,代码行数:46,代码来源:os_core_android.c
示例8: PJ_DEF
/*
* Create new socket/endpoint for communication and returns a descriptor.
*/
PJ_DEF(pj_status_t) pj_sock_socket(int af,
int type,
int proto,
pj_sock_t *sock)
{
PJ_CHECK_STACK();
/* Sanity checks. */
PJ_ASSERT_RETURN(sock!=NULL, PJ_EINVAL);
PJ_ASSERT_RETURN(PJ_INVALID_SOCKET==-1,
(*sock=PJ_INVALID_SOCKET, PJ_EINVAL));
*sock = socket(af, type, proto);
if (*sock == PJ_INVALID_SOCKET)
return PJ_RETURN_OS_ERROR(pj_get_native_netos_error());
else
return PJ_SUCCESS;
}
开发者ID:vinc6nt,项目名称:p2pnt,代码行数:22,代码来源:sock_bsd.c
示例9: PJ_DEF
PJ_DEF(pj_status_t) pj_file_open( pj_pool_t *pool,
const char *pathname,
unsigned flags,
pj_oshandle_t *fd)
{
char mode[8];
char *p = mode;
PJ_ASSERT_RETURN(pathname && fd, PJ_EINVAL);
PJ_UNUSED_ARG(pool);
if ((flags & PJ_O_APPEND) == PJ_O_APPEND) {
if ((flags & PJ_O_WRONLY) == PJ_O_WRONLY) {
*p++ = 'a';
if ((flags & PJ_O_RDONLY) == PJ_O_RDONLY)
*p++ = '+';
} else {
/* This is invalid.
* Can not specify PJ_O_RDONLY with PJ_O_APPEND!
*/
}
} else {
if ((flags & PJ_O_RDONLY) == PJ_O_RDONLY) {
*p++ = 'r';
if ((flags & PJ_O_WRONLY) == PJ_O_WRONLY)
*p++ = '+';
} else {
*p++ = 'w';
}
}
if (p==mode)
return PJ_EINVAL;
*p++ = 'b';
*p++ = '\0';
*fd = fopen(pathname, mode);
if (*fd == NULL)
return PJ_RETURN_OS_ERROR(errno);
return PJ_SUCCESS;
}
开发者ID:max3903,项目名称:SFLphone,代码行数:43,代码来源:file_io_ansi.c
示例10: PJ_DEF
/*
* Set the thread priority.
*/
PJ_DEF(pj_status_t) pj_thread_set_prio(pj_thread_t *thread, int prio)
{
#if PJ_HAS_THREADS
PJ_ASSERT_RETURN(thread, PJ_EINVAL);
PJ_ASSERT_RETURN(prio>=THREAD_PRIORITY_IDLE &&
prio<=THREAD_PRIORITY_TIME_CRITICAL,
PJ_EINVAL);
if (SetThreadPriority(thread->hthread, prio) == FALSE)
return PJ_RETURN_OS_ERROR(GetLastError());
return PJ_SUCCESS;
#else
PJ_UNUSED_ARG(thread);
PJ_UNUSED_ARG(prio);
pj_assert("pj_thread_set_prio() called in non-threading mode!");
return PJ_EINVALIDOP;
#endif
}
开发者ID:LuLei2013,项目名称:pjproject,代码行数:23,代码来源:os_core_win32.c
示例11: PJ_DEF
/*
* Bind socket.
*/
PJ_DEF(pj_status_t) pj_sock_bind( pj_sock_t sock,
const pj_sockaddr_t *addr,
int len)
{
PJ_CHECK_STACK();
PJ_ASSERT_RETURN(addr && len >= (int)sizeof(struct sockaddr_in), PJ_EINVAL);
CHECK_ADDR_LEN(addr, len);
pj_int32_t val = 1;
int rc = pj_sock_setsockopt(sock, pj_SOL_SOCKET(), pj_SO_REUSEADDR(), &val, sizeof(val));
if (rc != 0)
return rc;
if (bind(sock, (struct sockaddr*)addr, len) != 0)
return PJ_RETURN_OS_ERROR(pj_get_native_netos_error());
else
return PJ_SUCCESS;
}
开发者ID:oldurecu,项目名称:pjsip-upstream,代码行数:23,代码来源:sock_bsd.c
示例12: PJ_DEF
/*
* Send data.
*/
PJ_DEF(pj_status_t) pj_sock_sendto(pj_sock_t sock,
const void *buf,
pj_ssize_t *len,
unsigned flags,
const pj_sockaddr_t *to,
int tolen)
{
PJ_CHECK_STACK();
PJ_ASSERT_RETURN(len, PJ_EINVAL);
CHECK_ADDR_LEN(to, tolen);
*len = sendto(sock, (const char*)buf, *len, flags,
(const struct sockaddr*)to, tolen);
if (*len < 0)
return PJ_RETURN_OS_ERROR(pj_get_native_netos_error());
else
return PJ_SUCCESS;
}
开发者ID:chiefdome,项目名称:asterisk,代码行数:23,代码来源:sock_bsd.c
示例13: PJ_DEF
/*
* pj_sem_post()
*/
PJ_DEF(pj_status_t) pj_sem_post(pj_sem_t *sem)
{
#if PJ_HAS_THREADS
int result;
PJ_LOG(6, (sem->obj_name, "Semaphore released by thread %s",
pj_thread_this(sem->inst_id)->obj_name));
#if defined(PJ_DARWINOS) && PJ_DARWINOS!=0
result = dispatch_semaphore_signal(sem->sem);
#else
result = sem_post( sem->sem );
#endif
if (result == 0)
return PJ_SUCCESS;
else
return PJ_RETURN_OS_ERROR(pj_get_native_os_error());
#else
pj_assert( sem == (pj_sem_t*) 1);
return PJ_SUCCESS;
#endif
}
开发者ID:Antares84,项目名称:asuswrt-merlin,代码行数:23,代码来源:os_core_unix.c
示例14: PJ_DEF
/*
* pj_file_getstat()
*/
PJ_DEF(pj_status_t) pj_file_getstat(const char *filename,
pj_file_stat *statbuf)
{
struct stat buf;
PJ_ASSERT_RETURN(filename && statbuf, PJ_EINVAL);
if (stat(filename, &buf) != 0) {
return PJ_RETURN_OS_ERROR(errno);
}
statbuf->size = buf.st_size;
statbuf->ctime.sec = buf.st_ctime;
statbuf->ctime.msec = 0;
statbuf->mtime.sec = buf.st_mtime;
statbuf->mtime.msec = 0;
statbuf->atime.sec = buf.st_atime;
statbuf->atime.msec = 0;
return PJ_SUCCESS;
}
开发者ID:0x0B501E7E,项目名称:pjproject,代码行数:24,代码来源:file_access_unistd.c
示例15: PJ_DEF
/*
* Connect socket.
*/
PJ_DEF(pj_status_t) pj_sock_connect( pj_sock_t sockfd,
const pj_sockaddr_t *addr,
int namelen)
{
long err;
mm_segment_t oldfs;
PJ_CHECK_STACK();
oldfs = get_fs();
set_fs(KERNEL_DS);
err = sys_connect( sockfd, (void*)addr, namelen );
set_fs(oldfs);
if (err)
return PJ_RETURN_OS_ERROR(-err);
else
return PJ_SUCCESS;
}
开发者ID:Jopie64,项目名称:pjsip,代码行数:24,代码来源:sock_linux_kernel.c
示例16: init_blade_dll
/*
* Load BladeEncoder DLL.
*/
static pj_status_t init_blade_dll(void)
{
if (BladeDLL.refCount == 0) {
#define GET_PROC(type, name) \
BladeDLL.name = (type)GetProcAddress(BladeDLL.hModule, PJ_T(#name)); \
if (BladeDLL.name == NULL) { \
PJ_LOG(1,(THIS_FILE, "Unable to find %s in %s", #name, DLL_NAME)); \
return PJ_RETURN_OS_ERROR(GetLastError()); \
}
BE_VERSION beVersion;
BladeDLL.hModule = (void*)LoadLibrary(DLL_NAME);
if (BladeDLL.hModule == NULL) {
pj_status_t status = PJ_RETURN_OS_ERROR(GetLastError());
char errmsg[PJ_ERR_MSG_SIZE];
pj_strerror(status, errmsg, sizeof(errmsg));
PJ_LOG(1,(THIS_FILE, "Unable to load %s: %s", DLL_NAME, errmsg));
return status;
}
GET_PROC(BEINITSTREAM, beInitStream);
GET_PROC(BEENCODECHUNK, beEncodeChunk);
GET_PROC(BEDEINITSTREAM, beDeinitStream);
GET_PROC(BECLOSESTREAM, beCloseStream);
GET_PROC(BEVERSION, beVersion);
GET_PROC(BEWRITEVBRHEADER, beWriteVBRHeader);
GET_PROC(BEWRITEINFOTAG, beWriteInfoTag);
#undef GET_PROC
BladeDLL.beVersion(&beVersion);
PJ_LOG(4,(THIS_FILE, "%s encoder v%d.%d loaded (%s)", DLL_NAME,
beVersion.byMajorVersion, beVersion.byMinorVersion,
beVersion.zHomepage));
}
++BladeDLL.refCount;
return PJ_SUCCESS;
}
开发者ID:tibastral,项目名称:symphonie,代码行数:42,代码来源:mp3_writer.c
示例17: PJ_DEF
/*
* pj_file_move()
*/
PJ_DEF(pj_status_t) pj_file_move( const char *oldname, const char *newname)
{
PJ_DECL_UNICODE_TEMP_BUF(woldname,256)
PJ_DECL_UNICODE_TEMP_BUF(wnewname,256)
BOOL rc;
PJ_ASSERT_RETURN(oldname!=NULL && newname!=NULL, PJ_EINVAL);
#if PJ_WIN32_WINNT >= 0x0400
rc = MoveFileEx(PJ_STRING_TO_NATIVE(oldname,woldname,sizeof(woldname)),
PJ_STRING_TO_NATIVE(newname,wnewname,sizeof(wnewname)),
MOVEFILE_COPY_ALLOWED|MOVEFILE_REPLACE_EXISTING);
#else
rc = MoveFile(PJ_STRING_TO_NATIVE(oldname,woldname,sizeof(woldname)),
PJ_STRING_TO_NATIVE(newname,wnewname,sizeof(wnewname)));
#endif
if (!rc)
return PJ_RETURN_OS_ERROR(GetLastError());
return PJ_SUCCESS;
}
开发者ID:LuLei2013,项目名称:pjproject,代码行数:25,代码来源:file_access_win32.c
示例18: PJ_DEF
/*
* Create new socket/endpoint for communication and returns a descriptor.
*/
PJ_DEF(pj_status_t) pj_sock_socket(int af,
int type,
int proto,
pj_sock_t *sock)
{
PJ_CHECK_STACK();
/* Sanity checks. */
PJ_ASSERT_RETURN(sock!=NULL, PJ_EINVAL);
PJ_ASSERT_RETURN(PJ_INVALID_SOCKET==-1,
(*sock=PJ_INVALID_SOCKET, PJ_EINVAL));
*sock = socket(af, type, proto);
if (*sock == PJ_INVALID_SOCKET)
return PJ_RETURN_OS_ERROR(pj_get_native_netos_error());
else {
pj_int32_t val = 1;
if (type == pj_SOCK_STREAM()) {
pj_sock_setsockopt(*sock, pj_SOL_SOCKET(), pj_SO_NOSIGPIPE(),
&val, sizeof(val));
}
#if defined(PJ_SOCK_HAS_IPV6_V6ONLY) && PJ_SOCK_HAS_IPV6_V6ONLY != 0
if (af == PJ_AF_INET6) {
pj_sock_setsockopt(*sock, PJ_SOL_IPV6, IPV6_V6ONLY,
&val, sizeof(val));
}
#endif
#if defined(PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT) && \
PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT!=0
if (type == pj_SOCK_DGRAM()) {
pj_sock_setsockopt(*sock, pj_SOL_SOCKET(), SO_NOSIGPIPE,
&val, sizeof(val));
}
#endif
return PJ_SUCCESS;
}
}
开发者ID:elimelec,项目名称:pjproject,代码行数:41,代码来源:sock_bsd.c
注:本文中的PJ_RETURN_OS_ERROR函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论