Qsmtp
0.30dev
|
functions for establishing connection to remote SMTP server More...
#include <qremote/conn.h>
#include <control.h>
#include <log.h>
#include <netio.h>
#include <qdns.h>
#include <qremote/client.h>
#include <qremote/qremote.h>
#include <arpa/inet.h>
#include <assert.h>
#include <errno.h>
#include <fcntl.h>
#include <netinet/in.h>
#include <string.h>
#include <sys/socket.h>
#include <syslog.h>
#include <unistd.h>
Macros | |
#define | SOCK_CLOEXEC 0 |
Functions | |
static int | conn (const struct in6_addr remoteip, const struct in6_addr *outip) |
create a socket and connect to the given ip More... | |
int | tryconn (struct ips *mx, const struct in6_addr *outip4, const struct in6_addr *outip6) |
void | getmxlist (char *remhost, struct ips **mx) |
Variables | |
unsigned int | targetport = 25 |
functions for establishing connection to remote SMTP server
|
static |
create a socket and connect to the given ip
remoteip | the target address |
outip | the local IP the connection should originate from |
void getmxlist | ( | char * | remhost, |
struct ips ** | mx | ||
) |
get all IPs for the MX entries of target address
remhost | target address |
mx | list of MX entries will be stored here, memory will be malloced |
int tryconn | ( | struct ips * | mx, |
const struct in6_addr * | outip4, | ||
const struct in6_addr * | outip6 | ||
) |
try to estabish an SMTP connection to one of the hosts in the ip list
mx | list of IP adresses to try |
outip4 | local IPv4 to bind |
outip6 | local IPv6 to bind |
-ENOENT | no IP address left to connect to |
Every entry where a connection attempt was made is marked with a priority of MX_PRIORITY_USED, the last one tried with MX_PRIORITY_CURRENT.
unsigned int targetport = 25 |
the port on the destination host to connect to