Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
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