Subversion Repositories SvarDOS

Rev

Rev 885 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
207 mateuszvis 1
/*
2
 * This file is part of the pkgnet package - the SvarDOS package manager.
3
 * Copyright (C) Mateusz Viste 2013-2021
4
 */
5
 
6
 
7
#ifndef libtcp_hdr
8
#define libtcp_hdr
9
 
333 mateuszvis 10
struct net_tcpsocket; /* opaque struct, exact implementation in net.c */
207 mateuszvis 11
 
885 mateusz.vi 12
/* resolves name and fills resovled addr into ip. on failure it retries r times
13
 * (r=0 means "try only once"). returns 0 on success. */
14
int net_dnsresolve(char *ip, const char *name, int r);
207 mateuszvis 15
 
16
/* must be called before using libtcp. returns 0 on success, or non-zero if network subsystem is not available. */
17
int net_init(void);
18
 
19
/* initiates a connection to an IP host and returns a socket pointer (or NULL
20
 * on error) - note that connection is NOT established at this point!
21
 * use net_isconnected() to know when the connection is connected. */
22
struct net_tcpsocket *net_connect(const char *ip, unsigned short port);
23
 
24
/* checks whether or not a socket is connected. returns:
25
 *  0 = not connected,
26
 *  1 = connected
329 mateuszvis 27
 * -1 = error */
28
int net_isconnected(struct net_tcpsocket *s);
207 mateuszvis 29
 
30
/* Sends data on socket 'socket'.
31
Returns the number of bytes sent on success, and <0 otherwise. The error code can be translated into a human error message via libtcp_strerr(). */
329 mateuszvis 32
int net_send(struct net_tcpsocket *socket, const void *line, long len);
207 mateuszvis 33
 
34
/* Reads data from socket 'sock' and write it into buffer 'buff', until end of connection. Will fall into error if the amount of data is bigger than 'maxlen' bytes.
35
Returns the amount of data read (in bytes) on success, or a negative value otherwise. The error code can be translated into a human error message via libtcp_strerr(). */
329 mateuszvis 36
int net_recv(struct net_tcpsocket *socket, void *buff, long maxlen);
207 mateuszvis 37
 
38
/* Close the 'sock' socket. */
39
void net_close(struct net_tcpsocket *socket);
40
 
41
/* Returns an info string about the networking engine being used */
42
const char *net_engine(void);
43
 
44
#endif