msg 1.12.11devel
|
00001 /* 00002 * This file is part of the Sofia-SIP package 00003 * 00004 * Copyright (C) 2005 Nokia Corporation. 00005 * 00006 * Contact: Pekka Pessi <pekka.pessi@nokia-email.address.hidden> 00007 * 00008 * This library is free software; you can redistribute it and/or 00009 * modify it under the terms of the GNU Lesser General Public License 00010 * as published by the Free Software Foundation; either version 2.1 of 00011 * the License, or (at your option) any later version. 00012 * 00013 * This library is distributed in the hope that it will be useful, but 00014 * WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 * Lesser General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU Lesser General Public 00019 * License along with this library; if not, write to the Free Software 00020 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 00021 * 02110-1301 USA 00022 * 00023 */ 00024 00025 #ifndef MSG_ADDR_H 00026 00027 #define MSG_ADDR_H 00028 00029 00038 #ifndef MSG_H 00039 #include <sofia-sip/msg.h> 00040 #endif 00041 #ifndef SU_H 00042 #include <sofia-sip/su.h> 00043 #endif 00044 00045 SOFIA_BEGIN_DECLS 00046 00047 SOFIAPUBFUN void msg_addr_zero(msg_t *msg); 00048 SOFIAPUBFUN su_addrinfo_t *msg_addrinfo(msg_t *msg); 00049 00050 SOFIAPUBFUN su_sockaddr_t *msg_addr(msg_t *msg); 00051 00052 SOFIAPUBFUN int msg_get_address(msg_t *msg, su_sockaddr_t *, socklen_t *); 00053 SOFIAPUBFUN int msg_set_address(msg_t *msg, su_sockaddr_t const *, socklen_t); 00054 00055 SOFIAPUBFUN void msg_addr_copy(msg_t *dst, msg_t const *src); 00056 00057 SOFIAPUBFUN int msg_errno(msg_t const *msg); 00058 SOFIAPUBFUN void msg_set_errno(msg_t *msg, int err); 00059 00060 enum { 00062 msg_min_size = 512, 00064 msg_min_block = 8192, 00066 msg_n_fragments = 8 00067 }; 00068 00072 typedef struct su_iovec_s msg_iovec_t; 00073 #define mv_base siv_base 00074 #define mv_len siv_len 00075 00076 SOFIAPUBFUN isize_t msg_iovec(msg_t *msg, msg_iovec_t vec[], isize_t veclen); 00077 00078 SOFIAPUBFUN issize_t msg_recv_iovec(msg_t *msg, 00079 msg_iovec_t vec[], isize_t veclen, usize_t n, 00080 int exact); 00081 SOFIAPUBFUN isize_t msg_recv_commit(msg_t *msg, usize_t n, int eos); 00082 00083 SOFIAPUBFUN issize_t msg_recv_buffer(msg_t *msg, void **return_buffer); 00084 00085 SOFIAPUBFUN msg_t *msg_next(msg_t *msg); 00086 00087 SOFIAPUBFUN int msg_set_next(msg_t *msg, msg_t *next); 00088 00089 SOFIAPUBFUN void msg_clear_committed(msg_t *msg); 00090 00091 SOFIAPUBFUN issize_t msg_buf_external(msg_t *msg, 00092 usize_t N, 00093 usize_t blocksize); 00094 00095 SOFIA_END_DECLS 00096 00097 #endif /* !defined(MSG_ADDR_H) */