Branch data Line data Source code
1 : : /**
2 : : * \file
3 : : *
4 : : * \author Georg Hopp
5 : : *
6 : : * \copyright
7 : : * Copyright © 2012 Georg Hopp
8 : : *
9 : : * This program is free software: you can redistribute it and/or modify
10 : : * it under the terms of the GNU General Public License as published by
11 : : * the Free Software Foundation, either version 3 of the License, or
12 : : * (at your option) any later version.
13 : : *
14 : : * This program is distributed in the hope that it will be useful,
15 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 : : * GNU General Public License for more details.
18 : : *
19 : : * You should have received a copy of the GNU General Public License
20 : : * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 : : */
22 : :
23 : : #include <stdlib.h> // for atoi() and exit()
24 : : #include <errno.h> // for errno
25 : :
26 : : #include "socket.h"
27 : : #include "class.h"
28 : : #include "logger.h"
29 : :
30 : :
31 : : void
32 : 4 : socketListen(Sock this, int backlog)
33 : : {
34 : 4 : (this->addr).sin_family = AF_INET; // Internet address family
35 : 4 : (this->addr).sin_addr.s_addr = htonl(INADDR_ANY); // Any incoming interface
36 : : //(this->addr).sin_addr.s_addr = inet_addr("127.0.0.1"); // Any incoming interface
37 : 4 : (this->addr).sin_port = htons(this->port); // Local port
38 : :
39 : : /**
40 : : * Bind to the local address
41 : : */
42 : 4 : if (-1 == bind(this->handle, (struct sockaddr *) &(this->addr), sizeof(this->addr))) {
43 : 0 : loggerLog(this->log, LOGGER_CRIT,
44 : : "error binding socket: %s - service terminated",
45 : 0 : strerror(errno));
46 : 0 : exit(EXIT_FAILURE);
47 : : }
48 : :
49 : : /**
50 : : * Mark the socket so it will listen for incoming connections
51 : : */
52 : 4 : if (-1 == listen(this->handle, backlog)) {
53 : 0 : loggerLog(this->log, LOGGER_CRIT,
54 : : "error binding socket: %s - service terminated",
55 : 0 : strerror(errno));
56 : 0 : exit(EXIT_FAILURE);
57 : : }
58 : 4 : }
59 : :
60 : : // vim: set ts=4 sw=4:
|