NeoMutt
2025-12-11-1031-gfb8e54
Teaching an old dog new tricks
DOXYGEN
Toggle main menu visibility
Loading...
Searching...
No Matches
socket.h
Go to the documentation of this file.
1
22
23
#ifndef MUTT_CONN_SOCKET_H
24
#define MUTT_CONN_SOCKET_H
25
26
#include <time.h>
27
28
struct
Buffer
;
29
struct
Connection
;
30
34
enum
ConnectionType
35
{
36
MUTT_CONNECTION_SIMPLE
,
37
MUTT_CONNECTION_TUNNEL
,
38
MUTT_CONNECTION_SSL
,
39
};
40
41
int
mutt_socket_close
(
struct
Connection
*conn);
42
void
mutt_socket_empty
(
struct
Connection
*conn);
43
struct
Connection
*
mutt_socket_new
(
enum
ConnectionType
type);
44
int
mutt_socket_open
(
struct
Connection
*conn);
45
int
mutt_socket_poll
(
struct
Connection
*conn, time_t wait_secs);
46
int
mutt_socket_read
(
struct
Connection
*conn,
char
*buf,
size_t
len);
47
int
mutt_socket_readchar
(
struct
Connection
*conn,
char
*c);
48
int
mutt_socket_readln_d
(
char
*buf,
size_t
buflen,
struct
Connection
*conn,
int
dbg);
49
int
mutt_socket_write_d
(
struct
Connection
*conn,
const
char
*buf,
int
len,
int
dbg);
50
51
#define MUTT_SOCK_LOG_CMD 2
52
#define MUTT_SOCK_LOG_HDR 3
53
#define MUTT_SOCK_LOG_FULL 5
54
55
#define mutt_socket_readln(buf, buflen, conn) mutt_socket_readln_d(buf, buflen, conn, MUTT_SOCK_LOG_CMD)
56
#define mutt_socket_send(conn, buf) mutt_socket_send_d(conn, buf, MUTT_SOCK_LOG_CMD)
57
#define mutt_socket_send_d(conn, buf, dbg) mutt_socket_write_d(conn, buf, mutt_str_len(buf), dbg)
58
#define mutt_socket_write_n(conn, buf, len) mutt_socket_write_d(conn, buf, len, MUTT_SOCK_LOG_CMD)
59
60
#define mutt_socket_buffer_readln(buf, conn) mutt_socket_buffer_readln_d(buf, conn, MUTT_SOCK_LOG_CMD)
61
int
mutt_socket_buffer_readln_d
(
struct
Buffer
*buf,
struct
Connection
*conn,
int
dbg);
62
63
#endif
/* MUTT_CONN_SOCKET_H */
mutt_socket_close
int mutt_socket_close(struct Connection *conn)
Close a socket.
Definition
socket.c:100
mutt_socket_poll
int mutt_socket_poll(struct Connection *conn, time_t wait_secs)
Checks whether reads would block.
Definition
socket.c:182
mutt_socket_buffer_readln_d
int mutt_socket_buffer_readln_d(struct Buffer *buf, struct Connection *conn, int dbg)
Read a line from a socket into a Buffer.
Definition
socket.c:328
mutt_socket_write_d
int mutt_socket_write_d(struct Connection *conn, const char *buf, int len, int dbg)
Write data to a socket.
Definition
socket.c:142
mutt_socket_new
struct Connection * mutt_socket_new(enum ConnectionType type)
Allocate and initialise a new connection.
Definition
socket.c:272
mutt_socket_readchar
int mutt_socket_readchar(struct Connection *conn, char *c)
Simple read buffering to speed things up.
Definition
socket.c:200
mutt_socket_empty
void mutt_socket_empty(struct Connection *conn)
Clear out any queued data.
Definition
socket.c:306
ConnectionType
ConnectionType
Type of connection.
Definition
socket.h:35
MUTT_CONNECTION_SSL
@ MUTT_CONNECTION_SSL
SSL/TLS-encrypted connection.
Definition
socket.h:38
MUTT_CONNECTION_SIMPLE
@ MUTT_CONNECTION_SIMPLE
Simple TCP socket connection.
Definition
socket.h:36
MUTT_CONNECTION_TUNNEL
@ MUTT_CONNECTION_TUNNEL
Tunnelled connection.
Definition
socket.h:37
mutt_socket_read
int mutt_socket_read(struct Connection *conn, char *buf, size_t len)
Read from a Connection.
Definition
socket.c:128
mutt_socket_open
int mutt_socket_open(struct Connection *conn)
Simple wrapper.
Definition
socket.c:76
mutt_socket_readln_d
int mutt_socket_readln_d(char *buf, size_t buflen, struct Connection *conn, int dbg)
Read a line from a socket.
Definition
socket.c:238
Buffer
String manipulation buffer.
Definition
buffer.h:36
Connection
Definition
connection.h:48