socket_misc.c File Reference

Helper functions for sockets. More...

#include "core/net.h"
#include "core/socket.h"
#include "core/socket_misc.h"
#include "core/raw_socket.h"
#include "core/udp.h"
#include "core/tcp.h"
#include "core/tcp_misc.h"
#include "debug.h"

Go to the source code of this file.

Macros

#define TRACE_LEVEL   SOCKET_TRACE_LEVEL
 

Functions

SocketsocketAllocate (uint_t type, uint_t protocol)
 Allocate a socket. More...
 
void socketRegisterEvents (Socket *socket, OsEvent *event, uint_t eventMask)
 Subscribe to the specified socket events. More...
 
void socketUnregisterEvents (Socket *socket)
 Unsubscribe previously registered events. More...
 
uint_t socketGetEvents (Socket *socket)
 Retrieve event flags for a specified socket. More...
 
bool_t socketMulticastFilter (Socket *socket, const IpAddr *destAddr, const IpAddr *srcAddr)
 Filter out incoming multicast traffic. More...
 
SocketMulticastGroupsocketCreateMulticastGroupEntry (Socket *socket, const IpAddr *groupAddr)
 Create a new multicast group. More...
 
SocketMulticastGroupsocketFindMulticastGroupEntry (Socket *socket, const IpAddr *groupAddr)
 Search the list of multicast groups for a given group address. More...
 
void socketDeleteMulticastGroupEntry (SocketMulticastGroup *group)
 Delete a multicast group. More...
 
error_t socketAddMulticastSrcAddr (SocketMulticastGroup *group, const IpAddr *srcAddr)
 Add an address to the multicast source filter. More...
 
void socketRemoveMulticastSrcAddr (SocketMulticastGroup *group, const IpAddr *srcAddr)
 Remove an address from the multicast source filter. More...
 
int_t socketFindMulticastSrcAddr (SocketMulticastGroup *group, const IpAddr *srcAddr)
 Search the list of multicast sources for a given IP address. More...
 

Detailed Description

Helper functions for sockets.

License

SPDX-License-Identifier: GPL-2.0-or-later

Copyright (C) 2010-2024 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneTCP Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Author
Oryx Embedded SARL (www.oryx-embedded.com)
Version
2.4.4

Definition in file socket_misc.c.

Macro Definition Documentation

◆ TRACE_LEVEL

#define TRACE_LEVEL   SOCKET_TRACE_LEVEL

Definition at line 32 of file socket_misc.c.

Function Documentation

◆ socketAddMulticastSrcAddr()

error_t socketAddMulticastSrcAddr ( SocketMulticastGroup group,
const IpAddr srcAddr 
)

Add an address to the multicast source filter.

Parameters
[in]groupPointer to the multicast group
[in]srcAddrIP address to be added to the list
Returns
Error code

Definition at line 485 of file socket_misc.c.

◆ socketAllocate()

Socket* socketAllocate ( uint_t  type,
uint_t  protocol 
)

Allocate a socket.

Parameters
[in]typeType specification for the new socket
[in]protocolProtocol to be used
Returns
Handle referencing the new socket

Definition at line 52 of file socket_misc.c.

◆ socketCreateMulticastGroupEntry()

SocketMulticastGroup* socketCreateMulticastGroupEntry ( Socket socket,
const IpAddr groupAddr 
)

Create a new multicast group.

Parameters
[in]socketHandle to a socket
[in]groupAddrIP address identifying a multicast group
Returns
Pointer to the newly created multicast group

Definition at line 386 of file socket_misc.c.

◆ socketDeleteMulticastGroupEntry()

void socketDeleteMulticastGroupEntry ( SocketMulticastGroup group)

Delete a multicast group.

Parameters
[in]groupPointer to the multicast group

Definition at line 471 of file socket_misc.c.

◆ socketFindMulticastGroupEntry()

SocketMulticastGroup* socketFindMulticastGroupEntry ( Socket socket,
const IpAddr groupAddr 
)

Search the list of multicast groups for a given group address.

Parameters
[in]socketHandle to a socket
[in]groupAddrIP address identifying a multicast group
Returns
A pointer to the matching multicast group is returned. NULL is returned if the specified group address cannot be found

Definition at line 435 of file socket_misc.c.

◆ socketFindMulticastSrcAddr()

int_t socketFindMulticastSrcAddr ( SocketMulticastGroup group,
const IpAddr srcAddr 
)

Search the list of multicast sources for a given IP address.

Parameters
[in]socketHandle to a socket
[in]srcAddrSource IP address
Returns
Index of the matching IP address is returned. -1 is returned if the specified IP address cannot be found

Definition at line 564 of file socket_misc.c.

◆ socketGetEvents()

uint_t socketGetEvents ( Socket socket)

Retrieve event flags for a specified socket.

Parameters
[in]socketHandle that identifies a socket
Returns
Logic OR of events in the signaled state

Definition at line 273 of file socket_misc.c.

◆ socketMulticastFilter()

bool_t socketMulticastFilter ( Socket socket,
const IpAddr destAddr,
const IpAddr srcAddr 
)

Filter out incoming multicast traffic.

Parameters
[in]socketHandle that identifies a socket
[in]destAddrDestination IP address of the received packet
[in]srcAddrSource IP address of the received packet
Returns
Return TRUE if the multicast packet should be accepted, else FALSE

Definition at line 308 of file socket_misc.c.

◆ socketRegisterEvents()

void socketRegisterEvents ( Socket socket,
OsEvent event,
uint_t  eventMask 
)

Subscribe to the specified socket events.

Parameters
[in]socketHandle that identifies a socket
[in]eventEvent object used to receive notifications
[in]eventMaskLogic OR of the requested socket events

Definition at line 195 of file socket_misc.c.

◆ socketRemoveMulticastSrcAddr()

void socketRemoveMulticastSrcAddr ( SocketMulticastGroup group,
const IpAddr srcAddr 
)

Remove an address from the multicast source filter.

Parameters
[in]groupPointer to the multicast group
[in]srcAddrIP address to be removed from the list

Definition at line 526 of file socket_misc.c.

◆ socketUnregisterEvents()

void socketUnregisterEvents ( Socket socket)

Unsubscribe previously registered events.

Parameters
[in]socketHandle that identifies a socket

Definition at line 250 of file socket_misc.c.