OpenVAS Libraries  9.0.1
Data Structures | Macros | Typedefs | Enumerations | Functions
network.h File Reference
#include <sys/select.h>
#include <netinet/in.h>
#include <gnutls/gnutls.h>
#include <gnutls/x509.h>
#include "arglists.h"
#include "../base/openvas_networking.h"

Go to the source code of this file.

Data Structures

struct  host_info
 

Macros

#define IS_ENCAPS_SSL(x)   ((x) >= OPENVAS_ENCAPS_SSLv23 && (x) <= OPENVAS_ENCAPS_TLScustom)
 

Typedefs

typedef enum openvas_encaps openvas_encaps_t
 

Enumerations

enum  openvas_encaps {
  OPENVAS_ENCAPS_AUTO = 0, OPENVAS_ENCAPS_IP, OPENVAS_ENCAPS_SSLv23, OPENVAS_ENCAPS_SSLv2,
  OPENVAS_ENCAPS_SSLv3, OPENVAS_ENCAPS_TLSv1, OPENVAS_ENCAPS_TLSv11, OPENVAS_ENCAPS_TLSv12,
  OPENVAS_ENCAPS_TLScustom, OPENVAS_ENCAPS_MAX
}
 

Functions

int open_sock_tcp (struct arglist *, unsigned int, int)
 
int open_sock_option (struct arglist *, unsigned int, int, int, int)
 
int recv_line (int, char *, size_t)
 Reads a text from the socket stream into the argument buffer, always. More...
 
int nrecv (int, void *, int, int)
 
int socket_close (int)
 
int get_sock_infos (int sock, int *r_transport, void **r_tls_session)
 
unsigned short * getpts (char *, int *)
 Converts a string like "-100,200-1024,3000-4000,60000-" into an array. More...
 
int open_stream_connection (struct arglist *, unsigned int, int, int)
 
int open_stream_connection_ext (struct arglist *, unsigned int, int, int, const char *)
 
int open_stream_auto_encaps_ext (struct arglist *args, unsigned int port, int timeout, int force)
 
int write_stream_connection (int, void *buf, int n)
 
int read_stream_connection (int, void *, int)
 
int read_stream_connection_min (int, void *, int, int)
 
int nsend (int, void *, int, int)
 
void add_close_stream_connection_hook (int(*)(int))
 
int close_stream_connection (int)
 
const char * get_encaps_name (openvas_encaps_t)
 
const char * get_encaps_through (openvas_encaps_t)
 
int open_sock_opt_hn (const char *, unsigned int, int, int, int)
 
struct host_infohost_info_init (const char *name, const struct in6_addr *, const char *, const char *)
 Initializes a host_info. More...
 
void host_info_free (struct host_info *)
 Free a host_info struct. More...
 
int openvas_SSL_init (void)
 Initializes SSL support. More...
 
int stream_set_buffer (int, int)
 
int stream_get_buffer_sz (int)
 
int stream_get_err (int)
 
int openvas_register_connection (int s, void *ssl, gnutls_certificate_credentials_t certcred, openvas_encaps_t encaps)
 
int openvas_deregister_connection (int)
 
int openvas_get_socket_from_connection (int)
 
gnutls_session_t ovas_get_tlssession_from_connection (int)
 
int stream_zero (fd_set *)
 
int stream_set (int, fd_set *)
 
int os_send (int, void *, int, int)
 
int os_recv (int, void *, int, int)
 
int internal_send (int, char *, int)
 
int internal_recv (int, char **, int *, int *)
 
int fd_is_stream (int)
 
int stream_set_timeout (int, int)
 
int socket_negotiate_ssl (int, openvas_encaps_t, struct arglist *)
 
void socket_get_cert (int, void **, int *)
 
int socket_get_ssl_version (int)
 
void socket_get_ssl_session_id (int, void **, size_t *)
 
int socket_get_ssl_compression (int)
 
int socket_get_ssl_ciphersuite (int)
 

Macro Definition Documentation

◆ IS_ENCAPS_SSL

#define IS_ENCAPS_SSL (   x)    ((x) >= OPENVAS_ENCAPS_SSLv23 && (x) <= OPENVAS_ENCAPS_TLScustom)

Typedef Documentation

◆ openvas_encaps_t

Enumeration Type Documentation

◆ openvas_encaps

Enumerator
OPENVAS_ENCAPS_AUTO 
OPENVAS_ENCAPS_IP 
OPENVAS_ENCAPS_SSLv23 
OPENVAS_ENCAPS_SSLv2 
OPENVAS_ENCAPS_SSLv3 
OPENVAS_ENCAPS_TLSv1 
OPENVAS_ENCAPS_TLSv11 
OPENVAS_ENCAPS_TLSv12 
OPENVAS_ENCAPS_TLScustom 
OPENVAS_ENCAPS_MAX 

Function Documentation

◆ add_close_stream_connection_hook()

void add_close_stream_connection_hook ( int(*)(int)  )

◆ close_stream_connection()

int close_stream_connection ( int  )

◆ fd_is_stream()

int fd_is_stream ( int  )

◆ get_encaps_name()

const char* get_encaps_name ( openvas_encaps_t  )

◆ get_encaps_through()

const char* get_encaps_through ( openvas_encaps_t  )

◆ get_sock_infos()

int get_sock_infos ( int  sock,
int *  r_transport,
void **  r_tls_session 
)

◆ getpts()

unsigned short* getpts ( char *  origexpr,
int *  len 
)

Converts a string like "-100,200-1024,3000-4000,60000-" into an array.

