29 return SET_ERRNO(ERROR_INVALID_PARAM,
"Session create request is NULL");
33 if (req->capabilities & ~0x03) {
34 return SET_ERRNO(ERROR_INVALID_PARAM,
"Invalid capabilities bits (only 0-1 allowed)");
38 if (req->max_participants < 1 || req->max_participants > 8) {
39 return SET_ERRNO(ERROR_INVALID_PARAM,
"Invalid max_participants (must be 1-8)");
45 if (req->server_port == 0) {
46 return SET_ERRNO(ERROR_INVALID_PARAM,
"Server port is zero");
54 return SET_ERRNO(ERROR_INVALID_PARAM,
"Session join request is NULL");
58 if (req->session_string_len == 0 || req->session_string_len > ACIP_MAX_SESSION_STRING_LEN) {
59 return SET_ERRNO(ERROR_INVALID_PARAM,
"Invalid session string length");
63 if (req->session_string[0] ==
'\0') {
64 return SET_ERRNO(ERROR_INVALID_PARAM,
"Session string is empty");
75 if (sockfd == INVALID_SOCKET_VALUE) {
76 return SET_ERRNO(ERROR_INVALID_PARAM,
"Invalid socket");
80 error_message =
"Unknown error";
83 acip_error_t error_packet;
84 memset(&error_packet, 0,
sizeof(error_packet));
88 size_t msg_len = strlen(error_message);
89 if (msg_len >=
sizeof(error_packet.error_message)) {
90 msg_len =
sizeof(error_packet.error_message) - 1;
92 memcpy(error_packet.error_message, error_message, msg_len);
93 error_packet.error_message[msg_len] =
'\0';
96 int result =
send_packet(sockfd, PACKET_TYPE_ACIP_ERROR, &error_packet,
sizeof(error_packet));
98 return SET_ERRNO(ERROR_NETWORK,
"Failed to send ACIP error packet");
int send_packet(socket_t sockfd, packet_type_t type, const void *data, size_t len)
Send a basic packet without encryption.