88c2b80732295b5a1920e63446cc83b8760bf277
[ossec-hids.git] / src / os_net / os_net.h
1 /* @(#) $Id$ */
2
3 /* Copyright (C) 2009 Trend Micro Inc.
4  * All rights reserved.
5  *
6  * This program is a free software; you can redistribute it
7  * and/or modify it under the terms of the GNU General Public
8  * License (version 2) as published by the FSF - Free Software
9  * Foundation
10  */
11
12 /* OS_net Library.
13  * APIs for many network operations.
14  */
15
16 #ifndef __OS_NET_H
17
18 #define __OS_NET_H
19
20
21 /* OS_Bindport*
22  * Bind a specific port (protocol and a ip).
23  * If the IP is not set, it is going to use ADDR_ANY
24  * Return the socket.
25  */
26 int OS_Bindporttcp(unsigned int _port, char *_ip);
27 int OS_Bindportudp(unsigned int _port, char *_ip);
28
29 /* OS_BindUnixDomain
30  * Bind to a specific file, using the "mode" permissions in
31  * a Unix Domain socket.
32  */ 
33 int OS_BindUnixDomain(char * path, int mode, int max_msg_size);
34 int OS_ConnectUnixDomain(char * path, int max_msg_size); 
35 int OS_getsocketsize(int ossock);
36
37
38 /* OS_Connect
39  * Connect to a TCP/UDP socket
40  */
41 int OS_ConnectTCP(unsigned int _port, char *_ip);
42 int OS_ConnectUDP(unsigned int _port, char *_ip);
43
44 /* OS_RecvUDP
45  * Receive a UDP packet. Return NULL if failed
46  */
47 char *OS_RecvUDP(int socket, int sizet);
48 int OS_RecvConnUDP(int socket, char *buffer, int buffer_size);
49
50
51 /* OS_RecvUnix
52  * Receive a message via a Unix socket
53  */
54 int OS_RecvUnix(int socket, int sizet, char *ret); 
55
56
57 /* OS_RecvTCP
58  * Receive a TCP packet
59  */
60 int OS_AcceptTCP(int socket, char *srcip, int addrsize);
61 char *OS_RecvTCP(int socket, int sizet);
62 int OS_RecvTCPBuffer(int socket, char *buffer, int sizet);
63   
64
65 /* OS_SendTCP 
66  * Send a TCP/UDP/UnixSocket packet (in a open socket)
67  */
68 int OS_SendTCP(int socket, char *msg);
69 int OS_SendTCPbySize(int socket, int size, char *msg);
70
71 int OS_SendUnix(int socket, char * msg, int size);
72
73 int OS_SendUDP(int socket, char *msg);
74 int OS_SendUDPbySize(int socket, int size, char *msg);
75     
76
77 /* OS_GetHost
78  * Calls gethostbyname
79  */
80 char *OS_GetHost(char *host, int attempts);
81
82 #endif
83
84 /* EOF */