of port numbers

This function is (c) Fyodor fyodo.nosp@m.r@dh.nosp@m.p.com and was taken from his excellent and outstanding scanner Nmap See http://www.insecure.org/nmap/ for details about Nmap

◆ host_info_free()

void host_info_free ( struct host_info hostinfo)

Free a host_info struct.

Parameters
[in]hostinfoHost info to free.

◆ host_info_init()

struct host_info* host_info_init ( const char *  name,
const struct in6_addr *  ip,
const char *  vhosts,
const char *  fqdn 
)

Initializes a host_info.

Parameters
[in]nameHostname.
[in]ipIP address.
[in]vhostsVhosts list.
[in]fqdnFully qualified domain name.
Returns
host_info pointer.

◆ internal_recv()

int internal_recv ( int  soc,
char **  data,
int *  data_sz,
int *  msg_type 
)

internal_send() / internal_recv() :

When processes are passing messages to each other, the format is <length><msg>, with <length> being a long integer. The functions internal_send() and internal_recv() encapsulate and decapsulate the messages themselves.

Parameters
[in]socThe socket from which to receive message.
[out]dataWhere to allocate the reception buffer. Has to be set to NULL, and left untouched on failure or zero-length messages.
[out]data_szSize of the received message.
[out]msg_typeType of the message which was received.
Return values
Lengthof the received message on success (can be zero).
Negativevalue on error.

◆ internal_send()

int internal_send ( int  soc,
char *  data,
int  msg_type 
)
Todo:
internal_send and internal_recv. could make an own module (ipc), in which the type constants could be moved, too.

internal_send() / internal_recv() :

When processes are passing messages to each other, the format is <length><msg>, with <length> being a long integer. The functions internal_send() and internal_recv() encapsulate and decapsulate the messages themselves.

◆ nrecv()

int nrecv ( int  ,
void *  ,
int  ,
int   
)

◆ nsend()

int nsend ( int  ,
void *  ,
int  ,
int   
)

◆ open_sock_opt_hn()

int open_sock_opt_hn ( const char *  ,
unsigned  int,
int  ,
int  ,
int   
)

◆ open_sock_option()

int open_sock_option ( struct arglist ,
unsigned  int,
int  ,
int  ,
int   
)

◆ open_sock_tcp()

int open_sock_tcp ( struct arglist ,
unsigned  int,
int   
)

◆ open_stream_auto_encaps_ext()

int open_stream_auto_encaps_ext ( struct arglist args,
unsigned int  port,
int  timeout,
int  force 
)

◆ open_stream_connection()

int open_stream_connection ( struct arglist ,
unsigned  int,
int  ,
int   
)

◆ open_stream_connection_ext()

int open_stream_connection_ext ( struct arglist ,
unsigned  int,
int  ,
int  ,
const char *   
)

◆ openvas_deregister_connection()

int openvas_deregister_connection ( int  )

◆ openvas_get_socket_from_connection()

int openvas_get_socket_from_connection ( int  )

◆ openvas_register_connection()

int openvas_register_connection ( int  soc,
void *  ssl,
gnutls_certificate_credentials_t  certcred,
openvas_encaps_t  encaps 
)
Todo:
TLS FIXME: migrate this to TLS
Todo:
Fix the voidness of the ssl parameter (problematic in 64bit env.) here or on caller-side
Parameters
socSocket to use.

◆ openvas_SSL_init()

int openvas_SSL_init ( void  )

Initializes SSL support.

◆ os_recv()

int os_recv ( int  ,
void *  ,
int  ,
int   
)

◆ os_send()

int os_send ( int  ,
void *  ,
int  ,
int   
)

◆ ovas_get_tlssession_from_connection()

gnutls_session_t ovas_get_tlssession_from_connection ( int  )

◆ read_stream_connection()

int read_stream_connection ( int  ,
void *  ,
int   
)

◆ read_stream_connection_min()

int read_stream_connection_min ( int  ,
void *  ,
int  ,
int   
)

◆ recv_line()

int recv_line ( int  soc,
char *  buf,
size_t  bufsiz 
)

Reads a text from the socket stream into the argument buffer, always.

appending a '\0' byte.

Parameters
bufBuffer to read into.
Returns
Number of bytes read, without the trailing '\0'.

◆ socket_close()

int socket_close ( int  )

◆ socket_get_cert()

void socket_get_cert ( int  ,
void **  ,
int *   
)

◆ socket_get_ssl_ciphersuite()

int socket_get_ssl_ciphersuite ( int  )

◆ socket_get_ssl_compression()

int socket_get_ssl_compression ( int  )

◆ socket_get_ssl_session_id()

void socket_get_ssl_session_id ( int  ,
void **  ,
size_t *   
)

◆ socket_get_ssl_version()

int socket_get_ssl_version ( int  )

◆ socket_negotiate_ssl()

int socket_negotiate_ssl ( int  ,
openvas_encaps_t  ,
struct arglist  
)

◆ stream_get_buffer_sz()

int stream_get_buffer_sz ( int  )

◆ stream_get_err()

int stream_get_err ( int  )

◆ stream_set()

int stream_set ( int  ,
fd_set *   
)

◆ stream_set_buffer()

int stream_set_buffer ( int  ,
int   
)

◆ stream_set_timeout()

int stream_set_timeout ( int  ,
int   
)

◆ stream_zero()

int stream_zero ( fd_set *  )

◆ write_stream_connection()

int write_stream_connection ( int  ,
void *  buf,
int  n 
)